From 8ed22a57417036db925386d2219daeab0512f644 Mon Sep 17 00:00:00 2001 From: jcschaff Date: Tue, 10 Sep 2024 00:12:00 -0400 Subject: [PATCH] remove libzip-1.2.0 from repo --- CMakeLists.txt | 2 - Dockerfile | 6 +- libzip-1.2.0/API-CHANGES | 159 - libzip-1.2.0/AUTHORS | 2 - libzip-1.2.0/CMakeLists.txt | 124 - libzip-1.2.0/INSTALL | 229 - libzip-1.2.0/LICENSE | 66 - libzip-1.2.0/Makefile.am | 33 - libzip-1.2.0/Makefile.in | 905 - libzip-1.2.0/NEWS.md | 170 - libzip-1.2.0/README.md | 41 - libzip-1.2.0/THANKS | 62 - libzip-1.2.0/TODO.md | 156 - libzip-1.2.0/aclocal.m4 | 1158 -- libzip-1.2.0/cmake-config.h.in | 73 - libzip-1.2.0/cmake-zipconf.h.in | 121 - libzip-1.2.0/compile | 347 - libzip-1.2.0/config.guess | 1438 -- libzip-1.2.0/config.h.in | 262 - libzip-1.2.0/config.sub | 1810 -- libzip-1.2.0/configure | 15303 ---------------- libzip-1.2.0/configure.ac | 135 - libzip-1.2.0/depcomp | 791 - libzip-1.2.0/examples/CMakeLists.txt | 13 - libzip-1.2.0/examples/Makefile.am | 6 - libzip-1.2.0/examples/Makefile.in | 601 - libzip-1.2.0/examples/in-memory.c | 220 - libzip-1.2.0/examples/windows-open.c | 61 - libzip-1.2.0/install-sh | 301 - libzip-1.2.0/lib/.gitignore | 1 - libzip-1.2.0/lib/CMakeLists.txt | 196 - libzip-1.2.0/lib/Makefile.am | 155 - libzip-1.2.0/lib/Makefile.in | 1980 -- libzip-1.2.0/lib/compat.h | 187 - libzip-1.2.0/lib/gladman-fcrypt.c | 44 - libzip-1.2.0/lib/gladman-fcrypt.h | 49 - libzip-1.2.0/lib/gladman-fcrypt/Makefile.am | 14 - libzip-1.2.0/lib/gladman-fcrypt/Makefile.in | 453 - libzip-1.2.0/lib/gladman-fcrypt/aes.h | 128 - libzip-1.2.0/lib/gladman-fcrypt/aescrypt.c | 450 - libzip-1.2.0/lib/gladman-fcrypt/aeskey.c | 416 - libzip-1.2.0/lib/gladman-fcrypt/aesopt.h | 900 - libzip-1.2.0/lib/gladman-fcrypt/aestab.c | 529 - libzip-1.2.0/lib/gladman-fcrypt/fileenc.c | 144 - libzip-1.2.0/lib/gladman-fcrypt/fileenc.h | 121 - libzip-1.2.0/lib/gladman-fcrypt/hmac.c | 150 - libzip-1.2.0/lib/gladman-fcrypt/hmac.h | 81 - libzip-1.2.0/lib/gladman-fcrypt/pwd2key.c | 159 - libzip-1.2.0/lib/gladman-fcrypt/pwd2key.h | 60 - libzip-1.2.0/lib/gladman-fcrypt/sha1.c | 287 - libzip-1.2.0/lib/gladman-fcrypt/sha1.h | 79 - libzip-1.2.0/lib/make_zip_err_str.sh | 79 - libzip-1.2.0/lib/make_zipconf.sh | 163 - libzip-1.2.0/lib/mkstemp.c | 154 - libzip-1.2.0/lib/zip.h | 431 - libzip-1.2.0/lib/zip_add.c | 50 - libzip-1.2.0/lib/zip_add_dir.c | 45 - libzip-1.2.0/lib/zip_add_entry.c | 81 - libzip-1.2.0/lib/zip_buffer.c | 348 - libzip-1.2.0/lib/zip_close.c | 561 - libzip-1.2.0/lib/zip_delete.c | 70 - libzip-1.2.0/lib/zip_dir_add.c | 93 - libzip-1.2.0/lib/zip_dirent.c | 1105 -- libzip-1.2.0/lib/zip_discard.c | 79 - libzip-1.2.0/lib/zip_entry.c | 53 - libzip-1.2.0/lib/zip_err_str.c | 80 - libzip-1.2.0/lib/zip_error.c | 155 - libzip-1.2.0/lib/zip_error_clear.c | 45 - libzip-1.2.0/lib/zip_error_get.c | 57 - libzip-1.2.0/lib/zip_error_get_sys_type.c | 45 - libzip-1.2.0/lib/zip_error_strerror.c | 87 - libzip-1.2.0/lib/zip_error_to_str.c | 68 - libzip-1.2.0/lib/zip_extra_field.c | 438 - libzip-1.2.0/lib/zip_extra_field_api.c | 366 - libzip-1.2.0/lib/zip_fclose.c | 55 - libzip-1.2.0/lib/zip_fdopen.c | 85 - libzip-1.2.0/lib/zip_file_add.c | 53 - libzip-1.2.0/lib/zip_file_error_clear.c | 45 - libzip-1.2.0/lib/zip_file_error_get.c | 42 - libzip-1.2.0/lib/zip_file_get_comment.c | 56 - .../lib/zip_file_get_external_attributes.c | 51 - libzip-1.2.0/lib/zip_file_get_offset.c | 73 - libzip-1.2.0/lib/zip_file_rename.c | 68 - libzip-1.2.0/lib/zip_file_replace.c | 108 - libzip-1.2.0/lib/zip_file_set_comment.c | 103 - libzip-1.2.0/lib/zip_file_set_encryption.c | 117 - .../lib/zip_file_set_external_attributes.c | 83 - libzip-1.2.0/lib/zip_file_set_mtime.c | 74 - libzip-1.2.0/lib/zip_file_strerror.c | 42 - libzip-1.2.0/lib/zip_filerange_crc.c | 76 - libzip-1.2.0/lib/zip_fopen.c | 47 - libzip-1.2.0/lib/zip_fopen_encrypted.c | 47 - libzip-1.2.0/lib/zip_fopen_index.c | 45 - libzip-1.2.0/lib/zip_fopen_index_encrypted.c | 86 - libzip-1.2.0/lib/zip_fread.c | 63 - libzip-1.2.0/lib/zip_fseek.c | 54 - libzip-1.2.0/lib/zip_ftell.c | 56 - libzip-1.2.0/lib/zip_get_archive_comment.c | 59 - libzip-1.2.0/lib/zip_get_archive_flag.c | 46 - .../lib/zip_get_compression_implementation.c | 44 - .../lib/zip_get_encryption_implementation.c | 56 - libzip-1.2.0/lib/zip_get_file_comment.c | 51 - libzip-1.2.0/lib/zip_get_name.c | 60 - libzip-1.2.0/lib/zip_get_num_entries.c | 53 - libzip-1.2.0/lib/zip_get_num_files.c | 52 - libzip-1.2.0/lib/zip_hash.c | 267 - libzip-1.2.0/lib/zip_io_util.c | 138 - libzip-1.2.0/lib/zip_memdup.c | 57 - libzip-1.2.0/lib/zip_name_locate.c | 94 - libzip-1.2.0/lib/zip_new.c | 74 - libzip-1.2.0/lib/zip_open.c | 862 - libzip-1.2.0/lib/zip_random_unix.c | 54 - libzip-1.2.0/lib/zip_random_win32.c | 51 - libzip-1.2.0/lib/zip_rename.c | 45 - libzip-1.2.0/lib/zip_replace.c | 43 - libzip-1.2.0/lib/zip_set_archive_comment.c | 82 - libzip-1.2.0/lib/zip_set_archive_flag.c | 67 - libzip-1.2.0/lib/zip_set_default_password.c | 59 - libzip-1.2.0/lib/zip_set_file_comment.c | 49 - libzip-1.2.0/lib/zip_set_file_compression.c | 87 - libzip-1.2.0/lib/zip_set_name.c | 158 - libzip-1.2.0/lib/zip_source_begin_write.c | 53 - libzip-1.2.0/lib/zip_source_buffer.c | 435 - libzip-1.2.0/lib/zip_source_call.c | 69 - libzip-1.2.0/lib/zip_source_close.c | 58 - libzip-1.2.0/lib/zip_source_commit_write.c | 64 - libzip-1.2.0/lib/zip_source_crc.c | 202 - libzip-1.2.0/lib/zip_source_deflate.c | 415 - libzip-1.2.0/lib/zip_source_error.c | 48 - libzip-1.2.0/lib/zip_source_file.c | 63 - libzip-1.2.0/lib/zip_source_filep.c | 527 - libzip-1.2.0/lib/zip_source_free.c | 72 - libzip-1.2.0/lib/zip_source_function.c | 100 - libzip-1.2.0/lib/zip_source_is_deleted.c | 42 - libzip-1.2.0/lib/zip_source_layered.c | 69 - libzip-1.2.0/lib/zip_source_open.c | 75 - libzip-1.2.0/lib/zip_source_pkware.c | 226 - libzip-1.2.0/lib/zip_source_read.c | 87 - libzip-1.2.0/lib/zip_source_remove.c | 61 - libzip-1.2.0/lib/zip_source_rollback_write.c | 47 - libzip-1.2.0/lib/zip_source_seek.c | 92 - libzip-1.2.0/lib/zip_source_seek_write.c | 52 - libzip-1.2.0/lib/zip_source_stat.c | 63 - libzip-1.2.0/lib/zip_source_supports.c | 68 - libzip-1.2.0/lib/zip_source_tell.c | 50 - libzip-1.2.0/lib/zip_source_tell_write.c | 47 - libzip-1.2.0/lib/zip_source_win32a.c | 124 - libzip-1.2.0/lib/zip_source_win32handle.c | 610 - libzip-1.2.0/lib/zip_source_win32utf8.c | 79 - libzip-1.2.0/lib/zip_source_win32w.c | 124 - libzip-1.2.0/lib/zip_source_window.c | 253 - .../lib/zip_source_winzip_aes_decode.c | 289 - .../lib/zip_source_winzip_aes_encode.c | 261 - libzip-1.2.0/lib/zip_source_write.c | 47 - libzip-1.2.0/lib/zip_source_zip.c | 59 - libzip-1.2.0/lib/zip_source_zip_new.c | 176 - libzip-1.2.0/lib/zip_stat.c | 47 - libzip-1.2.0/lib/zip_stat_index.c | 77 - libzip-1.2.0/lib/zip_stat_init.c | 85 - libzip-1.2.0/lib/zip_strerror.c | 42 - libzip-1.2.0/lib/zip_string.c | 188 - libzip-1.2.0/lib/zip_unchange.c | 95 - libzip-1.2.0/lib/zip_unchange_all.c | 55 - libzip-1.2.0/lib/zip_unchange_archive.c | 52 - libzip-1.2.0/lib/zip_unchange_data.c | 55 - libzip-1.2.0/lib/zip_utf-8.c | 249 - libzip-1.2.0/lib/zipint.h | 499 - libzip-1.2.0/lib/zipwin32.h | 83 - libzip-1.2.0/libzip-uninstalled.pc.in | 7 - libzip-1.2.0/libzip.pc.in | 14 - libzip-1.2.0/ltmain.sh | 9669 ---------- libzip-1.2.0/m4/.empty | 1 - libzip-1.2.0/m4/libtool.m4 | 7982 -------- libzip-1.2.0/m4/ltoptions.m4 | 384 - libzip-1.2.0/m4/ltsugar.m4 | 123 - libzip-1.2.0/m4/ltversion.m4 | 23 - libzip-1.2.0/m4/lt~obsolete.m4 | 98 - libzip-1.2.0/m4/visibility.m4 | 52 - libzip-1.2.0/man/CMakeLists.txt | 180 - libzip-1.2.0/man/Makefile.am | 136 - libzip-1.2.0/man/Makefile.in | 694 - libzip-1.2.0/man/ZIP_SOURCE_GET_ARGS.man | 47 - libzip-1.2.0/man/ZIP_SOURCE_GET_ARGS.mdoc | 76 - libzip-1.2.0/man/handle_links | 74 - libzip-1.2.0/man/libzip.man | 117 - libzip-1.2.0/man/libzip.mdoc | 146 - libzip-1.2.0/man/links | 17 - libzip-1.2.0/man/zip_add.man | 50 - libzip-1.2.0/man/zip_add.mdoc | 74 - libzip-1.2.0/man/zip_add_dir.man | 31 - libzip-1.2.0/man/zip_add_dir.mdoc | 59 - libzip-1.2.0/man/zip_close.man | 99 - libzip-1.2.0/man/zip_close.mdoc | 115 - libzip-1.2.0/man/zip_delete.man | 42 - libzip-1.2.0/man/zip_delete.mdoc | 71 - libzip-1.2.0/man/zip_dir_add.man | 79 - libzip-1.2.0/man/zip_dir_add.mdoc | 105 - libzip-1.2.0/man/zip_discard.man | 30 - libzip-1.2.0/man/zip_discard.mdoc | 58 - libzip-1.2.0/man/zip_error_clear.man | 40 - libzip-1.2.0/man/zip_error_clear.mdoc | 64 - libzip-1.2.0/man/zip_error_code_system.man | 32 - libzip-1.2.0/man/zip_error_code_system.mdoc | 60 - libzip-1.2.0/man/zip_error_code_zip.man | 29 - libzip-1.2.0/man/zip_error_code_zip.mdoc | 57 - libzip-1.2.0/man/zip_error_fini.man | 29 - libzip-1.2.0/man/zip_error_fini.mdoc | 57 - libzip-1.2.0/man/zip_error_get.man | 87 - libzip-1.2.0/man/zip_error_get.mdoc | 99 - libzip-1.2.0/man/zip_error_get_sys_type.man | 49 - libzip-1.2.0/man/zip_error_get_sys_type.mdoc | 71 - libzip-1.2.0/man/zip_error_init.man | 46 - libzip-1.2.0/man/zip_error_init.mdoc | 71 - libzip-1.2.0/man/zip_error_set.man | 38 - libzip-1.2.0/man/zip_error_set.mdoc | 66 - libzip-1.2.0/man/zip_error_strerror.man | 36 - libzip-1.2.0/man/zip_error_strerror.mdoc | 64 - libzip-1.2.0/man/zip_error_system_type.man | 46 - libzip-1.2.0/man/zip_error_system_type.mdoc | 74 - libzip-1.2.0/man/zip_error_to_data.man | 38 - libzip-1.2.0/man/zip_error_to_data.mdoc | 66 - libzip-1.2.0/man/zip_error_to_str.man | 52 - libzip-1.2.0/man/zip_error_to_str.mdoc | 74 - libzip-1.2.0/man/zip_errors.man | 100 - libzip-1.2.0/man/zip_errors.mdoc | 109 - libzip-1.2.0/man/zip_fclose.man | 34 - libzip-1.2.0/man/zip_fclose.mdoc | 62 - libzip-1.2.0/man/zip_fdopen.man | 122 - libzip-1.2.0/man/zip_fdopen.mdoc | 144 - libzip-1.2.0/man/zip_file_add.man | 133 - libzip-1.2.0/man/zip_file_add.mdoc | 148 - .../man/zip_file_extra_field_delete.man | 102 - .../man/zip_file_extra_field_delete.mdoc | 125 - libzip-1.2.0/man/zip_file_extra_field_get.man | 130 - .../man/zip_file_extra_field_get.mdoc | 152 - libzip-1.2.0/man/zip_file_extra_field_set.man | 87 - .../man/zip_file_extra_field_set.mdoc | 112 - .../man/zip_file_extra_fields_count.man | 85 - .../man/zip_file_extra_fields_count.mdoc | 108 - libzip-1.2.0/man/zip_file_get_comment.man | 89 - libzip-1.2.0/man/zip_file_get_comment.mdoc | 115 - libzip-1.2.0/man/zip_file_get_error.man | 26 - libzip-1.2.0/man/zip_file_get_error.mdoc | 54 - .../man/zip_file_get_external_attributes.man | 138 - .../man/zip_file_get_external_attributes.mdoc | 162 - libzip-1.2.0/man/zip_file_rename.man | 74 - libzip-1.2.0/man/zip_file_rename.mdoc | 100 - libzip-1.2.0/man/zip_file_set_comment.man | 86 - libzip-1.2.0/man/zip_file_set_comment.mdoc | 112 - libzip-1.2.0/man/zip_file_set_encryption.man | 87 - libzip-1.2.0/man/zip_file_set_encryption.mdoc | 111 - .../man/zip_file_set_external_attributes.man | 59 - .../man/zip_file_set_external_attributes.mdoc | 86 - libzip-1.2.0/man/zip_file_set_mtime.man | 55 - libzip-1.2.0/man/zip_file_set_mtime.mdoc | 82 - libzip-1.2.0/man/zip_file_strerror.man | 56 - libzip-1.2.0/man/zip_file_strerror.mdoc | 80 - libzip-1.2.0/man/zip_fopen.man | 127 - libzip-1.2.0/man/zip_fopen.mdoc | 142 - libzip-1.2.0/man/zip_fopen_encrypted.man | 87 - libzip-1.2.0/man/zip_fopen_encrypted.mdoc | 112 - libzip-1.2.0/man/zip_fread.man | 37 - libzip-1.2.0/man/zip_fread.mdoc | 65 - libzip-1.2.0/man/zip_fseek.man | 44 - libzip-1.2.0/man/zip_fseek.mdoc | 72 - libzip-1.2.0/man/zip_ftell.man | 39 - libzip-1.2.0/man/zip_ftell.mdoc | 67 - libzip-1.2.0/man/zip_get_archive_comment.man | 72 - libzip-1.2.0/man/zip_get_archive_comment.mdoc | 102 - libzip-1.2.0/man/zip_get_archive_flag.man | 50 - libzip-1.2.0/man/zip_get_archive_flag.mdoc | 79 - libzip-1.2.0/man/zip_get_error.man | 29 - libzip-1.2.0/man/zip_get_error.mdoc | 57 - libzip-1.2.0/man/zip_get_file_comment.man | 33 - libzip-1.2.0/man/zip_get_file_comment.mdoc | 61 - libzip-1.2.0/man/zip_get_name.man | 92 - libzip-1.2.0/man/zip_get_name.mdoc | 116 - libzip-1.2.0/man/zip_get_num_entries.man | 41 - libzip-1.2.0/man/zip_get_num_entries.mdoc | 69 - libzip-1.2.0/man/zip_get_num_files.man | 41 - libzip-1.2.0/man/zip_get_num_files.mdoc | 69 - libzip-1.2.0/man/zip_name_locate.man | 84 - libzip-1.2.0/man/zip_name_locate.mdoc | 105 - libzip-1.2.0/man/zip_open.man | 153 - libzip-1.2.0/man/zip_open.mdoc | 165 - .../man/zip_register_progress_callback.man | 39 - .../man/zip_register_progress_callback.mdoc | 66 - libzip-1.2.0/man/zip_rename.man | 30 - libzip-1.2.0/man/zip_rename.mdoc | 58 - libzip-1.2.0/man/zip_set_archive_comment.man | 56 - libzip-1.2.0/man/zip_set_archive_comment.mdoc | 84 - libzip-1.2.0/man/zip_set_archive_flag.man | 37 - libzip-1.2.0/man/zip_set_archive_flag.mdoc | 65 - libzip-1.2.0/man/zip_set_default_password.man | 51 - .../man/zip_set_default_password.mdoc | 80 - libzip-1.2.0/man/zip_set_file_comment.man | 39 - libzip-1.2.0/man/zip_set_file_comment.mdoc | 67 - libzip-1.2.0/man/zip_set_file_compression.man | 79 - .../man/zip_set_file_compression.mdoc | 111 - libzip-1.2.0/man/zip_source.man | 57 - libzip-1.2.0/man/zip_source.mdoc | 88 - libzip-1.2.0/man/zip_source_begin_write.man | 40 - libzip-1.2.0/man/zip_source_begin_write.mdoc | 68 - libzip-1.2.0/man/zip_source_buffer.man | 72 - libzip-1.2.0/man/zip_source_buffer.mdoc | 96 - libzip-1.2.0/man/zip_source_close.man | 36 - libzip-1.2.0/man/zip_source_close.mdoc | 64 - libzip-1.2.0/man/zip_source_commit_write.man | 39 - libzip-1.2.0/man/zip_source_commit_write.mdoc | 67 - libzip-1.2.0/man/zip_source_error.man | 29 - libzip-1.2.0/man/zip_source_error.mdoc | 57 - libzip-1.2.0/man/zip_source_file.man | 85 - libzip-1.2.0/man/zip_source_file.mdoc | 108 - libzip-1.2.0/man/zip_source_filep.man | 77 - libzip-1.2.0/man/zip_source_filep.mdoc | 101 - libzip-1.2.0/man/zip_source_free.man | 45 - libzip-1.2.0/man/zip_source_free.mdoc | 73 - libzip-1.2.0/man/zip_source_function.man | 271 - libzip-1.2.0/man/zip_source_function.mdoc | 295 - libzip-1.2.0/man/zip_source_is_deleted.man | 31 - libzip-1.2.0/man/zip_source_is_deleted.mdoc | 59 - libzip-1.2.0/man/zip_source_keep.man | 29 - libzip-1.2.0/man/zip_source_keep.mdoc | 57 - .../man/zip_source_make_command_bitmap.man | 31 - .../man/zip_source_make_command_bitmap.mdoc | 59 - libzip-1.2.0/man/zip_source_open.man | 39 - libzip-1.2.0/man/zip_source_open.mdoc | 67 - libzip-1.2.0/man/zip_source_read.man | 47 - libzip-1.2.0/man/zip_source_read.mdoc | 75 - .../man/zip_source_rollback_write.man | 42 - .../man/zip_source_rollback_write.mdoc | 70 - libzip-1.2.0/man/zip_source_seek.man | 53 - libzip-1.2.0/man/zip_source_seek.mdoc | 78 - .../man/zip_source_seek_compute_offset.man | 49 - .../man/zip_source_seek_compute_offset.mdoc | 78 - libzip-1.2.0/man/zip_source_seek_write.man | 56 - libzip-1.2.0/man/zip_source_seek_write.mdoc | 81 - libzip-1.2.0/man/zip_source_stat.man | 108 - libzip-1.2.0/man/zip_source_stat.mdoc | 122 - libzip-1.2.0/man/zip_source_tell.man | 43 - libzip-1.2.0/man/zip_source_tell.mdoc | 71 - libzip-1.2.0/man/zip_source_tell_write.man | 46 - libzip-1.2.0/man/zip_source_tell_write.mdoc | 74 - libzip-1.2.0/man/zip_source_win32a.man | 88 - libzip-1.2.0/man/zip_source_win32a.mdoc | 111 - libzip-1.2.0/man/zip_source_win32handle.man | 88 - libzip-1.2.0/man/zip_source_win32handle.mdoc | 111 - libzip-1.2.0/man/zip_source_win32w.man | 88 - libzip-1.2.0/man/zip_source_win32w.mdoc | 111 - libzip-1.2.0/man/zip_source_write.man | 49 - libzip-1.2.0/man/zip_source_write.mdoc | 77 - libzip-1.2.0/man/zip_source_zip.man | 93 - libzip-1.2.0/man/zip_source_zip.mdoc | 117 - libzip-1.2.0/man/zip_stat.man | 145 - libzip-1.2.0/man/zip_stat.mdoc | 155 - libzip-1.2.0/man/zip_stat_init.man | 45 - libzip-1.2.0/man/zip_stat_init.mdoc | 73 - libzip-1.2.0/man/zip_unchange.man | 44 - libzip-1.2.0/man/zip_unchange.mdoc | 72 - libzip-1.2.0/man/zip_unchange_all.man | 33 - libzip-1.2.0/man/zip_unchange_all.mdoc | 61 - libzip-1.2.0/man/zip_unchange_archive.man | 33 - libzip-1.2.0/man/zip_unchange_archive.mdoc | 61 - libzip-1.2.0/man/zipcmp.man | 61 - libzip-1.2.0/man/zipcmp.mdoc | 87 - libzip-1.2.0/man/zipmerge.man | 60 - libzip-1.2.0/man/zipmerge.mdoc | 86 - libzip-1.2.0/man/ziptool.man | 388 - libzip-1.2.0/man/ziptool.mdoc | 356 - libzip-1.2.0/missing | 215 - libzip-1.2.0/regress/CMakeLists.txt | 156 - libzip-1.2.0/regress/Makefile.am | 321 - libzip-1.2.0/regress/Makefile.in | 1364 -- libzip-1.2.0/regress/NiHTest.pm | 1214 -- libzip-1.2.0/regress/add_dir.test | 4 - libzip-1.2.0/regress/add_from_buffer.test | 4 - libzip-1.2.0/regress/add_from_file.test | 5 - .../regress/add_from_file_duplicate.test | 6 - .../add_from_file_twice_duplicate.test | 6 - libzip-1.2.0/regress/add_from_filep.c | 102 - libzip-1.2.0/regress/add_from_filep.test | 6 - libzip-1.2.0/regress/add_from_stdin.test | 5 - libzip-1.2.0/regress/add_from_zip_closed.test | 5 - .../regress/add_from_zip_deflated.test | 5 - .../regress/add_from_zip_deflated2.test | 5 - .../add_from_zip_partial_deflated.test | 5 - .../regress/add_from_zip_partial_stored.test | 5 - libzip-1.2.0/regress/add_from_zip_stored.test | 5 - libzip-1.2.0/regress/add_stored.test | 4 - .../regress/add_stored_in_memory.test | 4 - libzip-1.2.0/regress/bigstored.zh | Bin 24632 -> 0 bytes libzip-1.2.0/regress/bigzero-zip.zip | Bin 10490 -> 0 bytes libzip-1.2.0/regress/bogus.zip | 1 - libzip-1.2.0/regress/broken.zip | Bin 75091 -> 0 bytes libzip-1.2.0/regress/cm-default.test | 5 - libzip-1.2.0/regress/cm-default.zip | Bin 8702 -> 0 bytes libzip-1.2.0/regress/count_entries.test | 5 - .../decrypt-correct-password-aes128.test | 5 - .../decrypt-correct-password-aes192.test | 5 - .../decrypt-correct-password-aes256.test | 5 - .../decrypt-correct-password-pkware.test | 5 - .../regress/decrypt-no-password-aes256.test | 5 - .../decrypt-wrong-password-aes128.test | 5 - .../decrypt-wrong-password-aes192.test | 5 - .../decrypt-wrong-password-aes256.test | 5 - .../decrypt-wrong-password-pkware.test | 5 - libzip-1.2.0/regress/delete_add_same.test | 5 - libzip-1.2.0/regress/delete_invalid.test | 5 - libzip-1.2.0/regress/delete_last.test | 4 - .../regress/delete_multiple_last.test | 4 - .../regress/delete_multiple_partial.test | 4 - .../regress/delete_renamed_rename.test | 5 - .../regress/encrypt-aes128-noentropy.zip | Bin 260 -> 0 bytes libzip-1.2.0/regress/encrypt-aes128.zip | Bin 260 -> 0 bytes .../regress/encrypt-aes192-noentropy.zip | Bin 264 -> 0 bytes libzip-1.2.0/regress/encrypt-aes192.zip | Bin 316 -> 0 bytes .../regress/encrypt-aes256-noentropy.zip | Bin 268 -> 0 bytes libzip-1.2.0/regress/encrypt-aes256.zip | Bin 320 -> 0 bytes libzip-1.2.0/regress/encrypt-none.zip | Bin 218 -> 0 bytes libzip-1.2.0/regress/encrypt.test | 23 - libzip-1.2.0/regress/encrypt.zip | Bin 306 -> 0 bytes libzip-1.2.0/regress/encrypt_plus_extra.zip | Bin 332 -> 0 bytes .../regress/encrypt_plus_extra_modified_c.zip | Bin 332 -> 0 bytes .../regress/encrypt_plus_extra_modified_l.zip | Bin 332 -> 0 bytes libzip-1.2.0/regress/encryption-remove.test | 4 - libzip-1.2.0/regress/extra_add.test | 7 - libzip-1.2.0/regress/extra_add_multiple.test | 8 - libzip-1.2.0/regress/extra_count.test | 10 - libzip-1.2.0/regress/extra_count_by_id.test | 22 - .../regress/extra_count_ignore_zip64.test | 7 - libzip-1.2.0/regress/extra_delete.test | 14 - libzip-1.2.0/regress/extra_delete_by_id.test | 6 - libzip-1.2.0/regress/extra_field_align.test | 32 - .../regress/extra_field_align_1-0.zip | Bin 110 -> 0 bytes .../regress/extra_field_align_1-ef_00.zip | Bin 123 -> 0 bytes .../regress/extra_field_align_1-ef_ff.zip | Bin 123 -> 0 bytes .../regress/extra_field_align_1-ff.zip | Bin 110 -> 0 bytes .../regress/extra_field_align_2-0.zip | Bin 110 -> 0 bytes .../regress/extra_field_align_2-ef_00.zip | Bin 123 -> 0 bytes .../regress/extra_field_align_2-ef_ff.zip | Bin 123 -> 0 bytes .../regress/extra_field_align_2-ff.zip | Bin 110 -> 0 bytes .../regress/extra_field_align_3-0.zip | Bin 110 -> 0 bytes .../regress/extra_field_align_3-ef_00.zip | Bin 123 -> 0 bytes .../regress/extra_field_align_3-ef_ff.zip | Bin 123 -> 0 bytes .../regress/extra_field_align_3-ff.zip | Bin 110 -> 0 bytes .../regress/extra_field_align_4-ff.zip | Bin 113 -> 0 bytes libzip-1.2.0/regress/extra_get.test | 9 - libzip-1.2.0/regress/extra_get_by_id.test | 9 - libzip-1.2.0/regress/extra_set.test | 14 - libzip-1.2.0/regress/extra_set_modify_c.test | 16 - libzip-1.2.0/regress/extra_set_modify_l.test | 16 - .../regress/file_comment_encmismatch.test | 4 - libzip-1.2.0/regress/filename_duplicate.zip | Bin 206 -> 0 bytes .../regress/filename_duplicate_empty.zip | Bin 186 -> 0 bytes libzip-1.2.0/regress/filename_empty.zip | Bin 98 -> 0 bytes libzip-1.2.0/regress/fileorder.zip | Bin 204 -> 0 bytes .../regress/firstsecond-split-deflated.zip | Bin 219 -> 0 bytes .../regress/firstsecond-split-stored.zip | Bin 215 -> 0 bytes libzip-1.2.0/regress/firstsecond.zip | Bin 318 -> 0 bytes libzip-1.2.0/regress/foo-stored.zip | Bin 107 -> 0 bytes libzip-1.2.0/regress/fopen_unchanged.c | 92 - libzip-1.2.0/regress/fopen_unchanged.test | 5 - libzip-1.2.0/regress/fread.c | 223 - libzip-1.2.0/regress/fread.test | 5 - libzip-1.2.0/regress/fseek.c | 98 - libzip-1.2.0/regress/fseek_deflated.test | 6 - libzip-1.2.0/regress/fseek_fail.test | 6 - libzip-1.2.0/regress/fseek_ok.test | 6 - libzip-1.2.0/regress/get_comment.test | 14 - .../regress/incons-archive-comment-longer.zip | Bin 153 -> 0 bytes .../incons-archive-comment-shorter.zip | Bin 203 -> 0 bytes libzip-1.2.0/regress/incons-cdoffset.zip | Bin 153 -> 0 bytes .../incons-central-compression-method.zip | Bin 153 -> 0 bytes ...ncons-central-compsize-larger-toolarge.zip | Bin 153 -> 0 bytes .../incons-central-compsize-larger.zip | Bin 153 -> 0 bytes .../incons-central-compsize-smaller.zip | Bin 173 -> 0 bytes libzip-1.2.0/regress/incons-central-crc.zip | Bin 153 -> 0 bytes libzip-1.2.0/regress/incons-central-date.zip | Bin 131 -> 0 bytes .../incons-central-file-comment-longer.zip | Bin 153 -> 0 bytes .../incons-central-file-comment-shorter.zip | Bin 258 -> 0 bytes .../regress/incons-central-magic-bad.zip | Bin 153 -> 0 bytes .../regress/incons-central-magic-bad2.zip | Bin 153 -> 0 bytes .../regress/incons-central-size-larger.zip | Bin 153 -> 0 bytes libzip-1.2.0/regress/incons-data.zip | Bin 153 -> 0 bytes .../regress/incons-ef-central-size-wrong.zip | Bin 151 -> 0 bytes .../regress/incons-ef-local-id-size.zip | Bin 153 -> 0 bytes libzip-1.2.0/regress/incons-ef-local-id.zip | Bin 153 -> 0 bytes libzip-1.2.0/regress/incons-ef-local-size.zip | Bin 153 -> 0 bytes .../regress/incons-eocd-magic-bad.zip | Bin 153 -> 0 bytes .../regress/incons-file-count-high.zip | Bin 153 -> 0 bytes .../regress/incons-file-count-low.zip | Bin 304 -> 0 bytes .../regress/incons-file-count-overflow.zip | Bin 198 -> 0 bytes .../incons-local-compression-method.zip | Bin 153 -> 0 bytes .../regress/incons-local-compsize-larger.zip | Bin 153 -> 0 bytes .../regress/incons-local-compsize-smaller.zip | Bin 173 -> 0 bytes libzip-1.2.0/regress/incons-local-crc.zip | Bin 153 -> 0 bytes .../regress/incons-local-filename-long.zip | Bin 153 -> 0 bytes .../regress/incons-local-filename-missing.zip | Bin 152 -> 0 bytes .../regress/incons-local-filename-short.zip | Bin 153 -> 0 bytes .../regress/incons-local-filename.zip | Bin 153 -> 0 bytes .../regress/incons-local-magic-bad.zip | Bin 153 -> 0 bytes .../regress/incons-local-size-larger.zip | Bin 153 -> 0 bytes libzip-1.2.0/regress/junk-at-end.zip | Bin 416 -> 0 bytes libzip-1.2.0/regress/junk-at-start.zip | Bin 416 -> 0 bytes libzip-1.2.0/regress/junk_at_end.test | 5 - libzip-1.2.0/regress/junk_at_start.test | 5 - libzip-1.2.0/regress/large-uncompressable | Bin 8200 -> 0 bytes libzip-1.2.0/regress/malloc.c | 167 - libzip-1.2.0/regress/manyfiles-zip.zip | Bin 3434201 -> 0 bytes libzip-1.2.0/regress/multidisk.zip | Bin 122 -> 0 bytes libzip-1.2.0/regress/name_locate.test | 27 - libzip-1.2.0/regress/nonrandomopen.c | 81 - .../regress/open_cons_extrabytes.test | 7 - libzip-1.2.0/regress/open_empty.test | 6 - libzip-1.2.0/regress/open_empty_2.test | 6 - libzip-1.2.0/regress/open_extrabytes.test | 6 - libzip-1.2.0/regress/open_file_count.test | 12 - .../regress/open_filename_duplicate.test | 6 - .../open_filename_duplicate_consistency.test | 7 - .../open_filename_duplicate_empty.test | 6 - ..._filename_duplicate_empty_consistency.test | 7 - libzip-1.2.0/regress/open_filename_empty.test | 6 - libzip-1.2.0/regress/open_incons.test | 74 - libzip-1.2.0/regress/open_many_fail.test | 11 - libzip-1.2.0/regress/open_many_ok.test | 12 - libzip-1.2.0/regress/open_multidisk.test | 7 - libzip-1.2.0/regress/open_new_but_exists.test | 7 - libzip-1.2.0/regress/open_new_ok.test | 5 - libzip-1.2.0/regress/open_nonarchive.test | 7 - libzip-1.2.0/regress/open_nosuchfile.test | 6 - libzip-1.2.0/regress/open_ok.test | 6 - libzip-1.2.0/regress/open_too_short.test | 7 - libzip-1.2.0/regress/open_truncate.test | 6 - libzip-1.2.0/regress/open_zip64_3mf.test | 6 - libzip-1.2.0/regress/open_zip64_ok.test | 6 - libzip-1.2.0/regress/progress.test | 10 - libzip-1.2.0/regress/rename_ascii.test | 4 - libzip-1.2.0/regress/rename_cp437.test | 4 - libzip-1.2.0/regress/rename_deleted.test | 5 - libzip-1.2.0/regress/rename_fail.test | 5 - libzip-1.2.0/regress/rename_ok.test | 4 - libzip-1.2.0/regress/rename_ok.zip | Bin 709 -> 0 bytes libzip-1.2.0/regress/rename_utf8.test | 4 - .../regress/rename_utf8_encmismatch.test | 4 - libzip-1.2.0/regress/runtest.in | 43 - libzip-1.2.0/regress/set_comment_all.test | 4 - .../regress/set_comment_localonly.test | 4 - .../regress/set_comment_removeglobal.test | 4 - libzip-1.2.0/regress/set_comment_revert.test | 4 - .../set_compression_deflate_to_deflate.test | 4 - .../set_compression_deflate_to_store.test | 4 - .../set_compression_store_to_deflate.test | 4 - .../set_compression_store_to_store.test | 4 - .../regress/set_compression_unknown.test | 5 - .../regress/stat_index_cp437_guess.test | 148 - .../regress/stat_index_cp437_raw.test | 149 - .../regress/stat_index_cp437_strict.test | 148 - .../regress/stat_index_fileorder.test | 22 - libzip-1.2.0/regress/stat_index_streamed.test | 13 - .../regress/stat_index_streamed_zip64.test | 13 - .../regress/stat_index_utf8_guess.test | 13 - libzip-1.2.0/regress/stat_index_utf8_raw.test | 13 - .../regress/stat_index_utf8_strict.test | 14 - .../stat_index_utf8_unmarked_strict.test | 14 - libzip-1.2.0/regress/stat_index_zip64.test | 13 - libzip-1.2.0/regress/streamed-zip64.zip | Bin 148 -> 0 bytes libzip-1.2.0/regress/streamed.zip | Bin 120 -> 0 bytes .../regress/test-cp437-comment-utf-8.zip | Bin 2619 -> 0 bytes .../regress/test-cp437-fc-utf-8-filename.zip | Bin 236 -> 0 bytes libzip-1.2.0/regress/test-cp437-fc.zip | Bin 186 -> 0 bytes libzip-1.2.0/regress/test-cp437.zip | Bin 2582 -> 0 bytes libzip-1.2.0/regress/test-utf8-unmarked.zip | Bin 210 -> 0 bytes libzip-1.2.0/regress/test-utf8.zip | Bin 210 -> 0 bytes libzip-1.2.0/regress/test.zip | Bin 412 -> 0 bytes libzip-1.2.0/regress/test2.zip | Bin 126 -> 0 bytes libzip-1.2.0/regress/testbuffer.zip | Bin 180 -> 0 bytes libzip-1.2.0/regress/testchanged.zip | Bin 728 -> 0 bytes libzip-1.2.0/regress/testchangedlocal.zip | Bin 714 -> 0 bytes libzip-1.2.0/regress/testcomment.zip | Bin 703 -> 0 bytes libzip-1.2.0/regress/testcomment13.zip | Bin 383 -> 0 bytes libzip-1.2.0/regress/testcommentremoved.zip | Bin 640 -> 0 bytes libzip-1.2.0/regress/testdeflated.zip | Bin 145 -> 0 bytes libzip-1.2.0/regress/testdeflated2.zip | Bin 270 -> 0 bytes libzip-1.2.0/regress/testdir.zip | Bin 222 -> 0 bytes libzip-1.2.0/regress/testempty.zip | Bin 22 -> 0 bytes libzip-1.2.0/regress/testextrabytes.zip | Bin 160 -> 0 bytes libzip-1.2.0/regress/testfile-UTF8.zip | Bin 126 -> 0 bytes libzip-1.2.0/regress/testfile-cp437.zip | Bin 130 -> 0 bytes libzip-1.2.0/regress/testfile-plus-extra.zip | Bin 164 -> 0 bytes libzip-1.2.0/regress/testfile.txt | 0 libzip-1.2.0/regress/testfile.zip | Bin 122 -> 0 bytes libzip-1.2.0/regress/testfile2014.zip | Bin 122 -> 0 bytes libzip-1.2.0/regress/teststdin.zip | Bin 200 -> 0 bytes libzip-1.2.0/regress/teststored.zip | Bin 188 -> 0 bytes libzip-1.2.0/regress/tryopen.c | 112 - .../regress/utf-8-standardization-input.zip | Bin 285 -> 0 bytes .../regress/utf-8-standardization-output.zip | Bin 226 -> 0 bytes .../regress/utf-8-standardization.test | 4 - .../regress/zip-in-archive-comment.test | 13 - .../regress/zip-in-archive-comment.zip | Bin 320 -> 0 bytes libzip-1.2.0/regress/zip64-3mf.zip | Bin 198 -> 0 bytes libzip-1.2.0/regress/zip64.zip | Bin 198 -> 0 bytes libzip-1.2.0/regress/zip64_creation.test | 4 - .../regress/zip64_stored_creation.test | 4 - libzip-1.2.0/src/CMakeLists.txt | 35 - libzip-1.2.0/src/Makefile.am | 10 - libzip-1.2.0/src/Makefile.in | 673 - libzip-1.2.0/src/getopt.c | 117 - libzip-1.2.0/src/getopt.h | 51 - libzip-1.2.0/src/hole.c | 201 - libzip-1.2.0/src/source_hole.c | 589 - libzip-1.2.0/src/zipcmp.c | 723 - libzip-1.2.0/src/zipmerge.c | 300 - libzip-1.2.0/src/ziptool_lib.c | 1161 -- libzip-1.2.0/src/ziptool_lib.h | 58 - libzip-1.2.0/src/ziptool_main.c | 47 - libzip-1.2.0/test-driver | 148 - libzip-1.2.0/xcode/Info.plist | 46 - libzip-1.2.0/xcode/config.h | 220 - libzip-1.2.0/xcode/extract-version.sh | 20 - .../xcode/libzip.xcodeproj/project.pbxproj | 2840 --- .../contents.xcworkspacedata | 7 - libzip-1.2.0/xcode/zipconf.h | 47 - 623 files changed, 3 insertions(+), 93729 deletions(-) delete mode 100644 libzip-1.2.0/API-CHANGES delete mode 100644 libzip-1.2.0/AUTHORS delete mode 100644 libzip-1.2.0/CMakeLists.txt delete mode 100644 libzip-1.2.0/INSTALL delete mode 100644 libzip-1.2.0/LICENSE delete mode 100644 libzip-1.2.0/Makefile.am delete mode 100644 libzip-1.2.0/Makefile.in delete mode 100644 libzip-1.2.0/NEWS.md delete mode 100644 libzip-1.2.0/README.md delete mode 100644 libzip-1.2.0/THANKS delete mode 100644 libzip-1.2.0/TODO.md delete mode 100644 libzip-1.2.0/aclocal.m4 delete mode 100644 libzip-1.2.0/cmake-config.h.in delete mode 100644 libzip-1.2.0/cmake-zipconf.h.in delete mode 100644 libzip-1.2.0/compile delete mode 100644 libzip-1.2.0/config.guess delete mode 100644 libzip-1.2.0/config.h.in delete mode 100644 libzip-1.2.0/config.sub delete mode 100644 libzip-1.2.0/configure delete mode 100644 libzip-1.2.0/configure.ac delete mode 100644 libzip-1.2.0/depcomp delete mode 100644 libzip-1.2.0/examples/CMakeLists.txt delete mode 100644 libzip-1.2.0/examples/Makefile.am delete mode 100644 libzip-1.2.0/examples/Makefile.in delete mode 100644 libzip-1.2.0/examples/in-memory.c delete mode 100644 libzip-1.2.0/examples/windows-open.c delete mode 100644 libzip-1.2.0/install-sh delete mode 100644 libzip-1.2.0/lib/.gitignore delete mode 100644 libzip-1.2.0/lib/CMakeLists.txt delete mode 100644 libzip-1.2.0/lib/Makefile.am delete mode 100644 libzip-1.2.0/lib/Makefile.in delete mode 100644 libzip-1.2.0/lib/compat.h delete mode 100644 libzip-1.2.0/lib/gladman-fcrypt.c delete mode 100644 libzip-1.2.0/lib/gladman-fcrypt.h delete mode 100644 libzip-1.2.0/lib/gladman-fcrypt/Makefile.am delete mode 100644 libzip-1.2.0/lib/gladman-fcrypt/Makefile.in delete mode 100644 libzip-1.2.0/lib/gladman-fcrypt/aes.h delete mode 100644 libzip-1.2.0/lib/gladman-fcrypt/aescrypt.c delete mode 100644 libzip-1.2.0/lib/gladman-fcrypt/aeskey.c delete mode 100644 libzip-1.2.0/lib/gladman-fcrypt/aesopt.h delete mode 100644 libzip-1.2.0/lib/gladman-fcrypt/aestab.c delete mode 100644 libzip-1.2.0/lib/gladman-fcrypt/fileenc.c delete mode 100644 libzip-1.2.0/lib/gladman-fcrypt/fileenc.h delete mode 100644 libzip-1.2.0/lib/gladman-fcrypt/hmac.c delete mode 100644 libzip-1.2.0/lib/gladman-fcrypt/hmac.h delete mode 100644 libzip-1.2.0/lib/gladman-fcrypt/pwd2key.c delete mode 100644 libzip-1.2.0/lib/gladman-fcrypt/pwd2key.h delete mode 100644 libzip-1.2.0/lib/gladman-fcrypt/sha1.c delete mode 100644 libzip-1.2.0/lib/gladman-fcrypt/sha1.h delete mode 100644 libzip-1.2.0/lib/make_zip_err_str.sh delete mode 100644 libzip-1.2.0/lib/make_zipconf.sh delete mode 100644 libzip-1.2.0/lib/mkstemp.c delete mode 100644 libzip-1.2.0/lib/zip.h delete mode 100644 libzip-1.2.0/lib/zip_add.c delete mode 100644 libzip-1.2.0/lib/zip_add_dir.c delete mode 100644 libzip-1.2.0/lib/zip_add_entry.c delete mode 100644 libzip-1.2.0/lib/zip_buffer.c delete mode 100644 libzip-1.2.0/lib/zip_close.c delete mode 100644 libzip-1.2.0/lib/zip_delete.c delete mode 100644 libzip-1.2.0/lib/zip_dir_add.c delete mode 100644 libzip-1.2.0/lib/zip_dirent.c delete mode 100644 libzip-1.2.0/lib/zip_discard.c delete mode 100644 libzip-1.2.0/lib/zip_entry.c delete mode 100644 libzip-1.2.0/lib/zip_err_str.c delete mode 100644 libzip-1.2.0/lib/zip_error.c delete mode 100644 libzip-1.2.0/lib/zip_error_clear.c delete mode 100644 libzip-1.2.0/lib/zip_error_get.c delete mode 100644 libzip-1.2.0/lib/zip_error_get_sys_type.c delete mode 100644 libzip-1.2.0/lib/zip_error_strerror.c delete mode 100644 libzip-1.2.0/lib/zip_error_to_str.c delete mode 100644 libzip-1.2.0/lib/zip_extra_field.c delete mode 100644 libzip-1.2.0/lib/zip_extra_field_api.c delete mode 100644 libzip-1.2.0/lib/zip_fclose.c delete mode 100644 libzip-1.2.0/lib/zip_fdopen.c delete mode 100644 libzip-1.2.0/lib/zip_file_add.c delete mode 100644 libzip-1.2.0/lib/zip_file_error_clear.c delete mode 100644 libzip-1.2.0/lib/zip_file_error_get.c delete mode 100644 libzip-1.2.0/lib/zip_file_get_comment.c delete mode 100644 libzip-1.2.0/lib/zip_file_get_external_attributes.c delete mode 100644 libzip-1.2.0/lib/zip_file_get_offset.c delete mode 100644 libzip-1.2.0/lib/zip_file_rename.c delete mode 100644 libzip-1.2.0/lib/zip_file_replace.c delete mode 100644 libzip-1.2.0/lib/zip_file_set_comment.c delete mode 100644 libzip-1.2.0/lib/zip_file_set_encryption.c delete mode 100644 libzip-1.2.0/lib/zip_file_set_external_attributes.c delete mode 100644 libzip-1.2.0/lib/zip_file_set_mtime.c delete mode 100644 libzip-1.2.0/lib/zip_file_strerror.c delete mode 100644 libzip-1.2.0/lib/zip_filerange_crc.c delete mode 100644 libzip-1.2.0/lib/zip_fopen.c delete mode 100644 libzip-1.2.0/lib/zip_fopen_encrypted.c delete mode 100644 libzip-1.2.0/lib/zip_fopen_index.c delete mode 100644 libzip-1.2.0/lib/zip_fopen_index_encrypted.c delete mode 100644 libzip-1.2.0/lib/zip_fread.c delete mode 100644 libzip-1.2.0/lib/zip_fseek.c delete mode 100644 libzip-1.2.0/lib/zip_ftell.c delete mode 100644 libzip-1.2.0/lib/zip_get_archive_comment.c delete mode 100644 libzip-1.2.0/lib/zip_get_archive_flag.c delete mode 100644 libzip-1.2.0/lib/zip_get_compression_implementation.c delete mode 100644 libzip-1.2.0/lib/zip_get_encryption_implementation.c delete mode 100644 libzip-1.2.0/lib/zip_get_file_comment.c delete mode 100644 libzip-1.2.0/lib/zip_get_name.c delete mode 100644 libzip-1.2.0/lib/zip_get_num_entries.c delete mode 100644 libzip-1.2.0/lib/zip_get_num_files.c delete mode 100644 libzip-1.2.0/lib/zip_hash.c delete mode 100644 libzip-1.2.0/lib/zip_io_util.c delete mode 100644 libzip-1.2.0/lib/zip_memdup.c delete mode 100644 libzip-1.2.0/lib/zip_name_locate.c delete mode 100644 libzip-1.2.0/lib/zip_new.c delete mode 100644 libzip-1.2.0/lib/zip_open.c delete mode 100644 libzip-1.2.0/lib/zip_random_unix.c delete mode 100644 libzip-1.2.0/lib/zip_random_win32.c delete mode 100644 libzip-1.2.0/lib/zip_rename.c delete mode 100644 libzip-1.2.0/lib/zip_replace.c delete mode 100644 libzip-1.2.0/lib/zip_set_archive_comment.c delete mode 100644 libzip-1.2.0/lib/zip_set_archive_flag.c delete mode 100644 libzip-1.2.0/lib/zip_set_default_password.c delete mode 100644 libzip-1.2.0/lib/zip_set_file_comment.c delete mode 100644 libzip-1.2.0/lib/zip_set_file_compression.c delete mode 100644 libzip-1.2.0/lib/zip_set_name.c delete mode 100644 libzip-1.2.0/lib/zip_source_begin_write.c delete mode 100644 libzip-1.2.0/lib/zip_source_buffer.c delete mode 100644 libzip-1.2.0/lib/zip_source_call.c delete mode 100644 libzip-1.2.0/lib/zip_source_close.c delete mode 100644 libzip-1.2.0/lib/zip_source_commit_write.c delete mode 100644 libzip-1.2.0/lib/zip_source_crc.c delete mode 100644 libzip-1.2.0/lib/zip_source_deflate.c delete mode 100644 libzip-1.2.0/lib/zip_source_error.c delete mode 100644 libzip-1.2.0/lib/zip_source_file.c delete mode 100644 libzip-1.2.0/lib/zip_source_filep.c delete mode 100644 libzip-1.2.0/lib/zip_source_free.c delete mode 100644 libzip-1.2.0/lib/zip_source_function.c delete mode 100644 libzip-1.2.0/lib/zip_source_is_deleted.c delete mode 100644 libzip-1.2.0/lib/zip_source_layered.c delete mode 100644 libzip-1.2.0/lib/zip_source_open.c delete mode 100644 libzip-1.2.0/lib/zip_source_pkware.c delete mode 100644 libzip-1.2.0/lib/zip_source_read.c delete mode 100644 libzip-1.2.0/lib/zip_source_remove.c delete mode 100644 libzip-1.2.0/lib/zip_source_rollback_write.c delete mode 100644 libzip-1.2.0/lib/zip_source_seek.c delete mode 100644 libzip-1.2.0/lib/zip_source_seek_write.c delete mode 100644 libzip-1.2.0/lib/zip_source_stat.c delete mode 100644 libzip-1.2.0/lib/zip_source_supports.c delete mode 100644 libzip-1.2.0/lib/zip_source_tell.c delete mode 100644 libzip-1.2.0/lib/zip_source_tell_write.c delete mode 100644 libzip-1.2.0/lib/zip_source_win32a.c delete mode 100644 libzip-1.2.0/lib/zip_source_win32handle.c delete mode 100644 libzip-1.2.0/lib/zip_source_win32utf8.c delete mode 100644 libzip-1.2.0/lib/zip_source_win32w.c delete mode 100644 libzip-1.2.0/lib/zip_source_window.c delete mode 100644 libzip-1.2.0/lib/zip_source_winzip_aes_decode.c delete mode 100644 libzip-1.2.0/lib/zip_source_winzip_aes_encode.c delete mode 100644 libzip-1.2.0/lib/zip_source_write.c delete mode 100644 libzip-1.2.0/lib/zip_source_zip.c delete mode 100644 libzip-1.2.0/lib/zip_source_zip_new.c delete mode 100644 libzip-1.2.0/lib/zip_stat.c delete mode 100644 libzip-1.2.0/lib/zip_stat_index.c delete mode 100644 libzip-1.2.0/lib/zip_stat_init.c delete mode 100644 libzip-1.2.0/lib/zip_strerror.c delete mode 100644 libzip-1.2.0/lib/zip_string.c delete mode 100644 libzip-1.2.0/lib/zip_unchange.c delete mode 100644 libzip-1.2.0/lib/zip_unchange_all.c delete mode 100644 libzip-1.2.0/lib/zip_unchange_archive.c delete mode 100644 libzip-1.2.0/lib/zip_unchange_data.c delete mode 100644 libzip-1.2.0/lib/zip_utf-8.c delete mode 100644 libzip-1.2.0/lib/zipint.h delete mode 100644 libzip-1.2.0/lib/zipwin32.h delete mode 100644 libzip-1.2.0/libzip-uninstalled.pc.in delete mode 100644 libzip-1.2.0/libzip.pc.in delete mode 100644 libzip-1.2.0/ltmain.sh delete mode 100644 libzip-1.2.0/m4/.empty delete mode 100644 libzip-1.2.0/m4/libtool.m4 delete mode 100644 libzip-1.2.0/m4/ltoptions.m4 delete mode 100644 libzip-1.2.0/m4/ltsugar.m4 delete mode 100644 libzip-1.2.0/m4/ltversion.m4 delete mode 100644 libzip-1.2.0/m4/lt~obsolete.m4 delete mode 100644 libzip-1.2.0/m4/visibility.m4 delete mode 100644 libzip-1.2.0/man/CMakeLists.txt delete mode 100644 libzip-1.2.0/man/Makefile.am delete mode 100644 libzip-1.2.0/man/Makefile.in delete mode 100644 libzip-1.2.0/man/ZIP_SOURCE_GET_ARGS.man delete mode 100644 libzip-1.2.0/man/ZIP_SOURCE_GET_ARGS.mdoc delete mode 100644 libzip-1.2.0/man/handle_links delete mode 100644 libzip-1.2.0/man/libzip.man delete mode 100644 libzip-1.2.0/man/libzip.mdoc delete mode 100644 libzip-1.2.0/man/links delete mode 100644 libzip-1.2.0/man/zip_add.man delete mode 100644 libzip-1.2.0/man/zip_add.mdoc delete mode 100644 libzip-1.2.0/man/zip_add_dir.man delete mode 100644 libzip-1.2.0/man/zip_add_dir.mdoc delete mode 100644 libzip-1.2.0/man/zip_close.man delete mode 100644 libzip-1.2.0/man/zip_close.mdoc delete mode 100644 libzip-1.2.0/man/zip_delete.man delete mode 100644 libzip-1.2.0/man/zip_delete.mdoc delete mode 100644 libzip-1.2.0/man/zip_dir_add.man delete mode 100644 libzip-1.2.0/man/zip_dir_add.mdoc delete mode 100644 libzip-1.2.0/man/zip_discard.man delete mode 100644 libzip-1.2.0/man/zip_discard.mdoc delete mode 100644 libzip-1.2.0/man/zip_error_clear.man delete mode 100644 libzip-1.2.0/man/zip_error_clear.mdoc delete mode 100644 libzip-1.2.0/man/zip_error_code_system.man delete mode 100644 libzip-1.2.0/man/zip_error_code_system.mdoc delete mode 100644 libzip-1.2.0/man/zip_error_code_zip.man delete mode 100644 libzip-1.2.0/man/zip_error_code_zip.mdoc delete mode 100644 libzip-1.2.0/man/zip_error_fini.man delete mode 100644 libzip-1.2.0/man/zip_error_fini.mdoc delete mode 100644 libzip-1.2.0/man/zip_error_get.man delete mode 100644 libzip-1.2.0/man/zip_error_get.mdoc delete mode 100644 libzip-1.2.0/man/zip_error_get_sys_type.man delete mode 100644 libzip-1.2.0/man/zip_error_get_sys_type.mdoc delete mode 100644 libzip-1.2.0/man/zip_error_init.man delete mode 100644 libzip-1.2.0/man/zip_error_init.mdoc delete mode 100644 libzip-1.2.0/man/zip_error_set.man delete mode 100644 libzip-1.2.0/man/zip_error_set.mdoc delete mode 100644 libzip-1.2.0/man/zip_error_strerror.man delete mode 100644 libzip-1.2.0/man/zip_error_strerror.mdoc delete mode 100644 libzip-1.2.0/man/zip_error_system_type.man delete mode 100644 libzip-1.2.0/man/zip_error_system_type.mdoc delete mode 100644 libzip-1.2.0/man/zip_error_to_data.man delete mode 100644 libzip-1.2.0/man/zip_error_to_data.mdoc delete mode 100644 libzip-1.2.0/man/zip_error_to_str.man delete mode 100644 libzip-1.2.0/man/zip_error_to_str.mdoc delete mode 100644 libzip-1.2.0/man/zip_errors.man delete mode 100644 libzip-1.2.0/man/zip_errors.mdoc delete mode 100644 libzip-1.2.0/man/zip_fclose.man delete mode 100644 libzip-1.2.0/man/zip_fclose.mdoc delete mode 100644 libzip-1.2.0/man/zip_fdopen.man delete mode 100644 libzip-1.2.0/man/zip_fdopen.mdoc delete mode 100644 libzip-1.2.0/man/zip_file_add.man delete mode 100644 libzip-1.2.0/man/zip_file_add.mdoc delete mode 100644 libzip-1.2.0/man/zip_file_extra_field_delete.man delete mode 100644 libzip-1.2.0/man/zip_file_extra_field_delete.mdoc delete mode 100644 libzip-1.2.0/man/zip_file_extra_field_get.man delete mode 100644 libzip-1.2.0/man/zip_file_extra_field_get.mdoc delete mode 100644 libzip-1.2.0/man/zip_file_extra_field_set.man delete mode 100644 libzip-1.2.0/man/zip_file_extra_field_set.mdoc delete mode 100644 libzip-1.2.0/man/zip_file_extra_fields_count.man delete mode 100644 libzip-1.2.0/man/zip_file_extra_fields_count.mdoc delete mode 100644 libzip-1.2.0/man/zip_file_get_comment.man delete mode 100644 libzip-1.2.0/man/zip_file_get_comment.mdoc delete mode 100644 libzip-1.2.0/man/zip_file_get_error.man delete mode 100644 libzip-1.2.0/man/zip_file_get_error.mdoc delete mode 100644 libzip-1.2.0/man/zip_file_get_external_attributes.man delete mode 100644 libzip-1.2.0/man/zip_file_get_external_attributes.mdoc delete mode 100644 libzip-1.2.0/man/zip_file_rename.man delete mode 100644 libzip-1.2.0/man/zip_file_rename.mdoc delete mode 100644 libzip-1.2.0/man/zip_file_set_comment.man delete mode 100644 libzip-1.2.0/man/zip_file_set_comment.mdoc delete mode 100644 libzip-1.2.0/man/zip_file_set_encryption.man delete mode 100644 libzip-1.2.0/man/zip_file_set_encryption.mdoc delete mode 100644 libzip-1.2.0/man/zip_file_set_external_attributes.man delete mode 100644 libzip-1.2.0/man/zip_file_set_external_attributes.mdoc delete mode 100644 libzip-1.2.0/man/zip_file_set_mtime.man delete mode 100644 libzip-1.2.0/man/zip_file_set_mtime.mdoc delete mode 100644 libzip-1.2.0/man/zip_file_strerror.man delete mode 100644 libzip-1.2.0/man/zip_file_strerror.mdoc delete mode 100644 libzip-1.2.0/man/zip_fopen.man delete mode 100644 libzip-1.2.0/man/zip_fopen.mdoc delete mode 100644 libzip-1.2.0/man/zip_fopen_encrypted.man delete mode 100644 libzip-1.2.0/man/zip_fopen_encrypted.mdoc delete mode 100644 libzip-1.2.0/man/zip_fread.man delete mode 100644 libzip-1.2.0/man/zip_fread.mdoc delete mode 100644 libzip-1.2.0/man/zip_fseek.man delete mode 100644 libzip-1.2.0/man/zip_fseek.mdoc delete mode 100644 libzip-1.2.0/man/zip_ftell.man delete mode 100644 libzip-1.2.0/man/zip_ftell.mdoc delete mode 100644 libzip-1.2.0/man/zip_get_archive_comment.man delete mode 100644 libzip-1.2.0/man/zip_get_archive_comment.mdoc delete mode 100644 libzip-1.2.0/man/zip_get_archive_flag.man delete mode 100644 libzip-1.2.0/man/zip_get_archive_flag.mdoc delete mode 100644 libzip-1.2.0/man/zip_get_error.man delete mode 100644 libzip-1.2.0/man/zip_get_error.mdoc delete mode 100644 libzip-1.2.0/man/zip_get_file_comment.man delete mode 100644 libzip-1.2.0/man/zip_get_file_comment.mdoc delete mode 100644 libzip-1.2.0/man/zip_get_name.man delete mode 100644 libzip-1.2.0/man/zip_get_name.mdoc delete mode 100644 libzip-1.2.0/man/zip_get_num_entries.man delete mode 100644 libzip-1.2.0/man/zip_get_num_entries.mdoc delete mode 100644 libzip-1.2.0/man/zip_get_num_files.man delete mode 100644 libzip-1.2.0/man/zip_get_num_files.mdoc delete mode 100644 libzip-1.2.0/man/zip_name_locate.man delete mode 100644 libzip-1.2.0/man/zip_name_locate.mdoc delete mode 100644 libzip-1.2.0/man/zip_open.man delete mode 100644 libzip-1.2.0/man/zip_open.mdoc delete mode 100644 libzip-1.2.0/man/zip_register_progress_callback.man delete mode 100644 libzip-1.2.0/man/zip_register_progress_callback.mdoc delete mode 100644 libzip-1.2.0/man/zip_rename.man delete mode 100644 libzip-1.2.0/man/zip_rename.mdoc delete mode 100644 libzip-1.2.0/man/zip_set_archive_comment.man delete mode 100644 libzip-1.2.0/man/zip_set_archive_comment.mdoc delete mode 100644 libzip-1.2.0/man/zip_set_archive_flag.man delete mode 100644 libzip-1.2.0/man/zip_set_archive_flag.mdoc delete mode 100644 libzip-1.2.0/man/zip_set_default_password.man delete mode 100644 libzip-1.2.0/man/zip_set_default_password.mdoc delete mode 100644 libzip-1.2.0/man/zip_set_file_comment.man delete mode 100644 libzip-1.2.0/man/zip_set_file_comment.mdoc delete mode 100644 libzip-1.2.0/man/zip_set_file_compression.man delete mode 100644 libzip-1.2.0/man/zip_set_file_compression.mdoc delete mode 100644 libzip-1.2.0/man/zip_source.man delete mode 100644 libzip-1.2.0/man/zip_source.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_begin_write.man delete mode 100644 libzip-1.2.0/man/zip_source_begin_write.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_buffer.man delete mode 100644 libzip-1.2.0/man/zip_source_buffer.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_close.man delete mode 100644 libzip-1.2.0/man/zip_source_close.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_commit_write.man delete mode 100644 libzip-1.2.0/man/zip_source_commit_write.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_error.man delete mode 100644 libzip-1.2.0/man/zip_source_error.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_file.man delete mode 100644 libzip-1.2.0/man/zip_source_file.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_filep.man delete mode 100644 libzip-1.2.0/man/zip_source_filep.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_free.man delete mode 100644 libzip-1.2.0/man/zip_source_free.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_function.man delete mode 100644 libzip-1.2.0/man/zip_source_function.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_is_deleted.man delete mode 100644 libzip-1.2.0/man/zip_source_is_deleted.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_keep.man delete mode 100644 libzip-1.2.0/man/zip_source_keep.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_make_command_bitmap.man delete mode 100644 libzip-1.2.0/man/zip_source_make_command_bitmap.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_open.man delete mode 100644 libzip-1.2.0/man/zip_source_open.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_read.man delete mode 100644 libzip-1.2.0/man/zip_source_read.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_rollback_write.man delete mode 100644 libzip-1.2.0/man/zip_source_rollback_write.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_seek.man delete mode 100644 libzip-1.2.0/man/zip_source_seek.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_seek_compute_offset.man delete mode 100644 libzip-1.2.0/man/zip_source_seek_compute_offset.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_seek_write.man delete mode 100644 libzip-1.2.0/man/zip_source_seek_write.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_stat.man delete mode 100644 libzip-1.2.0/man/zip_source_stat.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_tell.man delete mode 100644 libzip-1.2.0/man/zip_source_tell.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_tell_write.man delete mode 100644 libzip-1.2.0/man/zip_source_tell_write.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_win32a.man delete mode 100644 libzip-1.2.0/man/zip_source_win32a.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_win32handle.man delete mode 100644 libzip-1.2.0/man/zip_source_win32handle.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_win32w.man delete mode 100644 libzip-1.2.0/man/zip_source_win32w.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_write.man delete mode 100644 libzip-1.2.0/man/zip_source_write.mdoc delete mode 100644 libzip-1.2.0/man/zip_source_zip.man delete mode 100644 libzip-1.2.0/man/zip_source_zip.mdoc delete mode 100644 libzip-1.2.0/man/zip_stat.man delete mode 100644 libzip-1.2.0/man/zip_stat.mdoc delete mode 100644 libzip-1.2.0/man/zip_stat_init.man delete mode 100644 libzip-1.2.0/man/zip_stat_init.mdoc delete mode 100644 libzip-1.2.0/man/zip_unchange.man delete mode 100644 libzip-1.2.0/man/zip_unchange.mdoc delete mode 100644 libzip-1.2.0/man/zip_unchange_all.man delete mode 100644 libzip-1.2.0/man/zip_unchange_all.mdoc delete mode 100644 libzip-1.2.0/man/zip_unchange_archive.man delete mode 100644 libzip-1.2.0/man/zip_unchange_archive.mdoc delete mode 100644 libzip-1.2.0/man/zipcmp.man delete mode 100644 libzip-1.2.0/man/zipcmp.mdoc delete mode 100644 libzip-1.2.0/man/zipmerge.man delete mode 100644 libzip-1.2.0/man/zipmerge.mdoc delete mode 100644 libzip-1.2.0/man/ziptool.man delete mode 100644 libzip-1.2.0/man/ziptool.mdoc delete mode 100644 libzip-1.2.0/missing delete mode 100644 libzip-1.2.0/regress/CMakeLists.txt delete mode 100644 libzip-1.2.0/regress/Makefile.am delete mode 100644 libzip-1.2.0/regress/Makefile.in delete mode 100644 libzip-1.2.0/regress/NiHTest.pm delete mode 100644 libzip-1.2.0/regress/add_dir.test delete mode 100644 libzip-1.2.0/regress/add_from_buffer.test delete mode 100644 libzip-1.2.0/regress/add_from_file.test delete mode 100644 libzip-1.2.0/regress/add_from_file_duplicate.test delete mode 100644 libzip-1.2.0/regress/add_from_file_twice_duplicate.test delete mode 100644 libzip-1.2.0/regress/add_from_filep.c delete mode 100644 libzip-1.2.0/regress/add_from_filep.test delete mode 100644 libzip-1.2.0/regress/add_from_stdin.test delete mode 100644 libzip-1.2.0/regress/add_from_zip_closed.test delete mode 100644 libzip-1.2.0/regress/add_from_zip_deflated.test delete mode 100644 libzip-1.2.0/regress/add_from_zip_deflated2.test delete mode 100644 libzip-1.2.0/regress/add_from_zip_partial_deflated.test delete mode 100644 libzip-1.2.0/regress/add_from_zip_partial_stored.test delete mode 100644 libzip-1.2.0/regress/add_from_zip_stored.test delete mode 100644 libzip-1.2.0/regress/add_stored.test delete mode 100644 libzip-1.2.0/regress/add_stored_in_memory.test delete mode 100644 libzip-1.2.0/regress/bigstored.zh delete mode 100644 libzip-1.2.0/regress/bigzero-zip.zip delete mode 100644 libzip-1.2.0/regress/bogus.zip delete mode 100644 libzip-1.2.0/regress/broken.zip delete mode 100644 libzip-1.2.0/regress/cm-default.test delete mode 100644 libzip-1.2.0/regress/cm-default.zip delete mode 100644 libzip-1.2.0/regress/count_entries.test delete mode 100644 libzip-1.2.0/regress/decrypt-correct-password-aes128.test delete mode 100644 libzip-1.2.0/regress/decrypt-correct-password-aes192.test delete mode 100644 libzip-1.2.0/regress/decrypt-correct-password-aes256.test delete mode 100644 libzip-1.2.0/regress/decrypt-correct-password-pkware.test delete mode 100644 libzip-1.2.0/regress/decrypt-no-password-aes256.test delete mode 100644 libzip-1.2.0/regress/decrypt-wrong-password-aes128.test delete mode 100644 libzip-1.2.0/regress/decrypt-wrong-password-aes192.test delete mode 100644 libzip-1.2.0/regress/decrypt-wrong-password-aes256.test delete mode 100644 libzip-1.2.0/regress/decrypt-wrong-password-pkware.test delete mode 100644 libzip-1.2.0/regress/delete_add_same.test delete mode 100644 libzip-1.2.0/regress/delete_invalid.test delete mode 100644 libzip-1.2.0/regress/delete_last.test delete mode 100644 libzip-1.2.0/regress/delete_multiple_last.test delete mode 100644 libzip-1.2.0/regress/delete_multiple_partial.test delete mode 100644 libzip-1.2.0/regress/delete_renamed_rename.test delete mode 100644 libzip-1.2.0/regress/encrypt-aes128-noentropy.zip delete mode 100644 libzip-1.2.0/regress/encrypt-aes128.zip delete mode 100644 libzip-1.2.0/regress/encrypt-aes192-noentropy.zip delete mode 100644 libzip-1.2.0/regress/encrypt-aes192.zip delete mode 100644 libzip-1.2.0/regress/encrypt-aes256-noentropy.zip delete mode 100644 libzip-1.2.0/regress/encrypt-aes256.zip delete mode 100644 libzip-1.2.0/regress/encrypt-none.zip delete mode 100644 libzip-1.2.0/regress/encrypt.test delete mode 100644 libzip-1.2.0/regress/encrypt.zip delete mode 100644 libzip-1.2.0/regress/encrypt_plus_extra.zip delete mode 100644 libzip-1.2.0/regress/encrypt_plus_extra_modified_c.zip delete mode 100644 libzip-1.2.0/regress/encrypt_plus_extra_modified_l.zip delete mode 100644 libzip-1.2.0/regress/encryption-remove.test delete mode 100644 libzip-1.2.0/regress/extra_add.test delete mode 100644 libzip-1.2.0/regress/extra_add_multiple.test delete mode 100644 libzip-1.2.0/regress/extra_count.test delete mode 100644 libzip-1.2.0/regress/extra_count_by_id.test delete mode 100644 libzip-1.2.0/regress/extra_count_ignore_zip64.test delete mode 100644 libzip-1.2.0/regress/extra_delete.test delete mode 100644 libzip-1.2.0/regress/extra_delete_by_id.test delete mode 100644 libzip-1.2.0/regress/extra_field_align.test delete mode 100644 libzip-1.2.0/regress/extra_field_align_1-0.zip delete mode 100644 libzip-1.2.0/regress/extra_field_align_1-ef_00.zip delete mode 100644 libzip-1.2.0/regress/extra_field_align_1-ef_ff.zip delete mode 100644 libzip-1.2.0/regress/extra_field_align_1-ff.zip delete mode 100644 libzip-1.2.0/regress/extra_field_align_2-0.zip delete mode 100644 libzip-1.2.0/regress/extra_field_align_2-ef_00.zip delete mode 100644 libzip-1.2.0/regress/extra_field_align_2-ef_ff.zip delete mode 100644 libzip-1.2.0/regress/extra_field_align_2-ff.zip delete mode 100644 libzip-1.2.0/regress/extra_field_align_3-0.zip delete mode 100644 libzip-1.2.0/regress/extra_field_align_3-ef_00.zip delete mode 100644 libzip-1.2.0/regress/extra_field_align_3-ef_ff.zip delete mode 100644 libzip-1.2.0/regress/extra_field_align_3-ff.zip delete mode 100644 libzip-1.2.0/regress/extra_field_align_4-ff.zip delete mode 100644 libzip-1.2.0/regress/extra_get.test delete mode 100644 libzip-1.2.0/regress/extra_get_by_id.test delete mode 100644 libzip-1.2.0/regress/extra_set.test delete mode 100644 libzip-1.2.0/regress/extra_set_modify_c.test delete mode 100644 libzip-1.2.0/regress/extra_set_modify_l.test delete mode 100644 libzip-1.2.0/regress/file_comment_encmismatch.test delete mode 100644 libzip-1.2.0/regress/filename_duplicate.zip delete mode 100644 libzip-1.2.0/regress/filename_duplicate_empty.zip delete mode 100644 libzip-1.2.0/regress/filename_empty.zip delete mode 100644 libzip-1.2.0/regress/fileorder.zip delete mode 100644 libzip-1.2.0/regress/firstsecond-split-deflated.zip delete mode 100644 libzip-1.2.0/regress/firstsecond-split-stored.zip delete mode 100644 libzip-1.2.0/regress/firstsecond.zip delete mode 100644 libzip-1.2.0/regress/foo-stored.zip delete mode 100644 libzip-1.2.0/regress/fopen_unchanged.c delete mode 100644 libzip-1.2.0/regress/fopen_unchanged.test delete mode 100644 libzip-1.2.0/regress/fread.c delete mode 100644 libzip-1.2.0/regress/fread.test delete mode 100644 libzip-1.2.0/regress/fseek.c delete mode 100644 libzip-1.2.0/regress/fseek_deflated.test delete mode 100644 libzip-1.2.0/regress/fseek_fail.test delete mode 100644 libzip-1.2.0/regress/fseek_ok.test delete mode 100644 libzip-1.2.0/regress/get_comment.test delete mode 100644 libzip-1.2.0/regress/incons-archive-comment-longer.zip delete mode 100644 libzip-1.2.0/regress/incons-archive-comment-shorter.zip delete mode 100644 libzip-1.2.0/regress/incons-cdoffset.zip delete mode 100644 libzip-1.2.0/regress/incons-central-compression-method.zip delete mode 100644 libzip-1.2.0/regress/incons-central-compsize-larger-toolarge.zip delete mode 100644 libzip-1.2.0/regress/incons-central-compsize-larger.zip delete mode 100644 libzip-1.2.0/regress/incons-central-compsize-smaller.zip delete mode 100644 libzip-1.2.0/regress/incons-central-crc.zip delete mode 100644 libzip-1.2.0/regress/incons-central-date.zip delete mode 100644 libzip-1.2.0/regress/incons-central-file-comment-longer.zip delete mode 100644 libzip-1.2.0/regress/incons-central-file-comment-shorter.zip delete mode 100644 libzip-1.2.0/regress/incons-central-magic-bad.zip delete mode 100644 libzip-1.2.0/regress/incons-central-magic-bad2.zip delete mode 100644 libzip-1.2.0/regress/incons-central-size-larger.zip delete mode 100644 libzip-1.2.0/regress/incons-data.zip delete mode 100644 libzip-1.2.0/regress/incons-ef-central-size-wrong.zip delete mode 100644 libzip-1.2.0/regress/incons-ef-local-id-size.zip delete mode 100644 libzip-1.2.0/regress/incons-ef-local-id.zip delete mode 100644 libzip-1.2.0/regress/incons-ef-local-size.zip delete mode 100644 libzip-1.2.0/regress/incons-eocd-magic-bad.zip delete mode 100644 libzip-1.2.0/regress/incons-file-count-high.zip delete mode 100644 libzip-1.2.0/regress/incons-file-count-low.zip delete mode 100644 libzip-1.2.0/regress/incons-file-count-overflow.zip delete mode 100644 libzip-1.2.0/regress/incons-local-compression-method.zip delete mode 100644 libzip-1.2.0/regress/incons-local-compsize-larger.zip delete mode 100644 libzip-1.2.0/regress/incons-local-compsize-smaller.zip delete mode 100644 libzip-1.2.0/regress/incons-local-crc.zip delete mode 100644 libzip-1.2.0/regress/incons-local-filename-long.zip delete mode 100644 libzip-1.2.0/regress/incons-local-filename-missing.zip delete mode 100644 libzip-1.2.0/regress/incons-local-filename-short.zip delete mode 100644 libzip-1.2.0/regress/incons-local-filename.zip delete mode 100644 libzip-1.2.0/regress/incons-local-magic-bad.zip delete mode 100644 libzip-1.2.0/regress/incons-local-size-larger.zip delete mode 100644 libzip-1.2.0/regress/junk-at-end.zip delete mode 100644 libzip-1.2.0/regress/junk-at-start.zip delete mode 100644 libzip-1.2.0/regress/junk_at_end.test delete mode 100644 libzip-1.2.0/regress/junk_at_start.test delete mode 100644 libzip-1.2.0/regress/large-uncompressable delete mode 100644 libzip-1.2.0/regress/malloc.c delete mode 100644 libzip-1.2.0/regress/manyfiles-zip.zip delete mode 100644 libzip-1.2.0/regress/multidisk.zip delete mode 100644 libzip-1.2.0/regress/name_locate.test delete mode 100644 libzip-1.2.0/regress/nonrandomopen.c delete mode 100644 libzip-1.2.0/regress/open_cons_extrabytes.test delete mode 100644 libzip-1.2.0/regress/open_empty.test delete mode 100644 libzip-1.2.0/regress/open_empty_2.test delete mode 100644 libzip-1.2.0/regress/open_extrabytes.test delete mode 100644 libzip-1.2.0/regress/open_file_count.test delete mode 100644 libzip-1.2.0/regress/open_filename_duplicate.test delete mode 100644 libzip-1.2.0/regress/open_filename_duplicate_consistency.test delete mode 100644 libzip-1.2.0/regress/open_filename_duplicate_empty.test delete mode 100644 libzip-1.2.0/regress/open_filename_duplicate_empty_consistency.test delete mode 100644 libzip-1.2.0/regress/open_filename_empty.test delete mode 100644 libzip-1.2.0/regress/open_incons.test delete mode 100644 libzip-1.2.0/regress/open_many_fail.test delete mode 100644 libzip-1.2.0/regress/open_many_ok.test delete mode 100644 libzip-1.2.0/regress/open_multidisk.test delete mode 100644 libzip-1.2.0/regress/open_new_but_exists.test delete mode 100644 libzip-1.2.0/regress/open_new_ok.test delete mode 100644 libzip-1.2.0/regress/open_nonarchive.test delete mode 100644 libzip-1.2.0/regress/open_nosuchfile.test delete mode 100644 libzip-1.2.0/regress/open_ok.test delete mode 100644 libzip-1.2.0/regress/open_too_short.test delete mode 100644 libzip-1.2.0/regress/open_truncate.test delete mode 100644 libzip-1.2.0/regress/open_zip64_3mf.test delete mode 100644 libzip-1.2.0/regress/open_zip64_ok.test delete mode 100644 libzip-1.2.0/regress/progress.test delete mode 100644 libzip-1.2.0/regress/rename_ascii.test delete mode 100644 libzip-1.2.0/regress/rename_cp437.test delete mode 100644 libzip-1.2.0/regress/rename_deleted.test delete mode 100644 libzip-1.2.0/regress/rename_fail.test delete mode 100644 libzip-1.2.0/regress/rename_ok.test delete mode 100644 libzip-1.2.0/regress/rename_ok.zip delete mode 100644 libzip-1.2.0/regress/rename_utf8.test delete mode 100644 libzip-1.2.0/regress/rename_utf8_encmismatch.test delete mode 100644 libzip-1.2.0/regress/runtest.in delete mode 100644 libzip-1.2.0/regress/set_comment_all.test delete mode 100644 libzip-1.2.0/regress/set_comment_localonly.test delete mode 100644 libzip-1.2.0/regress/set_comment_removeglobal.test delete mode 100644 libzip-1.2.0/regress/set_comment_revert.test delete mode 100644 libzip-1.2.0/regress/set_compression_deflate_to_deflate.test delete mode 100644 libzip-1.2.0/regress/set_compression_deflate_to_store.test delete mode 100644 libzip-1.2.0/regress/set_compression_store_to_deflate.test delete mode 100644 libzip-1.2.0/regress/set_compression_store_to_store.test delete mode 100644 libzip-1.2.0/regress/set_compression_unknown.test delete mode 100644 libzip-1.2.0/regress/stat_index_cp437_guess.test delete mode 100644 libzip-1.2.0/regress/stat_index_cp437_raw.test delete mode 100644 libzip-1.2.0/regress/stat_index_cp437_strict.test delete mode 100644 libzip-1.2.0/regress/stat_index_fileorder.test delete mode 100644 libzip-1.2.0/regress/stat_index_streamed.test delete mode 100644 libzip-1.2.0/regress/stat_index_streamed_zip64.test delete mode 100644 libzip-1.2.0/regress/stat_index_utf8_guess.test delete mode 100644 libzip-1.2.0/regress/stat_index_utf8_raw.test delete mode 100644 libzip-1.2.0/regress/stat_index_utf8_strict.test delete mode 100644 libzip-1.2.0/regress/stat_index_utf8_unmarked_strict.test delete mode 100644 libzip-1.2.0/regress/stat_index_zip64.test delete mode 100644 libzip-1.2.0/regress/streamed-zip64.zip delete mode 100644 libzip-1.2.0/regress/streamed.zip delete mode 100644 libzip-1.2.0/regress/test-cp437-comment-utf-8.zip delete mode 100644 libzip-1.2.0/regress/test-cp437-fc-utf-8-filename.zip delete mode 100644 libzip-1.2.0/regress/test-cp437-fc.zip delete mode 100644 libzip-1.2.0/regress/test-cp437.zip delete mode 100644 libzip-1.2.0/regress/test-utf8-unmarked.zip delete mode 100644 libzip-1.2.0/regress/test-utf8.zip delete mode 100644 libzip-1.2.0/regress/test.zip delete mode 100644 libzip-1.2.0/regress/test2.zip delete mode 100644 libzip-1.2.0/regress/testbuffer.zip delete mode 100644 libzip-1.2.0/regress/testchanged.zip delete mode 100644 libzip-1.2.0/regress/testchangedlocal.zip delete mode 100644 libzip-1.2.0/regress/testcomment.zip delete mode 100644 libzip-1.2.0/regress/testcomment13.zip delete mode 100644 libzip-1.2.0/regress/testcommentremoved.zip delete mode 100644 libzip-1.2.0/regress/testdeflated.zip delete mode 100644 libzip-1.2.0/regress/testdeflated2.zip delete mode 100644 libzip-1.2.0/regress/testdir.zip delete mode 100644 libzip-1.2.0/regress/testempty.zip delete mode 100644 libzip-1.2.0/regress/testextrabytes.zip delete mode 100644 libzip-1.2.0/regress/testfile-UTF8.zip delete mode 100644 libzip-1.2.0/regress/testfile-cp437.zip delete mode 100644 libzip-1.2.0/regress/testfile-plus-extra.zip delete mode 100644 libzip-1.2.0/regress/testfile.txt delete mode 100644 libzip-1.2.0/regress/testfile.zip delete mode 100644 libzip-1.2.0/regress/testfile2014.zip delete mode 100644 libzip-1.2.0/regress/teststdin.zip delete mode 100644 libzip-1.2.0/regress/teststored.zip delete mode 100644 libzip-1.2.0/regress/tryopen.c delete mode 100644 libzip-1.2.0/regress/utf-8-standardization-input.zip delete mode 100644 libzip-1.2.0/regress/utf-8-standardization-output.zip delete mode 100644 libzip-1.2.0/regress/utf-8-standardization.test delete mode 100644 libzip-1.2.0/regress/zip-in-archive-comment.test delete mode 100644 libzip-1.2.0/regress/zip-in-archive-comment.zip delete mode 100644 libzip-1.2.0/regress/zip64-3mf.zip delete mode 100644 libzip-1.2.0/regress/zip64.zip delete mode 100644 libzip-1.2.0/regress/zip64_creation.test delete mode 100644 libzip-1.2.0/regress/zip64_stored_creation.test delete mode 100644 libzip-1.2.0/src/CMakeLists.txt delete mode 100644 libzip-1.2.0/src/Makefile.am delete mode 100644 libzip-1.2.0/src/Makefile.in delete mode 100644 libzip-1.2.0/src/getopt.c delete mode 100644 libzip-1.2.0/src/getopt.h delete mode 100644 libzip-1.2.0/src/hole.c delete mode 100644 libzip-1.2.0/src/source_hole.c delete mode 100644 libzip-1.2.0/src/zipcmp.c delete mode 100644 libzip-1.2.0/src/zipmerge.c delete mode 100644 libzip-1.2.0/src/ziptool_lib.c delete mode 100644 libzip-1.2.0/src/ziptool_lib.h delete mode 100644 libzip-1.2.0/src/ziptool_main.c delete mode 100644 libzip-1.2.0/test-driver delete mode 100644 libzip-1.2.0/xcode/Info.plist delete mode 100644 libzip-1.2.0/xcode/config.h delete mode 100644 libzip-1.2.0/xcode/extract-version.sh delete mode 100644 libzip-1.2.0/xcode/libzip.xcodeproj/project.pbxproj delete mode 100644 libzip-1.2.0/xcode/libzip.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 libzip-1.2.0/xcode/zipconf.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 80ef503dc..9778cd7de 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -203,8 +203,6 @@ add_subdirectory(VCellZipUtils) add_subdirectory(libzippp) -add_subdirectory(libzip-1.2.0) - add_subdirectory(ExpressionParser) add_subdirectory(sundials) diff --git a/Dockerfile b/Dockerfile index 556fd6f03..fabea247f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,8 @@ -FROM ubuntu:22.04 as build +FROM ubuntu:22.04 RUN apt-get -y update && apt-get install -y apt-utils && \ apt-get install -y -qq -o=Dpkg::Use-Pty=0 build-essential gfortran zlib1g-dev \ - libhdf5-dev libzip-dev ninja-build libcurl4-openssl-dev libboost-all-dev cmake wget python3 + libhdf5-dev libzip-dev ninja-build libcurl4-openssl-dev libboost-all-dev bzip2 cmake wget python3 COPY . /vcellroot @@ -19,4 +19,4 @@ RUN cmake \ .. && \ ninja -#RUN ctest +RUN ctest -VV diff --git a/libzip-1.2.0/API-CHANGES b/libzip-1.2.0/API-CHANGES deleted file mode 100644 index a83b183f9..000000000 --- a/libzip-1.2.0/API-CHANGES +++ /dev/null @@ -1,159 +0,0 @@ -* libzip API changes - -This file describes changes in the libzip API and how to adapt your -code for them. - -You can define ZIP_DISABLE_DEPRECATED before including to hide -prototypes for deprecated functions, to find out about functions that -might be removed at some point. - -* 1.0 - -** new type zip_error_t - -Error information is stored in the newly public type zip_error_t. Use -this to access information about an error, instead of the deprecated -functions that operated on two ints. - -deprecated functions: zip_error_get_sys_type(), zip_error_get(), -zip_error_to_str(), zip_file_error_get() - -See their man pages for instructions on how to replace them. - -The most common affected use is zip_open. The new recommended usage -is: - -int err; -if ((za = zip_open(archive, flags, &err)) == NULL) { - zip_error_t error; - zip_error_init_with_code(&error, err); - fprintf(stderr, "can't open zip archive '%s': %s\n", archive, zip_error_strerror(&error)); - zip_error_fini(&error); -} - -** more typedefs - -The following typedefs have been added for better readability: - -typedef struct zip zip_t; -typedef struct zip_file zip_file_t; -typedef struct zip_source zip_source_t; -typedef struct zip_stat zip_stat_t; - -This means you can use "zip_t" instead of "struct zip", etc. - - -** torrentzip support removed - -torrentzip depends on a particular zlib version which is by now quite -old. - -* 0.11 - -** new type zip_flags_t - -The functions which have flags now use the zip_flags_t type for this. -All old flags fit; you need code only to adapt if you were saving flags in a -local variable. Use zip_flags_t for such a variable. -This affects: -zip_fopen() -zip_fopen_encrypted() -zip_fopen_index() -zip_fopen_index_encrypted() -zip_get_archive_comment() -zip_get_archive_flag() -zip_get_num_entries() -zip_get_name() -zip_name_locate() -zip_set_archive_flag() -zip_source_zip() -zip_stat() -zip_stat_index() - -*** ZIP_FL_*, ZIP_AFL_*, ZIP_STAT_* are now unsigned constants - -To match the new zip_flags_t type. - -*** zip_add(), zip_add_dir() - -These functions were replaced with zip_file_add() and zip_dir_add(), respectively, -to add a flags argument. - -*** zip_rename(), zip_replace() - -These functions were replaced with zip_file_rename() and zip_file_replace(), -respectively, to add a flags argument. - -*** zip_get_file_comment() - -This function was replaced with zip_file_get_comment(); one argument was promoted from -int to zip_uint32_t, the other is now a zip_flags_t. - -*** zip_set_file_comment() - -This function was replaced with zip_file_set_comment(); an argument was promoted from -int to zip_uint16_t, and a zip_flags_t argument was added. - -** integer type size changes - -Some argument and return values were not the right size or sign. - -*** zip_name_locate() - -The return value was int, which can be too small. The function now returns zip_int64_t. - - -*** zip_get_num_entries() - -The return type is now signed, to allow signaling errors. - -*** zip_set_archive_comment() - -The last argument changed from int to zip_uint16_t. - -** extra field handling rewritten - -The zip_get_file_extra() and zip_set_file_extra() functions were removed. -They only worked on the whole extra field set. - -Instead, you can now set, get, count, and delete each extra field separately, -using the functions: -zip_file_extra_field_delete() -zip_file_extra_field_delete_by_id() -zip_file_extra_field_get() -zip_file_extra_field_get_by_id() -zip_file_extra_fields_count() -zip_file_extra_fields_count_by_id() -zip_file_extra_field_set() -Please read the corresponding man pages for details. - -** new functions - -*** zip_discard() - -The new zip_discard() function closes an archive without committing the -scheduled changes. - -*** zip_set_file_compression() - -The new zip_set_file_compression() function allows setting compression -levels for files. - -** argument changes - -*** file names - -File names arguments are now allowed to be NULL to have an empty file name. -This mostly affects zip_file_add(), zip_dir_add(), and zip_file_rename(). - -For zip_get_name(), zip_file_get_comment(), and zip_get_archive_comment(), if -the file name or comment is empty, a string of length 0 is returned. -NULL is returned for errors only. - -Previously, NULL was returned for empty/unset file names and comments and -errors, leaving no way to differentiate between the two. - -/* Local Variables: */ -/* mode: org */ -/* End: */ - diff --git a/libzip-1.2.0/AUTHORS b/libzip-1.2.0/AUTHORS deleted file mode 100644 index a33707b01..000000000 --- a/libzip-1.2.0/AUTHORS +++ /dev/null @@ -1,2 +0,0 @@ -Dieter Baron -Thomas Klausner diff --git a/libzip-1.2.0/CMakeLists.txt b/libzip-1.2.0/CMakeLists.txt deleted file mode 100644 index 4bb40500a..000000000 --- a/libzip-1.2.0/CMakeLists.txt +++ /dev/null @@ -1,124 +0,0 @@ -# TODO: -# 1. pkgconfig file not yet built. -# 2. installation not tested. -# 3. Problems generating html pages. -# 4. create usable libtool .la file - -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) - -PROJECT(libzip C) - -INCLUDE(CheckFunctionExists) -INCLUDE(CheckIncludeFiles) -INCLUDE(CheckSymbolExists) -INCLUDE(CheckTypeSize) -INCLUDE(CheckCSourceRuns) -INCLUDE(CheckCSourceCompiles) -INCLUDE(CheckStructHasMember) -INCLUDE(TestBigEndian) - -SET(PACKAGE "libzip") -SET(PACKAGE_NAME ${PACKAGE}) -SET(PACKAGE_VERSION_MAJOR "1") -SET(PACKAGE_VERSION_MINOR "2") -SET(PACKAGE_VERSION_PATCH "0") -#SET(VERSION "${PACKAGE_VERSION_MAJOR}.${PACKAGE_VERSION_MINOR}") -SET(VERSION "${PACKAGE_VERSION_MAJOR}.${PACKAGE_VERSION_MINOR}.${PACKAGE_VERSION_PATCH}") -SET(PACKAGE_VERSION ${VERSION}) -SET(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") - -# Checks - -CHECK_FUNCTION_EXISTS(_close HAVE__CLOSE) -CHECK_FUNCTION_EXISTS(_dup HAVE__DUP) -CHECK_FUNCTION_EXISTS(_fdopen HAVE__FDOPEN) -CHECK_FUNCTION_EXISTS(_fileno HAVE__FILENO) -CHECK_FUNCTION_EXISTS(_open HAVE__OPEN) -CHECK_FUNCTION_EXISTS(_setmode HAVE__SETMODE) -CHECK_FUNCTION_EXISTS(_snprintf HAVE__SNPRINTF) -CHECK_FUNCTION_EXISTS(_strdup HAVE__STRDUP) -CHECK_FUNCTION_EXISTS(_stricmp HAVE__STRICMP) -CHECK_FUNCTION_EXISTS(_strtoi64 HAVE__STRTOI64) -CHECK_FUNCTION_EXISTS(_strtoui64 HAVE__STRTOUI64) -CHECK_FUNCTION_EXISTS(explict_bzero HAVE_EXPLICIT_BZERO) -CHECK_FUNCTION_EXISTS(explicit_memset HAVE_EXPLICIT_MEMSET) -CHECK_FUNCTION_EXISTS(fileno HAVE_FILENO) -CHECK_FUNCTION_EXISTS(fseeko HAVE_FSEEKO) -CHECK_FUNCTION_EXISTS(ftello HAVE_FTELLO) -CHECK_FUNCTION_EXISTS(getprogname HAVE_GETPROGNAME) -CHECK_FUNCTION_EXISTS(open HAVE_OPEN) -CHECK_FUNCTION_EXISTS(mkstemp HAVE_MKSTEMP) -CHECK_FUNCTION_EXISTS(setmode HAVE_SETMODE) -CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF) -CHECK_FUNCTION_EXISTS(strcasecmp HAVE_STRCASECMP) -CHECK_FUNCTION_EXISTS(strdup HAVE_STRDUP) -CHECK_FUNCTION_EXISTS(stricmp HAVE_STRICMP) -CHECK_FUNCTION_EXISTS(strtoll HAVE_STRTOLL) -CHECK_FUNCTION_EXISTS(strtoull HAVE_STRTOULL) - -CHECK_INCLUDE_FILES(fts.h HAVE_FTS_H) -CHECK_INCLUDE_FILES(stdbool.h HAVE_STDBOOL_H) -CHECK_INCLUDE_FILES(strings.h HAVE_STRINGS_H) -CHECK_INCLUDE_FILES(unistd.h HAVE_UNISTD_H) - -CHECK_INCLUDE_FILES(inttypes.h HAVE_INTTYPES_H_LIBZIP) -CHECK_INCLUDE_FILES(stdint.h HAVE_STDINT_H_LIBZIP) -CHECK_INCLUDE_FILES(sys/types.h HAVE_SYS_TYPES_H_LIBZIP) - -# TODO: fix test -# this test does not find __progname even when it exists -#CHECK_SYMBOL_EXISTS(__progname stdlib.h HAVE___PROGNAME) - -CHECK_TYPE_SIZE(__int8 __INT8_LIBZIP) -CHECK_TYPE_SIZE(int8_t INT8_T_LIBZIP) -CHECK_TYPE_SIZE(uint8_t UINT8_T_LIBZIP) -CHECK_TYPE_SIZE(__int16 __INT16_LIBZIP) -CHECK_TYPE_SIZE(int16_t INT16_T_LIBZIP) -CHECK_TYPE_SIZE(uint16_t UINT16_T_LIBZIP) -CHECK_TYPE_SIZE(__int32 __INT32_LIBZIP) -CHECK_TYPE_SIZE(int32_t INT32_T_LIBZIP) -CHECK_TYPE_SIZE(uint32_t UINT32_T_LIBZIP) -CHECK_TYPE_SIZE(__int64 __INT64_LIBZIP) -CHECK_TYPE_SIZE(int64_t INT64_T_LIBZIP) -CHECK_TYPE_SIZE(uint64_t UINT64_T_LIBZIP) -CHECK_TYPE_SIZE("short" SHORT_LIBZIP) -CHECK_TYPE_SIZE("int" INT_LIBZIP) -CHECK_TYPE_SIZE("long" LONG_LIBZIP) -CHECK_TYPE_SIZE("long long" LONG_LONG_LIBZIP) -CHECK_TYPE_SIZE("off_t" SIZEOF_OFF_T) -CHECK_TYPE_SIZE("size_t" SIZE_T_LIBZIP) -CHECK_TYPE_SIZE("ssize_t" SSIZE_T_LIBZIP) - -TEST_BIG_ENDIAN(WORDS_BIGENDIAN) - -FIND_PACKAGE(ZLIB REQUIRED) -INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) -set(CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIR}) -IF(ZLIB_VERSION_STRING VERSION_LESS "1.1.2") - MESSAGE(FATAL_ERROR "-- ZLIB version too old, please install at least v1.1.2") -ENDIF(ZLIB_VERSION_STRING VERSION_LESS "1.1.2") - -IF(MSVC) -ADD_DEFINITIONS("-D_CRT_SECURE_NO_WARNINGS") -ENDIF(MSVC) - -ADD_DEFINITIONS("-DHAVE_CONFIG_H") - -# Targets -ADD_SUBDIRECTORY(lib) - -target_include_directories(zipstatic PUBLIC ${CMAKE_CURRENT_BINARY_DIR}) - -ADD_SUBDIRECTORY(src) - -# TODO: pkgconfig file - -# write out config file -CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/cmake-config.h.in - ${CMAKE_CURRENT_BINARY_DIR}/config.h) -CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/cmake-zipconf.h.in - ${CMAKE_CURRENT_BINARY_DIR}/zipconf.h) - -# installation - -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zipconf.h DESTINATION lib/libzip/include) diff --git a/libzip-1.2.0/INSTALL b/libzip-1.2.0/INSTALL deleted file mode 100644 index 54caf7c19..000000000 --- a/libzip-1.2.0/INSTALL +++ /dev/null @@ -1,229 +0,0 @@ -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software -Foundation, Inc. - - This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. - -Basic Installation -================== - - These are generic installation instructions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). - - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. (Caching is -disabled by default to prevent problems with accidental use of stale -cache files.) - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you -may remove or edit it. - - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. Run `./configure --help' -for details on some of the pertinent environment variables. - - You can give `configure' initial values for configuration parameters -by setting variables in the command line or in the environment. Here -is an example: - - ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix - - *Note Defining Variables::, for more details. - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not support the `VPATH' -variable, you have to compile the package for one architecture at a -time in the source code directory. After you have installed the -package for one architecture, use `make distclean' before reconfiguring -for another architecture. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - - There may be some features `configure' cannot figure out -automatically, but needs to determine by the type of machine the package -will run on. Usually, assuming the package is built to be run on the -_same_ architectures, `configure' can figure that out, but if it prints -a message saying it cannot guess the machine type, give it the -`--build=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name which has the form: - - CPU-COMPANY-SYSTEM - -where SYSTEM can have one of these forms: - - OS KERNEL-OS - - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the machine type. - - If you are _building_ compiler tools for cross-compiling, you should -use the `--target=TYPE' option to select the type of system they will -produce code for. - - If you want to _use_ a cross compiler, that generates code for a -platform different from the build platform, you should specify the -"host" platform (i.e., that on which the generated programs will -eventually be run) with `--host=TYPE'. - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Defining Variables -================== - - Variables not defined in a site shell script can be set in the -environment passed to `configure'. However, some packages may run -configure again during the build, and the customized values of these -variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: - - ./configure CC=/usr/local2/bin/gcc - -will cause the specified gcc to be used as the C compiler (unless it is -overridden in the site shell script). - -`configure' Invocation -====================== - - `configure' recognizes the following options to control how it -operates. - -`--help' -`-h' - Print a summary of the options to `configure', and exit. - -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`--cache-file=FILE' - Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to - disable caching. - -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. - diff --git a/libzip-1.2.0/LICENSE b/libzip-1.2.0/LICENSE deleted file mode 100644 index 1c2e86bf2..000000000 --- a/libzip-1.2.0/LICENSE +++ /dev/null @@ -1,66 +0,0 @@ -Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - -The authors can be contacted at - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - -For AES encryption support, files under the following license are used: - ---------------------------------------------------------------------------- -Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK. -All rights reserved. - -LICENSE TERMS - -The free distribution and use of this software in both source and binary -form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - -ALTERNATIVELY, provided that this notice is retained in full, this product -may be distributed under the terms of the GNU General Public License (GPL), -in which case the provisions of the GPL apply INSTEAD OF those given above. - -DISCLAIMER - -This software is provided 'as is' with no explicit or implied warranties -in respect of its properties, including, but not limited to, correctness -and/or fitness for purpose. ---------------------------------------------------------------------------- -Issue Date: 18th November 2008 diff --git a/libzip-1.2.0/Makefile.am b/libzip-1.2.0/Makefile.am deleted file mode 100644 index 3caa26fbf..000000000 --- a/libzip-1.2.0/Makefile.am +++ /dev/null @@ -1,33 +0,0 @@ -# not GPL, thus no COPYING -AUTOMAKE_OPTIONS=dist-xz foreign - -ACLOCAL_AMFLAGS= -I m4 - -SUBDIRS=lib man src regress examples - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = libzip.pc - -EXTRA_DIST= API-CHANGES \ - CMakeLists.txt \ - LICENSE \ - NEWS.md \ - README.md \ - TODO.md \ - cmake-config.h.in \ - cmake-zipconf.h.in \ - libzip-uninstalled.pc.in \ - libzip.pc.in \ - m4 - -dist-hook: - mkdir $(distdir)/xcode - mkdir $(distdir)/xcode/libzip.xcodeproj - mkdir $(distdir)/xcode/libzip.xcodeproj/project.xcworkspace - cp -p $(srcdir)/xcode/Info.plist \ - $(srcdir)/xcode/config.h \ - $(srcdir)/xcode/extract-version.sh \ - $(srcdir)/xcode/zipconf.h $(distdir)/xcode - cp -p $(srcdir)/xcode/libzip.xcodeproj/project.pbxproj $(distdir)/xcode/libzip.xcodeproj - cp -p $(srcdir)/xcode/libzip.xcodeproj/project.xcworkspace/contents.xcworkspacedata \ - $(distdir)/xcode/libzip.xcodeproj/project.xcworkspace diff --git a/libzip-1.2.0/Makefile.in b/libzip-1.2.0/Makefile.in deleted file mode 100644 index a7ca461d7..000000000 --- a/libzip-1.2.0/Makefile.in +++ /dev/null @@ -1,905 +0,0 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2014 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 = . -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(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/visibility.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ - $(am__configure_deps) $(am__DIST_COMMON) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno config.status.lineno -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = libzip.pc libzip-uninstalled.pc -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 -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)$(pkgconfigdir)" -DATA = $(pkgconfig_DATA) -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 -DIST_SUBDIRS = $(SUBDIRS) -am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ - $(srcdir)/libzip-uninstalled.pc.in $(srcdir)/libzip.pc.in \ - AUTHORS INSTALL THANKS compile config.guess config.sub depcomp \ - install-sh ltmain.sh missing -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - if test -d "$(distdir)"; then \ - find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -rf "$(distdir)" \ - || { sleep 5 && rm -rf "$(distdir)"; }; \ - else :; fi -am__post_remove_distdir = $(am__remove_distdir) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.xz -GZIP_ENV = --best -DIST_TARGETS = dist-xz 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@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DLSYM_LIB = @DLSYM_LIB@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -HAVE_VISIBILITY = @HAVE_VISIBILITY@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MANFMT = @MANFMT@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -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@ -PKG_CONFIG_RPATH = @PKG_CONFIG_RPATH@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -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@ - -# not GPL, thus no COPYING -AUTOMAKE_OPTIONS = dist-xz foreign -ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = lib man src regress examples -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = libzip.pc -EXTRA_DIST = API-CHANGES \ - CMakeLists.txt \ - LICENSE \ - NEWS.md \ - README.md \ - TODO.md \ - cmake-config.h.in \ - cmake-zipconf.h.in \ - libzip-uninstalled.pc.in \ - libzip.pc.in \ - m4 - -all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -.SUFFIXES: -am--refresh: Makefile - @: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ - $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: $(am__configure_deps) - $(am__cd) $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -$(am__aclocal_m4_deps): - -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: $(am__configure_deps) - ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) - rm -f stamp-h1 - touch $@ - -distclean-hdr: - -rm -f config.h stamp-h1 -libzip.pc: $(top_builddir)/config.status $(srcdir)/libzip.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -libzip-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/libzip-uninstalled.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool config.lt -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) - -# 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 - $(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) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__post_remove_distdir) - -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 - $(am__post_remove_distdir) - -dist-lzip: distdir - tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz - $(am__post_remove_distdir) -dist-xz: distdir - tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz - $(am__post_remove_distdir) - -dist-tarZ: distdir - @echo WARNING: "Support for 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) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__post_remove_distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__post_remove_distdir) - -dist dist-all: - $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' - $(am__post_remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lz*) \ - lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ - *.tar.xz*) \ - xz -dc $(distdir).tar.xz | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir) - chmod u+w $(distdir) - mkdir $(distdir)/_build $(distdir)/_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 $(DATA) config.h -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(pkgconfigdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-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-pkgconfigDATA - -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: uninstall-pkgconfigDATA - -.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-hook 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-pkgconfigDATA 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 \ - uninstall-pkgconfigDATA - -.PRECIOUS: Makefile - - -dist-hook: - mkdir $(distdir)/xcode - mkdir $(distdir)/xcode/libzip.xcodeproj - mkdir $(distdir)/xcode/libzip.xcodeproj/project.xcworkspace - cp -p $(srcdir)/xcode/Info.plist \ - $(srcdir)/xcode/config.h \ - $(srcdir)/xcode/extract-version.sh \ - $(srcdir)/xcode/zipconf.h $(distdir)/xcode - cp -p $(srcdir)/xcode/libzip.xcodeproj/project.pbxproj $(distdir)/xcode/libzip.xcodeproj - cp -p $(srcdir)/xcode/libzip.xcodeproj/project.xcworkspace/contents.xcworkspacedata \ - $(distdir)/xcode/libzip.xcodeproj/project.xcworkspace - -# 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/libzip-1.2.0/NEWS.md b/libzip-1.2.0/NEWS.md deleted file mode 100644 index 97bf2dea9..000000000 --- a/libzip-1.2.0/NEWS.md +++ /dev/null @@ -1,170 +0,0 @@ -1.2.0 [2017-02-19] -================== - -* Support for AES encryption (Winzip version), both encryption - and decryption. -* Support legacy zip files with >64k entries. -* Fix seeking in zip_source_file if start > 0. -* Add zip_fseek() for seeking in uncompressed data. -* Add zip_ftell() for telling position in uncompressed data. -* Add zip_register_progress_callback() for UI updates during zip_close() - -1.1.3 [2016-05-28] -================== - -* Fix build on Windows when using autoconf. - -1.1.2 [2016-02-19] -================== - -* Improve support for 3MF files - -1.1.1 [2016-02-07] -================== - -* Build fixes for Linux -* Fix some warnings reported by PVS-Studio - -1.1 [2016-01-26] -================ - -* ziptool(1): command line tool to modify zip archives -* Speedups for archives with many entries -* Coverity fixes -* Better APK support -* Support for running tests on Windows -* More build fixes for Windows -* Portability fixes -* Documentation improvements - -1.0.1 [2015-05-04] -================== - -* Build fixes for Windows. - -1.0 [2015-05-03] -================ - -* Implemented an I/O abstraction layer. -* Added support for native Windows API for files. -* Added support for setting the last modification time for a file. -* Added a new type zip_error_t for errors. -* Added more typedefs for structs. -* Torrentzip support was removed. -* CVE-2015-2331 was fixed. -* Addressed all Coverity CIDs. - -0.11.2 [2013-12-19] -=================== - -* Support querying/setting operating system and external attributes. -* For newly added files, set operating system to UNIX, permissions - to 0666 (0777 for directories). -* Fix bug when writing zip archives containing files bigger than 4GB. - -0.11.1 [2013-04-27] -=================== - -* Fix bugs in zip_set_file_compression(). -* Include Xcode build infrastructure. - -0.11 [2013-03-23] -================= - -* Added Zip64 support (large file support) -* Added UTF-8 support for file names, file comments, and archive comments -* Changed API for name and comment related functions for UTF-8 support -* Added zip_discard() -* Added ZIP_TRUNCATE for zip_open() -* Added zip_set_file_compression() -* Added API for accessing and modifying extra fields -* Improved API type consistency -* Use gcc4's visibility __attribute__ -* More changes for Windows support -* Additional test cases - -0.10.1 [2012-03-20] -=================== - -* Fixed CVE-2012-1162 -* Fixed CVE-2012-1163 - -0.10 [2010-03-18] -================= - -* Added zip_get_num_entries(), deprecated zip_get_num_files(). -* Better windows support. -* Support for traditional PKWARE encryption added. -* Fix opening archives with more than 65535 entries. -* Fix some memory leaks. -* Fix cmake build and installation -* Fix memory leak in error case in zip_open() -* Fixed CVE-2011-0421 (no security implications though) -* More documentation. - -0.9.3 [2010-02-01] -================== - -* Include m4/ directory in distribution; some packagers need it. - -0.9.2 [2010-01-31] -================== - -* Avoid passing uninitialized data to deflate(). -* Fix memory leak when closing zip archives. - -0.9.1 [2010-01-24] -================== - -* Fix infinite loop on reading some broken files. -* Optimization in time conversion (don't call localtime()). -* Clear data descriptor flag in central directory, fixing Open Office files. -* Allow more than 64k entries. - -0.9 [2008-07-25] -================== - -* on Windows, explictly set dllimport/dllexport -* remove erroneous references to GPL -* add support for torrentzip -* new functions: zip_get_archive_flag, zip_set_archive_flag -* zip_source_zip: add flag to force recompression -* zip_sorce_file: only keep file open while reading from it - -0.8 [2007-06-06] -================== - -* fix for zip archives larger than 2GiB -* fix zip_error_strerror to include libzip error string -* add support for reading streamed zip files -* new functions: zip_add_dir, zip_error_clear, zip_file_error_clear -* add basic support for building with CMake (incomplete) - -0.7.1 [2006-05-18] -================== - -* bugfix for zip_close - -0.7 [2006-05-06] -================ - -* struct zip_stat increased for future encryption support -* zip_add return value changed (now returns new index of added file) -* shared library major bump because of previous two -* added functions for reading and writing file and archive comments. - New functions: zip_get_archive_comment, zip_get_file_comment, - zip_set_archive_comment, zip_set_file_comment, zip_unchange_archive - -0.6.1 [2005-07-14] -================== - -* various bug fixes - -0.6 [2005-06-09] -================ - -* first standalone release -* changed license to three-clause BSD -* overhauled API -* added man pages -* install zipcmp and zipmerge diff --git a/libzip-1.2.0/README.md b/libzip-1.2.0/README.md deleted file mode 100644 index e5bb5d81b..000000000 --- a/libzip-1.2.0/README.md +++ /dev/null @@ -1,41 +0,0 @@ -This is libzip, a C library for reading, creating, and modifying zip -archives. Files can be added from data buffers, files, or compressed -data copied directly from other zip archives. Changes made without -closing the archive can be reverted. Decryption and encryption of -Winzip AES and decryption of legacy PKware encrypted files is -supported. The API is documented by man pages. - -For more information, take a look at the included man pages. You can -start with [libzip(3)](http://nih.at/libzip/libzip.html), which lists -all others. Example source code is in the `src/` subdirectory. - -If you have developed an application using libzip, you can find out -about API changes and how to adapt your code for them in the included -file `API-CHANGES`. - -For generic installation instructions, see file `INSTALL`, which -describes the approach using autoconf; alternatively, you can -use cmake to build. - -Additionally, you'll need zlib (at least version 1.1.2). It comes -with most operating systems nowadays, or you can get it at -> http://www.zlib.net/ - -When using a static Windows library, you need to define `ZIP_STATIC` -when compiling packages using libzip. - -If you make a binary distribution, please include a pointer to the -distribution site: -> http://www.nih.at/libzip/ - -The latest version can always be found there. - -There is a mailing list for developers using libzip. You can -subscribe to it by sending a mail with the subject "subscribe -libzip-discuss" to minimalist at nih.at. List mail should be sent -to libzip-discuss at nih.at. Use this for bug reports or questions. - -If you want to reach the authors in private, use . - -![Travis Build Status](https://api.travis-ci.org/nih-at/libzip.svg?branch=master) -![Coverity Status](https://scan.coverity.com/projects/127/badge.svg?flat=1) diff --git a/libzip-1.2.0/THANKS b/libzip-1.2.0/THANKS deleted file mode 100644 index be0cca939..000000000 --- a/libzip-1.2.0/THANKS +++ /dev/null @@ -1,62 +0,0 @@ -Thanks to Info-ZIP for info on the DOS-time/date conversion code, -and some other general information gathered from their sources. - -Thanks to these people for suggestions, testing, and bug reports: - -Alexander Galanin -Alexandr Shadchin -Andrew Brampton -Andrew Molyneux -Ankur Kothari -BALATON Zoltan -Benjamin Gilbert -Boaz Stolk -Bogdan -Chris Nehren -Coverity -Dane Springmeyer -David Demelier -Del Merritt -Dmytro Rybachenko -François Simon -Frederik Ramm -Hanno Böck -Heiko Hund -Info-ZIP group -Jan Weiß -Jay Freeman (saurik) -Joel Ebrahimi -Jono Spiro -Keith Jones -Kohei Yoshida -Leith Bade -Lubomir I. Ivanov -Martin Buchholz -Martin Szulecki -Michael Beck -Michal Vyskocil -Mikhail Gusarov . -Oliver Kaiser -Oliver Kuckertz -Pascal Terjan -Patrick Spendrin -Paul Harris -Paul Sheppard -Pierre Joye -Pierre-Louis Cabelguen -Remi Collet -Rick Carback -Robert Norris -Roberto Tirabassi -Roland Ortloff -Sergei Ozerov -Simon Talbot -Stephen Bryant -Tarmo Pikaro -Timo Warns -Tom Callaway -Tomas Hoger -Torsten Paul -Vassili Courzakis -Wojciech Michalski -Wolfgang Glunz diff --git a/libzip-1.2.0/TODO.md b/libzip-1.2.0/TODO.md deleted file mode 100644 index 5cdb79c91..000000000 --- a/libzip-1.2.0/TODO.md +++ /dev/null @@ -1,156 +0,0 @@ -# API Plans - -## Prefixes - -For example for adding extractors for self-extracting zip archives. -````c -zip_set_archive_prefix(struct zip *za, const zip_uint8_t *data, zip_uint64_t length); -const zip_uint8_t *zip_get_archive_prefix(struct zip *za, zip_uint64_t *lengthp); -```` - -# API Issues - -* `zip_get_archive_comment` has `int *lenp` argument. Cleaner would be `zip_uint32_t *`. - rename and fix. which other functions for naming consistency? -* rename remaining `zip_XXX_{file,archive}_*` to `zip_{file,archive}_XXX_*`? -* compression/crypt implementations: how to set error code on failure -* compression/crypt error messages a la `ZIP_ER_ZLIB` (no detailed info passing) -* check arguments for every entry point into libzip - -# Features - -* Winzip AES support - * test cases decryption: <=20, >20, stat for both - * test cases encryption: no password, default password, file-specific password, 128/192/256, <=20, >20 - * support testing on Linux - * support testing on macOS -* xz support -* consistently use `_zip_crypto_clear()` for passwords -* implement compression flags for `zip_set_file_compression()` -* support setting extra fields from zip_source - * introduce layers of extra fields: - * original - * from zip_source - * manually set - * when querying extra fields, search all of them in reverse order - * add whiteout (deleted) flag - * allow invalid data flag, used when computing extra field size before writing data - * new command `ZIP_SOURCE_EXTRA_FIELDS` - * no support for multiple copies of same extra field -* delete all extra fields during `zip_replace()` -* function to copy file from one archive to another -* set `O_CLOEXEC` flag after fopen and mkstemp -* add append-only mode writing file to disk incrementally to keep memory usage low -* `zip_file_set_mtime()`: support InfoZIP time stamps - -* support streaming output (creating new archive to e.g. stdout) -* add functions to: - * read/set ASCII file flag? (more general options?) -* `zip_commit()` (to finish changes without closing archive) -* add custom compression function support -* `zip_fseek()` -* `zip_source_zip()`: allow rewinding -* zipcmp: add option for file content comparison -* zipcmp: compare bit flags if paranoid -* zipcmp: compare external attributes/opsys if paranoid -* zipcmp: compare last_mod if paranoid (or with separate flag?) -* consistency - . for stored files, test compressed = uncompressed - . data descriptor - . local headers come before central dir - -* support for old compression methods????? - -# Bugs - -* support InfoZIP encryption header extension (copy data descriptor for encrypted files) -* ensure that nentries is small enough not to cause overflow (size_t for entry, uint64 for CD on disk) -* fix OpenSUSE i686 regression failures -* check for limits imposed by format (central dir size, file size, extra fields, ...) -* `_zip_u2d_time()`: handle `localtime(3)` failure -* POSIX: `zip_open()`: check whether file can be created and fail if not -* fix inconsistent usage of valid flags (not checked in many places) -* `cdr == NULL` -> `ER_NOENT` vs. `idx > cdir->nentry` -> `ER_INVAL` inconsistent (still there?) - - -# Cleanup - -* use bool -* use `ZIP_SOURCE_SUPPORTS_{READABLE,SEEKABLE,WRITABLE}` -* use `zip_source_seek_compute_offset()` -* get rid of `zip_get_{compression,encryption}_implementation()` -* use `zip_*int*_t` internally - -# Analysis - -* pass through coverity - -# Infrastructure - -* create CMakefile.txt man page linking from links file - -# Test Case Issues - -* unchange on added file -* test seek in `zip_source_crc()` -* test cases for `set_extra*`, `delete_extra*`, `*extra_field*` -* test cases for in memory archives - * add - * delete - * delete all - * modify -* use gcov output to increase test coverage -* merge most tools into ziptool -* add test case to change values for newly added files (name, compression method, comment, mtime, . . .) -* `zip_open()` file less than `EOCDLEN` bytes long -* test calls against old API -* run regression tests also from CMake framework -* rename file to dir/ and vice versa (fails) -* fix comment test to be newline insensitive -* check if http://bugs.python.org/issue20078 provides ideas for new tests - -* (add, replace) - * add to empty zip - * add to existing zip - * add w/ existing file name [E] - * replace ok - * replace w/ illegal index [E] - * replace w/ deleted name [E] - * unchange added/replaced file -* (close) - * copy zip file - * open copy - * rename, delete, replace, add w/ new name, add w/ deleted name - * close - * zipcmp copy expected - * remove copy -* (error_get) -* (error_get_sys_type) -* (error_to_str) -* (extra_fields) -* (file_error_get) -* (file_strerror) -* (replace) -* (source_buffer) -* (source_file) -* (source_filep) -* (source_free) -* (source_function) -* (source_zip) -* (strerror) -* (unchange) -* (unchange_all) -* open(ZIP_RDONLY) -* I/O abstraction layer - * zip_open_from_source -* read two zip entries interleaved - -# Unsorted - -* `zip_source_file()`: don't allow write if start/len specify a part of the file -* script to check if all exported symbols are marked with `ZIP_EXTERN`, add to make distcheck - -* document: `zip_source_write()`: length can't be > `ZIP_INT64_MAX` -* document: `ZIP_SOURCE_CLOSE` implementation can't return error -* keep error codes in man pages in sync -* document error codes in new man pages diff --git a/libzip-1.2.0/aclocal.m4 b/libzip-1.2.0/aclocal.m4 deleted file mode 100644 index cc09712f0..000000000 --- a/libzip-1.2.0/aclocal.m4 +++ /dev/null @@ -1,1158 +0,0 @@ -# generated automatically by aclocal 1.15 -*- Autoconf -*- - -# Copyright (C) 1996-2014 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-2014 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -# (This private macro should not be called outside this file.) -AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.15' -dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to -dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.15], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl -]) - -# _AM_AUTOCONF_VERSION(VERSION) -# ----------------------------- -# aclocal traces this macro to find the Autoconf version. -# This is a private macro too. Using m4_define simplifies -# the logic in aclocal, which can simply ignore this definition. -m4_define([_AM_AUTOCONF_VERSION], []) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.15])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-2014 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-2014 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-2014 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-2014 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[{ - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each '.P' file that we will -# need in order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) - -# Do all the work for Automake. -*- Autoconf -*- - -# Copyright (C) 1996-2014 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. -m4_define([AC_PROG_CC], -m4_defn([AC_PROG_CC]) -[_AM_PROG_CC_C_O -]) - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.65])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[AC_DIAGNOSE([obsolete], - [$0: two- and three-arguments forms are deprecated.]) -m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl -dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if( - m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), - [ok:ok],, - [m4_fatal([AC_INIT should be called with package and version arguments])])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) - AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) -AM_MISSING_PROG([AUTOCONF], [autoconf]) -AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) -AM_MISSING_PROG([AUTOHEADER], [autoheader]) -AM_MISSING_PROG([MAKEINFO], [makeinfo]) -AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -# We need awk for the "check" target (and possibly the TAP driver). The -# system "awk" is bad on some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES([CC])], - [m4_define([AC_PROG_CC], - m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES([CXX])], - [m4_define([AC_PROG_CXX], - m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES([OBJC])], - [m4_define([AC_PROG_OBJC], - m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], - [_AM_DEPENDENCIES([OBJCXX])], - [m4_define([AC_PROG_OBJCXX], - m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl -]) -AC_REQUIRE([AM_SILENT_RULES])dnl -dnl The testsuite driver may need to know about EXEEXT, so add the -dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This -dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. -AC_CONFIG_COMMANDS_PRE(dnl -[m4_provide_if([_AM_COMPILER_EXEEXT], - [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl - -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) - fi -fi -dnl The trailing newline in this macro's definition is deliberate, for -dnl backward compatibility and to allow trailing 'dnl'-style comments -dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. -]) - -dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not -dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further -dnl mangled by Autoconf and run in a shell conditional statement. -m4_define([_AC_COMPILER_EXEEXT], -m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_arg=$1 -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) - -# Copyright (C) 2001-2014 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-2014 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001-2014 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) - -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - -# Copyright (C) 1997-2014 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it is modern enough. -# If it is, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([missing])dnl -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - AC_MSG_WARN(['missing' script is too old or missing]) -fi -]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright (C) 2001-2014 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-2014 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-2014 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-2014 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-2014 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-2014 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-2014 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-2014 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of 'v7', 'ustar', or 'pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -# -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AC_SUBST([AMTAR], ['$${TAR-tar}']) - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' - -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - - [m4_case([$1], - [ustar], - [# The POSIX 1988 'ustar' format is defined with fixed-size fields. - # There is notably a 21 bits limit for the UID and the GID. In fact, - # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 - # and bug#13588). - am_max_uid=2097151 # 2^21 - 1 - am_max_gid=$am_max_uid - # The $UID and $GID variables are not portable, so we need to resort - # to the POSIX-mandated id(1) utility. Errors in the 'id' calls - # below are definitely unexpected, so allow the users to see them - # (that is, avoid stderr redirection). - am_uid=`id -u || echo unknown` - am_gid=`id -g || echo unknown` - AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) - if test $am_uid -le $am_max_uid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi - AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) - if test $am_gid -le $am_max_gid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi], - - [pax], - [], - - [m4_fatal([Unknown tar format])]) - - AC_MSG_CHECKING([how to create a $1 tar archive]) - - # Go ahead even if we have the value already cached. We do so because we - # need to set the values for the 'am__tar' and 'am__untar' variables. - _am_tools=${am_cv_prog_tar_$1-$_am_tools} - - for _am_tool in $_am_tools; do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works. - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi - done - rm -rf conftest.dir - - AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) - AC_MSG_RESULT([$am_cv_prog_tar_$1])]) - -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - -m4_include([m4/libtool.m4]) -m4_include([m4/ltoptions.m4]) -m4_include([m4/ltsugar.m4]) -m4_include([m4/ltversion.m4]) -m4_include([m4/lt~obsolete.m4]) -m4_include([m4/visibility.m4]) diff --git a/libzip-1.2.0/cmake-config.h.in b/libzip-1.2.0/cmake-config.h.in deleted file mode 100644 index 2260362f2..000000000 --- a/libzip-1.2.0/cmake-config.h.in +++ /dev/null @@ -1,73 +0,0 @@ -#ifndef HAD_CONFIG_H -#define HAD_CONFIG_H -#ifndef _HAD_ZIPCONF_H -#include "zipconf.h" -#endif -/* BEGIN DEFINES */ -#cmakedefine HAVE___PROGNAME -#cmakedefine HAVE__CLOSE -#cmakedefine HAVE__DUP -#cmakedefine HAVE__FDOPEN -#cmakedefine HAVE__FILENO -#cmakedefine HAVE__OPEN -#cmakedefine HAVE__SETMODE -#cmakedefine HAVE__SNPRINTF -#cmakedefine HAVE__STRDUP -#cmakedefine HAVE__STRICMP -#cmakedefine HAVE__STRTOI64 -#cmakedefine HAVE__STRTOUI64 -#cmakedefine HAVE_FILENO -#cmakedefine HAVE_FSEEKO -#cmakedefine HAVE_FTELLO -#cmakedefine HAVE_GETPROGNAME -#cmakedefine HAVE_OPEN -#cmakedefine HAVE_MKSTEMP -#cmakedefine HAVE_SETMODE -#cmakedefine HAVE_SNPRINTF -#cmakedefine HAVE_SSIZE_T_LIBZIP -#cmakedefine HAVE_STRCASECMP -#cmakedefine HAVE_STRDUP -#cmakedefine HAVE_STRICMP -#cmakedefine HAVE_STRTOLL -#cmakedefine HAVE_STRTOULL -#cmakedefine HAVE_STRUCT_TM_TM_ZONE -#cmakedefine HAVE_STDBOOL_H -#cmakedefine HAVE_STRINGS_H -#cmakedefine HAVE_UNISTD_H -#cmakedefine __INT8_LIBZIP ${__INT8_LIBZIP} -#cmakedefine INT8_T_LIBZIP ${INT8_T_LIBZIP} -#cmakedefine UINT8_T_LIBZIP ${UINT8_T_LIBZIP} -#cmakedefine __INT16_LIBZIP ${__INT16_LIBZIP} -#cmakedefine INT16_T_LIBZIP ${INT16_T_LIBZIP} -#cmakedefine UINT16_T_LIBZIP ${UINT16_T_LIBZIP} -#cmakedefine __INT32_LIBZIP ${__INT32_LIBZIP} -#cmakedefine INT32_T_LIBZIP ${INT32_T_LIBZIP} -#cmakedefine UINT32_T_LIBZIP ${UINT32_T_LIBZIP} -#cmakedefine __INT64_LIBZIP ${__INT64_LIBZIP} -#cmakedefine INT64_T_LIBZIP ${INT64_T_LIBZIP} -#cmakedefine UINT64_T_LIBZIP ${UINT64_T_LIBZIP} -#cmakedefine SIZEOF_OFF_T ${SIZEOF_OFF_T} -#cmakedefine SIZE_T_LIBZIP ${SIZE_T_LIBZIP} -#cmakedefine SSIZE_T_LIBZIP ${SSIZE_T_LIBZIP} -#cmakedefine HAVE_DIRENT_H -#cmakedefine HAVE_NDIR_H -#cmakedefine HAVE_SYS_DIR_H -#cmakedefine HAVE_SYS_NDIR_H -#cmakedefine WORDS_BIGENDIAN -/* END DEFINES */ -#define PACKAGE "@PACKAGE@" -#define VERSION "@VERSION@" - -#ifndef HAVE_SSIZE_T_LIBZIP -# if SIZE_T_LIBZIP == INT_LIBZIP -typedef int ssize_t; -# elif SIZE_T_LIBZIP == LONG_LIBZIP -typedef long ssize_t; -# elif SIZE_T_LIBZIP == LONG_LONG_LIBZIP -typedef long long ssize_t; -# else -#error no suitable type for ssize_t found -# endif -#endif - -#endif /* HAD_CONFIG_H */ diff --git a/libzip-1.2.0/cmake-zipconf.h.in b/libzip-1.2.0/cmake-zipconf.h.in deleted file mode 100644 index 17edc6c8f..000000000 --- a/libzip-1.2.0/cmake-zipconf.h.in +++ /dev/null @@ -1,121 +0,0 @@ -#ifndef _HAD_ZIPCONF_H -#define _HAD_ZIPCONF_H - -/* - zipconf.h -- platform specific include file - - This file was generated automatically by CMake - based on ../cmake-zipconf.h.in. - */ - -#cmakedefine HAVE_INTTYPES_H_LIBZIP -#cmakedefine HAVE_STDINT_H_LIBZIP -#cmakedefine HAVE_SYS_TYPES_H_LIBZIP -#cmakedefine HAVE___INT8_LIBZIP -#cmakedefine HAVE_INT8_T_LIBZIP -#cmakedefine HAVE_UINT8_T_LIBZIP -#cmakedefine HAVE___INT16_LIBZIP -#cmakedefine HAVE_INT16_T_LIBZIP -#cmakedefine HAVE_UINT16_T_LIBZIP -#cmakedefine HAVE___INT32_LIBZIP -#cmakedefine HAVE_INT32_T_LIBZIP -#cmakedefine HAVE_UINT32_T_LIBZIP -#cmakedefine HAVE___INT64_LIBZIP -#cmakedefine HAVE_INT64_T_LIBZIP -#cmakedefine HAVE_UINT64_T_LIBZIP -#cmakedefine HAVE_SSIZE_T_LIBZIP -#cmakedefine SHORT_LIBZIP ${SHORT_LIBZIP} -#cmakedefine INT_LIBZIP ${INT_LIBZIP} -#cmakedefine LONG_LIBZIP ${LONG_LIBZIP} -#cmakedefine LONG_LONG_LIBZIP ${LONG_LONG_LIBZIP} - -#if defined(HAVE_STDINT_H_LIBZIP) -#include -#elif defined(HAVE_INTTYPES_H_LIBZIP) -#include -#elif defined(HAVE_SYS_TYPES_H_LIBZIP) -#include -#endif - -#if defined(HAVE_INT8_T_LIBZIP) -typedef int8_t zip_int8_t; -#elif defined(HAVE___INT8_LIBZIP) -typedef __int8 zip_int8_t; -#else -typedef signed char zip_int8_t; -#endif -#if defined(HAVE_UINT8_T_LIBZIP) -typedef uint8_t zip_uint8_t; -#elif defined(HAVE___INT8_LIBZIP) -typedef unsigned __int8 zip_uint8_t; -#else -typedef unsigned char zip_uint8_t; -#endif -#if defined(HAVE_INT16_T_LIBZIP) -typedef int16_t zip_int16_t; -#elif defined(HAVE___INT16_LIBZIP) -typedef __int16 zip_int16_t; -#elif defined(SHORT_LIBZIP) && SHORT_LIBZIP == 2 -typedef signed short zip_int16_t; -#endif -#if defined(HAVE_UINT16_T_LIBZIP) -typedef uint16_t zip_uint16_t; -#elif defined(HAVE___INT16_LIBZIP) -typedef unsigned __int16 zip_uint16_t; -#elif defined(SHORT_LIBZIP) && SHORT_LIBZIP == 2 -typedef unsigned short zip_uint16_t; -#endif -#if defined(HAVE_INT32_T_LIBZIP) -typedef int32_t zip_int32_t; -#elif defined(HAVE___INT32_LIBZIP) -typedef __int32 zip_int32_t; -#elif defined(INT_LIBZIP) && INT_LIBZIP == 4 -typedef signed int zip_int32_t; -#elif defined(LONG_LIBZIP) && LONG_LIBZIP == 4 -typedef signed long zip_int32_t; -#endif -#if defined(HAVE_UINT32_T_LIBZIP) -typedef uint32_t zip_uint32_t; -#elif defined(HAVE___INT32_LIBZIP) -typedef unsigned __int32 zip_uint32_t; -#elif defined(INT_LIBZIP) && INT_LIBZIP == 4 -typedef unsigned int zip_uint32_t; -#elif defined(LONG_LIBZIP) && LONG_LIBZIP == 4 -typedef unsigned long zip_uint32_t; -#endif -#if defined(HAVE_INT64_T_LIBZIP) -typedef int64_t zip_int64_t; -#elif defined(HAVE___INT64_LIBZIP) -typedef __int64 zip_int64_t; -#elif defined(LONG_LIBZIP) && LONG_LIBZIP == 8 -typedef signed long zip_int64_t; -#elif defined(LONG_LONG_LIBZIP) && LONG_LONG_LIBZIP == 8 -typedef signed long long zip_int64_t; -#endif -#if defined(HAVE_UINT64_T_LIBZIP) -typedef uint64_t zip_uint64_t; -#elif defined(HAVE___INT64_LIBZIP) -typedef unsigned __int64 zip_uint64_t; -#elif defined(LONG_LIBZIP) && LONG_LONG_LIBZIP == 8 -typedef unsigned long zip_uint64_t; -#elif defined(LONG_LONG_LIBZIP) && LONG_LONG_LIBZIP == 8 -typedef unsigned long long zip_uint64_t; -#endif - -#define ZIP_INT8_MIN -0x80 -#define ZIP_INT8_MAX 0x7f -#define ZIP_UINT8_MAX 0xff - -#define ZIP_INT16_MIN -0x8000 -#define ZIP_INT16_MAX 0x7fff -#define ZIP_UINT16_MAX 0xffff - -#define ZIP_INT32_MIN -0x80000000L -#define ZIP_INT32_MAX 0x7fffffffL -#define ZIP_UINT32_MAX 0xffffffffLU - -#define ZIP_INT64_MIN (-ZIP_INT64_MAX-1LL) -#define ZIP_INT64_MAX 0x7fffffffffffffffLL -#define ZIP_UINT64_MAX 0xffffffffffffffffULL - -#endif /* zipconf.h */ diff --git a/libzip-1.2.0/compile b/libzip-1.2.0/compile deleted file mode 100644 index a85b723c7..000000000 --- a/libzip-1.2.0/compile +++ /dev/null @@ -1,347 +0,0 @@ -#! /bin/sh -# Wrapper for compilers which do not understand '-c -o'. - -scriptversion=2012-10-14.11; # UTC - -# Copyright (C) 1999-2014 Free Software Foundation, Inc. -# Written by Tom Tromey . -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - -nl=' -' - -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent tools from complaining about whitespace usage. -IFS=" "" $nl" - -file_conv= - -# func_file_conv build_file lazy -# Convert a $build file to $host form and store it in $file -# Currently only supports Windows hosts. If the determined conversion -# type is listed in (the comma separated) LAZY, no conversion will -# take place. -func_file_conv () -{ - file=$1 - case $file in - / | /[!/]*) # absolute file, and not a UNC file - if test -z "$file_conv"; then - # lazily determine how to convert abs files - case `uname -s` in - MINGW*) - file_conv=mingw - ;; - CYGWIN*) - file_conv=cygwin - ;; - *) - file_conv=wine - ;; - esac - fi - case $file_conv/,$2, in - *,$file_conv,*) - ;; - mingw/*) - file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` - ;; - cygwin/*) - file=`cygpath -m "$file" || echo "$file"` - ;; - wine/*) - file=`winepath -w "$file" || echo "$file"` - ;; - esac - ;; - esac -} - -# func_cl_dashL linkdir -# Make cl look for libraries in LINKDIR -func_cl_dashL () -{ - func_file_conv "$1" - if test -z "$lib_path"; then - lib_path=$file - else - lib_path="$lib_path;$file" - fi - linker_opts="$linker_opts -LIBPATH:$file" -} - -# func_cl_dashl library -# Do a library search-path lookup for cl -func_cl_dashl () -{ - lib=$1 - found=no - save_IFS=$IFS - IFS=';' - for dir in $lib_path $LIB - do - IFS=$save_IFS - if $shared && test -f "$dir/$lib.dll.lib"; then - found=yes - lib=$dir/$lib.dll.lib - break - fi - if test -f "$dir/$lib.lib"; then - found=yes - lib=$dir/$lib.lib - break - fi - if test -f "$dir/lib$lib.a"; then - found=yes - lib=$dir/lib$lib.a - break - fi - done - IFS=$save_IFS - - if test "$found" != yes; then - lib=$lib.lib - fi -} - -# func_cl_wrapper cl arg... -# Adjust compile command to suit cl -func_cl_wrapper () -{ - # Assume a capable shell - lib_path= - shared=: - linker_opts= - for arg - do - if test -n "$eat"; then - eat= - else - case $1 in - -o) - # configure might choose to run compile as 'compile cc -o foo foo.c'. - eat=1 - case $2 in - *.o | *.[oO][bB][jJ]) - func_file_conv "$2" - set x "$@" -Fo"$file" - shift - ;; - *) - func_file_conv "$2" - set x "$@" -Fe"$file" - shift - ;; - esac - ;; - -I) - eat=1 - func_file_conv "$2" mingw - set x "$@" -I"$file" - shift - ;; - -I*) - func_file_conv "${1#-I}" mingw - set x "$@" -I"$file" - shift - ;; - -l) - eat=1 - func_cl_dashl "$2" - set x "$@" "$lib" - shift - ;; - -l*) - func_cl_dashl "${1#-l}" - set x "$@" "$lib" - shift - ;; - -L) - eat=1 - func_cl_dashL "$2" - ;; - -L*) - func_cl_dashL "${1#-L}" - ;; - -static) - shared=false - ;; - -Wl,*) - arg=${1#-Wl,} - save_ifs="$IFS"; IFS=',' - for flag in $arg; do - IFS="$save_ifs" - linker_opts="$linker_opts $flag" - done - IFS="$save_ifs" - ;; - -Xlinker) - eat=1 - linker_opts="$linker_opts $2" - ;; - -*) - set x "$@" "$1" - shift - ;; - *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) - func_file_conv "$1" - set x "$@" -Tp"$file" - shift - ;; - *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) - func_file_conv "$1" mingw - set x "$@" "$file" - shift - ;; - *) - set x "$@" "$1" - shift - ;; - esac - fi - shift - done - if test -n "$linker_opts"; then - linker_opts="-link$linker_opts" - fi - exec "$@" $linker_opts - exit 1 -} - -eat= - -case $1 in - '') - echo "$0: No command. Try '$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: compile [--help] [--version] PROGRAM [ARGS] - -Wrapper for compilers which do not understand '-c -o'. -Remove '-o dest.o' from ARGS, run PROGRAM with the remaining -arguments, and rename the output as expected. - -If you are trying to build a whole package this is not the -right script to run: please start by reading the file 'INSTALL'. - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "compile $scriptversion" - exit $? - ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) - func_cl_wrapper "$@" # Doesn't return... - ;; -esac - -ofile= -cfile= - -for arg -do - if test -n "$eat"; then - eat= - else - case $1 in - -o) - # configure might choose to run compile as 'compile cc -o foo foo.c'. - # So we strip '-o arg' only if arg is an object. - eat=1 - case $2 in - *.o | *.obj) - ofile=$2 - ;; - *) - set x "$@" -o "$2" - shift - ;; - esac - ;; - *.c) - cfile=$1 - set x "$@" "$1" - shift - ;; - *) - set x "$@" "$1" - shift - ;; - esac - fi - shift -done - -if test -z "$ofile" || test -z "$cfile"; then - # If no '-o' option was seen then we might have been invoked from a - # pattern rule where we don't need one. That is ok -- this is a - # normal compilation that the losing compiler can handle. If no - # '.c' file was seen then we are probably linking. That is also - # ok. - exec "$@" -fi - -# Name of file we expect compiler to create. -cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` - -# Create the lock directory. -# Note: use '[/\\:.-]' here to ensure that we don't use the same name -# that we are using for the .o file. Also, base the name on the expected -# object file name, since that is what matters with a parallel build. -lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d -while true; do - if mkdir "$lockdir" >/dev/null 2>&1; then - break - fi - sleep 1 -done -# FIXME: race condition here if user kills between mkdir and trap. -trap "rmdir '$lockdir'; exit 1" 1 2 15 - -# Run the compile. -"$@" -ret=$? - -if test -f "$cofile"; then - test "$cofile" = "$ofile" || mv "$cofile" "$ofile" -elif test -f "${cofile}bj"; then - test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" -fi - -rmdir "$lockdir" -exit $ret - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/libzip-1.2.0/config.guess b/libzip-1.2.0/config.guess deleted file mode 100644 index f7eb141e7..000000000 --- a/libzip-1.2.0/config.guess +++ /dev/null @@ -1,1438 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright 1992-2015 Free Software Foundation, Inc. - -timestamp='2015-03-04' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see . -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). -# -# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. -# -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD -# -# Please send patches to . - - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright 1992-2015 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -case "${UNAME_SYSTEM}" in -Linux|GNU|GNU/*) - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - LIBC=gnu - - eval $set_cc_for_build - cat <<-EOF > $dummy.c - #include - #if defined(__UCLIBC__) - LIBC=uclibc - #elif defined(__dietlibc__) - LIBC=dietlibc - #else - LIBC=gnu - #endif - EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` - ;; -esac - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - /sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || \ - echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - earmv*) - arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` - endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` - machine=${arch}${endian}-unknown - ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ELF__ - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # Determine ABI tags. - case "${UNAME_MACHINE_ARCH}" in - earm*) - expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}${abi}" - exit ;; - *:Bitrig:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; - "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; - "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; - "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; - "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; - "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; - "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; - "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; - "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; - "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - exitcode=$? - trap '' 0 - exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; - arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" - # If there is a compiler, see if it is configured for 64-bit objects. - # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. - # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - SUN_ARCH="x86_64" - fi - fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/lslpp ] ; then - IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | - awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - eval $set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep -q __LP64__ - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) - UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; - *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 - exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - *:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - *:Interix*:*) - case ${UNAME_MACHINE} in - x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; - IA64) - echo ia64-unknown-interix${UNAME_RELEASE} - exit ;; - esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - aarch64_be:Linux:*:*) - UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - arm*:Linux:*:*) - eval $set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - else - if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_PCS_VFP - then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi - else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf - fi - fi - exit ;; - avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; - crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; - e2k:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } - ;; - openrisc*:Linux:*:*) - echo or1k-unknown-linux-${LIBC} - exit ;; - or32:Linux:*:* | or1k*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; - esac - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-${LIBC} - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} - exit ;; - ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-${LIBC} - exit ;; - ppcle:Linux:*:*) - echo powerpcle-unknown-linux-${LIBC} - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} - exit ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} - exit ;; - x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i586. - # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that - # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - x86_64:Haiku:*:*) - echo x86_64-unknown-haiku - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; - SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} - exit ;; - SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} - exit ;; - SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build - if test "$UNAME_PROCESSOR" = unknown ; then - UNAME_PROCESSOR=powerpc - fi - if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi - fi - elif test "$UNAME_PROCESSOR" = i386 ; then - # Avoid executing cc on OS X 10.9, as it ships with a stub - # that puts up a graphical alert prompting to install - # developer tools. Any system running Mac OS X 10.7 or - # later (Darwin 11 and later) is required to have a 64-bit - # processor. This is not true of the ARM version of Darwin - # that Apple uses in portable devices. - UNAME_PROCESSOR=x86_64 - fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NEO-?:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} - exit ;; - NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; - i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros - exit ;; - x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx - exit ;; -esac - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -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` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/libzip-1.2.0/config.h.in b/libzip-1.2.0/config.h.in deleted file mode 100644 index 40efdff3c..000000000 --- a/libzip-1.2.0/config.h.in +++ /dev/null @@ -1,262 +0,0 @@ -/* config.h.in. Generated from configure.ac by autoheader. */ - -/* Define if building universal (internal helper macro) */ -#undef AC_APPLE_UNIVERSAL_BUILD - -/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. - */ -#undef HAVE_DECL_TZNAME - -/* Define to 1 if you have the header file. */ -#undef HAVE_DLFCN_H - -/* Define to 1 if you have the `explicit_bzero' function. */ -#undef HAVE_EXPLICIT_BZERO - -/* Define to 1 if you have the `explicit_memset' function. */ -#undef HAVE_EXPLICIT_MEMSET - -/* Define to 1 if you have the `fileno' function. */ -#undef HAVE_FILENO - -/* Define to 1 if you have the `fseeko' function. */ -#undef HAVE_FSEEKO - -/* Define to 1 if you have the `ftello' function. */ -#undef HAVE_FTELLO - -/* Define to 1 if you have the header file. */ -#undef HAVE_FTS_H - -/* Define to 1 if you have the `getopt' function. */ -#undef HAVE_GETOPT - -/* Define to 1 if you have the `getprogname' function. */ -#undef HAVE_GETPROGNAME - -/* Define to 1 if the system has the type `int16_t'. */ -#undef HAVE_INT16_T - -/* Define to 1 if the system has the type `int32_t'. */ -#undef HAVE_INT32_T - -/* Define to 1 if the system has the type `int64_t'. */ -#undef HAVE_INT64_T - -/* Define to 1 if the system has the type `int8_t'. */ -#undef HAVE_INT8_T - -/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the `z' library (-lz). */ -#undef HAVE_LIBZ - -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if you have the `mkstemp' function. */ -#undef HAVE_MKSTEMP - -/* Define to 1 if you have the `open' function. */ -#undef HAVE_OPEN - -/* Define to 1 if you have the `setmode' function. */ -#undef HAVE_SETMODE - -/* Define to 1 if you have the `snprintf' function. */ -#undef HAVE_SNPRINTF - -/* Define to 1 if the system has the type `ssize_t'. */ -#undef HAVE_SSIZE_T - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDBOOL_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the `strcasecmp' function. */ -#undef HAVE_STRCASECMP - -/* Define to 1 if you have the `strdup' function. */ -#undef HAVE_STRDUP - -/* Define to 1 if you have the `stricmp' function. */ -#undef HAVE_STRICMP - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the `strtoll' function. */ -#undef HAVE_STRTOLL - -/* Define to 1 if you have the `strtoull' function. */ -#undef HAVE_STRTOULL - -/* Define to 1 if `tm_zone' is a member of `struct tm'. */ -#undef HAVE_STRUCT_TM_TM_ZONE - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use - `HAVE_STRUCT_TM_TM_ZONE' instead. */ -#undef HAVE_TM_ZONE - -/* Define to 1 if you don't have `tm_zone' but do have the external array - `tzname'. */ -#undef HAVE_TZNAME - -/* Define to 1 if the system has the type `uint16_t'. */ -#undef HAVE_UINT16_T - -/* Define to 1 if the system has the type `uint32_t'. */ -#undef HAVE_UINT32_T - -/* Define to 1 if the system has the type `uint64_t'. */ -#undef HAVE_UINT64_T - -/* Define to 1 if the system has the type `uint8_t'. */ -#undef HAVE_UINT8_T - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* Define to 1 or 0, depending whether the compiler supports simple visibility - declarations. */ -#undef HAVE_VISIBILITY - -/* Define to 1 if you have the `_close' function. */ -#undef HAVE__CLOSE - -/* Define to 1 if you have the `_dup' function. */ -#undef HAVE__DUP - -/* Define to 1 if you have the `_fdopen' function. */ -#undef HAVE__FDOPEN - -/* Define to 1 if you have the `_fileno' function. */ -#undef HAVE__FILENO - -/* Define to 1 if you have the `_open' function. */ -#undef HAVE__OPEN - -/* Define to 1 if you have the `_setmode' function. */ -#undef HAVE__SETMODE - -/* Define to 1 if you have the `_snprintf' function. */ -#undef HAVE__SNPRINTF - -/* Define to 1 if you have the `_strdup' function. */ -#undef HAVE__STRDUP - -/* Define to 1 if you have the `_stricmp' function. */ -#undef HAVE__STRICMP - -/* Define to 1 if you have the `_strtoi64' function. */ -#undef HAVE__STRTOI64 - -/* Define to 1 if you have the `_strtoui64' function. */ -#undef HAVE__STRTOUI64 - -/* Define if libc defines __progname */ -#undef HAVE___PROGNAME - -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ -#undef LT_OBJDIR - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the home page for this package. */ -#undef PACKAGE_URL - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* 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 `long long', as computed by sizeof. */ -#undef SIZEOF_LONG_LONG - -/* The size of `off_t', as computed by sizeof. */ -#undef SIZEOF_OFF_T - -/* The size of `short', as computed by sizeof. */ -#undef SIZEOF_SHORT - -/* The size of `size_t', as computed by sizeof. */ -#undef SIZEOF_SIZE_T - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Define to 1 if your declares `struct tm'. */ -#undef TM_IN_SYS_TIME - -/* 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 - - -#ifndef HAVE_SSIZE_T -# if SIZEOF_SIZE_T == SIZEOF_INT -typedef int ssize_t; -# elif SIZEOF_SIZE_T == SIZEOF_LONG -typedef long ssize_t; -# elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG -typedef long long ssize_t; -# else -#error no suitable type for ssize_t found -# endif -#endif - diff --git a/libzip-1.2.0/config.sub b/libzip-1.2.0/config.sub deleted file mode 100644 index 8f1229c6f..000000000 --- a/libzip-1.2.0/config.sub +++ /dev/null @@ -1,1810 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright 1992-2015 Free Software Foundation, Inc. - -timestamp='2015-03-08' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see . -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). - - -# Please send patches to . -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright 1992-2015 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | be32 | be64 \ - | bfin \ - | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | e2k | epiphany \ - | fido | fr30 | frv | ft32 \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | k1om \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pyramid \ - | riscv32 | riscv64 \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | visium \ - | we32k \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - leon|leon[3-9]) - basic_machine=sparc-$basic_machine - ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - ms1) - basic_machine=mt-unknown - ;; - - strongarm | thumb | xscale) - basic_machine=arm-unknown - ;; - xgate) - basic_machine=$basic_machine-unknown - os=-none - ;; - xscaleeb) - basic_machine=armeb-unknown - ;; - - xscaleel) - basic_machine=armel-unknown - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | e2k-* | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | k1om-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa32r6-* | mipsisa32r6el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64r6-* | mipsisa64r6el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | or1k*-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pyramid-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | visium-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - asmjs) - basic_machine=asmjs-unknown - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - leon-*|leon[3-9]-*) - basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze*) - basic_machine=microblaze-xilinx - ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; - mingw32) - basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - moxiebox) - basic_machine=moxie-unknown - os=-moxiebox - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - msys) - basic_machine=i686-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc | ppcbe) basic_machine=powerpc-unknown - ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos | rdos64) - basic_machine=x86_64-pc - os=-rdos - ;; - rdos32) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sde) - basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh5el) - basic_machine=sh5le-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - strongarm-* | thumb-*) - basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tile*) - basic_machine=$basic_machine-unknown - os=-linux-gnu - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - xscale-* | xscalee[bl]-*) - basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux - ;; - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* | -plan9* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* | -cloudabi* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -syllable*) - os=-syllable - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; - -nacl*) - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - score-*) - os=-elf - ;; - spu-*) - os=-elf - ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - c8051-*) - os=-elf - ;; - hexagon-*) - os=-elf - ;; - tic54x-*) - os=-coff - ;; - tic55x-*) - os=-coff - ;; - tic6x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - ;; - m68*-cisco) - os=-aout - ;; - mep-*) - os=-elf - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -cnk*|-aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -tpf*) - vendor=ibm - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/libzip-1.2.0/configure b/libzip-1.2.0/configure deleted file mode 100644 index b48250844..000000000 --- a/libzip-1.2.0/configure +++ /dev/null @@ -1,15303 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libzip 1.2.0. -# -# Report bugs to . -# -# -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -# -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || 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" - 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 libzip@nih.at -$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'" - -SHELL=${CONFIG_SHELL-/bin/sh} - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='libzip' -PACKAGE_TARNAME='libzip' -PACKAGE_VERSION='1.2.0' -PACKAGE_STRING='libzip 1.2.0' -PACKAGE_BUGREPORT='libzip@nih.at' -PACKAGE_URL='' - -ac_unique_file="lib/zip_add.c" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='am__EXEEXT_FALSE -am__EXEEXT_TRUE -LTLIBOBJS -HAVE_VISIBILITY -CFLAG_VISIBILITY -MANFMT -WIN32_HOST_FALSE -WIN32_HOST_TRUE -DLSYM_LIB -LIBOBJS -OTOOL64 -OTOOL -LIPO -NMEDIT -DSYMUTIL -MANIFEST_TOOL -RANLIB -ac_ct_AR -AR -DLLTOOL -OBJDUMP -LN_S -NM -ac_ct_DUMPBIN -DUMPBIN -LD -FGREP -SED -LIBTOOL -EGREP -GREP -CPP -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 -PKG_CONFIG_RPATH -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -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' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_silent_rules -enable_dependency_tracking -enable_largefile -with_zlib -enable_shared -enable_static -with_pic -enable_fast_install -with_gnu_ld -with_sysroot -enable_libtool_lock -' - 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 libzip 1.2.0 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --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/libzip] - --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 libzip 1.2.0:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-silent-rules less verbose build output (undo: "make V=1") - --disable-silent-rules verbose build output (undo: "make V=0") - --enable-dependency-tracking - do not reject slow dependency extractors - --disable-dependency-tracking - speeds up one-time build - --disable-largefile omit support for large files - --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) - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-zlib=PREFIX specify prefix for ZLIB library - --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use - both] - --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). - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CPP C preprocessor - -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 . -_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 -libzip configure 1.2.0 -generated by GNU Autoconf 2.69 - -Copyright (C) 2012 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_c_try_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_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_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_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_func LINENO FUNC VAR -# ---------------------------------- -# Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case declares $2. - For example, HP-UX 11i declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_func - -# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## ---------------------------- ## -## Report this to libzip@nih.at ## -## ---------------------------- ##" - ) | 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_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 -#include -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 &5 -$as_echo_n "checking for $2.$3... " >&6; } -if eval \${$4+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$5 -int -main () -{ -static $2 ac_aggr; -if (ac_aggr.$3) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$4=yes" -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$5 -int -main () -{ -static $2 ac_aggr; -if (sizeof ac_aggr.$3) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$4=yes" -else - eval "$4=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 -eval ac_res=\$$4 - { $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_member - -# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES -# --------------------------------------------- -# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR -# accordingly. -ac_fn_c_check_decl () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - as_decl_name=`echo $2|sed 's/ *(.*//'` - as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 -$as_echo_n "checking whether $as_decl_name is declared... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -#ifndef $as_decl_name -#ifdef __cplusplus - (void) $as_decl_use; -#else - (void) $as_decl_name; -#endif -#endif - - ; - return 0; -} -_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_decl -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 libzip $as_me 1.2.0, which was -generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -ac_config_headers="$ac_config_headers config.h" - - -am__api_version='1.15' - -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# 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='libzip' - VERSION='1.2.0' - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -mkdir_p='$(MKDIR_P)' - -# We need awk for the "check" target (and possibly the TAP driver). The -# system "awk" is bad on some platforms. -# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AMTAR='$${TAR-tar}' - - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar pax cpio none' - -am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' - - - - - - -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 - fi -fi - - -# 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 - - -case $host_os in - *bsd*) - PKG_CONFIG_RPATH=-Wl,-R\${libdir};; - *) - PKG_CONFIG_RPATH=;; -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 -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 -$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } -if ${am_cv_prog_cc_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 - ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -$as_echo "$am_cv_prog_cc_c_o" >&6; } -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -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 - - - -# 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 - /* 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 - /* 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 - /* 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 - /* 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 - /* 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 - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for 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 -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#ifndef _BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes; then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - extern int foo; - -int -main () -{ -return use_ascii (foo) == use_ebcdic (foo); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then - ac_cv_c_bigendian=yes - fi - if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi - fi -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ - - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_bigendian=no -else - ac_cv_c_bigendian=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h -;; #( - no) - ;; #( - universal) - -$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h - - ;; #( - *) - as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; - esac - - - -# Check whether --with-zlib was given. -if test "${with_zlib+set}" = set; then : - withval=$with_zlib; -else - with_zlib=yes -fi - - -if test "$with_zlib" != "yes" -then - if test -f "$with_zlib"/zlib.h - then - # PREFIX is to uninstalled version in distribution directory - CFLAGS="$CFLAGS -I$with_zlib" - LDFLAGS="$LDFLAGS -L$with_zlib" - else if test -f "$with_zlib"/include/zlib.h - then - # PREFIX is installation prefix - CFLAGS="$CFLAGS -I$with_zlib/include" - LDFLAGS="$LDFLAGS -L$with_zlib/lib" - fi - fi -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lz" >&5 -$as_echo_n "checking for main in -lz... " >&6; } -if ${ac_cv_lib_z_main+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lz $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -int -main () -{ -return main (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_main=yes -else - ac_cv_lib_z_main=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_z_main" >&5 -$as_echo "$ac_cv_lib_z_main" >&6; } -if test "x$ac_cv_lib_z_main" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBZ 1 -_ACEOF - - LIBS="-lz $LIBS" - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking new ZLIB version" >&5 -$as_echo_n "checking new ZLIB version... " >&6; } -if ${id_cv_lib_zlib_ok+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -extern ZEXPORT int unzOpen (const char *path); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - id_cv_lib_zlib_ok=yes -else - id_cv_lib_zlib_ok=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $id_cv_lib_zlib_ok" >&5 -$as_echo "$id_cv_lib_zlib_ok" >&6; } -if test "$id_cv_lib_zlib_ok" = "no" -then - as_fn_error $? "ZLIB version too old, please install at least v1.1.2" "$LINENO" 5 -fi - - - -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.2' -macro_revision='1.3337' - - - - - - - - - - - - - -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 fgrep" >&5 -$as_echo_n "checking for fgrep... " >&6; } -if ${ac_cv_path_FGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 - then ac_cv_path_FGREP="$GREP -F" - else - if test -z "$FGREP"; then - ac_path_FGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in fgrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_FGREP" || continue -# Check for GNU ac_path_FGREP and select it if it is found. - # Check for GNU $ac_path_FGREP -case `"$ac_path_FGREP" --version 2>&1` in -*GNU*) - ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'FGREP' >> "conftest.nl" - "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_FGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_FGREP="$ac_path_FGREP" - ac_path_FGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_FGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_FGREP"; then - as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_FGREP=$FGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 -$as_echo "$ac_cv_path_FGREP" >&6; } - FGREP="$ac_cv_path_FGREP" - - -test -z "$GREP" && GREP=grep - - - - - - - - - - - - - - - - - - - -# Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then : - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi - -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 -$as_echo_n "checking for ld used by $CC... " >&6; } - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` - while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do - ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } -fi -if ${lt_cv_path_LD+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if ${lt_cv_prog_gnu_ld+:} false; then : - $as_echo_n "(cached) " >&6 -else - # I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 &5 -$as_echo "$lt_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$lt_cv_prog_gnu_ld - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 -$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } -if ${lt_cv_path_NM+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS="$lt_save_ifs" - done - : ${lt_cv_path_NM=no} -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 -$as_echo "$lt_cv_path_NM" >&6; } -if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" -else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$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 /dev/null 2>&1 | sed '1q'` in - *COFF*) - DUMPBIN="$DUMPBIN -symbols" - ;; - *) - 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; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - 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"; 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 $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on - # massive amounts of additional arguments before passing them to the - # linker. It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac - -fi - -if test -n $lt_cv_sys_max_cmd_len ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 -$as_echo "$lt_cv_sys_max_cmd_len" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } -fi -max_cmd_len=$lt_cv_sys_max_cmd_len - - - - - - -: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 -$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 -$as_echo "$xsi_shell" >&6; } - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 -$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } -lt_shell_append=no -( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 -$as_echo "$lt_shell_append" >&6; } - - -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset -else - lt_unset=false -fi - - - - - -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - lt_SP2NL='tr \040 \012' - lt_NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - lt_SP2NL='tr \100 \n' - lt_NL2SP='tr \r\n \100\100' - ;; -esac - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking 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 "$GCC" != yes; then - reload_cmds=false - fi - ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' - else - reload_cmds='$LD$reload_flag -o $output$reload_objs' - fi - ;; -esac - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -$as_echo "$OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OBJDUMP="objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 -$as_echo "$ac_ct_OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OBJDUMP=$ac_ct_OBJDUMP - fi -else - OBJDUMP="$ac_cv_prog_OBJDUMP" -fi - -test -z "$OBJDUMP" && OBJDUMP=objdump - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 -$as_echo_n "checking how to recognize dependent libraries... " >&6; } -if ${lt_cv_deplibs_check_method+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given extended regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. - -case $host_os in -aix[4-9]*) - lt_cv_deplibs_check_method=pass_all - ;; - -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi[45]*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; - -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_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. - # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. - if ( test "$lt_cv_nm_interface" = "BSD nm" && 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 - ;; - -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -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) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; - -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -tpf*) - lt_cv_deplibs_check_method=pass_all - ;; -esac - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 -$as_echo "$lt_cv_deplibs_check_method" >&6; } - -file_magic_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 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 "$ac_status" -eq 0; 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 "$ac_status" -ne 0; 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 "x$lt_cv_ar_at_file" = xno; 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 - 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 "$host_cpu" = ia64; then - symcode='[ABCDEGRST]' - fi - ;; -irix* | nonstopux*) - symcode='[BCDEGRST]' - ;; -osf*) - symcode='[BCDEGQRST]' - ;; -solaris*) - symcode='[BDRT]' - ;; -sco3.2v5*) - symcode='[DT]' - ;; -sysv4.2uw2*) - symcode='[DT]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[ABDT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[ABCDGIRSTW]' ;; -esac - -# Transform an extracted symbol line into a proper C declaration. -# Some systems (esp. on ia64) link data and code symbols differently, -# so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# Try without a prefix underscore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function - # and D for any global variable. - # Also find C++ and __fastcall symbols from MSVC++, - # which start with @ or ?. - lt_cv_sys_global_symbol_pipe="$AWK '"\ -" {last_section=section; section=\$ 3};"\ -" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ -" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -" \$ 0!~/External *\|/{next};"\ -" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -" {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ -" ' prfx=^$ac_symprfx" - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi - 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 con'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* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext - cat <<\_LT_EOF >> conftest.$ac_ext - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt__PROGRAM__LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif -_LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_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 "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done - -fi - -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 -$as_echo "failed" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } -fi - -# 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 "$GCC" = yes; 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; } - - - - - -# Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then : - enableval=$enable_libtool_lock; -fi - -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '#line '$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 "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|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 x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -*-*solaris*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) - case $host in - i?86-*-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 "x$lt_cv_path_mainfest_tool" != xyes; 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 $_lt_result -eq 0; then - lt_cv_apple_cc_single_mod=yes - else - cat conftest.err >&5 - fi - rm -rf libconftest.dylib* - rm -f conftest.* - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 -$as_echo "$lt_cv_apple_cc_single_mod" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 -$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } -if ${lt_cv_ld_exported_symbols_list+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_ld_exported_symbols_list=yes -else - lt_cv_ld_exported_symbols_list=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 -$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } - - { $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 $_lt_result -eq 0 && $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 "$lt_cv_apple_cc_single_mod" = "yes"; then - _lt_dar_single_mod='$single_module' - fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' - else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then - _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - esac - -for ac_header in dlfcn.h -do : - ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default -" -if test "x$ac_cv_header_dlfcn_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLFCN_H 1 -_ACEOF - -fi - -done - - - - - -# Set options - - - - enable_dlopen=no - - - enable_win32_dll=no - - - # Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then : - enableval=$enable_shared; p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_shared=yes -fi - - - - - - - - - - # Check whether --enable-static was given. -if test "${enable_static+set}" = set; then : - enableval=$enable_static; p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_static=yes -fi - - - - - - - - - - -# Check whether --with-pic was given. -if test "${with_pic+set}" = set; then : - withval=$with_pic; lt_p=${PACKAGE-default} - case $withval in - yes|no) pic_mode=$withval ;; - *) - pic_mode=default - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for lt_pkg in $withval; do - IFS="$lt_save_ifs" - if test "X$lt_pkg" = "X$lt_p"; then - pic_mode=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - pic_mode=default -fi - - -test -z "$pic_mode" && pic_mode=default - - - - - - - - # Check whether --enable-fast-install was given. -if test "${enable_fast_install+set}" = set; then : - enableval=$enable_fast_install; p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_fast_install=yes -fi - - - - - - - - - - - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -test -z "$LN_S" && LN_S="ln -s" - - - - - - - - - - - - - - -if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 -$as_echo_n "checking for objdir... " >&6; } -if ${lt_cv_objdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 -$as_echo "$lt_cv_objdir" >&6; } -objdir=$lt_cv_objdir - - - - - -cat >>confdefs.h <<_ACEOF -#define LT_OBJDIR "$lt_cv_objdir/" -_ACEOF - - - - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a - -with_gnu_ld="$lt_cv_prog_gnu_ld" - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` - - -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 -$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } -if ${lt_cv_path_MAGIC_CMD+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/${ac_tool_prefix}file; then - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - - -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 -$as_echo_n "checking for file... " >&6; } -if ${lt_cv_path_MAGIC_CMD+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/file; then - lt_cv_path_MAGIC_CMD="$ac_dir/file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - else - MAGIC_CMD=: - fi -fi - - fi - ;; -esac - -# Use C for the default configuration in the libtool script - -lt_save_CC="$CC" -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -objext=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - -# Save the default compiler, since it gets overwritten when the other -# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. -compiler_DEFAULT=$CC - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$RM conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$RM -r conftest* - - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - -lt_prog_compiler_no_builtin_flag= - -if test "$GCC" = yes; then - 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" - # 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 x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then - lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" -else - : -fi - -fi - - - - - - - lt_prog_compiler_wl= -lt_prog_compiler_pic= -lt_prog_compiler_static= - - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_static='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - lt_prog_compiler_pic='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - ;; - - 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 "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - else - lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static='-non_shared' - ;; - - linux* | k*bsd*-gnu | kopensolaris*-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' - ;; - 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 which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic= - ;; - *) - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; -esac - -{ $as_echo "$as_me:${as_lineno-$LINENO}: 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" - # 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 x"$lt_cv_prog_compiler_pic_works" = xyes; then - case $lt_prog_compiler_pic in - "" | " "*) ;; - *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; - esac -else - lt_prog_compiler_pic= - lt_prog_compiler_can_build_shared=no -fi - -fi - - - - - - - - - - - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if ${lt_cv_prog_compiler_static_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_static_works=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $ECHO "$_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 x"$lt_cv_prog_compiler_static_works" = xyes; then - : -else - lt_prog_compiler_static= -fi - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if ${lt_cv_prog_compiler_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$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 "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 -$as_echo_n "checking if we can lock with hard links... " >&6; } - hard_links=yes - $RM conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 -$as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } - - runpath_var= - allow_undefined_flag= - always_export_symbols=no - archive_cmds= - archive_expsym_cmds= - compiler_needs_object=no - enable_shared_with_static_runtimes=no - export_dynamic_flag_spec= - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - hardcode_automatic=no - hardcode_direct=no - hardcode_direct_absolute=no - hardcode_libdir_flag_spec= - hardcode_libdir_separator= - hardcode_minus_L=no - hardcode_shlibpath_var=unsupported - inherit_rpath=no - link_all_deplibs=unknown - module_cmds= - module_expsym_cmds= - old_archive_from_new_cmds= - old_archive_from_expsyms_cmds= - thread_safe_flag_spec= - whole_archive_flag_spec= - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - ld_shlibs=yes - - # 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 "$with_gnu_ld" = yes; 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 "$lt_use_gnu_ld_interface" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec= - fi - supports_anon_versioning=no - case `$LD -v 2>&1` in - *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 "$host_cpu" != ia64; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.19, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to install binutils -*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. -*** You will then need to restart the configuration process. - -_LT_EOF - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs=no - fi - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - export_dynamic_flag_spec='${wl}--export-all-symbols' - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' - exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs=no - fi - ;; - - haiku*) - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - link_all_deplibs=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 "$host_os" = linux-dietlibc; then - case $cc_basename in - diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) - esac - fi - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then - tmp_addflag=' $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' ;; - 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 "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - - case $cc_basename in - xlf* | 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 "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $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 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $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 "$ld_shlibs" = no; then - runpath_var= - hardcode_libdir_flag_spec= - export_dynamic_flag_spec= - whole_archive_flag_spec= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag=unsupported - always_export_symbols=yes - archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix[4-9]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global - # defined symbols, whereas GNU nm marks them as "W". - 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) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds='' - hardcode_direct=yes - hardcode_direct_absolute=yes - hardcode_libdir_separator=':' - link_all_deplibs=yes - file_list_spec='${wl}-f,' - - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - export_dynamic_flag_spec='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. - if test "${lt_cv_aix_libpath+set}" = 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 "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag="-z nodefs" - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - if test "${lt_cv_aix_libpath+set}" = 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 "$with_gnu_ld" = yes; 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 - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - bsdi[45]*) - export_dynamic_flag_spec=-rdynamic - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - 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~linknames=' - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $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 "$lt_cv_ld_force_load" = "yes"; 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*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test "$_lt_dar_can_shared" = "yes"; 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 "$GCC" = yes; 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 $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - export_dynamic_flag_spec='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; 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 "$with_gnu_ld" = no; 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 "$GCC" = yes && test "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -shared $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 x"$lt_cv_prog_compiler__b" = xyes; 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 "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - - case $host_cpu in - hppa*64*|ia64*) - hardcode_direct=no - hardcode_shlibpath_var=no - ;; - *) - hardcode_direct=yes - hardcode_direct_absolute=yes - export_dynamic_flag_spec='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds='$CC -shared $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 "$lt_cv_irix_exported_symbol" = yes; 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 - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - newsos6) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_shlibpath_var=no - ;; - - *nto* | *qnx*) - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - hardcode_direct=yes - hardcode_shlibpath_var=no - hardcode_direct_absolute=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - else - ld_shlibs=no - fi - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && 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 "$GCC" = yes; 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 "$GCC" = yes; 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 "$GCC" = yes; then - whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' - fi - ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds='$CC -r -o $output$reload_objs' - hardcode_direct=no - ;; - motorola) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag='${wl}-z,text' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - no_undefined_flag='${wl}-z,text' - allow_undefined_flag='${wl}-z,nodefs' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-R,$libdir' - hardcode_libdir_separator=':' - link_all_deplibs=yes - export_dynamic_flag_spec='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac - - if test x$host_vendor = xsni; then - case $host in - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - export_dynamic_flag_spec='${wl}-Blargedynsym' - ;; - esac - fi - fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 -$as_echo "$ld_shlibs" >&6; } -test "$ld_shlibs" = no && can_build_shared=no - -with_gnu_ld=$with_gnu_ld - - - - - - - - - - - - - - - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 -$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } -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 "$GCC" = yes; 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` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[lt_foo]++; } - if (lt_freq[lt_foo] == 1) { print lt_foo; } -}'` - # 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 "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - case $host_cpu in - powerpc) - # Since July 2007 AmigaOS4 officially supports .so libraries. - # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - ;; - m68k) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - esac - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux # 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} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2.*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux # 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=no - hardcode_into_libs=yes - ;; - -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=yes - 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 "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555, ... - postinstall_cmds='chmod 555 $lib' - # 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 "$lt_cv_prog_gnu_ld" = yes; 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 - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-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 - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;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*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux # 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 "$with_gnu_ld" = yes; 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=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -tpf*) - # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux # 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 "$dynamic_linker" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 -$as_echo_n "checking how to hardcode library paths into programs... " >&6; } -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || - test -n "$runpath_var" || - test "X$hardcode_automatic" = "Xyes" ; then - - # We can hardcode non-existent directories. - if test "$hardcode_direct" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && - test "$hardcode_minus_L" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=unsupported -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 -$as_echo "$hardcode_action" >&6; } - -if test "$hardcode_action" = relink || - test "$inherit_rpath" = yes; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - - - - - - - if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32* | cegcc*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - -fi - - ;; - - *) - ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" -if test "x$ac_cv_func_shl_load" = xyes; then : - lt_cv_dlopen="shl_load" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 -$as_echo_n "checking for shl_load in -ldld... " >&6; } -if ${ac_cv_lib_dld_shl_load+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load (); -int -main () -{ -return shl_load (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_shl_load=yes -else - ac_cv_lib_dld_shl_load=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 -$as_echo "$ac_cv_lib_dld_shl_load" >&6; } -if test "x$ac_cv_lib_dld_shl_load" = xyes; then : - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" -else - ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 -$as_echo_n "checking for dlopen in -lsvld... " >&6; } -if ${ac_cv_lib_svld_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_svld_dlopen=yes -else - ac_cv_lib_svld_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 -$as_echo "$ac_cv_lib_svld_dlopen" >&6; } -if test "x$ac_cv_lib_svld_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 -$as_echo_n "checking for dld_link in -ldld... " >&6; } -if ${ac_cv_lib_dld_dld_link+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dld_link (); -int -main () -{ -return dld_link (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_dld_link=yes -else - ac_cv_lib_dld_dld_link=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 -$as_echo "$ac_cv_lib_dld_dld_link" >&6; } -if test "x$ac_cv_lib_dld_dld_link" = xyes; then : - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 -$as_echo_n "checking whether a program can dlopen itself... " >&6; } -if ${lt_cv_dlopen_self+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisbility=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 "x$lt_cv_dlopen_self" = xyes; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 -$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } -if ${lt_cv_dlopen_self_static+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisbility=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 which library types will actually be built - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 -$as_echo_n "checking if libtool supports shared libraries... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 -$as_echo "$can_build_shared" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 -$as_echo_n "checking whether to build shared libraries... " >&6; } - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - - aix[4-9]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 -$as_echo "$enable_shared" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 -$as_echo_n "checking whether to build static libraries... " >&6; } - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 -$as_echo "$enable_static" >&6; } - - - - -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC="$lt_save_CC" - - - - - - - - - - - - - - - - ac_config_commands="$ac_config_commands libtool" - - - - -# Only expand once: - - - -for ac_func in _close _dup _fdopen _fileno _open _setmode _snprintf _strdup _stricmp _strtoi64 _strtoui64 explicit_bzero explicit_memset fileno fseeko ftello getopt getprogname open setmode snprintf strcasecmp strdup stricmp strtoll strtoull -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 - -for ac_func in mkstemp -do : - ac_fn_c_check_func "$LINENO" "mkstemp" "ac_cv_func_mkstemp" -if test "x$ac_cv_func_mkstemp" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_MKSTEMP 1 -_ACEOF - -else - case " $LIBOBJS " in - *" mkstemp.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS mkstemp.$ac_objext" - ;; -esac - -fi -done - - -DLSYM_LIB= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlsym in -ldl" >&5 -$as_echo_n "checking for dlsym in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlsym+:} 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 dlsym (); -int -main () -{ -return dlsym (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlsym=yes -else - ac_cv_lib_dl_dlsym=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_dlsym" >&5 -$as_echo "$ac_cv_lib_dl_dlsym" >&6; } -if test "x$ac_cv_lib_dl_dlsym" = xyes; then : - DLSYM_LIB="-ldl" -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if libc defines __progname" >&5 -$as_echo_n "checking if libc defines __progname... " >&6; } -if ${ac_cv_libc_defines___progname+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - extern char *__progname; printf("%s", __progname); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_libc_defines___progname="yes" -else - ac_cv_libc_defines___progname="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: $ac_cv_libc_defines___progname" >&5 -$as_echo "$ac_cv_libc_defines___progname" >&6; } -if test "x$ac_cv_libc_defines___progname" = "xyes" ; then - -$as_echo "#define HAVE___PROGNAME 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are building for a Win32 host" >&5 -$as_echo_n "checking whether we are building for a Win32 host... " >&6; } -if ${ac_cv_win32_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef _WIN32 - choke me - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_win32_host=no -else - ac_cv_win32_host=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_win32_host" >&5 -$as_echo "$ac_cv_win32_host" >&6; } - if test "x$ac_cv_win32_host" = "xyes"; then - WIN32_HOST_TRUE= - WIN32_HOST_FALSE='#' -else - WIN32_HOST_TRUE='#' - WIN32_HOST_FALSE= -fi - - -for ac_header in fts.h stdbool.h strings.h unistd.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 - - -ac_fn_c_check_type "$LINENO" "int8_t" "ac_cv_type_int8_t" "$ac_includes_default" -if test "x$ac_cv_type_int8_t" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_INT8_T 1 -_ACEOF - - -fi - -ac_fn_c_check_type "$LINENO" "int16_t" "ac_cv_type_int16_t" "$ac_includes_default" -if test "x$ac_cv_type_int16_t" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_INT16_T 1 -_ACEOF - - -fi - -ac_fn_c_check_type "$LINENO" "int32_t" "ac_cv_type_int32_t" "$ac_includes_default" -if test "x$ac_cv_type_int32_t" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_INT32_T 1 -_ACEOF - - -fi - -ac_fn_c_check_type "$LINENO" "int64_t" "ac_cv_type_int64_t" "$ac_includes_default" -if test "x$ac_cv_type_int64_t" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_INT64_T 1 -_ACEOF - - -fi - -ac_fn_c_check_type "$LINENO" "uint8_t" "ac_cv_type_uint8_t" "$ac_includes_default" -if test "x$ac_cv_type_uint8_t" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_UINT8_T 1 -_ACEOF - - -fi - -ac_fn_c_check_type "$LINENO" "uint16_t" "ac_cv_type_uint16_t" "$ac_includes_default" -if test "x$ac_cv_type_uint16_t" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_UINT16_T 1 -_ACEOF - - -fi - -ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "$ac_includes_default" -if test "x$ac_cv_type_uint32_t" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_UINT32_T 1 -_ACEOF - - -fi - -ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "$ac_includes_default" -if test "x$ac_cv_type_uint64_t" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_UINT64_T 1 -_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 : - -cat >>confdefs.h <<_ACEOF -#define HAVE_SSIZE_T 1 -_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 - - -# 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 long" >&5 -$as_echo_n "checking size of long long... " >&6; } -if ${ac_cv_sizeof_long_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_long_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 long) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_long_long=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 -$as_echo "$ac_cv_sizeof_long_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long -_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 off_t" >&5 -$as_echo_n "checking size of off_t... " >&6; } -if ${ac_cv_sizeof_off_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_off_t" = 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 (off_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_off_t=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5 -$as_echo "$ac_cv_sizeof_off_t" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_OFF_T $ac_cv_sizeof_off_t -_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 size_t" >&5 -$as_echo_n "checking size of size_t... " >&6; } -if ${ac_cv_sizeof_size_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_size_t" = 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 (size_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_size_t=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 -$as_echo "$ac_cv_sizeof_size_t" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t -_ACEOF - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 -$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } -if ${ac_cv_struct_tm+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -int -main () -{ -struct tm tm; - int *p = &tm.tm_sec; - return !p; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_struct_tm=time.h -else - ac_cv_struct_tm=sys/time.h -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 -$as_echo "$ac_cv_struct_tm" >&6; } -if test $ac_cv_struct_tm = sys/time.h; then - -$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h - -fi - -ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include -#include <$ac_cv_struct_tm> - -" -if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_TM_TM_ZONE 1 -_ACEOF - - -fi - -if test "$ac_cv_member_struct_tm_tm_zone" = yes; then - -$as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h - -else - ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include -" -if test "x$ac_cv_have_decl_tzname" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_TZNAME $ac_have_decl -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 -$as_echo_n "checking for tzname... " >&6; } -if ${ac_cv_var_tzname+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if !HAVE_DECL_TZNAME -extern char *tzname[]; -#endif - -int -main () -{ -return tzname[0][0]; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_var_tzname=yes -else - ac_cv_var_tzname=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: $ac_cv_var_tzname" >&5 -$as_echo "$ac_cv_var_tzname" >&6; } - if test $ac_cv_var_tzname = yes; then - -$as_echo "#define HAVE_TZNAME 1" >>confdefs.h - - fi -fi - - -case $host_os -in - *bsd*) MANFMT=mdoc;; - *) MANFMT=man;; -esac - - - - - - - CFLAG_VISIBILITY= - HAVE_VISIBILITY=0 - if test -n "$GCC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5 -$as_echo_n "checking for simple visibility declarations... " >&6; } - if ${gl_cv_cc_visibility+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fvisibility=hidden" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -extern __attribute__((__visibility__("hidden"))) int hiddenvar; - extern __attribute__((__visibility__("default"))) int exportedvar; - extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); - extern __attribute__((__visibility__("default"))) int exportedfunc (void); -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_cc_visibility=yes -else - gl_cv_cc_visibility=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$gl_save_CFLAGS" -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5 -$as_echo "$gl_cv_cc_visibility" >&6; } - if test $gl_cv_cc_visibility = yes; then - CFLAG_VISIBILITY="-fvisibility=hidden" - HAVE_VISIBILITY=1 - fi - fi - - - -cat >>confdefs.h <<_ACEOF -#define HAVE_VISIBILITY $HAVE_VISIBILITY -_ACEOF - - - -ac_config_files="$ac_config_files Makefile libzip.pc libzip-uninstalled.pc examples/Makefile man/Makefile lib/Makefile lib/gladman-fcrypt/Makefile regress/Makefile src/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 "${WIN32_HOST_TRUE}" && test -z "${WIN32_HOST_FALSE}"; then - as_fn_error $? "conditional \"WIN32_HOST\" 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 libzip $as_me 1.2.0, which was -generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to ." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -libzip config.status 1.2.0 -configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2012 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -MKDIR_P='$MKDIR_P' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' -macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' -enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' -enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' -pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' -enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' -SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' -ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' -PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' -host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' -host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' -host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' -build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' -build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' -build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' -SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' -Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' -GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' -EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' -FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' -LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' -NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' -LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' -max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' -ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' -exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' -lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' -lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' -lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' -reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' -reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' -deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' -file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' -AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' -AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' -STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' -RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' -old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' -old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' -lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' -CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' -CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' -compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' -GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_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"`' -nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -lt_sysroot='`$ECHO "$lt_sysroot" | $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"`' -sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' -hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' -enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' -old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' -striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' - -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$1 -_LTECHO_EOF' -} - -# Quote evaled strings. -for var in SHELL \ -ECHO \ -PATH_SEPARATOR \ -SED \ -GREP \ -EGREP \ -FGREP \ -LD \ -NM \ -LN_S \ -lt_SP2NL \ -lt_NL2SP \ -reload_flag \ -OBJDUMP \ -deplibs_check_method \ -file_magic_cmd \ -file_magic_glob \ -want_nocaseglob \ -DLLTOOL \ -sharedlib_from_linklib_cmd \ -AR \ -AR_FLAGS \ -archiver_list_spec \ -STRIP \ -RANLIB \ -CC \ -CFLAGS \ -compiler \ -lt_cv_sys_global_symbol_pipe \ -lt_cv_sys_global_symbol_to_cdecl \ -lt_cv_sys_global_symbol_to_c_name_address \ -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -nm_file_list_spec \ -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\\"\\\`\\\\\\"" - ;; - *) - 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 \ -sys_lib_dlsearch_path_spec; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -ac_aux_dir='$ac_aux_dir' -xsi_shell='$xsi_shell' -lt_shell_append='$lt_shell_append' - -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - - - PACKAGE='$PACKAGE' - VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' - RM='$RM' - ofile='$ofile' - - - - -_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 - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "libzip.pc") CONFIG_FILES="$CONFIG_FILES libzip.pc" ;; - "libzip-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES libzip-uninstalled.pc" ;; - "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; - "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; - "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; - "lib/gladman-fcrypt/Makefile") CONFIG_FILES="$CONFIG_FILES lib/gladman-fcrypt/Makefile" ;; - "regress/Makefile") CONFIG_FILES="$CONFIG_FILES regress/Makefile" ;; - "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/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` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$ac_tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_tt"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' >$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #undef with comments. This is necessary, for example, - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac - ac_MKDIR_P=$MKDIR_P - case $MKDIR_P in - [\\/$]* | ?:[\\/]* ) ;; - */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -s&@MKDIR_P@&$ac_MKDIR_P&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" - } >"$ac_tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$ac_tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 - fi -# Compute "$ac_file"'s index in $config_headers. -_am_arg="$ac_file" -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || -$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$_am_arg" : 'X\(//\)[^/]' \| \ - X"$_am_arg" : 'X\(//\)$' \| \ - X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$_am_arg" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'`/stamp-h$_am_stamp_count - ;; - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} - ;; - "libtool":C) - - # See if we are running on zsh, and set the options which allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - - cfgfile="${ofile}T" - trap "$RM \"$cfgfile\"; exit 1" 1 2 15 - $RM "$cfgfile" - - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL - -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - - -# The names of the tagged configurations supported by this script. -available_tags="" - -# ### BEGIN LIBTOOL CONFIG - -# Which release of libtool.m4 was used? -macro_version=$macro_version -macro_revision=$macro_revision - -# 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 - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# An echo program that protects backslashes. -ECHO=$lt_ECHO - -# The PATH separator for the build system. -PATH_SEPARATOR=$lt_PATH_SEPARATOR - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# A sed program that does not truncate output. -SED=$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="\$SED -e 1s/^X//" - -# A grep program that handles long lines. -GREP=$lt_GREP - -# An ERE matcher. -EGREP=$lt_EGREP - -# A literal string matcher. -FGREP=$lt_FGREP - -# A BSD- or MS-compatible name lister. -NM=$lt_NM - -# Whether we need soft or hard links. -LN_S=$lt_LN_S - -# What is the maximum length of a command? -max_cmd_len=$max_cmd_len - -# Object file suffix (normally "o"). -objext=$ac_objext - -# Executable file suffix (normally ""). -exeext=$exeext - -# whether the shell understands "unset". -lt_unset=$lt_unset - -# turn spaces into newlines. -SP2NL=$lt_lt_SP2NL - -# turn newlines into spaces. -NL2SP=$lt_lt_NL2SP - -# convert \$build file names to \$host format. -to_host_file_cmd=$lt_cv_to_host_file_cmd - -# convert \$build files to toolchain format. -to_tool_file_cmd=$lt_cv_to_tool_file_cmd - -# An object symbol dumper. -OBJDUMP=$lt_OBJDUMP - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method = "file_magic". -file_magic_cmd=$lt_file_magic_cmd - -# How to find potential files when deplibs_check_method = "file_magic". -file_magic_glob=$lt_file_magic_glob - -# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -want_nocaseglob=$lt_want_nocaseglob - -# DLL creation program. -DLLTOOL=$lt_DLLTOOL - -# Command to associate shared and link libraries. -sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd - -# The archiver. -AR=$lt_AR - -# Flags to create an archive. -AR_FLAGS=$lt_AR_FLAGS - -# How to feed a file listing to the archiver. -archiver_list_spec=$lt_archiver_list_spec - -# A symbol stripping program. -STRIP=$lt_STRIP - -# Commands used to install an old-style archive. -RANLIB=$lt_RANLIB -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Whether to use a lock for old archive extraction. -lock_old_archive_extraction=$lock_old_archive_extraction - -# A C compiler. -LTCC=$lt_CC - -# LTCC compiler flags. -LTCFLAGS=$lt_CFLAGS - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration. -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm 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 - -# 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 in which our libraries should be installed. -lt_sysroot=$lt_sysroot - -# 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 - -# Run-time system search path for libraries. -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - - -# The linker used to build libraries. -LD=$lt_LD - -# 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 - - case $host_os in - aix3*) - cat <<\_LT_EOF >> "$cfgfile" -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -_LT_EOF - ;; - esac - - -ltmain="$ac_aux_dir/ltmain.sh" - - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - if test x"$xsi_shell" = xyes; then - sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -func_dirname ()\ -{\ -\ case ${1} in\ -\ */*) func_dirname_result="${1%/*}${2}" ;;\ -\ * ) func_dirname_result="${3}" ;;\ -\ esac\ -} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_basename ()$/,/^} # func_basename /c\ -func_basename ()\ -{\ -\ func_basename_result="${1##*/}"\ -} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -func_dirname_and_basename ()\ -{\ -\ case ${1} in\ -\ */*) func_dirname_result="${1%/*}${2}" ;;\ -\ * ) func_dirname_result="${3}" ;;\ -\ esac\ -\ func_basename_result="${1##*/}"\ -} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -func_stripname ()\ -{\ -\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -\ # positional parameters, so assign one to ordinary parameter first.\ -\ func_stripname_result=${3}\ -\ func_stripname_result=${func_stripname_result#"${1}"}\ -\ func_stripname_result=${func_stripname_result%"${2}"}\ -} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -func_split_long_opt ()\ -{\ -\ func_split_long_opt_name=${1%%=*}\ -\ func_split_long_opt_arg=${1#*=}\ -} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -func_split_short_opt ()\ -{\ -\ func_split_short_opt_arg=${1#??}\ -\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -func_lo2o ()\ -{\ -\ case ${1} in\ -\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -\ *) func_lo2o_result=${1} ;;\ -\ esac\ -} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_xform ()$/,/^} # func_xform /c\ -func_xform ()\ -{\ - func_xform_result=${1%.*}.lo\ -} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_arith ()$/,/^} # func_arith /c\ -func_arith ()\ -{\ - func_arith_result=$(( $* ))\ -} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_len ()$/,/^} # func_len /c\ -func_len ()\ -{\ - func_len_result=${#1}\ -} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - -fi - -if test x"$lt_shell_append" = xyes; then - sed -e '/^func_append ()$/,/^} # func_append /c\ -func_append ()\ -{\ - eval "${1}+=\\${2}"\ -} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -func_append_quoted ()\ -{\ -\ func_quote_for_eval "${2}"\ -\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - # Save a `func_append' function call where possible by direct use of '+=' - sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -else - # Save a `func_append' function call even when '+=' is not available - sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -fi - -if test x"$_lt_function_replace_fail" = x":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -fi - - - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - - ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - diff --git a/libzip-1.2.0/configure.ac b/libzip-1.2.0/configure.ac deleted file mode 100644 index 6acd1e365..000000000 --- a/libzip-1.2.0/configure.ac +++ /dev/null @@ -1,135 +0,0 @@ -AC_PREREQ([2.60]) -AC_INIT([libzip],[1.2.0],[libzip@nih.at]) -AC_CONFIG_SRCDIR([lib/zip_add.c]) -AC_CONFIG_HEADERS([config.h]) -AC_CONFIG_MACRO_DIR([m4]) -AM_INIT_AUTOMAKE - -AC_CANONICAL_HOST -dnl Add rpath flags to installed pkg-config (.pc) file on systems that prefer it this way. -case $host_os in - *bsd*) - PKG_CONFIG_RPATH=-Wl,-R\${libdir};; - *) - PKG_CONFIG_RPATH=;; -esac -AC_SUBST(PKG_CONFIG_RPATH) - - -AC_PROG_CC -AC_SYS_LARGEFILE -AM_PROG_CC_C_O -AC_C_BIGENDIAN - -AC_ARG_WITH(zlib, - [ --with-zlib=PREFIX specify prefix for ZLIB library],, - with_zlib=yes) - -if test "$with_zlib" != "yes" -then - if test -f "$with_zlib"/zlib.h - then - # PREFIX is to uninstalled version in distribution directory - CFLAGS="$CFLAGS -I$with_zlib" - LDFLAGS="$LDFLAGS -L$with_zlib" - else if test -f "$with_zlib"/include/zlib.h - then - # PREFIX is installation prefix - CFLAGS="$CFLAGS -I$with_zlib/include" - LDFLAGS="$LDFLAGS -L$with_zlib/lib" - fi - fi -fi - -AC_CHECK_LIB(z, main) -AC_CACHE_CHECK(new ZLIB version, id_cv_lib_zlib_ok, - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[extern ZEXPORT int unzOpen (const char *path);]])],[id_cv_lib_zlib_ok=yes],[id_cv_lib_zlib_ok=no])) -if test "$id_cv_lib_zlib_ok" = "no" -then - AC_MSG_ERROR([ZLIB version too old, please install at least v1.1.2]) -fi - -AC_EXEEXT - -LT_INIT - -AC_CHECK_FUNCS([_close _dup _fdopen _fileno _open _setmode _snprintf _strdup _stricmp _strtoi64 _strtoui64 explicit_bzero explicit_memset fileno fseeko ftello getopt getprogname open setmode snprintf strcasecmp strdup stricmp strtoll strtoull]) -AC_CHECK_FUNCS([mkstemp], [], [AC_LIBOBJ(mkstemp)]) - -dnl assume dlsym in libc, but check in libdl -DLSYM_LIB= -AC_CHECK_LIB([dl], [dlsym], [DLSYM_LIB="-ldl"]) -AC_SUBST([DLSYM_LIB]) - -AC_CACHE_CHECK([if libc defines __progname], ac_cv_libc_defines___progname, - [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], - [[ extern char *__progname; printf("%s", __progname); ]])], - [ ac_cv_libc_defines___progname="yes" ], - [ ac_cv_libc_defines___progname="no" ]) - ]) -if test "x$ac_cv_libc_defines___progname" = "xyes" ; then - AC_DEFINE([HAVE___PROGNAME], [1], [Define if libc defines __progname]) -fi - -AC_CACHE_CHECK([whether we are building for a Win32 host], [ac_cv_win32_host], - AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#ifdef _WIN32 - choke me - #endif - ]])], - [ac_cv_win32_host=no], [ac_cv_win32_host=yes])) -AM_CONDITIONAL([WIN32_HOST], [test "x$ac_cv_win32_host" = "xyes"]) - -AC_CHECK_HEADERS([fts.h stdbool.h strings.h unistd.h]) - -AC_CHECK_TYPES([int8_t]) -AC_CHECK_TYPES([int16_t]) -AC_CHECK_TYPES([int32_t]) -AC_CHECK_TYPES([int64_t]) -AC_CHECK_TYPES([uint8_t]) -AC_CHECK_TYPES([uint16_t]) -AC_CHECK_TYPES([uint32_t]) -AC_CHECK_TYPES([uint64_t]) -AC_CHECK_TYPES([ssize_t]) - -AC_CHECK_SIZEOF([short]) -AC_CHECK_SIZEOF([int]) -AC_CHECK_SIZEOF([long]) -AC_CHECK_SIZEOF([long long]) -AC_CHECK_SIZEOF([off_t]) -AC_CHECK_SIZEOF([size_t]) - -AC_STRUCT_TIMEZONE - -case $host_os -in - *bsd*) MANFMT=mdoc;; - *) MANFMT=man;; -esac -AC_SUBST([MANFMT]) - -AH_BOTTOM([ -#ifndef HAVE_SSIZE_T -# if SIZEOF_SIZE_T == SIZEOF_INT -typedef int ssize_t; -# elif SIZEOF_SIZE_T == SIZEOF_LONG -typedef long ssize_t; -# elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG -typedef long long ssize_t; -# else -#error no suitable type for ssize_t found -# endif -#endif -]) - -gl_VISIBILITY - -AC_CONFIG_FILES([Makefile - libzip.pc - libzip-uninstalled.pc - examples/Makefile - man/Makefile - lib/Makefile - lib/gladman-fcrypt/Makefile - regress/Makefile - src/Makefile]) -AC_OUTPUT diff --git a/libzip-1.2.0/depcomp b/libzip-1.2.0/depcomp deleted file mode 100644 index fc98710e2..000000000 --- a/libzip-1.2.0/depcomp +++ /dev/null @@ -1,791 +0,0 @@ -#! /bin/sh -# depcomp - compile a program generating dependencies as side-effects - -scriptversion=2013-05-30.07; # UTC - -# Copyright (C) 1999-2014 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Alexandre Oliva . - -case $1 in - '') - echo "$0: No command. Try '$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: depcomp [--help] [--version] PROGRAM [ARGS] - -Run PROGRAMS ARGS to compile a file, generating dependencies -as side-effects. - -Environment variables: - depmode Dependency tracking mode. - source Source file read by 'PROGRAMS ARGS'. - object Object file output by 'PROGRAMS ARGS'. - DEPDIR directory where to store dependencies. - depfile Dependency file to output. - tmpdepfile Temporary file to use when outputting dependencies. - libtool Whether libtool is used (yes/no). - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "depcomp $scriptversion" - exit $? - ;; -esac - -# Get the directory component of the given path, and save it in the -# global variables '$dir'. Note that this directory component will -# be either empty or ending with a '/' character. This is deliberate. -set_dir_from () -{ - case $1 in - */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; - *) dir=;; - esac -} - -# Get the suffix-stripped basename of the given path, and save it the -# global variable '$base'. -set_base_from () -{ - base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` -} - -# If no dependency file was actually created by the compiler invocation, -# we still have to create a dummy depfile, to avoid errors with the -# Makefile "include basename.Plo" scheme. -make_dummy_depfile () -{ - echo "#dummy" > "$depfile" -} - -# Factor out some common post-processing of the generated depfile. -# Requires the auxiliary global variable '$tmpdepfile' to be set. -aix_post_process_depfile () -{ - # If the compiler actually managed to produce a dependency file, - # post-process it. - if test -f "$tmpdepfile"; then - # Each line is of the form 'foo.o: dependency.h'. - # Do two passes, one to just change these to - # $object: dependency.h - # and one to simply output - # dependency.h: - # which is needed to avoid the deleted-header problem. - { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" - sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" - } > "$depfile" - rm -f "$tmpdepfile" - else - make_dummy_depfile - fi -} - -# A tabulation character. -tab=' ' -# A newline character. -nl=' -' -# Character ranges might be problematic outside the C locale. -# These definitions help. -upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ -lower=abcdefghijklmnopqrstuvwxyz -digits=0123456789 -alpha=${upper}${lower} - -if test -z "$depmode" || test -z "$source" || test -z "$object"; then - echo "depcomp: Variables source, object and depmode must be set" 1>&2 - exit 1 -fi - -# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. -depfile=${depfile-`echo "$object" | - sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} -tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} - -rm -f "$tmpdepfile" - -# Avoid interferences from the environment. -gccflag= dashmflag= - -# Some modes work just like other modes, but use different flags. We -# parameterize here, but still list the modes in the big case below, -# to make depend.m4 easier to write. Note that we *cannot* use a case -# here, because this file can only contain one case statement. -if test "$depmode" = hp; then - # HP compiler uses -M and no extra arg. - gccflag=-M - depmode=gcc -fi - -if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout -fi - -cygpath_u="cygpath -u -f -" -if test "$depmode" = msvcmsys; then - # This is just like msvisualcpp but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvisualcpp -fi - -if test "$depmode" = msvc7msys; then - # This is just like msvc7 but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvc7 -fi - -if test "$depmode" = xlc; then - # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. - gccflag=-qmakedep=gcc,-MF - depmode=gcc -fi - -case "$depmode" in -gcc3) -## gcc 3 implements dependency tracking that does exactly what -## we want. Yay! Note: for some reason libtool 1.4 doesn't like -## it if -MD -MP comes after the -MF stuff. Hmm. -## Unfortunately, FreeBSD c89 acceptance of flags depends upon -## the command line argument order; so add the flags where they -## appear in depend2.am. Note that the slowdown incurred here -## affects only configure: in makefiles, %FASTDEP% shortcuts this. - for arg - do - case $arg in - -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; - *) set fnord "$@" "$arg" ;; - esac - shift # fnord - shift # $arg - done - "$@" - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. -## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. -## (see the conditional assignment to $gccflag above). -## There are various ways to get dependency output from gcc. Here's -## why we pick this rather obscure method: -## - Don't want to use -MD because we'd like the dependencies to end -## up in a subdir. Having to rename by hand is ugly. -## (We might end up doing this anyway to support other compilers.) -## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). Also, it might not be -## supported by the other compilers which use the 'gcc' depmode. -## - Using -M directly means running the compiler twice (even worse -## than renaming). - if test -z "$gccflag"; then - gccflag=-MD, - fi - "$@" -Wp,"$gccflag$tmpdepfile" - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - # The second -e expression handles DOS-style file names with drive - # letters. - sed -e 's/^[^:]*: / /' \ - -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the "deleted header file" problem. -## The problem is that when a header file which appears in a .P file -## is deleted, the dependency causes make to die (because there is -## typically no way to rebuild the header). We avoid this by adding -## dummy dependencies for each header file. Too bad gcc doesn't do -## this for us directly. -## Some versions of gcc put a space before the ':'. On the theory -## that the space means something, we add a space to the output as -## well. hp depmode also adds that space, but also prefixes the VPATH -## to the object. Take care to not repeat it in the output. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -sgi) - if test "$libtool" = yes; then - "$@" "-Wp,-MDupdate,$tmpdepfile" - else - "$@" -MDupdate "$tmpdepfile" - fi - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files - echo "$object : \\" > "$depfile" - # Clip off the initial element (the dependent). Don't try to be - # clever and replace this with sed code, as IRIX sed won't handle - # lines with more than a fixed number of characters (4096 in - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like '#:fec' to the end of the - # dependency line. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ - | tr "$nl" ' ' >> "$depfile" - echo >> "$depfile" - # The second pass generates a dummy entry for each header file. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> "$depfile" - else - make_dummy_depfile - fi - rm -f "$tmpdepfile" - ;; - -xlc) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -aix) - # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts '$object:' at the - # start of each line; $object doesn't have directory information. - # Version 6 uses the directory in both cases. - set_dir_from "$object" - set_base_from "$object" - if test "$libtool" = yes; then - tmpdepfile1=$dir$base.u - tmpdepfile2=$base.u - tmpdepfile3=$dir.libs/$base.u - "$@" -Wc,-M - else - tmpdepfile1=$dir$base.u - tmpdepfile2=$dir$base.u - tmpdepfile3=$dir$base.u - "$@" -M - fi - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - do - test -f "$tmpdepfile" && break - done - aix_post_process_depfile - ;; - -tcc) - # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 - # FIXME: That version still under development at the moment of writing. - # Make that this statement remains true also for stable, released - # versions. - # It will wrap lines (doesn't matter whether long or short) with a - # trailing '\', as in: - # - # foo.o : \ - # foo.c \ - # foo.h \ - # - # It will put a trailing '\' even on the last line, and will use leading - # spaces rather than leading tabs (at least since its commit 0394caf7 - # "Emit spaces for -MD"). - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. - # We have to change lines of the first kind to '$object: \'. - sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" - # And for each line of the second kind, we have to emit a 'dep.h:' - # dummy dependency, to avoid the deleted-header problem. - sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" - rm -f "$tmpdepfile" - ;; - -## The order of this option in the case statement is important, since the -## shell code in configure will try each of these formats in the order -## listed in this file. A plain '-MD' option would be understood by many -## compilers, so we must ensure this comes after the gcc and icc options. -pgcc) - # Portland's C compiler understands '-MD'. - # Will always output deps to 'file.d' where file is the root name of the - # source file under compilation, even if file resides in a subdirectory. - # The object file name does not affect the name of the '.d' file. - # pgcc 10.2 will output - # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using '\' : - # foo.o: sub/foo.c ... \ - # sub/foo.h ... \ - # ... - set_dir_from "$object" - # Use the source, not the object, to determine the base name, since - # that's sadly what pgcc will do too. - set_base_from "$source" - tmpdepfile=$base.d - - # For projects that build the same source file twice into different object - # files, the pgcc approach of using the *source* file root name can cause - # problems in parallel builds. Use a locking strategy to avoid stomping on - # the same $tmpdepfile. - lockdir=$base.d-lock - trap " - echo '$0: caught signal, cleaning up...' >&2 - rmdir '$lockdir' - exit 1 - " 1 2 13 15 - numtries=100 - i=$numtries - while test $i -gt 0; do - # mkdir is a portable test-and-set. - if mkdir "$lockdir" 2>/dev/null; then - # This process acquired the lock. - "$@" -MD - stat=$? - # Release the lock. - rmdir "$lockdir" - break - else - # If the lock is being held by a different process, wait - # until the winning process is done or we timeout. - while test -d "$lockdir" && test $i -gt 0; do - sleep 1 - i=`expr $i - 1` - done - fi - i=`expr $i - 1` - done - trap - 1 2 13 15 - if test $i -le 0; then - echo "$0: failed to acquire lock after $numtries attempts" >&2 - echo "$0: check lockdir '$lockdir'" >&2 - exit 1 - fi - - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each line is of the form `foo.o: dependent.h', - # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp2) - # The "hp" stanza above does not work with aCC (C++) and HP's ia64 - # compilers, which have integrated preprocessors. The correct option - # to use with these is +Maked; it writes dependencies to a file named - # 'foo.d', which lands next to the object file, wherever that - # happens to be. - # Much of this is similar to the tru64 case; see comments there. - set_dir_from "$object" - set_base_from "$object" - if test "$libtool" = yes; then - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir.libs/$base.d - "$@" -Wc,+Maked - else - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir$base.d - "$@" +Maked - fi - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile1" "$tmpdepfile2" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" - # Add 'dependent.h:' lines. - sed -ne '2,${ - s/^ *// - s/ \\*$// - s/$/:/ - p - }' "$tmpdepfile" >> "$depfile" - else - make_dummy_depfile - fi - rm -f "$tmpdepfile" "$tmpdepfile2" - ;; - -tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in 'foo.d' instead, so we check for that too. - # Subdirectories are respected. - set_dir_from "$object" - set_base_from "$object" - - if test "$libtool" = yes; then - # Libtool generates 2 separate objects for the 2 libraries. These - # two compilations output dependencies in $dir.libs/$base.o.d and - # in $dir$base.o.d. We have to check for both files, because - # one of the two compilations can be disabled. We should prefer - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is - # automatically cleaned when .libs/ is deleted, while ignoring - # the former would cause a distcleancheck panic. - tmpdepfile1=$dir$base.o.d # libtool 1.5 - tmpdepfile2=$dir.libs/$base.o.d # Likewise. - tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - "$@" -MD - fi - - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - do - test -f "$tmpdepfile" && break - done - # Same post-processing that is required for AIX mode. - aix_post_process_depfile - ;; - -msvc7) - if test "$libtool" = yes; then - showIncludes=-Wc,-showIncludes - else - showIncludes=-showIncludes - fi - "$@" $showIncludes > "$tmpdepfile" - stat=$? - grep -v '^Note: including file: ' "$tmpdepfile" - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - # The first sed program below extracts the file names and escapes - # backslashes for cygpath. The second sed program outputs the file - # name when reading, but also accumulates all include files in the - # hold buffer in order to output them again at the end. This only - # works with sed implementations that can handle large buffers. - sed < "$tmpdepfile" -n ' -/^Note: including file: *\(.*\)/ { - s//\1/ - s/\\/\\\\/g - p -}' | $cygpath_u | sort -u | sed -n ' -s/ /\\ /g -s/\(.*\)/'"$tab"'\1 \\/p -s/.\(.*\) \\/\1:/ -H -$ { - s/.*/'"$tab"'/ - G - p -}' >> "$depfile" - echo >> "$depfile" # make sure the fragment doesn't end with a backslash - rm -f "$tmpdepfile" - ;; - -msvc7msys) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -#nosideeffect) - # This comment above is used by automake to tell side-effect - # dependency tracking mechanisms from slower ones. - -dashmstdout) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - # Remove '-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for ':' - # in the target name. This is to cope with DOS-style filenames: - # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. - "$@" $dashmflag | - sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this sed invocation - # correctly. Breaking it into two sed invocations is a workaround. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -dashXmstdout) - # This case only exists to satisfy depend.m4. It is never actually - # run, as this mode is specially recognized in the preamble. - exit 1 - ;; - -makedepend) - "$@" || exit $? - # Remove any Libtool call - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - # X makedepend - shift - cleared=no eat=no - for arg - do - case $cleared in - no) - set ""; shift - cleared=yes ;; - esac - if test $eat = yes; then - eat=no - continue - fi - case "$arg" in - -D*|-I*) - set fnord "$@" "$arg"; shift ;; - # Strip any option that makedepend may not understand. Remove - # the object too, otherwise makedepend will parse it as a source file. - -arch) - eat=yes ;; - -*|$object) - ;; - *) - set fnord "$@" "$arg"; shift ;; - esac - done - obj_suffix=`echo "$object" | sed 's/^.*\././'` - touch "$tmpdepfile" - ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" - rm -f "$depfile" - # makedepend may prepend the VPATH from the source file name to the object. - # No need to regex-escape $object, excess matching of '.' is harmless. - sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process the last invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed '1,2d' "$tmpdepfile" \ - | tr ' ' "$nl" \ - | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" "$tmpdepfile".bak - ;; - -cpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - # Remove '-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - "$@" -E \ - | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - | sed '$ s: \\$::' > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - cat < "$tmpdepfile" >> "$depfile" - sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvisualcpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - IFS=" " - for arg - do - case "$arg" in - -o) - shift - ;; - $object) - shift - ;; - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; - *) - set fnord "$@" "$arg" - shift - shift - ;; - esac - done - "$@" -E 2>/dev/null | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" - echo "$tab" >> "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvcmsys) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -none) - exec "$@" - ;; - -*) - echo "Unknown depmode $depmode" 1>&2 - exit 1 - ;; -esac - -exit 0 - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/libzip-1.2.0/examples/CMakeLists.txt b/libzip-1.2.0/examples/CMakeLists.txt deleted file mode 100644 index db1e68648..000000000 --- a/libzip-1.2.0/examples/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT) -IF(NOT HAVE_GETOPT) - SET(SRC_EXTRA_FILES ../src/getopt.c) -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/../src) -ENDIF(NOT HAVE_GETOPT) - -ADD_EXECUTABLE(in-memory in-memory.c) -TARGET_LINK_LIBRARIES(in-memory zip) - -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../lib - ${CMAKE_CURRENT_SOURCE_DIR}/../src - ${CMAKE_CURRENT_BINARY_DIR}/..) diff --git a/libzip-1.2.0/examples/Makefile.am b/libzip-1.2.0/examples/Makefile.am deleted file mode 100644 index 7887ac448..000000000 --- a/libzip-1.2.0/examples/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -noinst_PROGRAMS=in-memory - -in_memory_CPPFLAGS=-I${top_srcdir}/lib -I../lib -in_memory_LDADD=${top_builddir}/lib/libzip.la - -EXTRA_DIST= CMakeLists.txt windows-open.c diff --git a/libzip-1.2.0/examples/Makefile.in b/libzip-1.2.0/examples/Makefile.in deleted file mode 100644 index fab525955..000000000 --- a/libzip-1.2.0/examples/Makefile.in +++ /dev/null @@ -1,601 +0,0 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2014 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -noinst_PROGRAMS = in-memory$(EXEEXT) -subdir = examples -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(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/visibility.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -PROGRAMS = $(noinst_PROGRAMS) -in_memory_SOURCES = in-memory.c -in_memory_OBJECTS = in_memory-in-memory.$(OBJEXT) -in_memory_DEPENDENCIES = ${top_builddir}/lib/libzip.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_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)/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 = in-memory.c -DIST_SOURCES = in-memory.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)/depcomp -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DLSYM_LIB = @DLSYM_LIB@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -HAVE_VISIBILITY = @HAVE_VISIBILITY@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MANFMT = @MANFMT@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -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@ -PKG_CONFIG_RPATH = @PKG_CONFIG_RPATH@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -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@ -in_memory_CPPFLAGS = -I${top_srcdir}/lib -I../lib -in_memory_LDADD = ${top_builddir}/lib/libzip.la -EXTRA_DIST = CMakeLists.txt windows-open.c -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign examples/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign examples/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-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 - -in-memory$(EXEEXT): $(in_memory_OBJECTS) $(in_memory_DEPENDENCIES) $(EXTRA_in_memory_DEPENDENCIES) - @rm -f in-memory$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(in_memory_OBJECTS) $(in_memory_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/in_memory-in-memory.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 $@ $< - -in_memory-in-memory.o: in-memory.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(in_memory_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT in_memory-in-memory.o -MD -MP -MF $(DEPDIR)/in_memory-in-memory.Tpo -c -o in_memory-in-memory.o `test -f 'in-memory.c' || echo '$(srcdir)/'`in-memory.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/in_memory-in-memory.Tpo $(DEPDIR)/in_memory-in-memory.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='in-memory.c' object='in_memory-in-memory.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(in_memory_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o in_memory-in-memory.o `test -f 'in-memory.c' || echo '$(srcdir)/'`in-memory.c - -in_memory-in-memory.obj: in-memory.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(in_memory_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT in_memory-in-memory.obj -MD -MP -MF $(DEPDIR)/in_memory-in-memory.Tpo -c -o in_memory-in-memory.obj `if test -f 'in-memory.c'; then $(CYGPATH_W) 'in-memory.c'; else $(CYGPATH_W) '$(srcdir)/in-memory.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/in_memory-in-memory.Tpo $(DEPDIR)/in_memory-in-memory.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='in-memory.c' object='in_memory-in-memory.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(in_memory_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o in_memory-in-memory.obj `if test -f 'in-memory.c'; then $(CYGPATH_W) 'in-memory.c'; else $(CYGPATH_W) '$(srcdir)/in-memory.c'; fi` - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(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) - -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: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am 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 - - -# 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/libzip-1.2.0/examples/in-memory.c b/libzip-1.2.0/examples/in-memory.c deleted file mode 100644 index a37ee18f1..000000000 --- a/libzip-1.2.0/examples/in-memory.c +++ /dev/null @@ -1,220 +0,0 @@ -/* - in-memory.c -- modify zip file in memory - Copyright (C) 2014-2015 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include -#include -#include -#include -#include - -#include - -static int -get_data(void **datap, size_t *sizep, const char *archive) -{ - /* example implementation that reads data from file */ - struct stat st; - FILE *fp; - - if (stat(archive, &st) < 0) { - if (errno != ENOENT) { - fprintf(stderr, "can't stat %s: %s\n", archive, strerror(errno)); - return -1; - } - - *datap = NULL; - *sizep = 0; - - return 0; - } - - if ((*datap = malloc((size_t)st.st_size)) == NULL) { - fprintf(stderr, "can't allocate buffer\n"); - return -1; - } - - if ((fp=fopen(archive, "r")) == NULL) { - free(*datap); - fprintf(stderr, "can't open %s: %s\n", archive, strerror(errno)); - return -1; - } - - if (fread(*datap, 1, (size_t)st.st_size, fp) < (size_t)st.st_size) { - free(*datap); - fprintf(stderr, "can't read %s: %s\n", archive, strerror(errno)); - fclose(fp); - return -1; - } - - fclose(fp); - - *sizep = (size_t)st.st_size; - return 0; -} - -static int -modify_archive(zip_t *za) -{ - /* modify the archive */ - return 0; -} - - -static int -use_data(void *data, size_t size, const char *archive) -{ - /* example implementation that writes data to file */ - FILE *fp; - - if (data == NULL) { - if (remove(archive) < 0 && errno != ENOENT) { - fprintf(stderr, "can't remove %s: %s\n", archive, strerror(errno)); - return -1; - } - return 0; - } - - if ((fp = fopen(archive, "wb")) == NULL) { - fprintf(stderr, "can't open %s: %s\n", archive, strerror(errno)); - return -1; - } - if (fwrite(data, 1, size, fp) < size) { - fprintf(stderr, "can't write %s: %s\n", archive, strerror(errno)); - fclose(fp); - return -1; - } - if (fclose(fp) < 0) { - fprintf(stderr, "can't write %s: %s\n", archive, strerror(errno)); - return -1; - } - - return 0; -} - - -int -main(int argc, char *argv[]) -{ - const char *archive; - zip_source_t *src; - zip_t *za; - zip_error_t error; - void *data; - size_t size; - - if (argc < 2) { - fprintf(stderr, "usage: %s archive\n", argv[0]); - return 1; - } - archive = argv[1]; - - /* get buffer with zip archive inside */ - if (get_data(&data, &size, archive) < 0) { - return 1; - } - - zip_error_init(&error); - /* create source from buffer */ - if ((src = zip_source_buffer_create(data, size, 1, &error)) == NULL) { - fprintf(stderr, "can't create source: %s\n", zip_error_strerror(&error)); - free(data); - zip_error_fini(&error); - return 1; - } - - /* open zip archive from source */ - if ((za = zip_open_from_source(src, 0, &error)) == NULL) { - fprintf(stderr, "can't open zip from source: %s\n", zip_error_strerror(&error)); - zip_source_free(src); - zip_error_fini(&error); - return 1; - } - zip_error_fini(&error); - - /* we'll want to read the data back after zip_close */ - zip_source_keep(src); - - /* modify archive */ - modify_archive(za); - - /* close archive */ - if (zip_close(za) < 0) { - fprintf(stderr, "can't close zip archive '%s': %s\n", archive, zip_strerror(za)); - return 1; - } - - - /* copy new archive to buffer */ - - if (zip_source_is_deleted(src)) { - /* new archive is empty, thus no data */ - data = NULL; - } - else { - zip_stat_t zst; - - if (zip_source_stat(src, &zst) < 0) { - fprintf(stderr, "can't stat source: %s\n", zip_error_strerror(zip_source_error(src))); - return 1; - } - - size = zst.size; - - if (zip_source_open(src) < 0) { - fprintf(stderr, "can't open source: %s\n", zip_error_strerror(zip_source_error(src))); - return 1; - } - if ((data = malloc(size)) == NULL) { - fprintf(stderr, "malloc failed: %s\n", strerror(errno)); - zip_source_close(src); - return 1; - } - if ((zip_uint64_t)zip_source_read(src, data, size) < size) { - fprintf(stderr, "can't read data from source: %s\n", zip_error_strerror(zip_source_error(src))); - zip_source_close(src); - free(data); - return 1; - } - zip_source_close(src); - } - - /* we're done with src */ - zip_source_free(src); - - /* use new data */ - use_data(data, size, archive); - - free(data); - - return 0; -} diff --git a/libzip-1.2.0/examples/windows-open.c b/libzip-1.2.0/examples/windows-open.c deleted file mode 100644 index fdd70342b..000000000 --- a/libzip-1.2.0/examples/windows-open.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - windows-open.c -- open zip archive using Windows UTF-16/Unicode file name - Copyright (C) 2015 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include - -zip_t * -windows_open(const wchar_t *name, int flags) -{ - zip_source_t *src; - zip_t *za; - zip_error_t error; - - zip_error_init(&error); - /* create source from buffer */ - if ((src = zip_source_win32w_create(name, 0, -1, &error)) == NULL) { - fprintf(stderr, "can't create source: %s\n", zip_error_strerror(&error)); - zip_error_fini(&error); - return NULL; - } - - /* open zip archive from source */ - if ((za = zip_open_from_source(src, flags, &error)) == NULL) { - fprintf(stderr, "can't open zip from source: %s\n", zip_error_strerror(&error)); - zip_source_free(src); - zip_error_fini(&error); - return NULL; - } - zip_error_fini(&error); - - return za; -} diff --git a/libzip-1.2.0/install-sh b/libzip-1.2.0/install-sh deleted file mode 100644 index b12c0f718..000000000 --- a/libzip-1.2.0/install-sh +++ /dev/null @@ -1,301 +0,0 @@ -#!/bin/sh -# -# $NetBSD: install-sh.in,v 1.6 2012/01/11 13:07:31 hans Exp $ -# This script now also installs multiple files, but might choke on installing -# multiple files with spaces in the file names. -# -# install - install a program, script, or datafile -# This comes from X11R5 (mit/util/scripts/install.sh). -# -# Copyright 1991 by the Massachusetts Institute of Technology -# -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation, and that the name of M.I.T. not be used in advertising or -# publicity pertaining to distribution of the software without specific, -# written prior permission. M.I.T. makes no representations about the -# suitability of this software for any purpose. It is provided "as is" -# without express or implied warranty. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -awkprog="${AWKPROG-awk}" -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -instcmd="$cpprog" -instflags="" -pathcompchmodcmd="$chmodprog 755" -chmodcmd="$chmodprog 755" -chowncmd="" -chgrpcmd="" -stripcmd="" -stripflags="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -msrc="" -dst="" -dir_arg="" -suffix="" -suffixfmt="" - -while [ x"$1" != x ]; do - case $1 in - -b) suffix=".old" - shift - continue;; - - -B) suffixfmt="$2" - shift - shift - continue;; - - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -m*) - chmodcmd="$chmodprog ${1#-m}" - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -S) stripcmd="$stripprog" - stripflags="-S $2 $stripflags" - shift - shift - continue;; - - -p) instflags="-p" - shift - continue;; - - *) if [ x"$msrc" = x ] - then - msrc="$dst" - else - msrc="$msrc $dst" - fi - src="$dst" - dst="$1" - shift - continue;; - esac -done - -if [ x"$dir_arg" = x ] -then - dstisfile="" - if [ ! -d "$dst" ] - then - if [ x"$msrc" = x"$src" ] - then - dstisfile=true - else - echo "install: destination is not a directory" - exit 1 - fi - fi -else - msrc="$msrc $dst" -fi - -if [ x"$msrc" = x ] -then - echo "install: no destination specified" - exit 1 -fi - -for srcarg in $msrc; do - -if [ x"$dir_arg" != x ]; then - - dstarg="$srcarg" -else - dstarg="$dst" - -# Waiting for this to be detected by the "$instcmd $srcarg $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f "$srcarg" ] - then - doinst="$instcmd $instflags" - elif [ -d "$srcarg" ] - then - echo "install: $srcarg: not a regular file" - exit 1 - elif [ "$srcarg" = "/dev/null" ] - then - doinst="$cpprog" - else - echo "install: $srcarg does not exist" - exit 1 - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d "$dstarg" ] - then - dstarg="$dstarg"/`basename "$srcarg"` - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo "$dstarg" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' -' -IFS="${IFS-${defaultIFS}}" - -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" - shift - - if [ ! -d "${pathcomp}" ] ; - then - $doit $mkdirprog "${pathcomp}" - if [ x"$chowncmd" != x ]; then $doit $chowncmd "${pathcomp}"; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "${pathcomp}"; else true ; fi && - if [ x"$pathcompchmodcmd" != x ]; then $doit $pathcompchmodcmd "${pathcomp}"; else true ; fi - - else - true - fi - - pathcomp="${pathcomp}/" -done -fi - - if [ x"$dir_arg" != x ] - then - if [ -d "$dstarg" ]; then - true - else - $doit $mkdirprog "$dstarg" && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dstarg"; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dstarg"; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dstarg"; else true ; fi - fi - else - - if [ x"$dstisfile" = x ] - then - file=$srcarg - else - file=$dst - fi - - dstfile=`basename "$file"` - dstfinal="$dstdir/$dstfile" - -# Make a temp file name in the proper directory. - - dsttmp=$dstdir/#inst.$$# - -# Make a backup file name in the proper directory. - case x$suffixfmt in - *%*) suffix=`echo x | - $awkprog -v bname="$dstfinal" -v fmt="$suffixfmt" ' - { cnt = 0; - do { - sfx = sprintf(fmt, cnt++); - name = bname sfx; - } while (system("test -f " name) == 0); - print sfx; }' -`;; - x) ;; - *) suffix="$suffixfmt";; - esac - dstbackup="$dstfinal$suffix" - -# Move or copy the file name to the temp name - - $doit $doinst $srcarg "$dsttmp" && - - trap "rm -f ${dsttmp}" 0 && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else true;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else true;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $stripflags "$dsttmp"; else true;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else true;fi && - -# Now rename the file to the real destination. - - if [ x"$suffix" != x ] && [ -f "$dstfinal" ] - then - $doit $mvcmd "$dstfinal" "$dstbackup" - else - $doit $rmcmd -f "$dstfinal" - fi && - $doit $mvcmd "$dsttmp" "$dstfinal" - fi - -done && - - -exit 0 diff --git a/libzip-1.2.0/lib/.gitignore b/libzip-1.2.0/lib/.gitignore deleted file mode 100644 index 4096665af..000000000 --- a/libzip-1.2.0/lib/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/libzip.la diff --git a/libzip-1.2.0/lib/CMakeLists.txt b/libzip-1.2.0/lib/CMakeLists.txt deleted file mode 100644 index 38870d1a4..000000000 --- a/libzip-1.2.0/lib/CMakeLists.txt +++ /dev/null @@ -1,196 +0,0 @@ -INCLUDE(CheckFunctionExists) - -INSTALL(FILES zip.h DESTINATION include) - -# from http://www.cmake.org/Wiki/CMakeMacroLibtoolFile -MACRO(GET_TARGET_PROPERTY_WITH_DEFAULT _variable _target _property _default_value) - - GET_TARGET_PROPERTY (${_variable} ${_target} ${_property}) - IF (${_variable} STREQUAL NOTFOUND) - SET (${_variable} ${_default_value}) - ENDIF (${_variable} STREQUAL NOTFOUND) - -ENDMACRO (GET_TARGET_PROPERTY_WITH_DEFAULT) - -#MACRO(CREATE_LIBTOOL_FILE _target _install_DIR) -# GET_TARGET_PROPERTY(_target_location ${_target} LOCATION) -# GET_TARGET_PROPERTY_WITH_DEFAULT(_target_static_lib ${_target} STATIC_LIB "") -# GET_TARGET_PROPERTY_WITH_DEFAULT(_target_dependency_libs ${_target} LT_DEPENDENCY_LIBS "") -# GET_TARGET_PROPERTY_WITH_DEFAULT(_target_current ${_target} LT_VERSION_CURRENT 4) -# GET_TARGET_PROPERTY_WITH_DEFAULT(_target_revision ${_target} LT_VERSION_REVISION 0) -# GET_TARGET_PROPERTY_WITH_DEFAULT(_target_age ${_target} LT_VERSION_AGE 0) -# GET_TARGET_PROPERTY_WITH_DEFAULT(_target_installed ${_target} LT_INSTALLED yes) -# GET_TARGET_PROPERTY_WITH_DEFAULT(_target_shouldnotlink ${_target} LT_SHOULDNOTLINK yes) -# GET_TARGET_PROPERTY_WITH_DEFAULT(_target_dlopen ${_target} LT_DLOPEN "") -# GET_TARGET_PROPERTY_WITH_DEFAULT(_target_dlpreopen ${_target} LT_DLPREOPEN "") -# GET_FILENAME_COMPONENT(_laname ${_target_location} NAME_WE) -# GET_FILENAME_COMPONENT(_soname ${_target_location} NAME) -# SET(_laname ${_laname}.la) -# FILE(WRITE ${_laname} "# ${_laname} - a libtool library file, generated by cmake \n") -# FILE(APPEND ${_laname} "# The name that we can dlopen(3).\n") -# FILE(APPEND ${_laname} "dlname='${_soname}'\n") -# FILE(APPEND ${_laname} "# Names of this library\n") -# FILE(APPEND ${_laname} "library_names='${_soname}.${_target_current}.${_target_age}.${_target_revision} ${_soname}.${_target_current} ${_soname}'\n") -# FILE(APPEND ${_laname} "# The name of the static archive\n") -# FILE(APPEND ${_laname} "old_library='${_target_static_lib}'\n") -# FILE(APPEND ${_laname} "# Libraries that this one depends upon.\n") -# FILE(APPEND ${_laname} "dependency_libs='${_target_dependency_libs}'\n") -# FILE(APPEND ${_laname} "# Version information.\n") -# FILE(APPEND ${_laname} "current=${_target_current}\n") -# FILE(APPEND ${_laname} "age=${_target_age}\n") -# FILE(APPEND ${_laname} "revision=${_target_revision}\n") -# FILE(APPEND ${_laname} "# Is this an already installed library?\n") -# FILE(APPEND ${_laname} "installed=${_target_installed}\n") -# FILE(APPEND ${_laname} "# Should we warn about portability when linking against -modules?\n") -# FILE(APPEND ${_laname} "shouldnotlink=${_target_shouldnotlink}\n") -# FILE(APPEND ${_laname} "# Files to dlopen/dlpreopen\n") -# FILE(APPEND ${_laname} "dlopen='${_target_dlopen}'\n") -# FILE(APPEND ${_laname} "dlpreopen='${_target_dlpreopen}'\n") -# FILE(APPEND ${_laname} "# Directory that this library needs to be installed in:\n") -# FILE(APPEND ${_laname} "libdir='${CMAKE_INSTALL_PREFIX}/${_install_DIR}'\n") -# INSTALL( FILES ${_laname} ${_soname} -# DESTINATION ${CMAKE_INSTALL_PREFIX}${_install_DIR}) -#ENDMACRO(CREATE_LIBTOOL_FILE) - -SET(LIBZIP_SOURCES - gladman-fcrypt.c - zip_add.c - zip_add_dir.c - zip_add_entry.c - zip_buffer.c - zip_close.c - zip_delete.c - zip_dir_add.c - zip_dirent.c - zip_discard.c - zip_entry.c - zip_err_str.c - zip_error.c - zip_error_clear.c - zip_error_get.c - zip_error_get_sys_type.c - zip_error_strerror.c - zip_error_to_str.c - zip_extra_field.c - zip_extra_field_api.c - zip_fclose.c - zip_fdopen.c - zip_file_add.c - zip_file_error_clear.c - zip_file_error_get.c - zip_file_get_comment.c - zip_file_get_external_attributes.c - zip_file_get_offset.c - zip_file_rename.c - zip_file_replace.c - zip_file_set_comment.c - zip_file_set_encryption.c - zip_file_set_external_attributes.c - zip_file_set_mtime.c - zip_file_strerror.c - zip_filerange_crc.c - zip_fopen.c - zip_fopen_encrypted.c - zip_fopen_index.c - zip_fopen_index_encrypted.c - zip_fread.c - zip_fseek.c - zip_get_archive_comment.c - zip_get_archive_flag.c - zip_get_compression_implementation.c - zip_get_encryption_implementation.c - zip_get_file_comment.c - zip_get_name.c - zip_get_num_entries.c - zip_get_num_files.c - zip_hash.c - zip_io_util.c - zip_memdup.c - zip_name_locate.c - zip_new.c - zip_open.c - zip_rename.c - zip_replace.c - zip_set_archive_comment.c - zip_set_archive_flag.c - zip_set_default_password.c - zip_set_file_comment.c - zip_set_file_compression.c - zip_set_name.c - zip_source_begin_write.c - zip_source_buffer.c - zip_source_call.c - zip_source_close.c - zip_source_commit_write.c - zip_source_crc.c - zip_source_deflate.c - zip_source_error.c - zip_source_filep.c - zip_source_free.c - zip_source_function.c - zip_source_is_deleted.c - zip_source_layered.c - zip_source_open.c - zip_source_pkware.c - zip_source_read.c - zip_source_remove.c - zip_source_rollback_write.c - zip_source_seek.c - zip_source_seek_write.c - zip_source_stat.c - zip_source_supports.c - zip_source_tell.c - zip_source_tell_write.c - zip_source_window.c - zip_source_winzip_aes_decode.c - zip_source_winzip_aes_encode.c - zip_source_write.c - zip_source_zip.c - zip_source_zip_new.c - zip_stat.c - zip_stat_index.c - zip_stat_init.c - zip_strerror.c - zip_string.c - zip_unchange.c - zip_unchange_all.c - zip_unchange_archive.c - zip_unchange_data.c - zip_utf-8.c -) - -IF(WIN32) - SET(LIBZIP_OPSYS_FILES - zip_random_win32.c - zip_source_win32a.c - zip_source_win32handle.c - zip_source_win32utf8.c - zip_source_win32w.c - ) -ELSE(WIN32) - SET(LIBZIP_OPSYS_FILES - zip_random_unix.c - zip_source_file.c - ) -ENDIF(WIN32) - -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/gladman-fcrypt - ${CMAKE_CURRENT_BINARY_DIR}/..) - -CHECK_FUNCTION_EXISTS(mkstemp HAVE_MKSTEMP) -IF(NOT HAVE_MKSTEMP) - SET(LIBZIP_EXTRA_FILES mkstemp.c) -ENDIF(NOT HAVE_MKSTEMP) - -ADD_LIBRARY(zipstatic STATIC ${LIBZIP_SOURCES} ${LIBZIP_EXTRA_FILES} ${LIBZIP_OPSYS_FILES}) -SET_TARGET_PROPERTIES(zipstatic PROPERTIES VERSION 3.0 SOVERSION 3 ) -TARGET_LINK_LIBRARIES(zipstatic ${ZLIB_LIBRARY}) -target_include_directories(zipstatic PUBLIC - $ - $ # -) -INSTALL(TARGETS zipstatic - RUNTIME DESTINATION bin - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib) diff --git a/libzip-1.2.0/lib/Makefile.am b/libzip-1.2.0/lib/Makefile.am deleted file mode 100644 index 42ecccdf6..000000000 --- a/libzip-1.2.0/lib/Makefile.am +++ /dev/null @@ -1,155 +0,0 @@ -# for 'make dist' -SUBDIRS= gladman-fcrypt - -AM_CFLAGS= @CFLAG_VISIBILITY@ -libincludedir = ${libdir}/@PACKAGE@/include - -lib_LTLIBRARIES = libzip.la -noinst_HEADERS = zipint.h gladman-fcrypt.h -include_HEADERS = zip.h -nodist_libinclude_HEADERS = zipconf.h - -# also update CMakeLists.txt when changing version -libzip_la_LDFLAGS=-no-undefined -version-info 5:0:0 -libzip_la_CPPFLAGS=-I$(srcdir)/gladman-fcrypt -libzip_la_LIBADD=@LTLIBOBJS@ - -if WIN32_HOST -OS_SOURCES=\ - zip_random_win32.c \ - zip_source_win32a.c \ - zip_source_win32handle.c \ - zip_source_win32utf8.c \ - zip_source_win32w.c -else -OS_SOURCES=\ - zip_random_unix.c \ - zip_source_file.c -endif - -libzip_la_SOURCES=\ - ${OS_SOURCES} \ - gladman-fcrypt.c \ - zip_add.c \ - zip_add_dir.c \ - zip_add_entry.c \ - zip_buffer.c \ - zip_close.c \ - zip_delete.c \ - zip_dir_add.c \ - zip_dirent.c \ - zip_discard.c \ - zip_entry.c \ - zip_err_str.c \ - zip_error.c \ - zip_error_clear.c \ - zip_error_get.c \ - zip_error_get_sys_type.c \ - zip_error_strerror.c \ - zip_error_to_str.c \ - zip_extra_field.c \ - zip_extra_field_api.c \ - zip_fclose.c \ - zip_fdopen.c \ - zip_file_add.c \ - zip_file_error_clear.c \ - zip_file_error_get.c \ - zip_file_get_comment.c \ - zip_file_get_external_attributes.c \ - zip_file_get_offset.c \ - zip_file_rename.c \ - zip_file_replace.c \ - zip_file_set_comment.c \ - zip_file_set_encryption.c \ - zip_file_set_external_attributes.c \ - zip_file_set_mtime.c \ - zip_file_strerror.c \ - zip_filerange_crc.c \ - zip_fopen.c \ - zip_fopen_encrypted.c \ - zip_fopen_index.c \ - zip_fopen_index_encrypted.c \ - zip_fread.c \ - zip_fseek.c \ - zip_ftell.c \ - zip_get_archive_comment.c \ - zip_get_archive_flag.c \ - zip_get_compression_implementation.c \ - zip_get_encryption_implementation.c \ - zip_get_file_comment.c \ - zip_get_num_entries.c \ - zip_get_num_files.c \ - zip_get_name.c \ - zip_hash.c \ - zip_io_util.c \ - zip_memdup.c \ - zip_name_locate.c \ - zip_new.c \ - zip_open.c \ - zip_rename.c \ - zip_replace.c \ - zip_set_archive_comment.c \ - zip_set_archive_flag.c \ - zip_set_default_password.c \ - zip_set_file_comment.c \ - zip_set_file_compression.c \ - zip_set_name.c \ - zip_source_begin_write.c \ - zip_source_buffer.c \ - zip_source_call.c \ - zip_source_close.c \ - zip_source_commit_write.c \ - zip_source_crc.c \ - zip_source_deflate.c \ - zip_source_error.c \ - zip_source_filep.c \ - zip_source_free.c \ - zip_source_function.c \ - zip_source_is_deleted.c \ - zip_source_layered.c \ - zip_source_open.c \ - zip_source_pkware.c \ - zip_source_read.c \ - zip_source_remove.c \ - zip_source_rollback_write.c \ - zip_source_seek.c \ - zip_source_seek_write.c \ - zip_source_stat.c \ - zip_source_supports.c \ - zip_source_tell.c \ - zip_source_tell_write.c \ - zip_source_window.c \ - zip_source_winzip_aes_decode.c \ - zip_source_winzip_aes_encode.c \ - zip_source_write.c \ - zip_source_zip.c \ - zip_source_zip_new.c \ - zip_stat.c \ - zip_stat_index.c \ - zip_stat_init.c \ - zip_strerror.c \ - zip_string.c \ - zip_unchange.c \ - zip_unchange_all.c \ - zip_unchange_archive.c \ - zip_unchange_data.c \ - zip_utf-8.c - -BUILT_SOURCES=zipconf.h -CLEANFILES= ${BUILT_SOURCES} - -EXTRA_DIST= CMakeLists.txt \ - compat.h \ - make_zip_err_str.sh \ - make_zipconf.sh \ - zip_source_win32a.c \ - zip_source_win32handle.c \ - zip_source_win32utf8.c \ - zip_source_win32w.c \ - zipwin32.h - -zip_err_str.c: zip.h make_zip_err_str.sh - sh $(srcdir)/make_zip_err_str.sh $(srcdir)/zip.h zip_err_str.c - -zipconf.h: ${top_builddir}/config.h make_zipconf.sh - sh ${srcdir}/make_zipconf.sh ${top_builddir}/config.h zipconf.h diff --git a/libzip-1.2.0/lib/Makefile.in b/libzip-1.2.0/lib/Makefile.in deleted file mode 100644 index e502a7c4e..000000000 --- a/libzip-1.2.0/lib/Makefile.in +++ /dev/null @@ -1,1980 +0,0 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2014 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 = lib -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(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/visibility.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(include_HEADERS) \ - $(noinst_HEADERS) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -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)$(includedir)" \ - "$(DESTDIR)$(libincludedir)" -LTLIBRARIES = $(lib_LTLIBRARIES) -libzip_la_DEPENDENCIES = @LTLIBOBJS@ -am__libzip_la_SOURCES_DIST = zip_random_unix.c zip_source_file.c \ - zip_random_win32.c zip_source_win32a.c \ - zip_source_win32handle.c zip_source_win32utf8.c \ - zip_source_win32w.c gladman-fcrypt.c zip_add.c zip_add_dir.c \ - zip_add_entry.c zip_buffer.c zip_close.c zip_delete.c \ - zip_dir_add.c zip_dirent.c zip_discard.c zip_entry.c \ - zip_err_str.c zip_error.c zip_error_clear.c zip_error_get.c \ - zip_error_get_sys_type.c zip_error_strerror.c \ - zip_error_to_str.c zip_extra_field.c zip_extra_field_api.c \ - zip_fclose.c zip_fdopen.c zip_file_add.c \ - zip_file_error_clear.c zip_file_error_get.c \ - zip_file_get_comment.c zip_file_get_external_attributes.c \ - zip_file_get_offset.c zip_file_rename.c zip_file_replace.c \ - zip_file_set_comment.c zip_file_set_encryption.c \ - zip_file_set_external_attributes.c zip_file_set_mtime.c \ - zip_file_strerror.c zip_filerange_crc.c zip_fopen.c \ - zip_fopen_encrypted.c zip_fopen_index.c \ - zip_fopen_index_encrypted.c zip_fread.c zip_fseek.c \ - zip_ftell.c zip_get_archive_comment.c zip_get_archive_flag.c \ - zip_get_compression_implementation.c \ - zip_get_encryption_implementation.c zip_get_file_comment.c \ - zip_get_num_entries.c zip_get_num_files.c zip_get_name.c \ - zip_hash.c zip_io_util.c zip_memdup.c zip_name_locate.c \ - zip_new.c zip_open.c zip_rename.c zip_replace.c \ - zip_set_archive_comment.c zip_set_archive_flag.c \ - zip_set_default_password.c zip_set_file_comment.c \ - zip_set_file_compression.c zip_set_name.c \ - zip_source_begin_write.c zip_source_buffer.c zip_source_call.c \ - zip_source_close.c zip_source_commit_write.c zip_source_crc.c \ - zip_source_deflate.c zip_source_error.c zip_source_filep.c \ - zip_source_free.c zip_source_function.c \ - zip_source_is_deleted.c zip_source_layered.c zip_source_open.c \ - zip_source_pkware.c zip_source_read.c zip_source_remove.c \ - zip_source_rollback_write.c zip_source_seek.c \ - zip_source_seek_write.c zip_source_stat.c \ - zip_source_supports.c zip_source_tell.c \ - zip_source_tell_write.c zip_source_window.c \ - zip_source_winzip_aes_decode.c zip_source_winzip_aes_encode.c \ - zip_source_write.c zip_source_zip.c zip_source_zip_new.c \ - zip_stat.c zip_stat_index.c zip_stat_init.c zip_strerror.c \ - zip_string.c zip_unchange.c zip_unchange_all.c \ - zip_unchange_archive.c zip_unchange_data.c zip_utf-8.c -@WIN32_HOST_FALSE@am__objects_1 = libzip_la-zip_random_unix.lo \ -@WIN32_HOST_FALSE@ libzip_la-zip_source_file.lo -@WIN32_HOST_TRUE@am__objects_1 = libzip_la-zip_random_win32.lo \ -@WIN32_HOST_TRUE@ libzip_la-zip_source_win32a.lo \ -@WIN32_HOST_TRUE@ libzip_la-zip_source_win32handle.lo \ -@WIN32_HOST_TRUE@ libzip_la-zip_source_win32utf8.lo \ -@WIN32_HOST_TRUE@ libzip_la-zip_source_win32w.lo -am_libzip_la_OBJECTS = $(am__objects_1) libzip_la-gladman-fcrypt.lo \ - libzip_la-zip_add.lo libzip_la-zip_add_dir.lo \ - libzip_la-zip_add_entry.lo libzip_la-zip_buffer.lo \ - libzip_la-zip_close.lo libzip_la-zip_delete.lo \ - libzip_la-zip_dir_add.lo libzip_la-zip_dirent.lo \ - libzip_la-zip_discard.lo libzip_la-zip_entry.lo \ - libzip_la-zip_err_str.lo libzip_la-zip_error.lo \ - libzip_la-zip_error_clear.lo libzip_la-zip_error_get.lo \ - libzip_la-zip_error_get_sys_type.lo \ - libzip_la-zip_error_strerror.lo libzip_la-zip_error_to_str.lo \ - libzip_la-zip_extra_field.lo libzip_la-zip_extra_field_api.lo \ - libzip_la-zip_fclose.lo libzip_la-zip_fdopen.lo \ - libzip_la-zip_file_add.lo libzip_la-zip_file_error_clear.lo \ - libzip_la-zip_file_error_get.lo \ - libzip_la-zip_file_get_comment.lo \ - libzip_la-zip_file_get_external_attributes.lo \ - libzip_la-zip_file_get_offset.lo libzip_la-zip_file_rename.lo \ - libzip_la-zip_file_replace.lo \ - libzip_la-zip_file_set_comment.lo \ - libzip_la-zip_file_set_encryption.lo \ - libzip_la-zip_file_set_external_attributes.lo \ - libzip_la-zip_file_set_mtime.lo libzip_la-zip_file_strerror.lo \ - libzip_la-zip_filerange_crc.lo libzip_la-zip_fopen.lo \ - libzip_la-zip_fopen_encrypted.lo libzip_la-zip_fopen_index.lo \ - libzip_la-zip_fopen_index_encrypted.lo libzip_la-zip_fread.lo \ - libzip_la-zip_fseek.lo libzip_la-zip_ftell.lo \ - libzip_la-zip_get_archive_comment.lo \ - libzip_la-zip_get_archive_flag.lo \ - libzip_la-zip_get_compression_implementation.lo \ - libzip_la-zip_get_encryption_implementation.lo \ - libzip_la-zip_get_file_comment.lo \ - libzip_la-zip_get_num_entries.lo \ - libzip_la-zip_get_num_files.lo libzip_la-zip_get_name.lo \ - libzip_la-zip_hash.lo libzip_la-zip_io_util.lo \ - libzip_la-zip_memdup.lo libzip_la-zip_name_locate.lo \ - libzip_la-zip_new.lo libzip_la-zip_open.lo \ - libzip_la-zip_rename.lo libzip_la-zip_replace.lo \ - libzip_la-zip_set_archive_comment.lo \ - libzip_la-zip_set_archive_flag.lo \ - libzip_la-zip_set_default_password.lo \ - libzip_la-zip_set_file_comment.lo \ - libzip_la-zip_set_file_compression.lo \ - libzip_la-zip_set_name.lo libzip_la-zip_source_begin_write.lo \ - libzip_la-zip_source_buffer.lo libzip_la-zip_source_call.lo \ - libzip_la-zip_source_close.lo \ - libzip_la-zip_source_commit_write.lo \ - libzip_la-zip_source_crc.lo libzip_la-zip_source_deflate.lo \ - libzip_la-zip_source_error.lo libzip_la-zip_source_filep.lo \ - libzip_la-zip_source_free.lo libzip_la-zip_source_function.lo \ - libzip_la-zip_source_is_deleted.lo \ - libzip_la-zip_source_layered.lo libzip_la-zip_source_open.lo \ - libzip_la-zip_source_pkware.lo libzip_la-zip_source_read.lo \ - libzip_la-zip_source_remove.lo \ - libzip_la-zip_source_rollback_write.lo \ - libzip_la-zip_source_seek.lo \ - libzip_la-zip_source_seek_write.lo \ - libzip_la-zip_source_stat.lo libzip_la-zip_source_supports.lo \ - libzip_la-zip_source_tell.lo \ - libzip_la-zip_source_tell_write.lo \ - libzip_la-zip_source_window.lo \ - libzip_la-zip_source_winzip_aes_decode.lo \ - libzip_la-zip_source_winzip_aes_encode.lo \ - libzip_la-zip_source_write.lo libzip_la-zip_source_zip.lo \ - libzip_la-zip_source_zip_new.lo libzip_la-zip_stat.lo \ - libzip_la-zip_stat_index.lo libzip_la-zip_stat_init.lo \ - libzip_la-zip_strerror.lo libzip_la-zip_string.lo \ - libzip_la-zip_unchange.lo libzip_la-zip_unchange_all.lo \ - libzip_la-zip_unchange_archive.lo \ - libzip_la-zip_unchange_data.lo libzip_la-zip_utf-8.lo -libzip_la_OBJECTS = $(am_libzip_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 = -libzip_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(libzip_la_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libzip_la_SOURCES) -DIST_SOURCES = $(am__libzip_la_SOURCES_DIST) -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 -HEADERS = $(include_HEADERS) $(nodist_libinclude_HEADERS) \ - $(noinst_HEADERS) -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \ - mkstemp.c -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DLSYM_LIB = @DLSYM_LIB@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -HAVE_VISIBILITY = @HAVE_VISIBILITY@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MANFMT = @MANFMT@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -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@ -PKG_CONFIG_RPATH = @PKG_CONFIG_RPATH@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -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@ - -# for 'make dist' -SUBDIRS = gladman-fcrypt -AM_CFLAGS = @CFLAG_VISIBILITY@ -libincludedir = ${libdir}/@PACKAGE@/include -lib_LTLIBRARIES = libzip.la -noinst_HEADERS = zipint.h gladman-fcrypt.h -include_HEADERS = zip.h -nodist_libinclude_HEADERS = zipconf.h - -# also update CMakeLists.txt when changing version -libzip_la_LDFLAGS = -no-undefined -version-info 5:0:0 -libzip_la_CPPFLAGS = -I$(srcdir)/gladman-fcrypt -libzip_la_LIBADD = @LTLIBOBJS@ -@WIN32_HOST_FALSE@OS_SOURCES = \ -@WIN32_HOST_FALSE@ zip_random_unix.c \ -@WIN32_HOST_FALSE@ zip_source_file.c - -@WIN32_HOST_TRUE@OS_SOURCES = \ -@WIN32_HOST_TRUE@ zip_random_win32.c \ -@WIN32_HOST_TRUE@ zip_source_win32a.c \ -@WIN32_HOST_TRUE@ zip_source_win32handle.c \ -@WIN32_HOST_TRUE@ zip_source_win32utf8.c \ -@WIN32_HOST_TRUE@ zip_source_win32w.c - -libzip_la_SOURCES = \ - ${OS_SOURCES} \ - gladman-fcrypt.c \ - zip_add.c \ - zip_add_dir.c \ - zip_add_entry.c \ - zip_buffer.c \ - zip_close.c \ - zip_delete.c \ - zip_dir_add.c \ - zip_dirent.c \ - zip_discard.c \ - zip_entry.c \ - zip_err_str.c \ - zip_error.c \ - zip_error_clear.c \ - zip_error_get.c \ - zip_error_get_sys_type.c \ - zip_error_strerror.c \ - zip_error_to_str.c \ - zip_extra_field.c \ - zip_extra_field_api.c \ - zip_fclose.c \ - zip_fdopen.c \ - zip_file_add.c \ - zip_file_error_clear.c \ - zip_file_error_get.c \ - zip_file_get_comment.c \ - zip_file_get_external_attributes.c \ - zip_file_get_offset.c \ - zip_file_rename.c \ - zip_file_replace.c \ - zip_file_set_comment.c \ - zip_file_set_encryption.c \ - zip_file_set_external_attributes.c \ - zip_file_set_mtime.c \ - zip_file_strerror.c \ - zip_filerange_crc.c \ - zip_fopen.c \ - zip_fopen_encrypted.c \ - zip_fopen_index.c \ - zip_fopen_index_encrypted.c \ - zip_fread.c \ - zip_fseek.c \ - zip_ftell.c \ - zip_get_archive_comment.c \ - zip_get_archive_flag.c \ - zip_get_compression_implementation.c \ - zip_get_encryption_implementation.c \ - zip_get_file_comment.c \ - zip_get_num_entries.c \ - zip_get_num_files.c \ - zip_get_name.c \ - zip_hash.c \ - zip_io_util.c \ - zip_memdup.c \ - zip_name_locate.c \ - zip_new.c \ - zip_open.c \ - zip_rename.c \ - zip_replace.c \ - zip_set_archive_comment.c \ - zip_set_archive_flag.c \ - zip_set_default_password.c \ - zip_set_file_comment.c \ - zip_set_file_compression.c \ - zip_set_name.c \ - zip_source_begin_write.c \ - zip_source_buffer.c \ - zip_source_call.c \ - zip_source_close.c \ - zip_source_commit_write.c \ - zip_source_crc.c \ - zip_source_deflate.c \ - zip_source_error.c \ - zip_source_filep.c \ - zip_source_free.c \ - zip_source_function.c \ - zip_source_is_deleted.c \ - zip_source_layered.c \ - zip_source_open.c \ - zip_source_pkware.c \ - zip_source_read.c \ - zip_source_remove.c \ - zip_source_rollback_write.c \ - zip_source_seek.c \ - zip_source_seek_write.c \ - zip_source_stat.c \ - zip_source_supports.c \ - zip_source_tell.c \ - zip_source_tell_write.c \ - zip_source_window.c \ - zip_source_winzip_aes_decode.c \ - zip_source_winzip_aes_encode.c \ - zip_source_write.c \ - zip_source_zip.c \ - zip_source_zip_new.c \ - zip_stat.c \ - zip_stat_index.c \ - zip_stat_init.c \ - zip_strerror.c \ - zip_string.c \ - zip_unchange.c \ - zip_unchange_all.c \ - zip_unchange_archive.c \ - zip_unchange_data.c \ - zip_utf-8.c - -BUILT_SOURCES = zipconf.h -CLEANFILES = ${BUILT_SOURCES} -EXTRA_DIST = CMakeLists.txt \ - compat.h \ - make_zip_err_str.sh \ - make_zipconf.sh \ - zip_source_win32a.c \ - zip_source_win32handle.c \ - zip_source_win32utf8.c \ - zip_source_win32w.c \ - zipwin32.h - -all: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lib/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign lib/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -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}; \ - } - -libzip.la: $(libzip_la_OBJECTS) $(libzip_la_DEPENDENCIES) $(EXTRA_libzip_la_DEPENDENCIES) - $(AM_V_CCLD)$(libzip_la_LINK) -rpath $(libdir) $(libzip_la_OBJECTS) $(libzip_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/mkstemp.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-gladman-fcrypt.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_add.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_add_dir.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_add_entry.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_buffer.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_close.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_delete.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_dir_add.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_dirent.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_discard.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_entry.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_err_str.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_error.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_error_clear.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_error_get.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_error_get_sys_type.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_error_strerror.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_error_to_str.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_extra_field.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_extra_field_api.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_fclose.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_fdopen.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_file_add.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_file_error_clear.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_file_error_get.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_file_get_comment.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_file_get_external_attributes.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_file_get_offset.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_file_rename.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_file_replace.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_file_set_comment.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_file_set_encryption.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_file_set_external_attributes.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_file_set_mtime.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_file_strerror.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_filerange_crc.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_fopen.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_fopen_encrypted.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_fopen_index.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_fopen_index_encrypted.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_fread.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_fseek.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_ftell.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_get_archive_comment.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_get_archive_flag.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_get_compression_implementation.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_get_encryption_implementation.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_get_file_comment.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_get_name.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_get_num_entries.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_get_num_files.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_hash.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_io_util.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_memdup.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_name_locate.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_new.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_open.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_random_unix.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_random_win32.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_rename.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_replace.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_set_archive_comment.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_set_archive_flag.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_set_default_password.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_set_file_comment.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_set_file_compression.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_set_name.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_begin_write.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_buffer.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_call.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_close.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_commit_write.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_crc.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_deflate.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_error.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_file.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_filep.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_free.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_function.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_is_deleted.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_layered.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_open.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_pkware.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_read.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_remove.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_rollback_write.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_seek.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_seek_write.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_stat.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_supports.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_tell.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_tell_write.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_win32a.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_win32handle.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_win32utf8.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_win32w.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_window.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_winzip_aes_decode.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_winzip_aes_encode.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_write.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_zip.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_source_zip_new.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_stat.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_stat_index.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_stat_init.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_strerror.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_string.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_unchange.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_unchange_all.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_unchange_archive.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_unchange_data.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzip_la-zip_utf-8.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 $@ $< - -libzip_la-zip_random_unix.lo: zip_random_unix.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_random_unix.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_random_unix.Tpo -c -o libzip_la-zip_random_unix.lo `test -f 'zip_random_unix.c' || echo '$(srcdir)/'`zip_random_unix.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_random_unix.Tpo $(DEPDIR)/libzip_la-zip_random_unix.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_random_unix.c' object='libzip_la-zip_random_unix.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_random_unix.lo `test -f 'zip_random_unix.c' || echo '$(srcdir)/'`zip_random_unix.c - -libzip_la-zip_source_file.lo: zip_source_file.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_file.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_file.Tpo -c -o libzip_la-zip_source_file.lo `test -f 'zip_source_file.c' || echo '$(srcdir)/'`zip_source_file.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_file.Tpo $(DEPDIR)/libzip_la-zip_source_file.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_file.c' object='libzip_la-zip_source_file.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_file.lo `test -f 'zip_source_file.c' || echo '$(srcdir)/'`zip_source_file.c - -libzip_la-zip_random_win32.lo: zip_random_win32.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_random_win32.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_random_win32.Tpo -c -o libzip_la-zip_random_win32.lo `test -f 'zip_random_win32.c' || echo '$(srcdir)/'`zip_random_win32.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_random_win32.Tpo $(DEPDIR)/libzip_la-zip_random_win32.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_random_win32.c' object='libzip_la-zip_random_win32.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_random_win32.lo `test -f 'zip_random_win32.c' || echo '$(srcdir)/'`zip_random_win32.c - -libzip_la-zip_source_win32a.lo: zip_source_win32a.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_win32a.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_win32a.Tpo -c -o libzip_la-zip_source_win32a.lo `test -f 'zip_source_win32a.c' || echo '$(srcdir)/'`zip_source_win32a.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_win32a.Tpo $(DEPDIR)/libzip_la-zip_source_win32a.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_win32a.c' object='libzip_la-zip_source_win32a.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_win32a.lo `test -f 'zip_source_win32a.c' || echo '$(srcdir)/'`zip_source_win32a.c - -libzip_la-zip_source_win32handle.lo: zip_source_win32handle.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_win32handle.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_win32handle.Tpo -c -o libzip_la-zip_source_win32handle.lo `test -f 'zip_source_win32handle.c' || echo '$(srcdir)/'`zip_source_win32handle.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_win32handle.Tpo $(DEPDIR)/libzip_la-zip_source_win32handle.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_win32handle.c' object='libzip_la-zip_source_win32handle.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_win32handle.lo `test -f 'zip_source_win32handle.c' || echo '$(srcdir)/'`zip_source_win32handle.c - -libzip_la-zip_source_win32utf8.lo: zip_source_win32utf8.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_win32utf8.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_win32utf8.Tpo -c -o libzip_la-zip_source_win32utf8.lo `test -f 'zip_source_win32utf8.c' || echo '$(srcdir)/'`zip_source_win32utf8.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_win32utf8.Tpo $(DEPDIR)/libzip_la-zip_source_win32utf8.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_win32utf8.c' object='libzip_la-zip_source_win32utf8.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_win32utf8.lo `test -f 'zip_source_win32utf8.c' || echo '$(srcdir)/'`zip_source_win32utf8.c - -libzip_la-zip_source_win32w.lo: zip_source_win32w.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_win32w.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_win32w.Tpo -c -o libzip_la-zip_source_win32w.lo `test -f 'zip_source_win32w.c' || echo '$(srcdir)/'`zip_source_win32w.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_win32w.Tpo $(DEPDIR)/libzip_la-zip_source_win32w.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_win32w.c' object='libzip_la-zip_source_win32w.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_win32w.lo `test -f 'zip_source_win32w.c' || echo '$(srcdir)/'`zip_source_win32w.c - -libzip_la-gladman-fcrypt.lo: gladman-fcrypt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-gladman-fcrypt.lo -MD -MP -MF $(DEPDIR)/libzip_la-gladman-fcrypt.Tpo -c -o libzip_la-gladman-fcrypt.lo `test -f 'gladman-fcrypt.c' || echo '$(srcdir)/'`gladman-fcrypt.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-gladman-fcrypt.Tpo $(DEPDIR)/libzip_la-gladman-fcrypt.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gladman-fcrypt.c' object='libzip_la-gladman-fcrypt.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-gladman-fcrypt.lo `test -f 'gladman-fcrypt.c' || echo '$(srcdir)/'`gladman-fcrypt.c - -libzip_la-zip_add.lo: zip_add.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_add.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_add.Tpo -c -o libzip_la-zip_add.lo `test -f 'zip_add.c' || echo '$(srcdir)/'`zip_add.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_add.Tpo $(DEPDIR)/libzip_la-zip_add.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_add.c' object='libzip_la-zip_add.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_add.lo `test -f 'zip_add.c' || echo '$(srcdir)/'`zip_add.c - -libzip_la-zip_add_dir.lo: zip_add_dir.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_add_dir.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_add_dir.Tpo -c -o libzip_la-zip_add_dir.lo `test -f 'zip_add_dir.c' || echo '$(srcdir)/'`zip_add_dir.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_add_dir.Tpo $(DEPDIR)/libzip_la-zip_add_dir.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_add_dir.c' object='libzip_la-zip_add_dir.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_add_dir.lo `test -f 'zip_add_dir.c' || echo '$(srcdir)/'`zip_add_dir.c - -libzip_la-zip_add_entry.lo: zip_add_entry.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_add_entry.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_add_entry.Tpo -c -o libzip_la-zip_add_entry.lo `test -f 'zip_add_entry.c' || echo '$(srcdir)/'`zip_add_entry.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_add_entry.Tpo $(DEPDIR)/libzip_la-zip_add_entry.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_add_entry.c' object='libzip_la-zip_add_entry.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_add_entry.lo `test -f 'zip_add_entry.c' || echo '$(srcdir)/'`zip_add_entry.c - -libzip_la-zip_buffer.lo: zip_buffer.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_buffer.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_buffer.Tpo -c -o libzip_la-zip_buffer.lo `test -f 'zip_buffer.c' || echo '$(srcdir)/'`zip_buffer.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_buffer.Tpo $(DEPDIR)/libzip_la-zip_buffer.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_buffer.c' object='libzip_la-zip_buffer.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_buffer.lo `test -f 'zip_buffer.c' || echo '$(srcdir)/'`zip_buffer.c - -libzip_la-zip_close.lo: zip_close.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_close.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_close.Tpo -c -o libzip_la-zip_close.lo `test -f 'zip_close.c' || echo '$(srcdir)/'`zip_close.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_close.Tpo $(DEPDIR)/libzip_la-zip_close.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_close.c' object='libzip_la-zip_close.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_close.lo `test -f 'zip_close.c' || echo '$(srcdir)/'`zip_close.c - -libzip_la-zip_delete.lo: zip_delete.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_delete.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_delete.Tpo -c -o libzip_la-zip_delete.lo `test -f 'zip_delete.c' || echo '$(srcdir)/'`zip_delete.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_delete.Tpo $(DEPDIR)/libzip_la-zip_delete.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_delete.c' object='libzip_la-zip_delete.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_delete.lo `test -f 'zip_delete.c' || echo '$(srcdir)/'`zip_delete.c - -libzip_la-zip_dir_add.lo: zip_dir_add.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_dir_add.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_dir_add.Tpo -c -o libzip_la-zip_dir_add.lo `test -f 'zip_dir_add.c' || echo '$(srcdir)/'`zip_dir_add.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_dir_add.Tpo $(DEPDIR)/libzip_la-zip_dir_add.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_dir_add.c' object='libzip_la-zip_dir_add.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_dir_add.lo `test -f 'zip_dir_add.c' || echo '$(srcdir)/'`zip_dir_add.c - -libzip_la-zip_dirent.lo: zip_dirent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_dirent.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_dirent.Tpo -c -o libzip_la-zip_dirent.lo `test -f 'zip_dirent.c' || echo '$(srcdir)/'`zip_dirent.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_dirent.Tpo $(DEPDIR)/libzip_la-zip_dirent.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_dirent.c' object='libzip_la-zip_dirent.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_dirent.lo `test -f 'zip_dirent.c' || echo '$(srcdir)/'`zip_dirent.c - -libzip_la-zip_discard.lo: zip_discard.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_discard.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_discard.Tpo -c -o libzip_la-zip_discard.lo `test -f 'zip_discard.c' || echo '$(srcdir)/'`zip_discard.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_discard.Tpo $(DEPDIR)/libzip_la-zip_discard.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_discard.c' object='libzip_la-zip_discard.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_discard.lo `test -f 'zip_discard.c' || echo '$(srcdir)/'`zip_discard.c - -libzip_la-zip_entry.lo: zip_entry.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_entry.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_entry.Tpo -c -o libzip_la-zip_entry.lo `test -f 'zip_entry.c' || echo '$(srcdir)/'`zip_entry.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_entry.Tpo $(DEPDIR)/libzip_la-zip_entry.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_entry.c' object='libzip_la-zip_entry.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_entry.lo `test -f 'zip_entry.c' || echo '$(srcdir)/'`zip_entry.c - -libzip_la-zip_err_str.lo: zip_err_str.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_err_str.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_err_str.Tpo -c -o libzip_la-zip_err_str.lo `test -f 'zip_err_str.c' || echo '$(srcdir)/'`zip_err_str.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_err_str.Tpo $(DEPDIR)/libzip_la-zip_err_str.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_err_str.c' object='libzip_la-zip_err_str.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_err_str.lo `test -f 'zip_err_str.c' || echo '$(srcdir)/'`zip_err_str.c - -libzip_la-zip_error.lo: zip_error.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_error.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_error.Tpo -c -o libzip_la-zip_error.lo `test -f 'zip_error.c' || echo '$(srcdir)/'`zip_error.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_error.Tpo $(DEPDIR)/libzip_la-zip_error.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_error.c' object='libzip_la-zip_error.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_error.lo `test -f 'zip_error.c' || echo '$(srcdir)/'`zip_error.c - -libzip_la-zip_error_clear.lo: zip_error_clear.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_error_clear.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_error_clear.Tpo -c -o libzip_la-zip_error_clear.lo `test -f 'zip_error_clear.c' || echo '$(srcdir)/'`zip_error_clear.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_error_clear.Tpo $(DEPDIR)/libzip_la-zip_error_clear.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_error_clear.c' object='libzip_la-zip_error_clear.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_error_clear.lo `test -f 'zip_error_clear.c' || echo '$(srcdir)/'`zip_error_clear.c - -libzip_la-zip_error_get.lo: zip_error_get.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_error_get.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_error_get.Tpo -c -o libzip_la-zip_error_get.lo `test -f 'zip_error_get.c' || echo '$(srcdir)/'`zip_error_get.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_error_get.Tpo $(DEPDIR)/libzip_la-zip_error_get.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_error_get.c' object='libzip_la-zip_error_get.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_error_get.lo `test -f 'zip_error_get.c' || echo '$(srcdir)/'`zip_error_get.c - -libzip_la-zip_error_get_sys_type.lo: zip_error_get_sys_type.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_error_get_sys_type.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_error_get_sys_type.Tpo -c -o libzip_la-zip_error_get_sys_type.lo `test -f 'zip_error_get_sys_type.c' || echo '$(srcdir)/'`zip_error_get_sys_type.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_error_get_sys_type.Tpo $(DEPDIR)/libzip_la-zip_error_get_sys_type.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_error_get_sys_type.c' object='libzip_la-zip_error_get_sys_type.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_error_get_sys_type.lo `test -f 'zip_error_get_sys_type.c' || echo '$(srcdir)/'`zip_error_get_sys_type.c - -libzip_la-zip_error_strerror.lo: zip_error_strerror.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_error_strerror.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_error_strerror.Tpo -c -o libzip_la-zip_error_strerror.lo `test -f 'zip_error_strerror.c' || echo '$(srcdir)/'`zip_error_strerror.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_error_strerror.Tpo $(DEPDIR)/libzip_la-zip_error_strerror.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_error_strerror.c' object='libzip_la-zip_error_strerror.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_error_strerror.lo `test -f 'zip_error_strerror.c' || echo '$(srcdir)/'`zip_error_strerror.c - -libzip_la-zip_error_to_str.lo: zip_error_to_str.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_error_to_str.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_error_to_str.Tpo -c -o libzip_la-zip_error_to_str.lo `test -f 'zip_error_to_str.c' || echo '$(srcdir)/'`zip_error_to_str.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_error_to_str.Tpo $(DEPDIR)/libzip_la-zip_error_to_str.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_error_to_str.c' object='libzip_la-zip_error_to_str.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_error_to_str.lo `test -f 'zip_error_to_str.c' || echo '$(srcdir)/'`zip_error_to_str.c - -libzip_la-zip_extra_field.lo: zip_extra_field.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_extra_field.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_extra_field.Tpo -c -o libzip_la-zip_extra_field.lo `test -f 'zip_extra_field.c' || echo '$(srcdir)/'`zip_extra_field.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_extra_field.Tpo $(DEPDIR)/libzip_la-zip_extra_field.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_extra_field.c' object='libzip_la-zip_extra_field.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_extra_field.lo `test -f 'zip_extra_field.c' || echo '$(srcdir)/'`zip_extra_field.c - -libzip_la-zip_extra_field_api.lo: zip_extra_field_api.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_extra_field_api.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_extra_field_api.Tpo -c -o libzip_la-zip_extra_field_api.lo `test -f 'zip_extra_field_api.c' || echo '$(srcdir)/'`zip_extra_field_api.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_extra_field_api.Tpo $(DEPDIR)/libzip_la-zip_extra_field_api.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_extra_field_api.c' object='libzip_la-zip_extra_field_api.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_extra_field_api.lo `test -f 'zip_extra_field_api.c' || echo '$(srcdir)/'`zip_extra_field_api.c - -libzip_la-zip_fclose.lo: zip_fclose.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_fclose.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_fclose.Tpo -c -o libzip_la-zip_fclose.lo `test -f 'zip_fclose.c' || echo '$(srcdir)/'`zip_fclose.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_fclose.Tpo $(DEPDIR)/libzip_la-zip_fclose.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_fclose.c' object='libzip_la-zip_fclose.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_fclose.lo `test -f 'zip_fclose.c' || echo '$(srcdir)/'`zip_fclose.c - -libzip_la-zip_fdopen.lo: zip_fdopen.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_fdopen.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_fdopen.Tpo -c -o libzip_la-zip_fdopen.lo `test -f 'zip_fdopen.c' || echo '$(srcdir)/'`zip_fdopen.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_fdopen.Tpo $(DEPDIR)/libzip_la-zip_fdopen.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_fdopen.c' object='libzip_la-zip_fdopen.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_fdopen.lo `test -f 'zip_fdopen.c' || echo '$(srcdir)/'`zip_fdopen.c - -libzip_la-zip_file_add.lo: zip_file_add.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_file_add.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_file_add.Tpo -c -o libzip_la-zip_file_add.lo `test -f 'zip_file_add.c' || echo '$(srcdir)/'`zip_file_add.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_file_add.Tpo $(DEPDIR)/libzip_la-zip_file_add.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_file_add.c' object='libzip_la-zip_file_add.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_file_add.lo `test -f 'zip_file_add.c' || echo '$(srcdir)/'`zip_file_add.c - -libzip_la-zip_file_error_clear.lo: zip_file_error_clear.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_file_error_clear.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_file_error_clear.Tpo -c -o libzip_la-zip_file_error_clear.lo `test -f 'zip_file_error_clear.c' || echo '$(srcdir)/'`zip_file_error_clear.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_file_error_clear.Tpo $(DEPDIR)/libzip_la-zip_file_error_clear.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_file_error_clear.c' object='libzip_la-zip_file_error_clear.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_file_error_clear.lo `test -f 'zip_file_error_clear.c' || echo '$(srcdir)/'`zip_file_error_clear.c - -libzip_la-zip_file_error_get.lo: zip_file_error_get.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_file_error_get.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_file_error_get.Tpo -c -o libzip_la-zip_file_error_get.lo `test -f 'zip_file_error_get.c' || echo '$(srcdir)/'`zip_file_error_get.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_file_error_get.Tpo $(DEPDIR)/libzip_la-zip_file_error_get.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_file_error_get.c' object='libzip_la-zip_file_error_get.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_file_error_get.lo `test -f 'zip_file_error_get.c' || echo '$(srcdir)/'`zip_file_error_get.c - -libzip_la-zip_file_get_comment.lo: zip_file_get_comment.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_file_get_comment.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_file_get_comment.Tpo -c -o libzip_la-zip_file_get_comment.lo `test -f 'zip_file_get_comment.c' || echo '$(srcdir)/'`zip_file_get_comment.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_file_get_comment.Tpo $(DEPDIR)/libzip_la-zip_file_get_comment.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_file_get_comment.c' object='libzip_la-zip_file_get_comment.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_file_get_comment.lo `test -f 'zip_file_get_comment.c' || echo '$(srcdir)/'`zip_file_get_comment.c - -libzip_la-zip_file_get_external_attributes.lo: zip_file_get_external_attributes.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_file_get_external_attributes.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_file_get_external_attributes.Tpo -c -o libzip_la-zip_file_get_external_attributes.lo `test -f 'zip_file_get_external_attributes.c' || echo '$(srcdir)/'`zip_file_get_external_attributes.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_file_get_external_attributes.Tpo $(DEPDIR)/libzip_la-zip_file_get_external_attributes.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_file_get_external_attributes.c' object='libzip_la-zip_file_get_external_attributes.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_file_get_external_attributes.lo `test -f 'zip_file_get_external_attributes.c' || echo '$(srcdir)/'`zip_file_get_external_attributes.c - -libzip_la-zip_file_get_offset.lo: zip_file_get_offset.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_file_get_offset.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_file_get_offset.Tpo -c -o libzip_la-zip_file_get_offset.lo `test -f 'zip_file_get_offset.c' || echo '$(srcdir)/'`zip_file_get_offset.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_file_get_offset.Tpo $(DEPDIR)/libzip_la-zip_file_get_offset.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_file_get_offset.c' object='libzip_la-zip_file_get_offset.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_file_get_offset.lo `test -f 'zip_file_get_offset.c' || echo '$(srcdir)/'`zip_file_get_offset.c - -libzip_la-zip_file_rename.lo: zip_file_rename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_file_rename.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_file_rename.Tpo -c -o libzip_la-zip_file_rename.lo `test -f 'zip_file_rename.c' || echo '$(srcdir)/'`zip_file_rename.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_file_rename.Tpo $(DEPDIR)/libzip_la-zip_file_rename.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_file_rename.c' object='libzip_la-zip_file_rename.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_file_rename.lo `test -f 'zip_file_rename.c' || echo '$(srcdir)/'`zip_file_rename.c - -libzip_la-zip_file_replace.lo: zip_file_replace.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_file_replace.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_file_replace.Tpo -c -o libzip_la-zip_file_replace.lo `test -f 'zip_file_replace.c' || echo '$(srcdir)/'`zip_file_replace.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_file_replace.Tpo $(DEPDIR)/libzip_la-zip_file_replace.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_file_replace.c' object='libzip_la-zip_file_replace.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_file_replace.lo `test -f 'zip_file_replace.c' || echo '$(srcdir)/'`zip_file_replace.c - -libzip_la-zip_file_set_comment.lo: zip_file_set_comment.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_file_set_comment.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_file_set_comment.Tpo -c -o libzip_la-zip_file_set_comment.lo `test -f 'zip_file_set_comment.c' || echo '$(srcdir)/'`zip_file_set_comment.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_file_set_comment.Tpo $(DEPDIR)/libzip_la-zip_file_set_comment.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_file_set_comment.c' object='libzip_la-zip_file_set_comment.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_file_set_comment.lo `test -f 'zip_file_set_comment.c' || echo '$(srcdir)/'`zip_file_set_comment.c - -libzip_la-zip_file_set_encryption.lo: zip_file_set_encryption.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_file_set_encryption.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_file_set_encryption.Tpo -c -o libzip_la-zip_file_set_encryption.lo `test -f 'zip_file_set_encryption.c' || echo '$(srcdir)/'`zip_file_set_encryption.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_file_set_encryption.Tpo $(DEPDIR)/libzip_la-zip_file_set_encryption.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_file_set_encryption.c' object='libzip_la-zip_file_set_encryption.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_file_set_encryption.lo `test -f 'zip_file_set_encryption.c' || echo '$(srcdir)/'`zip_file_set_encryption.c - -libzip_la-zip_file_set_external_attributes.lo: zip_file_set_external_attributes.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_file_set_external_attributes.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_file_set_external_attributes.Tpo -c -o libzip_la-zip_file_set_external_attributes.lo `test -f 'zip_file_set_external_attributes.c' || echo '$(srcdir)/'`zip_file_set_external_attributes.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_file_set_external_attributes.Tpo $(DEPDIR)/libzip_la-zip_file_set_external_attributes.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_file_set_external_attributes.c' object='libzip_la-zip_file_set_external_attributes.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_file_set_external_attributes.lo `test -f 'zip_file_set_external_attributes.c' || echo '$(srcdir)/'`zip_file_set_external_attributes.c - -libzip_la-zip_file_set_mtime.lo: zip_file_set_mtime.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_file_set_mtime.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_file_set_mtime.Tpo -c -o libzip_la-zip_file_set_mtime.lo `test -f 'zip_file_set_mtime.c' || echo '$(srcdir)/'`zip_file_set_mtime.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_file_set_mtime.Tpo $(DEPDIR)/libzip_la-zip_file_set_mtime.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_file_set_mtime.c' object='libzip_la-zip_file_set_mtime.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_file_set_mtime.lo `test -f 'zip_file_set_mtime.c' || echo '$(srcdir)/'`zip_file_set_mtime.c - -libzip_la-zip_file_strerror.lo: zip_file_strerror.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_file_strerror.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_file_strerror.Tpo -c -o libzip_la-zip_file_strerror.lo `test -f 'zip_file_strerror.c' || echo '$(srcdir)/'`zip_file_strerror.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_file_strerror.Tpo $(DEPDIR)/libzip_la-zip_file_strerror.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_file_strerror.c' object='libzip_la-zip_file_strerror.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_file_strerror.lo `test -f 'zip_file_strerror.c' || echo '$(srcdir)/'`zip_file_strerror.c - -libzip_la-zip_filerange_crc.lo: zip_filerange_crc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_filerange_crc.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_filerange_crc.Tpo -c -o libzip_la-zip_filerange_crc.lo `test -f 'zip_filerange_crc.c' || echo '$(srcdir)/'`zip_filerange_crc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_filerange_crc.Tpo $(DEPDIR)/libzip_la-zip_filerange_crc.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_filerange_crc.c' object='libzip_la-zip_filerange_crc.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_filerange_crc.lo `test -f 'zip_filerange_crc.c' || echo '$(srcdir)/'`zip_filerange_crc.c - -libzip_la-zip_fopen.lo: zip_fopen.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_fopen.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_fopen.Tpo -c -o libzip_la-zip_fopen.lo `test -f 'zip_fopen.c' || echo '$(srcdir)/'`zip_fopen.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_fopen.Tpo $(DEPDIR)/libzip_la-zip_fopen.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_fopen.c' object='libzip_la-zip_fopen.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_fopen.lo `test -f 'zip_fopen.c' || echo '$(srcdir)/'`zip_fopen.c - -libzip_la-zip_fopen_encrypted.lo: zip_fopen_encrypted.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_fopen_encrypted.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_fopen_encrypted.Tpo -c -o libzip_la-zip_fopen_encrypted.lo `test -f 'zip_fopen_encrypted.c' || echo '$(srcdir)/'`zip_fopen_encrypted.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_fopen_encrypted.Tpo $(DEPDIR)/libzip_la-zip_fopen_encrypted.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_fopen_encrypted.c' object='libzip_la-zip_fopen_encrypted.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_fopen_encrypted.lo `test -f 'zip_fopen_encrypted.c' || echo '$(srcdir)/'`zip_fopen_encrypted.c - -libzip_la-zip_fopen_index.lo: zip_fopen_index.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_fopen_index.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_fopen_index.Tpo -c -o libzip_la-zip_fopen_index.lo `test -f 'zip_fopen_index.c' || echo '$(srcdir)/'`zip_fopen_index.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_fopen_index.Tpo $(DEPDIR)/libzip_la-zip_fopen_index.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_fopen_index.c' object='libzip_la-zip_fopen_index.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_fopen_index.lo `test -f 'zip_fopen_index.c' || echo '$(srcdir)/'`zip_fopen_index.c - -libzip_la-zip_fopen_index_encrypted.lo: zip_fopen_index_encrypted.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_fopen_index_encrypted.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_fopen_index_encrypted.Tpo -c -o libzip_la-zip_fopen_index_encrypted.lo `test -f 'zip_fopen_index_encrypted.c' || echo '$(srcdir)/'`zip_fopen_index_encrypted.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_fopen_index_encrypted.Tpo $(DEPDIR)/libzip_la-zip_fopen_index_encrypted.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_fopen_index_encrypted.c' object='libzip_la-zip_fopen_index_encrypted.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_fopen_index_encrypted.lo `test -f 'zip_fopen_index_encrypted.c' || echo '$(srcdir)/'`zip_fopen_index_encrypted.c - -libzip_la-zip_fread.lo: zip_fread.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_fread.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_fread.Tpo -c -o libzip_la-zip_fread.lo `test -f 'zip_fread.c' || echo '$(srcdir)/'`zip_fread.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_fread.Tpo $(DEPDIR)/libzip_la-zip_fread.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_fread.c' object='libzip_la-zip_fread.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_fread.lo `test -f 'zip_fread.c' || echo '$(srcdir)/'`zip_fread.c - -libzip_la-zip_fseek.lo: zip_fseek.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_fseek.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_fseek.Tpo -c -o libzip_la-zip_fseek.lo `test -f 'zip_fseek.c' || echo '$(srcdir)/'`zip_fseek.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_fseek.Tpo $(DEPDIR)/libzip_la-zip_fseek.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_fseek.c' object='libzip_la-zip_fseek.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_fseek.lo `test -f 'zip_fseek.c' || echo '$(srcdir)/'`zip_fseek.c - -libzip_la-zip_ftell.lo: zip_ftell.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_ftell.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_ftell.Tpo -c -o libzip_la-zip_ftell.lo `test -f 'zip_ftell.c' || echo '$(srcdir)/'`zip_ftell.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_ftell.Tpo $(DEPDIR)/libzip_la-zip_ftell.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_ftell.c' object='libzip_la-zip_ftell.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_ftell.lo `test -f 'zip_ftell.c' || echo '$(srcdir)/'`zip_ftell.c - -libzip_la-zip_get_archive_comment.lo: zip_get_archive_comment.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_get_archive_comment.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_get_archive_comment.Tpo -c -o libzip_la-zip_get_archive_comment.lo `test -f 'zip_get_archive_comment.c' || echo '$(srcdir)/'`zip_get_archive_comment.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_get_archive_comment.Tpo $(DEPDIR)/libzip_la-zip_get_archive_comment.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_get_archive_comment.c' object='libzip_la-zip_get_archive_comment.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_get_archive_comment.lo `test -f 'zip_get_archive_comment.c' || echo '$(srcdir)/'`zip_get_archive_comment.c - -libzip_la-zip_get_archive_flag.lo: zip_get_archive_flag.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_get_archive_flag.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_get_archive_flag.Tpo -c -o libzip_la-zip_get_archive_flag.lo `test -f 'zip_get_archive_flag.c' || echo '$(srcdir)/'`zip_get_archive_flag.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_get_archive_flag.Tpo $(DEPDIR)/libzip_la-zip_get_archive_flag.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_get_archive_flag.c' object='libzip_la-zip_get_archive_flag.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_get_archive_flag.lo `test -f 'zip_get_archive_flag.c' || echo '$(srcdir)/'`zip_get_archive_flag.c - -libzip_la-zip_get_compression_implementation.lo: zip_get_compression_implementation.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_get_compression_implementation.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_get_compression_implementation.Tpo -c -o libzip_la-zip_get_compression_implementation.lo `test -f 'zip_get_compression_implementation.c' || echo '$(srcdir)/'`zip_get_compression_implementation.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_get_compression_implementation.Tpo $(DEPDIR)/libzip_la-zip_get_compression_implementation.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_get_compression_implementation.c' object='libzip_la-zip_get_compression_implementation.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_get_compression_implementation.lo `test -f 'zip_get_compression_implementation.c' || echo '$(srcdir)/'`zip_get_compression_implementation.c - -libzip_la-zip_get_encryption_implementation.lo: zip_get_encryption_implementation.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_get_encryption_implementation.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_get_encryption_implementation.Tpo -c -o libzip_la-zip_get_encryption_implementation.lo `test -f 'zip_get_encryption_implementation.c' || echo '$(srcdir)/'`zip_get_encryption_implementation.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_get_encryption_implementation.Tpo $(DEPDIR)/libzip_la-zip_get_encryption_implementation.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_get_encryption_implementation.c' object='libzip_la-zip_get_encryption_implementation.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_get_encryption_implementation.lo `test -f 'zip_get_encryption_implementation.c' || echo '$(srcdir)/'`zip_get_encryption_implementation.c - -libzip_la-zip_get_file_comment.lo: zip_get_file_comment.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_get_file_comment.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_get_file_comment.Tpo -c -o libzip_la-zip_get_file_comment.lo `test -f 'zip_get_file_comment.c' || echo '$(srcdir)/'`zip_get_file_comment.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_get_file_comment.Tpo $(DEPDIR)/libzip_la-zip_get_file_comment.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_get_file_comment.c' object='libzip_la-zip_get_file_comment.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_get_file_comment.lo `test -f 'zip_get_file_comment.c' || echo '$(srcdir)/'`zip_get_file_comment.c - -libzip_la-zip_get_num_entries.lo: zip_get_num_entries.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_get_num_entries.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_get_num_entries.Tpo -c -o libzip_la-zip_get_num_entries.lo `test -f 'zip_get_num_entries.c' || echo '$(srcdir)/'`zip_get_num_entries.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_get_num_entries.Tpo $(DEPDIR)/libzip_la-zip_get_num_entries.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_get_num_entries.c' object='libzip_la-zip_get_num_entries.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_get_num_entries.lo `test -f 'zip_get_num_entries.c' || echo '$(srcdir)/'`zip_get_num_entries.c - -libzip_la-zip_get_num_files.lo: zip_get_num_files.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_get_num_files.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_get_num_files.Tpo -c -o libzip_la-zip_get_num_files.lo `test -f 'zip_get_num_files.c' || echo '$(srcdir)/'`zip_get_num_files.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_get_num_files.Tpo $(DEPDIR)/libzip_la-zip_get_num_files.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_get_num_files.c' object='libzip_la-zip_get_num_files.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_get_num_files.lo `test -f 'zip_get_num_files.c' || echo '$(srcdir)/'`zip_get_num_files.c - -libzip_la-zip_get_name.lo: zip_get_name.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_get_name.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_get_name.Tpo -c -o libzip_la-zip_get_name.lo `test -f 'zip_get_name.c' || echo '$(srcdir)/'`zip_get_name.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_get_name.Tpo $(DEPDIR)/libzip_la-zip_get_name.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_get_name.c' object='libzip_la-zip_get_name.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_get_name.lo `test -f 'zip_get_name.c' || echo '$(srcdir)/'`zip_get_name.c - -libzip_la-zip_hash.lo: zip_hash.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_hash.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_hash.Tpo -c -o libzip_la-zip_hash.lo `test -f 'zip_hash.c' || echo '$(srcdir)/'`zip_hash.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_hash.Tpo $(DEPDIR)/libzip_la-zip_hash.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_hash.c' object='libzip_la-zip_hash.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_hash.lo `test -f 'zip_hash.c' || echo '$(srcdir)/'`zip_hash.c - -libzip_la-zip_io_util.lo: zip_io_util.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_io_util.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_io_util.Tpo -c -o libzip_la-zip_io_util.lo `test -f 'zip_io_util.c' || echo '$(srcdir)/'`zip_io_util.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_io_util.Tpo $(DEPDIR)/libzip_la-zip_io_util.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_io_util.c' object='libzip_la-zip_io_util.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_io_util.lo `test -f 'zip_io_util.c' || echo '$(srcdir)/'`zip_io_util.c - -libzip_la-zip_memdup.lo: zip_memdup.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_memdup.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_memdup.Tpo -c -o libzip_la-zip_memdup.lo `test -f 'zip_memdup.c' || echo '$(srcdir)/'`zip_memdup.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_memdup.Tpo $(DEPDIR)/libzip_la-zip_memdup.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_memdup.c' object='libzip_la-zip_memdup.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_memdup.lo `test -f 'zip_memdup.c' || echo '$(srcdir)/'`zip_memdup.c - -libzip_la-zip_name_locate.lo: zip_name_locate.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_name_locate.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_name_locate.Tpo -c -o libzip_la-zip_name_locate.lo `test -f 'zip_name_locate.c' || echo '$(srcdir)/'`zip_name_locate.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_name_locate.Tpo $(DEPDIR)/libzip_la-zip_name_locate.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_name_locate.c' object='libzip_la-zip_name_locate.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_name_locate.lo `test -f 'zip_name_locate.c' || echo '$(srcdir)/'`zip_name_locate.c - -libzip_la-zip_new.lo: zip_new.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_new.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_new.Tpo -c -o libzip_la-zip_new.lo `test -f 'zip_new.c' || echo '$(srcdir)/'`zip_new.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_new.Tpo $(DEPDIR)/libzip_la-zip_new.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_new.c' object='libzip_la-zip_new.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_new.lo `test -f 'zip_new.c' || echo '$(srcdir)/'`zip_new.c - -libzip_la-zip_open.lo: zip_open.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_open.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_open.Tpo -c -o libzip_la-zip_open.lo `test -f 'zip_open.c' || echo '$(srcdir)/'`zip_open.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_open.Tpo $(DEPDIR)/libzip_la-zip_open.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_open.c' object='libzip_la-zip_open.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_open.lo `test -f 'zip_open.c' || echo '$(srcdir)/'`zip_open.c - -libzip_la-zip_rename.lo: zip_rename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_rename.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_rename.Tpo -c -o libzip_la-zip_rename.lo `test -f 'zip_rename.c' || echo '$(srcdir)/'`zip_rename.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_rename.Tpo $(DEPDIR)/libzip_la-zip_rename.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_rename.c' object='libzip_la-zip_rename.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_rename.lo `test -f 'zip_rename.c' || echo '$(srcdir)/'`zip_rename.c - -libzip_la-zip_replace.lo: zip_replace.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_replace.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_replace.Tpo -c -o libzip_la-zip_replace.lo `test -f 'zip_replace.c' || echo '$(srcdir)/'`zip_replace.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_replace.Tpo $(DEPDIR)/libzip_la-zip_replace.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_replace.c' object='libzip_la-zip_replace.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_replace.lo `test -f 'zip_replace.c' || echo '$(srcdir)/'`zip_replace.c - -libzip_la-zip_set_archive_comment.lo: zip_set_archive_comment.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_set_archive_comment.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_set_archive_comment.Tpo -c -o libzip_la-zip_set_archive_comment.lo `test -f 'zip_set_archive_comment.c' || echo '$(srcdir)/'`zip_set_archive_comment.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_set_archive_comment.Tpo $(DEPDIR)/libzip_la-zip_set_archive_comment.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_set_archive_comment.c' object='libzip_la-zip_set_archive_comment.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_set_archive_comment.lo `test -f 'zip_set_archive_comment.c' || echo '$(srcdir)/'`zip_set_archive_comment.c - -libzip_la-zip_set_archive_flag.lo: zip_set_archive_flag.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_set_archive_flag.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_set_archive_flag.Tpo -c -o libzip_la-zip_set_archive_flag.lo `test -f 'zip_set_archive_flag.c' || echo '$(srcdir)/'`zip_set_archive_flag.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_set_archive_flag.Tpo $(DEPDIR)/libzip_la-zip_set_archive_flag.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_set_archive_flag.c' object='libzip_la-zip_set_archive_flag.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_set_archive_flag.lo `test -f 'zip_set_archive_flag.c' || echo '$(srcdir)/'`zip_set_archive_flag.c - -libzip_la-zip_set_default_password.lo: zip_set_default_password.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_set_default_password.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_set_default_password.Tpo -c -o libzip_la-zip_set_default_password.lo `test -f 'zip_set_default_password.c' || echo '$(srcdir)/'`zip_set_default_password.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_set_default_password.Tpo $(DEPDIR)/libzip_la-zip_set_default_password.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_set_default_password.c' object='libzip_la-zip_set_default_password.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_set_default_password.lo `test -f 'zip_set_default_password.c' || echo '$(srcdir)/'`zip_set_default_password.c - -libzip_la-zip_set_file_comment.lo: zip_set_file_comment.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_set_file_comment.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_set_file_comment.Tpo -c -o libzip_la-zip_set_file_comment.lo `test -f 'zip_set_file_comment.c' || echo '$(srcdir)/'`zip_set_file_comment.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_set_file_comment.Tpo $(DEPDIR)/libzip_la-zip_set_file_comment.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_set_file_comment.c' object='libzip_la-zip_set_file_comment.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_set_file_comment.lo `test -f 'zip_set_file_comment.c' || echo '$(srcdir)/'`zip_set_file_comment.c - -libzip_la-zip_set_file_compression.lo: zip_set_file_compression.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_set_file_compression.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_set_file_compression.Tpo -c -o libzip_la-zip_set_file_compression.lo `test -f 'zip_set_file_compression.c' || echo '$(srcdir)/'`zip_set_file_compression.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_set_file_compression.Tpo $(DEPDIR)/libzip_la-zip_set_file_compression.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_set_file_compression.c' object='libzip_la-zip_set_file_compression.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_set_file_compression.lo `test -f 'zip_set_file_compression.c' || echo '$(srcdir)/'`zip_set_file_compression.c - -libzip_la-zip_set_name.lo: zip_set_name.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_set_name.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_set_name.Tpo -c -o libzip_la-zip_set_name.lo `test -f 'zip_set_name.c' || echo '$(srcdir)/'`zip_set_name.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_set_name.Tpo $(DEPDIR)/libzip_la-zip_set_name.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_set_name.c' object='libzip_la-zip_set_name.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_set_name.lo `test -f 'zip_set_name.c' || echo '$(srcdir)/'`zip_set_name.c - -libzip_la-zip_source_begin_write.lo: zip_source_begin_write.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_begin_write.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_begin_write.Tpo -c -o libzip_la-zip_source_begin_write.lo `test -f 'zip_source_begin_write.c' || echo '$(srcdir)/'`zip_source_begin_write.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_begin_write.Tpo $(DEPDIR)/libzip_la-zip_source_begin_write.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_begin_write.c' object='libzip_la-zip_source_begin_write.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_begin_write.lo `test -f 'zip_source_begin_write.c' || echo '$(srcdir)/'`zip_source_begin_write.c - -libzip_la-zip_source_buffer.lo: zip_source_buffer.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_buffer.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_buffer.Tpo -c -o libzip_la-zip_source_buffer.lo `test -f 'zip_source_buffer.c' || echo '$(srcdir)/'`zip_source_buffer.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_buffer.Tpo $(DEPDIR)/libzip_la-zip_source_buffer.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_buffer.c' object='libzip_la-zip_source_buffer.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_buffer.lo `test -f 'zip_source_buffer.c' || echo '$(srcdir)/'`zip_source_buffer.c - -libzip_la-zip_source_call.lo: zip_source_call.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_call.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_call.Tpo -c -o libzip_la-zip_source_call.lo `test -f 'zip_source_call.c' || echo '$(srcdir)/'`zip_source_call.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_call.Tpo $(DEPDIR)/libzip_la-zip_source_call.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_call.c' object='libzip_la-zip_source_call.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_call.lo `test -f 'zip_source_call.c' || echo '$(srcdir)/'`zip_source_call.c - -libzip_la-zip_source_close.lo: zip_source_close.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_close.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_close.Tpo -c -o libzip_la-zip_source_close.lo `test -f 'zip_source_close.c' || echo '$(srcdir)/'`zip_source_close.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_close.Tpo $(DEPDIR)/libzip_la-zip_source_close.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_close.c' object='libzip_la-zip_source_close.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_close.lo `test -f 'zip_source_close.c' || echo '$(srcdir)/'`zip_source_close.c - -libzip_la-zip_source_commit_write.lo: zip_source_commit_write.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_commit_write.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_commit_write.Tpo -c -o libzip_la-zip_source_commit_write.lo `test -f 'zip_source_commit_write.c' || echo '$(srcdir)/'`zip_source_commit_write.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_commit_write.Tpo $(DEPDIR)/libzip_la-zip_source_commit_write.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_commit_write.c' object='libzip_la-zip_source_commit_write.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_commit_write.lo `test -f 'zip_source_commit_write.c' || echo '$(srcdir)/'`zip_source_commit_write.c - -libzip_la-zip_source_crc.lo: zip_source_crc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_crc.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_crc.Tpo -c -o libzip_la-zip_source_crc.lo `test -f 'zip_source_crc.c' || echo '$(srcdir)/'`zip_source_crc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_crc.Tpo $(DEPDIR)/libzip_la-zip_source_crc.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_crc.c' object='libzip_la-zip_source_crc.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_crc.lo `test -f 'zip_source_crc.c' || echo '$(srcdir)/'`zip_source_crc.c - -libzip_la-zip_source_deflate.lo: zip_source_deflate.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_deflate.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_deflate.Tpo -c -o libzip_la-zip_source_deflate.lo `test -f 'zip_source_deflate.c' || echo '$(srcdir)/'`zip_source_deflate.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_deflate.Tpo $(DEPDIR)/libzip_la-zip_source_deflate.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_deflate.c' object='libzip_la-zip_source_deflate.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_deflate.lo `test -f 'zip_source_deflate.c' || echo '$(srcdir)/'`zip_source_deflate.c - -libzip_la-zip_source_error.lo: zip_source_error.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_error.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_error.Tpo -c -o libzip_la-zip_source_error.lo `test -f 'zip_source_error.c' || echo '$(srcdir)/'`zip_source_error.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_error.Tpo $(DEPDIR)/libzip_la-zip_source_error.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_error.c' object='libzip_la-zip_source_error.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_error.lo `test -f 'zip_source_error.c' || echo '$(srcdir)/'`zip_source_error.c - -libzip_la-zip_source_filep.lo: zip_source_filep.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_filep.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_filep.Tpo -c -o libzip_la-zip_source_filep.lo `test -f 'zip_source_filep.c' || echo '$(srcdir)/'`zip_source_filep.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_filep.Tpo $(DEPDIR)/libzip_la-zip_source_filep.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_filep.c' object='libzip_la-zip_source_filep.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_filep.lo `test -f 'zip_source_filep.c' || echo '$(srcdir)/'`zip_source_filep.c - -libzip_la-zip_source_free.lo: zip_source_free.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_free.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_free.Tpo -c -o libzip_la-zip_source_free.lo `test -f 'zip_source_free.c' || echo '$(srcdir)/'`zip_source_free.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_free.Tpo $(DEPDIR)/libzip_la-zip_source_free.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_free.c' object='libzip_la-zip_source_free.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_free.lo `test -f 'zip_source_free.c' || echo '$(srcdir)/'`zip_source_free.c - -libzip_la-zip_source_function.lo: zip_source_function.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_function.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_function.Tpo -c -o libzip_la-zip_source_function.lo `test -f 'zip_source_function.c' || echo '$(srcdir)/'`zip_source_function.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_function.Tpo $(DEPDIR)/libzip_la-zip_source_function.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_function.c' object='libzip_la-zip_source_function.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_function.lo `test -f 'zip_source_function.c' || echo '$(srcdir)/'`zip_source_function.c - -libzip_la-zip_source_is_deleted.lo: zip_source_is_deleted.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_is_deleted.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_is_deleted.Tpo -c -o libzip_la-zip_source_is_deleted.lo `test -f 'zip_source_is_deleted.c' || echo '$(srcdir)/'`zip_source_is_deleted.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_is_deleted.Tpo $(DEPDIR)/libzip_la-zip_source_is_deleted.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_is_deleted.c' object='libzip_la-zip_source_is_deleted.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_is_deleted.lo `test -f 'zip_source_is_deleted.c' || echo '$(srcdir)/'`zip_source_is_deleted.c - -libzip_la-zip_source_layered.lo: zip_source_layered.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_layered.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_layered.Tpo -c -o libzip_la-zip_source_layered.lo `test -f 'zip_source_layered.c' || echo '$(srcdir)/'`zip_source_layered.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_layered.Tpo $(DEPDIR)/libzip_la-zip_source_layered.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_layered.c' object='libzip_la-zip_source_layered.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_layered.lo `test -f 'zip_source_layered.c' || echo '$(srcdir)/'`zip_source_layered.c - -libzip_la-zip_source_open.lo: zip_source_open.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_open.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_open.Tpo -c -o libzip_la-zip_source_open.lo `test -f 'zip_source_open.c' || echo '$(srcdir)/'`zip_source_open.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_open.Tpo $(DEPDIR)/libzip_la-zip_source_open.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_open.c' object='libzip_la-zip_source_open.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_open.lo `test -f 'zip_source_open.c' || echo '$(srcdir)/'`zip_source_open.c - -libzip_la-zip_source_pkware.lo: zip_source_pkware.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_pkware.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_pkware.Tpo -c -o libzip_la-zip_source_pkware.lo `test -f 'zip_source_pkware.c' || echo '$(srcdir)/'`zip_source_pkware.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_pkware.Tpo $(DEPDIR)/libzip_la-zip_source_pkware.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_pkware.c' object='libzip_la-zip_source_pkware.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_pkware.lo `test -f 'zip_source_pkware.c' || echo '$(srcdir)/'`zip_source_pkware.c - -libzip_la-zip_source_read.lo: zip_source_read.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_read.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_read.Tpo -c -o libzip_la-zip_source_read.lo `test -f 'zip_source_read.c' || echo '$(srcdir)/'`zip_source_read.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_read.Tpo $(DEPDIR)/libzip_la-zip_source_read.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_read.c' object='libzip_la-zip_source_read.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_read.lo `test -f 'zip_source_read.c' || echo '$(srcdir)/'`zip_source_read.c - -libzip_la-zip_source_remove.lo: zip_source_remove.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_remove.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_remove.Tpo -c -o libzip_la-zip_source_remove.lo `test -f 'zip_source_remove.c' || echo '$(srcdir)/'`zip_source_remove.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_remove.Tpo $(DEPDIR)/libzip_la-zip_source_remove.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_remove.c' object='libzip_la-zip_source_remove.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_remove.lo `test -f 'zip_source_remove.c' || echo '$(srcdir)/'`zip_source_remove.c - -libzip_la-zip_source_rollback_write.lo: zip_source_rollback_write.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_rollback_write.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_rollback_write.Tpo -c -o libzip_la-zip_source_rollback_write.lo `test -f 'zip_source_rollback_write.c' || echo '$(srcdir)/'`zip_source_rollback_write.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_rollback_write.Tpo $(DEPDIR)/libzip_la-zip_source_rollback_write.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_rollback_write.c' object='libzip_la-zip_source_rollback_write.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_rollback_write.lo `test -f 'zip_source_rollback_write.c' || echo '$(srcdir)/'`zip_source_rollback_write.c - -libzip_la-zip_source_seek.lo: zip_source_seek.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_seek.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_seek.Tpo -c -o libzip_la-zip_source_seek.lo `test -f 'zip_source_seek.c' || echo '$(srcdir)/'`zip_source_seek.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_seek.Tpo $(DEPDIR)/libzip_la-zip_source_seek.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_seek.c' object='libzip_la-zip_source_seek.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_seek.lo `test -f 'zip_source_seek.c' || echo '$(srcdir)/'`zip_source_seek.c - -libzip_la-zip_source_seek_write.lo: zip_source_seek_write.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_seek_write.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_seek_write.Tpo -c -o libzip_la-zip_source_seek_write.lo `test -f 'zip_source_seek_write.c' || echo '$(srcdir)/'`zip_source_seek_write.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_seek_write.Tpo $(DEPDIR)/libzip_la-zip_source_seek_write.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_seek_write.c' object='libzip_la-zip_source_seek_write.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_seek_write.lo `test -f 'zip_source_seek_write.c' || echo '$(srcdir)/'`zip_source_seek_write.c - -libzip_la-zip_source_stat.lo: zip_source_stat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_stat.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_stat.Tpo -c -o libzip_la-zip_source_stat.lo `test -f 'zip_source_stat.c' || echo '$(srcdir)/'`zip_source_stat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_stat.Tpo $(DEPDIR)/libzip_la-zip_source_stat.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_stat.c' object='libzip_la-zip_source_stat.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_stat.lo `test -f 'zip_source_stat.c' || echo '$(srcdir)/'`zip_source_stat.c - -libzip_la-zip_source_supports.lo: zip_source_supports.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_supports.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_supports.Tpo -c -o libzip_la-zip_source_supports.lo `test -f 'zip_source_supports.c' || echo '$(srcdir)/'`zip_source_supports.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_supports.Tpo $(DEPDIR)/libzip_la-zip_source_supports.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_supports.c' object='libzip_la-zip_source_supports.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_supports.lo `test -f 'zip_source_supports.c' || echo '$(srcdir)/'`zip_source_supports.c - -libzip_la-zip_source_tell.lo: zip_source_tell.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_tell.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_tell.Tpo -c -o libzip_la-zip_source_tell.lo `test -f 'zip_source_tell.c' || echo '$(srcdir)/'`zip_source_tell.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_tell.Tpo $(DEPDIR)/libzip_la-zip_source_tell.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_tell.c' object='libzip_la-zip_source_tell.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_tell.lo `test -f 'zip_source_tell.c' || echo '$(srcdir)/'`zip_source_tell.c - -libzip_la-zip_source_tell_write.lo: zip_source_tell_write.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_tell_write.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_tell_write.Tpo -c -o libzip_la-zip_source_tell_write.lo `test -f 'zip_source_tell_write.c' || echo '$(srcdir)/'`zip_source_tell_write.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_tell_write.Tpo $(DEPDIR)/libzip_la-zip_source_tell_write.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_tell_write.c' object='libzip_la-zip_source_tell_write.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_tell_write.lo `test -f 'zip_source_tell_write.c' || echo '$(srcdir)/'`zip_source_tell_write.c - -libzip_la-zip_source_window.lo: zip_source_window.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_window.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_window.Tpo -c -o libzip_la-zip_source_window.lo `test -f 'zip_source_window.c' || echo '$(srcdir)/'`zip_source_window.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_window.Tpo $(DEPDIR)/libzip_la-zip_source_window.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_window.c' object='libzip_la-zip_source_window.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_window.lo `test -f 'zip_source_window.c' || echo '$(srcdir)/'`zip_source_window.c - -libzip_la-zip_source_winzip_aes_decode.lo: zip_source_winzip_aes_decode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_winzip_aes_decode.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_winzip_aes_decode.Tpo -c -o libzip_la-zip_source_winzip_aes_decode.lo `test -f 'zip_source_winzip_aes_decode.c' || echo '$(srcdir)/'`zip_source_winzip_aes_decode.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_winzip_aes_decode.Tpo $(DEPDIR)/libzip_la-zip_source_winzip_aes_decode.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_winzip_aes_decode.c' object='libzip_la-zip_source_winzip_aes_decode.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_winzip_aes_decode.lo `test -f 'zip_source_winzip_aes_decode.c' || echo '$(srcdir)/'`zip_source_winzip_aes_decode.c - -libzip_la-zip_source_winzip_aes_encode.lo: zip_source_winzip_aes_encode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_winzip_aes_encode.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_winzip_aes_encode.Tpo -c -o libzip_la-zip_source_winzip_aes_encode.lo `test -f 'zip_source_winzip_aes_encode.c' || echo '$(srcdir)/'`zip_source_winzip_aes_encode.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_winzip_aes_encode.Tpo $(DEPDIR)/libzip_la-zip_source_winzip_aes_encode.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_winzip_aes_encode.c' object='libzip_la-zip_source_winzip_aes_encode.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_winzip_aes_encode.lo `test -f 'zip_source_winzip_aes_encode.c' || echo '$(srcdir)/'`zip_source_winzip_aes_encode.c - -libzip_la-zip_source_write.lo: zip_source_write.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_write.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_write.Tpo -c -o libzip_la-zip_source_write.lo `test -f 'zip_source_write.c' || echo '$(srcdir)/'`zip_source_write.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_write.Tpo $(DEPDIR)/libzip_la-zip_source_write.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_write.c' object='libzip_la-zip_source_write.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_write.lo `test -f 'zip_source_write.c' || echo '$(srcdir)/'`zip_source_write.c - -libzip_la-zip_source_zip.lo: zip_source_zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_zip.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_zip.Tpo -c -o libzip_la-zip_source_zip.lo `test -f 'zip_source_zip.c' || echo '$(srcdir)/'`zip_source_zip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_zip.Tpo $(DEPDIR)/libzip_la-zip_source_zip.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_zip.c' object='libzip_la-zip_source_zip.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_zip.lo `test -f 'zip_source_zip.c' || echo '$(srcdir)/'`zip_source_zip.c - -libzip_la-zip_source_zip_new.lo: zip_source_zip_new.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_source_zip_new.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_source_zip_new.Tpo -c -o libzip_la-zip_source_zip_new.lo `test -f 'zip_source_zip_new.c' || echo '$(srcdir)/'`zip_source_zip_new.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_source_zip_new.Tpo $(DEPDIR)/libzip_la-zip_source_zip_new.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_source_zip_new.c' object='libzip_la-zip_source_zip_new.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_source_zip_new.lo `test -f 'zip_source_zip_new.c' || echo '$(srcdir)/'`zip_source_zip_new.c - -libzip_la-zip_stat.lo: zip_stat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_stat.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_stat.Tpo -c -o libzip_la-zip_stat.lo `test -f 'zip_stat.c' || echo '$(srcdir)/'`zip_stat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_stat.Tpo $(DEPDIR)/libzip_la-zip_stat.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_stat.c' object='libzip_la-zip_stat.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_stat.lo `test -f 'zip_stat.c' || echo '$(srcdir)/'`zip_stat.c - -libzip_la-zip_stat_index.lo: zip_stat_index.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_stat_index.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_stat_index.Tpo -c -o libzip_la-zip_stat_index.lo `test -f 'zip_stat_index.c' || echo '$(srcdir)/'`zip_stat_index.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_stat_index.Tpo $(DEPDIR)/libzip_la-zip_stat_index.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_stat_index.c' object='libzip_la-zip_stat_index.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_stat_index.lo `test -f 'zip_stat_index.c' || echo '$(srcdir)/'`zip_stat_index.c - -libzip_la-zip_stat_init.lo: zip_stat_init.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_stat_init.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_stat_init.Tpo -c -o libzip_la-zip_stat_init.lo `test -f 'zip_stat_init.c' || echo '$(srcdir)/'`zip_stat_init.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_stat_init.Tpo $(DEPDIR)/libzip_la-zip_stat_init.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_stat_init.c' object='libzip_la-zip_stat_init.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_stat_init.lo `test -f 'zip_stat_init.c' || echo '$(srcdir)/'`zip_stat_init.c - -libzip_la-zip_strerror.lo: zip_strerror.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_strerror.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_strerror.Tpo -c -o libzip_la-zip_strerror.lo `test -f 'zip_strerror.c' || echo '$(srcdir)/'`zip_strerror.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_strerror.Tpo $(DEPDIR)/libzip_la-zip_strerror.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_strerror.c' object='libzip_la-zip_strerror.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_strerror.lo `test -f 'zip_strerror.c' || echo '$(srcdir)/'`zip_strerror.c - -libzip_la-zip_string.lo: zip_string.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_string.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_string.Tpo -c -o libzip_la-zip_string.lo `test -f 'zip_string.c' || echo '$(srcdir)/'`zip_string.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_string.Tpo $(DEPDIR)/libzip_la-zip_string.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_string.c' object='libzip_la-zip_string.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_string.lo `test -f 'zip_string.c' || echo '$(srcdir)/'`zip_string.c - -libzip_la-zip_unchange.lo: zip_unchange.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_unchange.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_unchange.Tpo -c -o libzip_la-zip_unchange.lo `test -f 'zip_unchange.c' || echo '$(srcdir)/'`zip_unchange.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_unchange.Tpo $(DEPDIR)/libzip_la-zip_unchange.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_unchange.c' object='libzip_la-zip_unchange.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_unchange.lo `test -f 'zip_unchange.c' || echo '$(srcdir)/'`zip_unchange.c - -libzip_la-zip_unchange_all.lo: zip_unchange_all.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_unchange_all.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_unchange_all.Tpo -c -o libzip_la-zip_unchange_all.lo `test -f 'zip_unchange_all.c' || echo '$(srcdir)/'`zip_unchange_all.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_unchange_all.Tpo $(DEPDIR)/libzip_la-zip_unchange_all.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_unchange_all.c' object='libzip_la-zip_unchange_all.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_unchange_all.lo `test -f 'zip_unchange_all.c' || echo '$(srcdir)/'`zip_unchange_all.c - -libzip_la-zip_unchange_archive.lo: zip_unchange_archive.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_unchange_archive.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_unchange_archive.Tpo -c -o libzip_la-zip_unchange_archive.lo `test -f 'zip_unchange_archive.c' || echo '$(srcdir)/'`zip_unchange_archive.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_unchange_archive.Tpo $(DEPDIR)/libzip_la-zip_unchange_archive.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_unchange_archive.c' object='libzip_la-zip_unchange_archive.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_unchange_archive.lo `test -f 'zip_unchange_archive.c' || echo '$(srcdir)/'`zip_unchange_archive.c - -libzip_la-zip_unchange_data.lo: zip_unchange_data.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_unchange_data.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_unchange_data.Tpo -c -o libzip_la-zip_unchange_data.lo `test -f 'zip_unchange_data.c' || echo '$(srcdir)/'`zip_unchange_data.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_unchange_data.Tpo $(DEPDIR)/libzip_la-zip_unchange_data.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_unchange_data.c' object='libzip_la-zip_unchange_data.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_unchange_data.lo `test -f 'zip_unchange_data.c' || echo '$(srcdir)/'`zip_unchange_data.c - -libzip_la-zip_utf-8.lo: zip_utf-8.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzip_la-zip_utf-8.lo -MD -MP -MF $(DEPDIR)/libzip_la-zip_utf-8.Tpo -c -o libzip_la-zip_utf-8.lo `test -f 'zip_utf-8.c' || echo '$(srcdir)/'`zip_utf-8.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzip_la-zip_utf-8.Tpo $(DEPDIR)/libzip_la-zip_utf-8.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zip_utf-8.c' object='libzip_la-zip_utf-8.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzip_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzip_la-zip_utf-8.lo `test -f 'zip_utf-8.c' || echo '$(srcdir)/'`zip_utf-8.c - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-includeHEADERS: $(include_HEADERS) - @$(NORMAL_INSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(includedir)" || 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)$(includedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ - done - -uninstall-includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) -install-nodist_libincludeHEADERS: $(nodist_libinclude_HEADERS) - @$(NORMAL_INSTALL) - @list='$(nodist_libinclude_HEADERS)'; test -n "$(libincludedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(libincludedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libincludedir)" || 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)$(libincludedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(libincludedir)" || exit $$?; \ - done - -uninstall-nodist_libincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(nodist_libinclude_HEADERS)'; test -n "$(libincludedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(libincludedir)'; $(am__uninstall_files_from_dir) - -# This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-recursive - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) check-recursive -all-am: Makefile $(LTLIBRARIES) $(HEADERS) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(libincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) 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: - -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." - -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -clean: clean-recursive - -clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ - mostlyclean-am - -distclean: distclean-recursive - -rm -rf $(DEPDIR) ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: install-includeHEADERS \ - install-nodist_libincludeHEADERS - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: install-libLTLIBRARIES - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf $(DEPDIR) ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES \ - uninstall-nodist_libincludeHEADERS - -.MAKE: $(am__recursive_targets) all check install install-am \ - install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic clean-libLTLIBRARIES \ - clean-libtool cscopelist-am ctags ctags-am distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-includeHEADERS install-info \ - install-info-am install-libLTLIBRARIES install-man \ - install-nodist_libincludeHEADERS 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 mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am uninstall-includeHEADERS \ - uninstall-libLTLIBRARIES uninstall-nodist_libincludeHEADERS - -.PRECIOUS: Makefile - - -zip_err_str.c: zip.h make_zip_err_str.sh - sh $(srcdir)/make_zip_err_str.sh $(srcdir)/zip.h zip_err_str.c - -zipconf.h: ${top_builddir}/config.h make_zipconf.sh - sh ${srcdir}/make_zipconf.sh ${top_builddir}/config.h zipconf.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/libzip-1.2.0/lib/compat.h b/libzip-1.2.0/lib/compat.h deleted file mode 100644 index 4c9e3a007..000000000 --- a/libzip-1.2.0/lib/compat.h +++ /dev/null @@ -1,187 +0,0 @@ -#ifndef _HAD_LIBZIP_COMPAT_H -#define _HAD_LIBZIP_COMPAT_H - -/* - compat.h -- compatibility defines. - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -/* to have *_MAX definitions for all types when compiling with g++ */ -#define __STDC_LIMIT_MACROS - -#ifdef _WIN32 -#define ZIP_EXTERN __declspec(dllexport) -/* for dup(), close(), etc. */ -#include -#endif - -#ifdef HAVE_STDBOOL_H -#include -#else -typedef char bool; -#define true 1 -#define false 0 -#endif - -#include - -/* at least MinGW does not provide EOPNOTSUPP, see - * http://sourceforge.net/p/mingw/bugs/263/ - */ -#ifndef EOPNOTSUPP -#define EOPNOTSUPP EINVAL -#endif - -/* at least MinGW does not provide EOVERFLOW, see - * http://sourceforge.net/p/mingw/bugs/242/ - */ -#ifndef EOVERFLOW -#define EOVERFLOW EFBIG -#endif - -#ifdef _WIN32 -#if defined(HAVE__CLOSE) -#define close _close -#endif -#if defined(HAVE__DUP) -#define dup _dup -#endif -/* crashes reported when using fdopen instead of _fdopen on Windows/Visual Studio 10/Win64 */ -#if defined(HAVE__FDOPEN) -#define fdopen _fdopen -#endif -#if !defined(HAVE_FILENO) && defined(HAVE__FILENO) -#define fileno _fileno -#endif -/* Windows' open() doesn't understand Unix permissions */ -#if defined(HAVE__OPEN) -#define open(a, b, c) _open((a), (b)) -#endif -#if defined(HAVE__SNPRINTF) -#define snprintf _snprintf -#endif -#if defined(HAVE__STRDUP) -#if !defined(HAVE_STRDUP) || defined(_WIN32) -#undef strdup -#define strdup _strdup -#endif -#endif -#if !defined(HAVE__SETMODE) && defined(HAVE_SETMODE) -#define _setmode setmode -#endif -#if !defined(HAVE_STRTOLL) && defined(HAVE__STRTOI64) -#define strtoll _strtoi64 -#endif -#if !defined(HAVE_STRTOULL) && defined(HAVE__STRTOUI64) -#define strtoull _strtoui64 -#endif -#endif - -#ifndef HAVE_FSEEKO -#define fseeko(s, o, w) (fseek((s), (long int)(o), (w))) -#endif - -#ifndef HAVE_FTELLO -#define ftello(s) ((long)ftell((s))) -#endif - -#ifndef HAVE_MKSTEMP -int _zip_mkstemp(char *); -#define mkstemp _zip_mkstemp -#endif - -#if !defined(HAVE_STRCASECMP) -#if defined(HAVE__STRICMP) -#define strcasecmp _stricmp -#elif defined(HAVE_STRICMP) -#define strcasecmp stricmp -#endif -#endif - -#if SIZEOF_OFF_T == 8 -#define ZIP_OFF_MAX ZIP_INT64_MAX -#define ZIP_OFF_MIN ZIP_INT64_MIN -#elif SIZEOF_OFF_T == 4 -#define ZIP_OFF_MAX ZIP_INT32_MAX -#define ZIP_OFF_MIN ZIP_INT32_MIN -#elif SIZEOF_OFF_T == 2 -#define ZIP_OFF_MAX ZIP_INT16_MAX -#define ZIP_OFF_MIN ZIP_INT16_MIN -#else -#error unsupported size of off_t -#endif - -#if defined(HAVE_FTELLO) && defined(HAVE_FSEEKO) -#define ZIP_FSEEK_MAX ZIP_OFF_MAX -#define ZIP_FSEEK_MIN ZIP_OFF_MIN -#else -#include -#define ZIP_FSEEK_MAX LONG_MAX -#define ZIP_FSEEK_MIN LONG_MIN -#endif - -#ifndef SIZE_MAX -#if SIZEOF_SIZE_T == 8 -#define SIZE_MAX ZIP_INT64_MAX -#elif SIZEOF_SIZE_T == 4 -#define SIZE_MAX ZIP_INT32_MAX -#elif SIZEOF_SIZE_T == 2 -#define SIZE_MAX ZIP_INT16_MAX -#else -#error unsupported size of size_t -#endif -#endif - -#ifndef PRId64 -#ifdef _MSC_VER -#define PRId64 "I64d" -#else -#define PRId64 "lld" -#endif -#endif - -#ifndef PRIu64 -#ifdef _MSC_VER -#define PRIu64 "I64u" -#else -#define PRIu64 "llu" -#endif -#endif - -#ifndef S_ISDIR -#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) -#endif - -#endif /* compat.h */ diff --git a/libzip-1.2.0/lib/gladman-fcrypt.c b/libzip-1.2.0/lib/gladman-fcrypt.c deleted file mode 100644 index 8488ae4d2..000000000 --- a/libzip-1.2.0/lib/gladman-fcrypt.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - gladman-fcrypt.c -- wrapper functions for Dr Gladman's AES functions - Copyright (C) 2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#define BUILDING_FCRYPT - -#include "gladman-fcrypt.h" - -#include "gladman-fcrypt/aescrypt.c" -#include "gladman-fcrypt/aeskey.c" -#include "gladman-fcrypt/aestab.c" -#include "gladman-fcrypt/fileenc.c" -#include "gladman-fcrypt/hmac.c" -#include "gladman-fcrypt/pwd2key.c" -#include "gladman-fcrypt/sha1.c" diff --git a/libzip-1.2.0/lib/gladman-fcrypt.h b/libzip-1.2.0/lib/gladman-fcrypt.h deleted file mode 100644 index fc61b67fc..000000000 --- a/libzip-1.2.0/lib/gladman-fcrypt.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - gladman-fcrypt.h -- wrapper functions for Dr Gladman's AES functions - Copyright (C) 2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef HAD_GLADMAN_FCRYPT_H -#define HAD_GLADMAN_FCRYPT_H - -/* implementation fetched from - * http://173.254.28.24/~brgladma//oldsite/cryptography_technology/fileencrypt/files.zip - * - * Files dated 01-27-2004 except main.c dated 11-18-2008. - */ - -#include "zipint.h" - -#define INTERNAL static - -#include "fileenc.h" - -#endif /* HAD_GLADMAN_FCRYPT_H */ diff --git a/libzip-1.2.0/lib/gladman-fcrypt/Makefile.am b/libzip-1.2.0/lib/gladman-fcrypt/Makefile.am deleted file mode 100644 index 9714d6ba0..000000000 --- a/libzip-1.2.0/lib/gladman-fcrypt/Makefile.am +++ /dev/null @@ -1,14 +0,0 @@ -EXTRA_DIST= \ - aes.h \ - aescrypt.c \ - aeskey.c \ - aesopt.h \ - aestab.c \ - fileenc.c \ - fileenc.h \ - hmac.c \ - hmac.h \ - pwd2key.c \ - pwd2key.h \ - sha1.c \ - sha1.h diff --git a/libzip-1.2.0/lib/gladman-fcrypt/Makefile.in b/libzip-1.2.0/lib/gladman-fcrypt/Makefile.in deleted file mode 100644 index 8cde8ae78..000000000 --- a/libzip-1.2.0/lib/gladman-fcrypt/Makefile.in +++ /dev/null @@ -1,453 +0,0 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2014 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 = lib/gladman-fcrypt -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(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/visibility.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/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 -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DLSYM_LIB = @DLSYM_LIB@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -HAVE_VISIBILITY = @HAVE_VISIBILITY@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MANFMT = @MANFMT@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -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@ -PKG_CONFIG_RPATH = @PKG_CONFIG_RPATH@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -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 = \ - aes.h \ - aescrypt.c \ - aeskey.c \ - aesopt.h \ - aestab.c \ - fileenc.c \ - fileenc.h \ - hmac.c \ - hmac.h \ - pwd2key.c \ - pwd2key.h \ - sha1.c \ - sha1.h - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lib/gladman-fcrypt/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign lib/gladman-fcrypt/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -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: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-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-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 - - -# 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/libzip-1.2.0/lib/gladman-fcrypt/aes.h b/libzip-1.2.0/lib/gladman-fcrypt/aes.h deleted file mode 100644 index d8a5f93af..000000000 --- a/libzip-1.2.0/lib/gladman-fcrypt/aes.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK. - All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue Date: 24/01/2003 - - This file contains the definitions required to use AES and Rijndael in C. -*/ - -#ifndef _AES_H -#define _AES_H - -#if defined(__cplusplus) -extern "C" -{ -#if 0 -} -#endif -#endif - -/* If a table pointer is needed in the AES context, include the define */ -/* #define AES_TABLE_PTR */ - -#include "config.h" - -typedef zip_uint8_t aes_08t; -typedef zip_uint32_t aes_32t; - -/* This BLOCK_SIZE is in BYTES. It can have the values 16, 24, 32 or */ -/* undefined for use with aescrypt.c and aeskey.c, or 16, 20, 24, 28, */ -/* 32 or undefined for use with aescrypp.c and aeskeypp.c. When the */ -/* BLOCK_SIZE is left undefined a version that provides a dynamically */ -/* variable block size is produced but this is MUCH slower. */ - -#define BLOCK_SIZE 16 - -/* key schedule length (in 32-bit words) */ - -#if !defined(BLOCK_SIZE) -#define KS_LENGTH 128 -#else -#define KS_LENGTH (4 * BLOCK_SIZE) -#endif - -typedef unsigned int aes_fret; /* type for function return value */ -#define aes_bad 0 /* bad function return value */ -#define aes_good 1 /* good function return value */ -#ifndef AES_DLL /* implement normal or DLL functions */ -#define aes_rval aes_fret -#else -#define aes_rval aes_fret __declspec(dllexport) _stdcall -#endif - -typedef struct /* the AES context for encryption */ -{ aes_32t k_sch[KS_LENGTH]; /* the encryption key schedule */ - aes_32t n_rnd; /* the number of cipher rounds */ - aes_32t n_blk; /* the number of bytes in the state */ -#if defined(AES_TABLE_PTR) /* where global variables are not */ - void *t_ptr; /* available this pointer is used */ -#endif /* to point to the fixed tables */ -} aes_ctx; - -/* The block length (blen) is input in bytes when it is in the range */ -/* 16 <= blen <= 32 or in bits when in the range 128 <= blen <= 256 */ -/* Only 16 bytes (128 bits) is legal for AES but the files aescrypt.c */ -/* and aeskey.c provide support for 16, 24 and 32 byte (128, 192 and */ -/* 256 bit) blocks while aescrypp.c and aeskeypp.c provide support for */ -/* 16, 20, 24, 28 and 32 byte (128, 160, 192, 224 and 256 bit) blocks. */ -/* The value aes_good is returned if the requested block size is legal, */ -/* otherwise aes_bad is returned. */ - -#if !defined(BLOCK_SIZE) -INTERNAL aes_rval aes_set_block_size(unsigned int blen, aes_ctx cx[1]); -#endif - -/* The key length (klen) is input in bytes when it is in the range */ -/* 16 <= klen <= 32 or in bits when in the range 128 <= klen <= 256 */ -/* The files aescrypt.c and aeskey.c provide support for 16, 24 and */ -/* 32 byte (128, 192 and 256 bit) keys while aescrypp.c and aeskeypp.c */ -/* provide support for 16, 20, 24, 28 and 32 byte (128, 160, 192, 224 */ -/* and 256 bit) keys. The value aes_good is returned if the requested */ -/* key size is legal, otherwise aes_bad is returned. */ - -#ifdef BUILDING_FCRYPT -INTERNAL aes_rval aes_set_encrypt_key(const unsigned char in_key[], - unsigned int klen, aes_ctx cx[1]); -INTERNAL aes_rval aes_encrypt_block(const unsigned char in_blk[], - unsigned char out_blk[], const aes_ctx cx[1]); -#endif - -#if 0 /* not used */ -INTERNAL aes_rval aes_set_decrypt_key(const unsigned char in_key[], - unsigned int klen, aes_ctx cx[1]); -INTERNAL aes_rval aes_decrypt_block(const unsigned char in_blk[], - unsigned char out_blk[], const aes_ctx cx[1]); -#endif - -#if defined(__cplusplus) -} -#endif - -#endif diff --git a/libzip-1.2.0/lib/gladman-fcrypt/aescrypt.c b/libzip-1.2.0/lib/gladman-fcrypt/aescrypt.c deleted file mode 100644 index b2c6c8485..000000000 --- a/libzip-1.2.0/lib/gladman-fcrypt/aescrypt.c +++ /dev/null @@ -1,450 +0,0 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK. - All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue Date: 24/01/2003 - - This file contains the code for implementing encryption and decryption - for AES (Rijndael) for block and key sizes of 16, 24 and 32 bytes. It - can optionally be replaced by code written in assembler using NASM. -*/ - -#include "aesopt.h" - -#if defined(__cplusplus) -extern "C" -{ -#endif - -#if defined(BLOCK_SIZE) && (BLOCK_SIZE & 7) -#error An illegal block size has been specified. -#endif - -#define unused 77 /* Sunset Strip */ - -#define si(y,x,k,c) (s(y,c) = word_in(x + 4 * c) ^ k[c]) -#define so(y,x,c) word_out(y + 4 * c, s(x,c)) - -#if BLOCK_SIZE == 16 - -#if defined(ARRAYS) -#define locals(y,x) x[4],y[4] -#else -#define locals(y,x) x##0,x##1,x##2,x##3,y##0,y##1,y##2,y##3 - /* - the following defines prevent the compiler requiring the declaration - of generated but unused variables in the fwd_var and inv_var macros - */ -#define b04 unused -#define b05 unused -#define b06 unused -#define b07 unused -#define b14 unused -#define b15 unused -#define b16 unused -#define b17 unused -#endif -#define l_copy(y, x) s(y,0) = s(x,0); s(y,1) = s(x,1); \ - s(y,2) = s(x,2); s(y,3) = s(x,3); -#define state_in(y,x,k) si(y,x,k,0); si(y,x,k,1); si(y,x,k,2); si(y,x,k,3) -#define state_out(y,x) so(y,x,0); so(y,x,1); so(y,x,2); so(y,x,3) -#define round(rm,y,x,k) rm(y,x,k,0); rm(y,x,k,1); rm(y,x,k,2); rm(y,x,k,3) - -#elif BLOCK_SIZE == 24 - -#if defined(ARRAYS) -#define locals(y,x) x[6],y[6] -#else -#define locals(y,x) x##0,x##1,x##2,x##3,x##4,x##5, \ - y##0,y##1,y##2,y##3,y##4,y##5 -#define b06 unused -#define b07 unused -#define b16 unused -#define b17 unused -#endif -#define l_copy(y, x) s(y,0) = s(x,0); s(y,1) = s(x,1); \ - s(y,2) = s(x,2); s(y,3) = s(x,3); \ - s(y,4) = s(x,4); s(y,5) = s(x,5); -#define state_in(y,x,k) si(y,x,k,0); si(y,x,k,1); si(y,x,k,2); \ - si(y,x,k,3); si(y,x,k,4); si(y,x,k,5) -#define state_out(y,x) so(y,x,0); so(y,x,1); so(y,x,2); \ - so(y,x,3); so(y,x,4); so(y,x,5) -#define round(rm,y,x,k) rm(y,x,k,0); rm(y,x,k,1); rm(y,x,k,2); \ - rm(y,x,k,3); rm(y,x,k,4); rm(y,x,k,5) -#else - -#if defined(ARRAYS) -#define locals(y,x) x[8],y[8] -#else -#define locals(y,x) x##0,x##1,x##2,x##3,x##4,x##5,x##6,x##7, \ - y##0,y##1,y##2,y##3,y##4,y##5,y##6,y##7 -#endif -#define l_copy(y, x) s(y,0) = s(x,0); s(y,1) = s(x,1); \ - s(y,2) = s(x,2); s(y,3) = s(x,3); \ - s(y,4) = s(x,4); s(y,5) = s(x,5); \ - s(y,6) = s(x,6); s(y,7) = s(x,7); - -#if BLOCK_SIZE == 32 - -#define state_in(y,x,k) si(y,x,k,0); si(y,x,k,1); si(y,x,k,2); si(y,x,k,3); \ - si(y,x,k,4); si(y,x,k,5); si(y,x,k,6); si(y,x,k,7) -#define state_out(y,x) so(y,x,0); so(y,x,1); so(y,x,2); so(y,x,3); \ - so(y,x,4); so(y,x,5); so(y,x,6); so(y,x,7) -#define round(rm,y,x,k) rm(y,x,k,0); rm(y,x,k,1); rm(y,x,k,2); rm(y,x,k,3); \ - rm(y,x,k,4); rm(y,x,k,5); rm(y,x,k,6); rm(y,x,k,7) -#else - -#define state_in(y,x,k) \ -switch(nc) \ -{ case 8: si(y,x,k,7); si(y,x,k,6); \ - case 6: si(y,x,k,5); si(y,x,k,4); \ - case 4: si(y,x,k,3); si(y,x,k,2); \ - si(y,x,k,1); si(y,x,k,0); \ -} - -#define state_out(y,x) \ -switch(nc) \ -{ case 8: so(y,x,7); so(y,x,6); \ - case 6: so(y,x,5); so(y,x,4); \ - case 4: so(y,x,3); so(y,x,2); \ - so(y,x,1); so(y,x,0); \ -} - -#if defined(FAST_VARIABLE) - -#define round(rm,y,x,k) \ -switch(nc) \ -{ case 8: rm(y,x,k,7); rm(y,x,k,6); \ - rm(y,x,k,5); rm(y,x,k,4); \ - rm(y,x,k,3); rm(y,x,k,2); \ - rm(y,x,k,1); rm(y,x,k,0); \ - break; \ - case 6: rm(y,x,k,5); rm(y,x,k,4); \ - rm(y,x,k,3); rm(y,x,k,2); \ - rm(y,x,k,1); rm(y,x,k,0); \ - break; \ - case 4: rm(y,x,k,3); rm(y,x,k,2); \ - rm(y,x,k,1); rm(y,x,k,0); \ - break; \ -} -#else - -#define round(rm,y,x,k) \ -switch(nc) \ -{ case 8: rm(y,x,k,7); rm(y,x,k,6); \ - case 6: rm(y,x,k,5); rm(y,x,k,4); \ - case 4: rm(y,x,k,3); rm(y,x,k,2); \ - rm(y,x,k,1); rm(y,x,k,0); \ -} - -#endif - -#endif -#endif - -#if defined(ENCRYPTION) && !defined(AES_ASM) - -/* Given the column (c) of the output state variable, the following - macros give the input state variables which are needed in its - computation for each row (r) of the state. All the alternative - macros give the same end values but expand into different ways - of calculating these values. In particular the complex macro - used for dynamically variable block sizes is designed to expand - to a compile time constant whenever possible but will expand to - conditional clauses on some branches (I am grateful to Frank - Yellin for this construction) -*/ - -#if defined(BLOCK_SIZE) -#if BLOCK_SIZE == 16 -# define fwd_var(x,r,c) s(x,((r+c)%nc)) -#else -#define fwd_var(x,r,c) s(x,(r+c+(((r>1)&&(nc>9-r))?1:0))%nc) -#endif -#else -#define fwd_var(x,r,c)\ - ( r == 0 ? s(x,c) \ - : r == 1 ? \ - ( c == 0 ? s(x,1) \ - : c == 1 ? s(x,2) \ - : c == 2 ? s(x,3) \ - : c == 3 ? nc == 4 ? s(x,0) : s(x,4) \ - : c == 4 ? s(x,5) \ - : c == 5 ? nc == 8 ? s(x,6) : s(x,0) \ - : c == 6 ? s(x,7) : s(x,0)) \ - : r == 2 ? \ - ( c == 0 ? nc == 8 ? s(x,3) : s(x,2) \ - : c == 1 ? nc == 8 ? s(x,4) : s(x,3) \ - : c == 2 ? nc == 4 ? s(x,0) : nc == 8 ? s(x,5) : s(x,4) \ - : c == 3 ? nc == 4 ? s(x,1) : nc == 8 ? s(x,6) : s(x,5) \ - : c == 4 ? nc == 8 ? s(x,7) : s(x,0) \ - : c == 5 ? nc == 8 ? s(x,0) : s(x,1) \ - : c == 6 ? s(x,1) : s(x,2)) \ - : \ - ( c == 0 ? nc == 8 ? s(x,4) : s(x,3) \ - : c == 1 ? nc == 4 ? s(x,0) : nc == 8 ? s(x,5) : s(x,4) \ - : c == 2 ? nc == 4 ? s(x,1) : nc == 8 ? s(x,6) : s(x,5) \ - : c == 3 ? nc == 4 ? s(x,2) : nc == 8 ? s(x,7) : s(x,0) \ - : c == 4 ? nc == 8 ? s(x,0) : s(x,1) \ - : c == 5 ? nc == 8 ? s(x,1) : s(x,2) \ - : c == 6 ? s(x,2) : s(x,3))) -#endif - -#if defined(FT4_SET) -#undef dec_fmvars -#define dec_fmvars -#define fwd_rnd(y,x,k,c) (s(y,c) = (k)[c] ^ four_tables(x,t_use(f,n),fwd_var,rf1,c)) -#elif defined(FT1_SET) -#undef dec_fmvars -#define dec_fmvars -#define fwd_rnd(y,x,k,c) (s(y,c) = (k)[c] ^ one_table(x,upr,t_use(f,n),fwd_var,rf1,c)) -#else -#define fwd_rnd(y,x,k,c) (s(y,c) = fwd_mcol(no_table(x,t_use(s,box),fwd_var,rf1,c)) ^ (k)[c]) -#endif - -#if defined(FL4_SET) -#define fwd_lrnd(y,x,k,c) (s(y,c) = (k)[c] ^ four_tables(x,t_use(f,l),fwd_var,rf1,c)) -#elif defined(FL1_SET) -#define fwd_lrnd(y,x,k,c) (s(y,c) = (k)[c] ^ one_table(x,ups,t_use(f,l),fwd_var,rf1,c)) -#else -#define fwd_lrnd(y,x,k,c) (s(y,c) = no_table(x,t_use(s,box),fwd_var,rf1,c) ^ (k)[c]) -#endif - -INTERNAL aes_rval aes_encrypt_block(const unsigned char in_blk[], unsigned char out_blk[], const aes_ctx cx[1]) -{ aes_32t locals(b0, b1); - const aes_32t *kp = cx->k_sch; - dec_fmvars /* declare variables for fwd_mcol() if needed */ - - if(!(cx->n_blk & 1)) return aes_bad; - - state_in(b0, in_blk, kp); - -#if (ENC_UNROLL == FULL) - - kp += (cx->n_rnd - 9) * nc; - - /*lint -e{616} control flows into case/default */ - switch(cx->n_rnd) - { - case 14: - round(fwd_rnd, b1, b0, kp - 4 * nc); - round(fwd_rnd, b0, b1, kp - 3 * nc); - /* fallthrough */ - case 12: - round(fwd_rnd, b1, b0, kp - 2 * nc); - round(fwd_rnd, b0, b1, kp - nc); - /* fallthrough */ - case 10: - round(fwd_rnd, b1, b0, kp ); - round(fwd_rnd, b0, b1, kp + nc); - round(fwd_rnd, b1, b0, kp + 2 * nc); - round(fwd_rnd, b0, b1, kp + 3 * nc); - round(fwd_rnd, b1, b0, kp + 4 * nc); - round(fwd_rnd, b0, b1, kp + 5 * nc); - round(fwd_rnd, b1, b0, kp + 6 * nc); - round(fwd_rnd, b0, b1, kp + 7 * nc); - round(fwd_rnd, b1, b0, kp + 8 * nc); - round(fwd_lrnd, b0, b1, kp + 9 * nc); - /* fallthrough */ - default: - ; - } -#else - -#if (ENC_UNROLL == PARTIAL) - { aes_32t rnd; - for(rnd = 0; rnd < (cx->n_rnd >> 1) - 1; ++rnd) - { - kp += nc; - round(fwd_rnd, b1, b0, kp); - kp += nc; - round(fwd_rnd, b0, b1, kp); - } - kp += nc; - round(fwd_rnd, b1, b0, kp); -#else - { aes_32t rnd, *p0 = b0, *p1 = b1, *pt; - for(rnd = 0; rnd < cx->n_rnd - 1; ++rnd) - { - kp += nc; - round(fwd_rnd, p1, p0, kp); - pt = p0, p0 = p1, p1 = pt; - } -#endif - kp += nc; - round(fwd_lrnd, b0, b1, kp); - } -#endif - - state_out(out_blk, b0); - return aes_good; -} - -#endif - -#if defined(DECRYPTION) && !defined(AES_ASM) - -/* Given the column (c) of the output state variable, the following - macros give the input state variables which are needed in its - computation for each row (r) of the state. All the alternative - macros give the same end values but expand into different ways - of calculating these values. In particular the complex macro - used for dynamically variable block sizes is designed to expand - to a compile time constant whenever possible but will expand to - conditional clauses on some branches (I am grateful to Frank - Yellin for this construction) -*/ - -#if defined(BLOCK_SIZE) -#if BLOCK_SIZE == 16 -#define inv_var(x,r,c) s(x,((4+c-r)%nc)) -#else -#define inv_var(x,r,c) s(x,(840+c-r-(((r>1)&&(nc>9-r))?1:0))%nc) -#endif -#else -#define inv_var(x,r,c)\ - ( r == 0 ? s(x,c) \ - : r == 1 ? \ - ( c == 0 ? nc == 4 ? s(x,3) : nc == 8 ? s(x,7) : s(x,5) \ - : c == 1 ? s(x,0) \ - : c == 2 ? s(x,1) \ - : c == 3 ? s(x,2) \ - : c == 4 ? s(x,3) \ - : c == 5 ? s(x,4) \ - : c == 6 ? s(x,5) : s(x,6)) \ - : r == 2 ? \ - ( c == 0 ? nc == 4 ? s(x,2) : nc == 8 ? s(x,5) : s(x,4) \ - : c == 1 ? nc == 4 ? s(x,3) : nc == 8 ? s(x,6) : s(x,5) \ - : c == 2 ? nc == 8 ? s(x,7) : s(x,0) \ - : c == 3 ? nc == 8 ? s(x,0) : s(x,1) \ - : c == 4 ? nc == 8 ? s(x,1) : s(x,2) \ - : c == 5 ? nc == 8 ? s(x,2) : s(x,3) \ - : c == 6 ? s(x,3) : s(x,4)) \ - : \ - ( c == 0 ? nc == 4 ? s(x,1) : nc == 8 ? s(x,4) : s(x,3) \ - : c == 1 ? nc == 4 ? s(x,2) : nc == 8 ? s(x,5) : s(x,4) \ - : c == 2 ? nc == 4 ? s(x,3) : nc == 8 ? s(x,6) : s(x,5) \ - : c == 3 ? nc == 8 ? s(x,7) : s(x,0) \ - : c == 4 ? nc == 8 ? s(x,0) : s(x,1) \ - : c == 5 ? nc == 8 ? s(x,1) : s(x,2) \ - : c == 6 ? s(x,2) : s(x,3))) -#endif - -#if defined(IT4_SET) -#undef dec_imvars -#define dec_imvars -#define inv_rnd(y,x,k,c) (s(y,c) = (k)[c] ^ four_tables(x,t_use(i,n),inv_var,rf1,c)) -#elif defined(IT1_SET) -#undef dec_imvars -#define dec_imvars -#define inv_rnd(y,x,k,c) (s(y,c) = (k)[c] ^ one_table(x,upr,t_use(i,n),inv_var,rf1,c)) -#else -#define inv_rnd(y,x,k,c) (s(y,c) = inv_mcol(no_table(x,t_use(i,box),inv_var,rf1,c) ^ (k)[c])) -#endif - -#if defined(IL4_SET) -#define inv_lrnd(y,x,k,c) (s(y,c) = (k)[c] ^ four_tables(x,t_use(i,l),inv_var,rf1,c)) -#elif defined(IL1_SET) -#define inv_lrnd(y,x,k,c) (s(y,c) = (k)[c] ^ one_table(x,ups,t_use(i,l),inv_var,rf1,c)) -#else -#define inv_lrnd(y,x,k,c) (s(y,c) = no_table(x,t_use(i,box),inv_var,rf1,c) ^ (k)[c]) -#endif - -INTERNAL aes_rval aes_decrypt_block(const unsigned char in_blk[], unsigned char out_blk[], const aes_ctx cx[1]) -{ aes_32t locals(b0, b1); - const aes_32t *kp = cx->k_sch + nc * cx->n_rnd; - dec_imvars /* declare variables for inv_mcol() if needed */ - - if(!(cx->n_blk & 2)) return aes_bad; - - state_in(b0, in_blk, kp); - -#if (DEC_UNROLL == FULL) - - kp = cx->k_sch + 9 * nc; - - /*lint -e{616} control flows into case/default */ - switch(cx->n_rnd) - { - case 14: - round(inv_rnd, b1, b0, kp + 4 * nc); - round(inv_rnd, b0, b1, kp + 3 * nc); - case 12: - round(inv_rnd, b1, b0, kp + 2 * nc); - round(inv_rnd, b0, b1, kp + nc ); - case 10: - round(inv_rnd, b1, b0, kp ); - round(inv_rnd, b0, b1, kp - nc); - round(inv_rnd, b1, b0, kp - 2 * nc); - round(inv_rnd, b0, b1, kp - 3 * nc); - round(inv_rnd, b1, b0, kp - 4 * nc); - round(inv_rnd, b0, b1, kp - 5 * nc); - round(inv_rnd, b1, b0, kp - 6 * nc); - round(inv_rnd, b0, b1, kp - 7 * nc); - round(inv_rnd, b1, b0, kp - 8 * nc); - round(inv_lrnd, b0, b1, kp - 9 * nc); - default: - ; - } -#else - -#if (DEC_UNROLL == PARTIAL) - { aes_32t rnd; - for(rnd = 0; rnd < (cx->n_rnd >> 1) - 1; ++rnd) - { - kp -= nc; - round(inv_rnd, b1, b0, kp); - kp -= nc; - round(inv_rnd, b0, b1, kp); - } - kp -= nc; - round(inv_rnd, b1, b0, kp); -#else - { aes_32t rnd, *p0 = b0, *p1 = b1, *pt; - for(rnd = 0; rnd < cx->n_rnd - 1; ++rnd) - { - kp -= nc; - round(inv_rnd, p1, p0, kp); - pt = p0, p0 = p1, p1 = pt; - } -#endif - kp -= nc; - round(inv_lrnd, b0, b1, kp); - } -#endif - - state_out(out_blk, b0); - return aes_good; -} - -#endif - -#if defined(__cplusplus) -} -#endif diff --git a/libzip-1.2.0/lib/gladman-fcrypt/aeskey.c b/libzip-1.2.0/lib/gladman-fcrypt/aeskey.c deleted file mode 100644 index e03b48f17..000000000 --- a/libzip-1.2.0/lib/gladman-fcrypt/aeskey.c +++ /dev/null @@ -1,416 +0,0 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK. - All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue Date: 24/01/2003 - - This file contains the code for implementing the key schedule for AES and - Rijndael for block and key sizes of 16, 24, and 32 bytes. -*/ - -#include "aesopt.h" - -#if defined(__cplusplus) -extern "C" -{ -#endif - -#if defined(BLOCK_SIZE) && (BLOCK_SIZE & 7) -#error An illegal block size has been specified. -#endif - -/* Subroutine to set the block size (if variable). The value can be - in bytes, with legal values of 16, 24 and 32, or in bits, with - legal values of 128, 192 and 256. -*/ - -#if !defined(BLOCK_SIZE) - -INTERNAL aes_rval aes_set_block_size(unsigned int blen, aes_ctx cx[1]) -{ -#if !defined(FIXED_TABLES) -#ifdef GLOBALS - if(!t_use(in,it)) gen_tabs(); -#else - if(!cx->t_ptr || !t_use(in,it)) gen_tabs(cx); -#endif -#endif - if(((blen & 7) || blen < 16 || blen > 32) && ((blen & 63) || blen < 128 || blen > 256)) - { - cx->n_blk = 0; return aes_bad; - } - else - { - cx->n_blk = blen >> (blen < 128 ? 0 : 3); return aes_good; - } -} - -#endif - -/* Initialise the key schedule from the user supplied key. The key - length can be specified in bytes, with legal values of 16, 24 - and 32, or in bits, with legal values of 128, 192 and 256. These - values correspond with Nk values of 4, 6 and 8 respectively. - - The following macros implement a single cycle in the key - schedule generation process. The number of cycles needed - for each cx->n_col and nk value is: - - nk = 4 5 6 7 8 - ------------------------------ - cx->n_col = 4 10 9 8 7 7 - cx->n_col = 5 14 11 10 9 9 - cx->n_col = 6 19 15 12 11 11 - cx->n_col = 7 21 19 16 13 14 - cx->n_col = 8 29 23 19 17 14 -*/ - -#define ke4(k,i) \ -{ k[4*(i)+4] = ss[0] ^= ls_box(ss[3],3) ^ t_use(r,c)[i]; k[4*(i)+5] = ss[1] ^= ss[0]; \ - k[4*(i)+6] = ss[2] ^= ss[1]; k[4*(i)+7] = ss[3] ^= ss[2]; \ -} -#define kel4(k,i) \ -{ k[4*(i)+4] = ss[0] ^= ls_box(ss[3],3) ^ t_use(r,c)[i]; k[4*(i)+5] = ss[1] ^= ss[0]; \ - k[4*(i)+6] = ss[2] ^= ss[1]; k[4*(i)+7] = ss[3] ^= ss[2]; \ -} - -#define ke6(k,i) \ -{ k[6*(i)+ 6] = ss[0] ^= ls_box(ss[5],3) ^ t_use(r,c)[i]; k[6*(i)+ 7] = ss[1] ^= ss[0]; \ - k[6*(i)+ 8] = ss[2] ^= ss[1]; k[6*(i)+ 9] = ss[3] ^= ss[2]; \ - k[6*(i)+10] = ss[4] ^= ss[3]; k[6*(i)+11] = ss[5] ^= ss[4]; \ -} -#define kel6(k,i) \ -{ k[6*(i)+ 6] = ss[0] ^= ls_box(ss[5],3) ^ t_use(r,c)[i]; k[6*(i)+ 7] = ss[1] ^= ss[0]; \ - k[6*(i)+ 8] = ss[2] ^= ss[1]; k[6*(i)+ 9] = ss[3] ^= ss[2]; \ -} - -#define ke8(k,i) \ -{ k[8*(i)+ 8] = ss[0] ^= ls_box(ss[7],3) ^ t_use(r,c)[i]; k[8*(i)+ 9] = ss[1] ^= ss[0]; \ - k[8*(i)+10] = ss[2] ^= ss[1]; k[8*(i)+11] = ss[3] ^= ss[2]; \ - k[8*(i)+12] = ss[4] ^= ls_box(ss[3],0); k[8*(i)+13] = ss[5] ^= ss[4]; \ - k[8*(i)+14] = ss[6] ^= ss[5]; k[8*(i)+15] = ss[7] ^= ss[6]; \ -} -#define kel8(k,i) \ -{ k[8*(i)+ 8] = ss[0] ^= ls_box(ss[7],3) ^ t_use(r,c)[i]; k[8*(i)+ 9] = ss[1] ^= ss[0]; \ - k[8*(i)+10] = ss[2] ^= ss[1]; k[8*(i)+11] = ss[3] ^= ss[2]; \ -} - -#if defined(ENCRYPTION_KEY_SCHEDULE) - -INTERNAL aes_rval aes_set_encrypt_key(const unsigned char in_key[], unsigned int klen, aes_ctx cx[1]) -{ aes_32t ss[8]; - -#if !defined(FIXED_TABLES) -#ifdef GLOBALS - if(!t_use(in,it)) gen_tabs(); -#else - if(!cx->t_ptr || !t_use(in,it)) gen_tabs(cx); -#endif -#endif - -#if !defined(BLOCK_SIZE) - if(!cx->n_blk) cx->n_blk = 16; -#else - cx->n_blk = BLOCK_SIZE; -#endif - - if(((klen & 7) || klen < 16 || klen > 32) && ((klen & 63) || klen < 128 || klen > 256)) - { - cx->n_rnd = 0; return aes_bad; - } - - klen >>= (klen < 128 ? 2 : 5); - cx->n_blk = (cx->n_blk & ~3U) | 1; - - cx->k_sch[0] = ss[0] = word_in(in_key ); - cx->k_sch[1] = ss[1] = word_in(in_key + 4); - cx->k_sch[2] = ss[2] = word_in(in_key + 8); - cx->k_sch[3] = ss[3] = word_in(in_key + 12); - -#if (BLOCK_SIZE == 16) && (ENC_UNROLL != NONE) - - switch(klen) - { - case 4: - ke4(cx->k_sch, 0); ke4(cx->k_sch, 1); - ke4(cx->k_sch, 2); ke4(cx->k_sch, 3); - ke4(cx->k_sch, 4); ke4(cx->k_sch, 5); - ke4(cx->k_sch, 6); ke4(cx->k_sch, 7); - ke4(cx->k_sch, 8); kel4(cx->k_sch, 9); - cx->n_rnd = 10; break; - case 6: - cx->k_sch[4] = ss[4] = word_in(in_key + 16); - cx->k_sch[5] = ss[5] = word_in(in_key + 20); - ke6(cx->k_sch, 0); ke6(cx->k_sch, 1); - ke6(cx->k_sch, 2); ke6(cx->k_sch, 3); - ke6(cx->k_sch, 4); ke6(cx->k_sch, 5); - ke6(cx->k_sch, 6); kel6(cx->k_sch, 7); - cx->n_rnd = 12; break; - case 8: - cx->k_sch[4] = ss[4] = word_in(in_key + 16); - cx->k_sch[5] = ss[5] = word_in(in_key + 20); - cx->k_sch[6] = ss[6] = word_in(in_key + 24); - cx->k_sch[7] = ss[7] = word_in(in_key + 28); - ke8(cx->k_sch, 0); ke8(cx->k_sch, 1); - ke8(cx->k_sch, 2); ke8(cx->k_sch, 3); - ke8(cx->k_sch, 4); ke8(cx->k_sch, 5); - kel8(cx->k_sch, 6); - cx->n_rnd = 14; break; - default: - ; - } -#else - cx->n_rnd = (klen > nc ? klen : nc) + 6; - { aes_32t i, l; - l = (nc * cx->n_rnd + nc - 1) / klen; - - switch(klen) - { - case 4: - for(i = 0; i < l; ++i) - ke4(cx->k_sch, i); - break; - case 6: - cx->k_sch[4] = ss[4] = word_in(in_key + 16); - cx->k_sch[5] = ss[5] = word_in(in_key + 20); - for(i = 0; i < l; ++i) - ke6(cx->k_sch, i); - break; - case 8: - cx->k_sch[4] = ss[4] = word_in(in_key + 16); - cx->k_sch[5] = ss[5] = word_in(in_key + 20); - cx->k_sch[6] = ss[6] = word_in(in_key + 24); - cx->k_sch[7] = ss[7] = word_in(in_key + 28); - for(i = 0; i < l; ++i) - ke8(cx->k_sch, i); - break; - default: - ; - } - } -#endif - - return aes_good; -} - -#endif - -#if defined(DECRYPTION_KEY_SCHEDULE) - -#if (DEC_ROUND != NO_TABLES) -#define d_vars dec_imvars -#define ff(x) inv_mcol(x) -#else -#define ff(x) (x) -#define d_vars -#endif - -#if 1 -#define kdf4(k,i) \ -{ ss[0] = ss[0] ^ ss[2] ^ ss[1] ^ ss[3]; ss[1] = ss[1] ^ ss[3]; ss[2] = ss[2] ^ ss[3]; ss[3] = ss[3]; \ - ss[4] = ls_box(ss[(i+3) % 4], 3) ^ t_use(r,c)[i]; ss[i % 4] ^= ss[4]; \ - ss[4] ^= k[4*(i)]; k[4*(i)+4] = ff(ss[4]); ss[4] ^= k[4*(i)+1]; k[4*(i)+5] = ff(ss[4]); \ - ss[4] ^= k[4*(i)+2]; k[4*(i)+6] = ff(ss[4]); ss[4] ^= k[4*(i)+3]; k[4*(i)+7] = ff(ss[4]); \ -} -#define kd4(k,i) \ -{ ss[4] = ls_box(ss[(i+3) % 4], 3) ^ t_use(r,c)[i]; ss[i % 4] ^= ss[4]; ss[4] = ff(ss[4]); \ - k[4*(i)+4] = ss[4] ^= k[4*(i)]; k[4*(i)+5] = ss[4] ^= k[4*(i)+1]; \ - k[4*(i)+6] = ss[4] ^= k[4*(i)+2]; k[4*(i)+7] = ss[4] ^= k[4*(i)+3]; \ -} -#define kdl4(k,i) \ -{ ss[4] = ls_box(ss[(i+3) % 4], 3) ^ t_use(r,c)[i]; ss[i % 4] ^= ss[4]; \ - k[4*(i)+4] = (ss[0] ^= ss[1]) ^ ss[2] ^ ss[3]; k[4*(i)+5] = ss[1] ^ ss[3]; \ - k[4*(i)+6] = ss[0]; k[4*(i)+7] = ss[1]; \ -} -#else -#define kdf4(k,i) \ -{ ss[0] ^= ls_box(ss[3],3) ^ t_use(r,c)[i]; k[4*(i)+ 4] = ff(ss[0]); ss[1] ^= ss[0]; k[4*(i)+ 5] = ff(ss[1]); \ - ss[2] ^= ss[1]; k[4*(i)+ 6] = ff(ss[2]); ss[3] ^= ss[2]; k[4*(i)+ 7] = ff(ss[3]); \ -} -#define kd4(k,i) \ -{ ss[4] = ls_box(ss[3],3) ^ t_use(r,c)[i]; \ - ss[0] ^= ss[4]; ss[4] = ff(ss[4]); k[4*(i)+ 4] = ss[4] ^= k[4*(i)]; \ - ss[1] ^= ss[0]; k[4*(i)+ 5] = ss[4] ^= k[4*(i)+ 1]; \ - ss[2] ^= ss[1]; k[4*(i)+ 6] = ss[4] ^= k[4*(i)+ 2]; \ - ss[3] ^= ss[2]; k[4*(i)+ 7] = ss[4] ^= k[4*(i)+ 3]; \ -} -#define kdl4(k,i) \ -{ ss[0] ^= ls_box(ss[3],3) ^ t_use(r,c)[i]; k[4*(i)+ 4] = ss[0]; ss[1] ^= ss[0]; k[4*(i)+ 5] = ss[1]; \ - ss[2] ^= ss[1]; k[4*(i)+ 6] = ss[2]; ss[3] ^= ss[2]; k[4*(i)+ 7] = ss[3]; \ -} -#endif - -#define kdf6(k,i) \ -{ ss[0] ^= ls_box(ss[5],3) ^ t_use(r,c)[i]; k[6*(i)+ 6] = ff(ss[0]); ss[1] ^= ss[0]; k[6*(i)+ 7] = ff(ss[1]); \ - ss[2] ^= ss[1]; k[6*(i)+ 8] = ff(ss[2]); ss[3] ^= ss[2]; k[6*(i)+ 9] = ff(ss[3]); \ - ss[4] ^= ss[3]; k[6*(i)+10] = ff(ss[4]); ss[5] ^= ss[4]; k[6*(i)+11] = ff(ss[5]); \ -} -#define kd6(k,i) \ -{ ss[6] = ls_box(ss[5],3) ^ t_use(r,c)[i]; \ - ss[0] ^= ss[6]; ss[6] = ff(ss[6]); k[6*(i)+ 6] = ss[6] ^= k[6*(i)]; \ - ss[1] ^= ss[0]; k[6*(i)+ 7] = ss[6] ^= k[6*(i)+ 1]; \ - ss[2] ^= ss[1]; k[6*(i)+ 8] = ss[6] ^= k[6*(i)+ 2]; \ - ss[3] ^= ss[2]; k[6*(i)+ 9] = ss[6] ^= k[6*(i)+ 3]; \ - ss[4] ^= ss[3]; k[6*(i)+10] = ss[6] ^= k[6*(i)+ 4]; \ - ss[5] ^= ss[4]; k[6*(i)+11] = ss[6] ^= k[6*(i)+ 5]; \ -} -#define kdl6(k,i) \ -{ ss[0] ^= ls_box(ss[5],3) ^ t_use(r,c)[i]; k[6*(i)+ 6] = ss[0]; ss[1] ^= ss[0]; k[6*(i)+ 7] = ss[1]; \ - ss[2] ^= ss[1]; k[6*(i)+ 8] = ss[2]; ss[3] ^= ss[2]; k[6*(i)+ 9] = ss[3]; \ -} - -#define kdf8(k,i) \ -{ ss[0] ^= ls_box(ss[7],3) ^ t_use(r,c)[i]; k[8*(i)+ 8] = ff(ss[0]); ss[1] ^= ss[0]; k[8*(i)+ 9] = ff(ss[1]); \ - ss[2] ^= ss[1]; k[8*(i)+10] = ff(ss[2]); ss[3] ^= ss[2]; k[8*(i)+11] = ff(ss[3]); \ - ss[4] ^= ls_box(ss[3],0); k[8*(i)+12] = ff(ss[4]); ss[5] ^= ss[4]; k[8*(i)+13] = ff(ss[5]); \ - ss[6] ^= ss[5]; k[8*(i)+14] = ff(ss[6]); ss[7] ^= ss[6]; k[8*(i)+15] = ff(ss[7]); \ -} -#define kd8(k,i) \ -{ aes_32t g = ls_box(ss[7],3) ^ t_use(r,c)[i]; \ - ss[0] ^= g; g = ff(g); k[8*(i)+ 8] = g ^= k[8*(i)]; \ - ss[1] ^= ss[0]; k[8*(i)+ 9] = g ^= k[8*(i)+ 1]; \ - ss[2] ^= ss[1]; k[8*(i)+10] = g ^= k[8*(i)+ 2]; \ - ss[3] ^= ss[2]; k[8*(i)+11] = g ^= k[8*(i)+ 3]; \ - g = ls_box(ss[3],0); \ - ss[4] ^= g; g = ff(g); k[8*(i)+12] = g ^= k[8*(i)+ 4]; \ - ss[5] ^= ss[4]; k[8*(i)+13] = g ^= k[8*(i)+ 5]; \ - ss[6] ^= ss[5]; k[8*(i)+14] = g ^= k[8*(i)+ 6]; \ - ss[7] ^= ss[6]; k[8*(i)+15] = g ^= k[8*(i)+ 7]; \ -} -#define kdl8(k,i) \ -{ ss[0] ^= ls_box(ss[7],3) ^ t_use(r,c)[i]; k[8*(i)+ 8] = ss[0]; ss[1] ^= ss[0]; k[8*(i)+ 9] = ss[1]; \ - ss[2] ^= ss[1]; k[8*(i)+10] = ss[2]; ss[3] ^= ss[2]; k[8*(i)+11] = ss[3]; \ -} - -INTERNAL aes_rval aes_set_decrypt_key(const unsigned char in_key[], unsigned int klen, aes_ctx cx[1]) -{ aes_32t ss[8]; - d_vars - -#if !defined(FIXED_TABLES) -#ifdef GLOBALS - if(!t_use(in,it)) gen_tabs(); -#else - if(!cx->t_ptr || !t_use(in,it)) gen_tabs(cx); -#endif -#endif - -#if !defined(BLOCK_SIZE) - if(!cx->n_blk) cx->n_blk = 16; -#else - cx->n_blk = BLOCK_SIZE; -#endif - - if(((klen & 7) || klen < 16 || klen > 32) && ((klen & 63) || klen < 128 || klen > 256)) - { - cx->n_rnd = 0; return aes_bad; - } - - klen >>= (klen < 128 ? 2 : 5); - cx->n_blk = (cx->n_blk & ~3) | 2; - - cx->k_sch[0] = ss[0] = word_in(in_key ); - cx->k_sch[1] = ss[1] = word_in(in_key + 4); - cx->k_sch[2] = ss[2] = word_in(in_key + 8); - cx->k_sch[3] = ss[3] = word_in(in_key + 12); - -#if (BLOCK_SIZE == 16) && (DEC_UNROLL != NONE) - - switch(klen) - { - case 4: - kdf4(cx->k_sch, 0); kd4(cx->k_sch, 1); - kd4(cx->k_sch, 2); kd4(cx->k_sch, 3); - kd4(cx->k_sch, 4); kd4(cx->k_sch, 5); - kd4(cx->k_sch, 6); kd4(cx->k_sch, 7); - kd4(cx->k_sch, 8); kdl4(cx->k_sch, 9); - cx->n_rnd = 10; break; - case 6: - cx->k_sch[4] = ff(ss[4] = word_in(in_key + 16)); - cx->k_sch[5] = ff(ss[5] = word_in(in_key + 20)); - kdf6(cx->k_sch, 0); kd6(cx->k_sch, 1); - kd6(cx->k_sch, 2); kd6(cx->k_sch, 3); - kd6(cx->k_sch, 4); kd6(cx->k_sch, 5); - kd6(cx->k_sch, 6); kdl6(cx->k_sch, 7); - cx->n_rnd = 12; break; - case 8: - cx->k_sch[4] = ff(ss[4] = word_in(in_key + 16)); - cx->k_sch[5] = ff(ss[5] = word_in(in_key + 20)); - cx->k_sch[6] = ff(ss[6] = word_in(in_key + 24)); - cx->k_sch[7] = ff(ss[7] = word_in(in_key + 28)); - kdf8(cx->k_sch, 0); kd8(cx->k_sch, 1); - kd8(cx->k_sch, 2); kd8(cx->k_sch, 3); - kd8(cx->k_sch, 4); kd8(cx->k_sch, 5); - kdl8(cx->k_sch, 6); - cx->n_rnd = 14; break; - default: - ; - } -#else - cx->n_rnd = (klen > nc ? klen : nc) + 6; - { aes_32t i, l; - l = (nc * cx->n_rnd + nc - 1) / klen; - - switch(klen) - { - case 4: - for(i = 0; i < l; ++i) - ke4(cx->k_sch, i); - break; - case 6: - cx->k_sch[4] = ss[4] = word_in(in_key + 16); - cx->k_sch[5] = ss[5] = word_in(in_key + 20); - for(i = 0; i < l; ++i) - ke6(cx->k_sch, i); - break; - case 8: - cx->k_sch[4] = ss[4] = word_in(in_key + 16); - cx->k_sch[5] = ss[5] = word_in(in_key + 20); - cx->k_sch[6] = ss[6] = word_in(in_key + 24); - cx->k_sch[7] = ss[7] = word_in(in_key + 28); - for(i = 0; i < l; ++i) - ke8(cx->k_sch, i); - break; - default: - ; - } -#if (DEC_ROUND != NO_TABLES) - for(i = nc; i < nc * cx->n_rnd; ++i) - cx->k_sch[i] = inv_mcol(cx->k_sch[i]); -#endif - } -#endif - - return aes_good; -} - -#endif - -#if defined(__cplusplus) -} -#endif diff --git a/libzip-1.2.0/lib/gladman-fcrypt/aesopt.h b/libzip-1.2.0/lib/gladman-fcrypt/aesopt.h deleted file mode 100644 index 12db54969..000000000 --- a/libzip-1.2.0/lib/gladman-fcrypt/aesopt.h +++ /dev/null @@ -1,900 +0,0 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK. - All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue Date: 24/01/2003 - - This file contains the compilation options for AES (Rijndael) and code - that is common across encryption, key scheduling and table generation. - - OPERATION - - These source code files implement the AES algorithm Rijndael designed by - Joan Daemen and Vincent Rijmen. The version in aes.c is designed for - block and key sizes of 128, 192 and 256 bits (16, 24 and 32 bytes) while - that in aespp.c provides for block and keys sizes of 128, 160, 192, 224 - and 256 bits (16, 20, 24, 28 and 32 bytes). This file is a common header - file for these two implementations and for aesref.c, which is a reference - implementation. - - This version is designed for flexibility and speed using operations on - 32-bit words rather than operations on bytes. It provides aes_both fixed - and dynamic block and key lengths and can also run with either big or - little endian internal byte order (see aes.h). It inputs block and key - lengths in bytes with the legal values being 16, 24 and 32 for aes.c and - 16, 20, 24, 28 and 32 for aespp.c - - THE CIPHER INTERFACE - - aes_08t (an unsigned 8-bit type) - aes_32t (an unsigned 32-bit type) - aes_fret (a signed 16 bit type for function return values) - aes_good (value != 0, a good return) - aes_bad (value == 0, an error return) - struct aes_ctx (structure for the cipher encryption context) - struct aes_ctx (structure for the cipher decryption context) - aes_rval the function return type (aes_fret if not DLL) - - C subroutine calls: - - aes_rval aes_set_block_size(unsigned int blen, aes_ctx cx[1]); - aes_rval aes_set_encrypt_key(const unsigned char in_key[], - unsigned int klen, aes_ctx cx[1]); - aes_rval aes_encrypt_block(const unsigned char in_blk[], - unsigned char out_blk[], const aes_ctx cx[1]); - - aes_rval aes_dec_len(unsigned int blen, aes_ctx cx[1]); - aes_rval aes_set_decrypt_key(const unsigned char in_key[], - unsigned int klen, aes_ctx cx[1]); - aes_rval aes_decrypt_block(const unsigned char in_blk[], - unsigned char out_blk[], const aes_ctx cx[1]); - - IMPORTANT NOTE: If you are using this C interface and your compiler does - not set the memory used for objects to zero before use, you will need to - ensure that cx.n_blk is set to zero before using these subroutine calls. - - C++ aes class subroutines: - - class AESclass for encryption - class AESclass for decryption - - aes_rval len(unsigned int blen = 16); - aes_rval key(const unsigned char in_key[], unsigned int klen); - aes_rval blk(const unsigned char in_blk[], unsigned char out_blk[]); - - aes_rval len(unsigned int blen = 16); - aes_rval key(const unsigned char in_key[], unsigned int klen); - aes_rval blk(const unsigned char in_blk[], unsigned char out_blk[]); - - The block length inputs to set_block and set_key are in numbers of - BYTES, not bits. The calls to subroutines must be made in the above - order but multiple calls can be made without repeating earlier calls - if their parameters have not changed. If the cipher block length is - variable but set_blk has not been called before cipher operations a - value of 16 is assumed (that is, the AES block size). In contrast to - earlier versions the block and key length parameters are now checked - for correctness and the encryption and decryption routines check to - ensure that an appropriate key has been set before they are called. - - COMPILATION - - The files used to provide AES (Rijndael) are - - a. aes.h for the definitions needed for use in C. - b. aescpp.h for the definitions needed for use in C++. - c. aesopt.h for setting compilation options (also includes common - code). - d. aescrypt.c for encryption and decrytpion, or - e. aescrypt.asm for encryption and decryption using assembler code. - f. aeskey.c for key scheduling. - g. aestab.c for table loading or generation. - - The assembler code uses the NASM assembler. The above files provice - block and key lengths of 16, 24 and 32 bytes (128, 192 and 256 bits). - If aescrypp.c and aeskeypp.c are used instead of aescrypt.c and - aeskey.c respectively, the block and key lengths can then be 16, 20, - 24, 28 or 32 bytes. However this code has not been optimised to the - same extent and is hence slower (esepcially for the AES block size - of 16 bytes). - - To compile AES (Rijndael) for use in C code use aes.h and exclude - the AES_DLL define in aes.h - - To compile AES (Rijndael) for use in in C++ code use aescpp.h and - exclude the AES_DLL define in aes.h - - To compile AES (Rijndael) in C as a Dynamic Link Library DLL) use - aes.h, include the AES_DLL define and compile the DLL. If using - the test files to test the DLL, exclude aes.c from the test build - project and compile it with the same defines as used for the DLL - (ensure that the DLL path is correct) - - CONFIGURATION OPTIONS (here and in aes.h) - - a. define BLOCK_SIZE in aes.h to set the cipher block size (16, 24 - or 32 for the standard code, or 16, 20, 24, 28 or 32 for the - extended code) or leave this undefined for dynamically variable - block size (this will result in much slower code). - b. set AES_DLL in aes.h if AES (Rijndael) is to be compiled as a DLL - c. You may need to set PLATFORM_BYTE_ORDER to define the byte order. - d. If you want the code to run in a specific internal byte order, then - INTERNAL_BYTE_ORDER must be set accordingly. - e. set other configuration options decribed below. -*/ - -#ifndef _AESOPT_H -#define _AESOPT_H - -#if defined(__cplusplus) -extern "C" -{ -#if 0 -} -#endif -#endif - -/* START OF CONFIGURATION OPTIONS - - USE OF DEFINES - - Later in this section there are a number of defines that control the - operation of the code. In each section, the purpose of each define is - explained so that the relevant form can be included or excluded by - setting either 1's or 0's respectively on the branches of the related - #if clauses. -*/ - -/* DO NOT CHANGE THE FOLLOWING EIGHT DEFINES */ - -#define NO_TABLES 0 -#define ONE_TABLE 1 -#define FOUR_TABLES 4 -#define NONE 0 -#define PARTIAL 1 -#define FULL 2 -#define AES_LITTLE_ENDIAN 1234 /* byte 0 is least significant (i386) */ -#define AES_BIG_ENDIAN 4321 /* byte 0 is most significant (mc68k) */ - -/* 1. PLATFORM SPECIFIC INCLUDES */ - -#include "aes.h" - -#include "config.h" - -#if defined(WORDS_BIGENDIAN) -# define PLATFORM_BYTE_ORDER AES_BIG_ENDIAN -#else -# define PLATFORM_BYTE_ORDER AES_LITTLE_ENDIAN -#endif - -/* 2. BYTE ORDER IN 32-BIT WORDS - - To obtain the highest speed on processors with 32-bit words, this code - needs to determine the order in which bytes are packed into such words. - The following block of code is an attempt to capture the most obvious - ways in which various environemnts define byte order. It may well fail, - in which case the definitions will need to be set by editing at the - points marked **** EDIT HERE IF NECESSARY **** below. -*/ -#if !defined(PLATFORM_BYTE_ORDER) -#if defined(LITTLE_ENDIAN) || defined(BIG_ENDIAN) -# if defined(LITTLE_ENDIAN) && defined(BIG_ENDIAN) -# if defined(BYTE_ORDER) -# if (BYTE_ORDER == LITTLE_ENDIAN) -# define PLATFORM_BYTE_ORDER AES_LITTLE_ENDIAN -# elif (BYTE_ORDER == BIG_ENDIAN) -# define PLATFORM_BYTE_ORDER AES_BIG_ENDIAN -# endif -# endif -# elif defined(LITTLE_ENDIAN) && !defined(BIG_ENDIAN) -# define PLATFORM_BYTE_ORDER AES_LITTLE_ENDIAN -# elif !defined(LITTLE_ENDIAN) && defined(BIG_ENDIAN) -# define PLATFORM_BYTE_ORDER AES_BIG_ENDIAN -# endif -#elif defined(_LITTLE_ENDIAN) || defined(_BIG_ENDIAN) -# if defined(_LITTLE_ENDIAN) && defined(_BIG_ENDIAN) -# if defined(_BYTE_ORDER) -# if (_BYTE_ORDER == _LITTLE_ENDIAN) -# define PLATFORM_BYTE_ORDER AES_LITTLE_ENDIAN -# elif (_BYTE_ORDER == _BIG_ENDIAN) -# define PLATFORM_BYTE_ORDER AES_BIG_ENDIAN -# endif -# endif -# elif defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN) -# define PLATFORM_BYTE_ORDER AES_LITTLE_ENDIAN -# elif !defined(_LITTLE_ENDIAN) && defined(_BIG_ENDIAN) -# define PLATFORM_BYTE_ORDER AES_BIG_ENDIAN -# endif -#elif 0 /* **** EDIT HERE IF NECESSARY **** */ -#define PLATFORM_BYTE_ORDER AES_LITTLE_ENDIAN -#elif 0 /* **** EDIT HERE IF NECESSARY **** */ -#define PLATFORM_BYTE_ORDER AES_BIG_ENDIAN -#elif (('1234' >> 24) == '1') -# define PLATFORM_BYTE_ORDER AES_LITTLE_ENDIAN -#elif (('4321' >> 24) == '1') -# define PLATFORM_BYTE_ORDER AES_BIG_ENDIAN -#endif -#endif - -#if !defined(PLATFORM_BYTE_ORDER) -# error Please set undetermined byte order (lines 241 or 243 of aesopt.h). -#endif - -/* 3. FUNCTIONS REQUIRED - - This implementation provides five main subroutines which provide for - setting block length, setting encryption and decryption keys and for - encryption and decryption. When the assembler code is not being used - the following definition blocks allow the selection of the routines - that are to be included in the compilation. -*/ -#if 1 -#define ENCRYPTION -#define ENCRYPTION_KEY_SCHEDULE -#endif - -#if 0 -#define DECRYPTION -#define DECRYPTION_KEY_SCHEDULE -#endif - -/* 4. ASSEMBLER SUPPORT - - This define (which can be on the command line) enables the use of the - assembler code routines for encryption and decryption with the C code - only providing key scheduling -*/ -#if 0 -#define AES_ASM -#endif - -/* 5. BYTE ORDER WITHIN 32 BIT WORDS - - The fundamental data processing units in Rijndael are 8-bit bytes. The - input, output and key input are all enumerated arrays of bytes in which - bytes are numbered starting at zero and increasing to one less than the - number of bytes in the array in question. This enumeration is only used - for naming bytes and does not imply any adjacency or order relationship - from one byte to another. When these inputs and outputs are considered - as bit sequences, bits 8*n to 8*n+7 of the bit sequence are mapped to - byte[n] with bit 8n+i in the sequence mapped to bit 7-i within the byte. - In this implementation bits are numbered from 0 to 7 starting at the - numerically least significant end of each byte (bit n represents 2^n). - - However, Rijndael can be implemented more efficiently using 32-bit - words by packing bytes into words so that bytes 4*n to 4*n+3 are placed - into word[n]. While in principle these bytes can be assembled into words - in any positions, this implementation only supports the two formats in - which bytes in adjacent positions within words also have adjacent byte - numbers. This order is called big-endian if the lowest numbered bytes - in words have the highest numeric significance and little-endian if the - opposite applies. - - This code can work in either order irrespective of the order used by the - machine on which it runs. Normally the internal byte order will be set - to the order of the processor on which the code is to be run but this - define can be used to reverse this in special situations -*/ -#if 1 -#define INTERNAL_BYTE_ORDER PLATFORM_BYTE_ORDER -#elif 0 -#define INTERNAL_BYTE_ORDER AES_LITTLE_ENDIAN -#elif 0 -#define INTERNAL_BYTE_ORDER AES_BIG_ENDIAN -#else -#error The internal byte order is not defined -#endif - -/* 6. FAST INPUT/OUTPUT OPERATIONS. - - On some machines it is possible to improve speed by transferring the - bytes in the input and output arrays to and from the internal 32-bit - variables by addressing these arrays as if they are arrays of 32-bit - words. On some machines this will always be possible but there may - be a large performance penalty if the byte arrays are not aligned on - the normal word boundaries. On other machines this technique will - lead to memory access errors when such 32-bit word accesses are not - properly aligned. The option SAFE_IO avoids such problems but will - often be slower on those machines that support misaligned access - (especially so if care is taken to align the input and output byte - arrays on 32-bit word boundaries). If SAFE_IO is not defined it is - assumed that access to byte arrays as if they are arrays of 32-bit - words will not cause problems when such accesses are misaligned. -*/ -#if 1 && !defined(_MSC_VER) -#define SAFE_IO -#endif - -/* 7. LOOP UNROLLING - - The code for encryption and decrytpion cycles through a number of rounds - that can be implemented either in a loop or by expanding the code into a - long sequence of instructions, the latter producing a larger program but - one that will often be much faster. The latter is called loop unrolling. - There are also potential speed advantages in expanding two iterations in - a loop with half the number of iterations, which is called partial loop - unrolling. The following options allow partial or full loop unrolling - to be set independently for encryption and decryption -*/ -#if 1 -#define ENC_UNROLL FULL -#elif 0 -#define ENC_UNROLL PARTIAL -#else -#define ENC_UNROLL NONE -#endif - -#if 1 -#define DEC_UNROLL FULL -#elif 0 -#define DEC_UNROLL PARTIAL -#else -#define DEC_UNROLL NONE -#endif - -/* 8. FAST FINITE FIELD OPERATIONS - - If this section is included, tables are used to provide faster finite - field arithmetic (this has no effect if FIXED_TABLES is defined). -*/ -#if 1 -#define FF_TABLES -#endif - -/* 9. INTERNAL STATE VARIABLE FORMAT - - The internal state of Rijndael is stored in a number of local 32-bit - word varaibles which can be defined either as an array or as individual - names variables. Include this section if you want to store these local - varaibles in arrays. Otherwise individual local variables will be used. -*/ -#if 1 -#define ARRAYS -#endif - -/* In this implementation the columns of the state array are each held in - 32-bit words. The state array can be held in various ways: in an array - of words, in a number of individual word variables or in a number of - processor registers. The following define maps a variable name x and - a column number c to the way the state array variable is to be held. - The first define below maps the state into an array x[c] whereas the - second form maps the state into a number of individual variables x0, - x1, etc. Another form could map individual state colums to machine - register names. -*/ - -#if defined(ARRAYS) -#define s(x,c) x[c] -#else -#define s(x,c) x##c -#endif - -/* 10. VARIABLE BLOCK SIZE SPEED - - This section is only relevant if you wish to use the variable block - length feature of the code. Include this section if you place more - emphasis on speed rather than code size. -*/ -#if 1 -#define FAST_VARIABLE -#endif - -/* 11. FIXED OR DYNAMIC TABLES - - When this section is included the tables used by the code are comipled - statically into the binary file. Otherwise they are computed once when - the code is first used. -*/ -#if 1 -#define FIXED_TABLES -#endif - -/* 12. GLOBAL VARIABLES - - In some circumstances global variables to hold the fixed tables are not - possible so the tables have to be placed in a structure that is passed - around at run time through the AES API calls. In this case FIXED_TABLES - cannot be used. GLOBALS must be defined in order to use the assembler - version of this code. If GLOBALS is not defined, then AES_TABLE_PTR must - be defined either on the command line or early in aes.h in order to - provide space for the table pointer in the AES context. -*/ -#if 1 || defined(AES_ASM) -#define GLOBALS -#elif !defined(AES_TABLE_PTR) -#error no context space for table pointer (compile with AES_TABLE_PTR defined) -#elif defined(FIXED_TABLES) -#undef FIXED_TABLES -#endif - -/* 13. INTERNAL TABLE CONFIGURATION - - This cipher proceeds by repeating in a number of cycles known as 'rounds' - which are implemented by a round function which can optionally be speeded - up using tables. The basic tables are each 256 32-bit words, with either - one or four tables being required for each round function depending on - how much speed is required. The encryption and decryption round functions - are different and the last encryption and decrytpion round functions are - different again making four different round functions in all. - - This means that: - 1. Normal encryption and decryption rounds can each use either 0, 1 - or 4 tables and table spaces of 0, 1024 or 4096 bytes each. - 2. The last encryption and decryption rounds can also use either 0, 1 - or 4 tables and table spaces of 0, 1024 or 4096 bytes each. - - Include or exclude the appropriate definitions below to set the number - of tables used by this implementation. -*/ - -#if 1 /* set tables for the normal encryption round */ -#define ENC_ROUND FOUR_TABLES -#elif 0 -#define ENC_ROUND ONE_TABLE -#else -#define ENC_ROUND NO_TABLES -#endif - -#if 1 /* set tables for the last encryption round */ -#define LAST_ENC_ROUND FOUR_TABLES -#elif 0 -#define LAST_ENC_ROUND ONE_TABLE -#else -#define LAST_ENC_ROUND NO_TABLES -#endif - -#if 1 /* set tables for the normal decryption round */ -#define DEC_ROUND FOUR_TABLES -#elif 0 -#define DEC_ROUND ONE_TABLE -#else -#define DEC_ROUND NO_TABLES -#endif - -#if 1 /* set tables for the last decryption round */ -#define LAST_DEC_ROUND FOUR_TABLES -#elif 0 -#define LAST_DEC_ROUND ONE_TABLE -#else -#define LAST_DEC_ROUND NO_TABLES -#endif - -/* The decryption key schedule can be speeded up with tables in the same - way that the round functions can. Include or exclude the following - defines to set this requirement. -*/ -#if 1 -#define KEY_SCHED FOUR_TABLES -#elif 0 -#define KEY_SCHED ONE_TABLE -#else -#define KEY_SCHED NO_TABLES -#endif - -/* END OF CONFIGURATION OPTIONS */ - -#if defined(BLOCK_SIZE) && ((BLOCK_SIZE & 3) || BLOCK_SIZE < 16 || BLOCK_SIZE > 32) -#error An illegal block size has been specified. -#endif - -#if !defined(BLOCK_SIZE) -#define RC_LENGTH 29 -#else -#define RC_LENGTH (5 * BLOCK_SIZE / 4 - (BLOCK_SIZE == 16 ? 10 : 11)) -#endif - -/* Disable at least some poor combinations of options */ - -#if ENC_ROUND == NO_TABLES && LAST_ENC_ROUND != NO_TABLES -#undef LAST_ENC_ROUND -#define LAST_ENC_ROUND NO_TABLES -#elif ENC_ROUND == ONE_TABLE && LAST_ENC_ROUND == FOUR_TABLES -#undef LAST_ENC_ROUND -#define LAST_ENC_ROUND ONE_TABLE -#endif - -#if ENC_ROUND == NO_TABLES && ENC_UNROLL != NONE -#undef ENC_UNROLL -#define ENC_UNROLL NONE -#endif - -#if DEC_ROUND == NO_TABLES && LAST_DEC_ROUND != NO_TABLES -#undef LAST_DEC_ROUND -#define LAST_DEC_ROUND NO_TABLES -#elif DEC_ROUND == ONE_TABLE && LAST_DEC_ROUND == FOUR_TABLES -#undef LAST_DEC_ROUND -#define LAST_DEC_ROUND ONE_TABLE -#endif - -#if DEC_ROUND == NO_TABLES && DEC_UNROLL != NONE -#undef DEC_UNROLL -#define DEC_UNROLL NONE -#endif - -/* upr(x,n): rotates bytes within words by n positions, moving bytes to - higher index positions with wrap around into low positions - ups(x,n): moves bytes by n positions to higher index positions in - words but without wrap around - bval(x,n): extracts a byte from a word - - NOTE: The definitions given here are intended only for use with - unsigned variables and with shift counts that are compile - time constants -*/ - -#if (INTERNAL_BYTE_ORDER == AES_LITTLE_ENDIAN) -#define upr(x,n) (((aes_32t)(x) << (8 * (n))) | ((aes_32t)(x) >> (32 - 8 * (n)))) -#define ups(x,n) ((aes_32t) (x) << (8 * (n))) -#define bval(x,n) ((aes_08t)((x) >> (8 * (n)))) -#define bytes2word(b0, b1, b2, b3) \ - (((aes_32t)(b3) << 24) | ((aes_32t)(b2) << 16) | ((aes_32t)(b1) << 8) | (b0)) -#endif - -#if (INTERNAL_BYTE_ORDER == AES_BIG_ENDIAN) -#define upr(x,n) (((aes_32t)(x) >> (8 * (n))) | ((aes_32t)(x) << (32 - 8 * (n)))) -#define ups(x,n) ((aes_32t) (x) >> (8 * (n)))) -#define bval(x,n) ((aes_08t)((x) >> (24 - 8 * (n)))) -#define bytes2word(b0, b1, b2, b3) \ - (((aes_32t)(b0) << 24) | ((aes_32t)(b1) << 16) | ((aes_32t)(b2) << 8) | (b3)) -#endif - -#if defined(SAFE_IO) - -#define word_in(x) bytes2word((x)[0], (x)[1], (x)[2], (x)[3]) -#define word_out(x,v) { (x)[0] = bval(v,0); (x)[1] = bval(v,1); \ - (x)[2] = bval(v,2); (x)[3] = bval(v,3); } - -#elif (INTERNAL_BYTE_ORDER == PLATFORM_BYTE_ORDER) - -#define word_in(x) (*(aes_32t*)(x)) -#define word_out(x,v) (*(aes_32t*)(x) = (v)) - -#else - -#if !defined(bswap_32) -#define brot(x,n) (((aes_32t)(x) << n) | ((aes_32t)(x) >> (32 - n))) -#define bswap_32(x) ((brot((x),8) & 0x00ff00ff) | (brot((x),24) & 0xff00ff00)) -#endif - -#define word_in(x) bswap_32(*(aes_32t*)(x)) -#define word_out(x,v) (*(aes_32t*)(x) = bswap_32(v)) - -#endif - -/* the finite field modular polynomial and elements */ - -#define WPOLY 0x011b -#define BPOLY 0x1b - -/* multiply four bytes in GF(2^8) by 'x' {02} in parallel */ - -#define m1 0x80808080 -#define m2 0x7f7f7f7f -#define FFmulX(x) ((((x) & m2) << 1) ^ ((((x) & m1) >> 7) * BPOLY)) - -/* The following defines provide alternative definitions of FFmulX that might - give improved performance if a fast 32-bit multiply is not available. Note - that a temporary variable u needs to be defined where FFmulX is used. - -#define FFmulX(x) (u = (x) & m1, u |= (u >> 1), ((x) & m2) << 1) ^ ((u >> 3) | (u >> 6)) -#define m4 (0x01010101 * BPOLY) -#define FFmulX(x) (u = (x) & m1, ((x) & m2) << 1) ^ ((u - (u >> 7)) & m4) -*/ - -/* Work out which tables are needed for the different options */ - -#ifdef AES_ASM -#ifdef ENC_ROUND -#undef ENC_ROUND -#endif -#define ENC_ROUND FOUR_TABLES -#ifdef LAST_ENC_ROUND -#undef LAST_ENC_ROUND -#endif -#define LAST_ENC_ROUND FOUR_TABLES -#ifdef DEC_ROUND -#undef DEC_ROUND -#endif -#define DEC_ROUND FOUR_TABLES -#ifdef LAST_DEC_ROUND -#undef LAST_DEC_ROUND -#endif -#define LAST_DEC_ROUND FOUR_TABLES -#ifdef KEY_SCHED -#undef KEY_SCHED -#define KEY_SCHED FOUR_TABLES -#endif -#endif - -#if defined(ENCRYPTION) || defined(AES_ASM) -#if ENC_ROUND == ONE_TABLE -#define FT1_SET -#elif ENC_ROUND == FOUR_TABLES -#define FT4_SET -#else -#define SBX_SET -#endif -#if LAST_ENC_ROUND == ONE_TABLE -#define FL1_SET -#elif LAST_ENC_ROUND == FOUR_TABLES -#define FL4_SET -#elif !defined(SBX_SET) -#define SBX_SET -#endif -#endif - -#if defined(DECRYPTION) || defined(AES_ASM) -#if DEC_ROUND == ONE_TABLE -#define IT1_SET -#elif DEC_ROUND == FOUR_TABLES -#define IT4_SET -#else -#define ISB_SET -#endif -#if LAST_DEC_ROUND == ONE_TABLE -#define IL1_SET -#elif LAST_DEC_ROUND == FOUR_TABLES -#define IL4_SET -#elif !defined(ISB_SET) -#define ISB_SET -#endif -#endif - -#if defined(ENCRYPTION_KEY_SCHEDULE) || defined(DECRYPTION_KEY_SCHEDULE) -#if KEY_SCHED == ONE_TABLE -#define LS1_SET -#define IM1_SET -#elif KEY_SCHED == FOUR_TABLES -#define LS4_SET -#define IM4_SET -#elif !defined(SBX_SET) -#define SBX_SET -#endif -#endif - -/* If there are no global variables, the AES tables are placed in - a structure and a pointer is added to the AES context. If this - facility is used, the calling program has to ensure that this - pointer is managed appropriately. In particular, the value of - the t_dec(in,it) item in the table structure must be set to zero - in order to ensure that the tables are initialised. In practice - the three code sequences in aeskey.c that control the calls to - gen_tabs() and the gen_tabs() routine itself will require some - changes for a specific implementation. If global variables are - available it will generally be preferable to use them with the - precomputed FIXED_TABLES option that uses static global tables. - - The following defines can be used to control the way the tables - are defined, initialised and used in embedded environments that - require special features for these purposes - - the 't_dec' construction is used to declare fixed table arrays - the 't_set' construction is used to set fixed table values - the 't_use' construction is used to access fixed table values - - 256 byte tables: - - t_xxx(s,box) => forward S box - t_xxx(i,box) => inverse S box - - 256 32-bit word OR 4 x 256 32-bit word tables: - - t_xxx(f,n) => forward normal round - t_xxx(f,l) => forward last round - t_xxx(i,n) => inverse normal round - t_xxx(i,l) => inverse last round - t_xxx(l,s) => key schedule table - t_xxx(i,m) => key schedule table - - Other variables and tables: - - t_xxx(in,it) => the table initialsation flag - t_xxx(r,c) => the rcon table -*/ - -#define t_dec(m,n) t_##m##n -#define t_set(m,n) t_##m##n /* may be redefined once below */ -#define t_use(m,n) t_##m##n /* may be redefined once below */ - -#ifdef FIXED_TABLES - -#define prefx INTERNAL const -#elif defined(GLOBALS) -#define prefx extern -extern aes_08t t_dec(in,it); -void gen_tabs(void); -#else -#define prefx -void gen_tabs(aes_ctx cx[1]); - -typedef struct { -#endif - -prefx aes_32t t_dec(r,c)[RC_LENGTH]; - -#ifdef SBX_SET -prefx aes_08t t_dec(s,box)[256]; -#endif - -#ifdef ISB_SET -prefx aes_08t t_dec(i,box)[256]; -#endif - -#ifdef FT1_SET -prefx aes_32t t_dec(f,n)[256]; -#endif - -#ifdef FT4_SET -prefx aes_32t t_dec(f,n)[4][256]; -#endif - -#ifdef FL1_SET -prefx aes_32t t_dec(f,l)[256]; -#endif - -#ifdef FL4_SET -prefx aes_32t t_dec(f,l)[4][256]; -#endif - -#ifdef IT1_SET -prefx aes_32t t_dec(i,n)[256]; -#endif - -#ifdef IT4_SET -prefx aes_32t t_dec(i,n)[4][256]; -#endif - -#ifdef IL1_SET -prefx aes_32t t_dec(i,l)[256]; -#endif - -#ifdef IL4_SET -prefx aes_32t t_dec(i,l)[4][256]; -#endif - -#ifdef LS1_SET -#ifdef FL1_SET -#undef LS1_SET -#else -prefx aes_32t t_dec(l,s)[256]; -#endif -#endif - -#ifdef LS4_SET -#ifdef FL4_SET -#undef LS4_SET -#else -prefx aes_32t t_dec(l,s)[4][256]; -#endif -#endif - -#ifdef IM1_SET -prefx aes_32t t_dec(i,m)[256]; -#endif - -#ifdef IM4_SET -prefx aes_32t t_dec(i,m)[4][256]; -#endif - -prefx aes_08t t_dec(in,it); - -#ifndef GLOBALS -} s_ty; - -extern s_ty s_t; - -/* modify the table set macro to cope with a static structure */ -#undef t_set -#define t_set(m,n) (s_t.t_##m##n) - -/* modify the table use macro to cope with a context pointer */ -#undef t_use -#define t_use(m,n) (((s_ty*)cx->t_ptr)->t_##m##n) - -#endif - -/* Set the number of columns in nc. Note that it is important - that nc is a constant which is known at compile time if the - highest speed version of the code is needed. -*/ - -#if defined(BLOCK_SIZE) -#define nc (BLOCK_SIZE >> 2) -#else -#define nc (cx->n_blk >> 2) -#endif - -/* generic definitions of Rijndael macros that use tables */ - -#define no_table(x,box,vf,rf,c) bytes2word( \ - box[bval(vf(x,0,c),rf(0,c))], \ - box[bval(vf(x,1,c),rf(1,c))], \ - box[bval(vf(x,2,c),rf(2,c))], \ - box[bval(vf(x,3,c),rf(3,c))]) - -#define one_table(x,op,tab,vf,rf,c) \ - ( tab[bval(vf(x,0,c),rf(0,c))] \ - ^ op(tab[bval(vf(x,1,c),rf(1,c))],1) \ - ^ op(tab[bval(vf(x,2,c),rf(2,c))],2) \ - ^ op(tab[bval(vf(x,3,c),rf(3,c))],3)) - -#define four_tables(x,tab,vf,rf,c) \ - ( tab[0][bval(vf(x,0,c),rf(0,c))] \ - ^ tab[1][bval(vf(x,1,c),rf(1,c))] \ - ^ tab[2][bval(vf(x,2,c),rf(2,c))] \ - ^ tab[3][bval(vf(x,3,c),rf(3,c))]) - -#define vf1(x,r,c) (x) -#define rf1(r,c) (r) -#define rf2(r,c) ((8+r-c)&3) - -/* perform forward and inverse column mix operation on four bytes in long word x in */ -/* parallel. NOTE: x must be a simple variable, NOT an expression in these macros. */ - -#define dec_fmvars -#if defined(FM4_SET) /* not currently used */ -#define fwd_mcol(x) four_tables(x,t_use(f,m),vf1,rf1,0) -#elif defined(FM1_SET) /* not currently used */ -#define fwd_mcol(x) one_table(x,upr,t_use(f,m),vf1,rf1,0) -#else -#undef dec_fmvars -#define dec_fmvars aes_32t f1, f2; -#define fwd_mcol(x) (f1 = (x), f2 = FFmulX(f1), f2 ^ upr(f1 ^ f2, 3) ^ upr(f1, 2) ^ upr(f1, 1)) -#endif - -#define dec_imvars -#if defined(IM4_SET) -#define inv_mcol(x) four_tables(x,t_use(i,m),vf1,rf1,0) -#elif defined(IM1_SET) -#define inv_mcol(x) one_table(x,upr,t_use(i,m),vf1,rf1,0) -#else -#undef dec_imvars -#define dec_imvars aes_32t f2, f4, f8, f9; -#define inv_mcol(x) \ - (f9 = (x), f2 = FFmulX(f9), f4 = FFmulX(f2), f8 = FFmulX(f4), f9 ^= f8, \ - f2 ^= f4 ^ f8 ^ upr(f2 ^ f9,3) ^ upr(f4 ^ f9,2) ^ upr(f9,1)) -#endif - -#if defined(FL4_SET) -#define ls_box(x,c) four_tables(x,t_use(f,l),vf1,rf2,c) -#elif defined(LS4_SET) -#define ls_box(x,c) four_tables(x,t_use(l,s),vf1,rf2,c) -#elif defined(FL1_SET) -#define ls_box(x,c) one_table(x,upr,t_use(f,l),vf1,rf2,c) -#elif defined(LS1_SET) -#define ls_box(x,c) one_table(x,upr,t_use(l,s),vf1,rf2,c) -#else -#define ls_box(x,c) no_table(x,t_use(s,box),vf1,rf2,c) -#endif - -#if defined(__cplusplus) -} -#endif - -#endif diff --git a/libzip-1.2.0/lib/gladman-fcrypt/aestab.c b/libzip-1.2.0/lib/gladman-fcrypt/aestab.c deleted file mode 100644 index 7b202bea7..000000000 --- a/libzip-1.2.0/lib/gladman-fcrypt/aestab.c +++ /dev/null @@ -1,529 +0,0 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK. - All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue Date: 24/01/2003 - - This file contains the code for generating the fixed tables needed for AES -*/ - -#include "aesopt.h" - -#if defined(__cplusplus) -extern "C" -{ -#endif - -#if defined(FIXED_TABLES) || !defined(FF_TABLES) - -/* finite field arithmetic operations */ - -#define f2(x) ((x<<1) ^ (((x>>7) & 1) * WPOLY)) -#define f4(x) ((x<<2) ^ (((x>>6) & 1) * WPOLY) ^ (((x>>6) & 2) * WPOLY)) -#define f8(x) ((x<<3) ^ (((x>>5) & 1) * WPOLY) ^ (((x>>5) & 2) * WPOLY) \ - ^ (((x>>5) & 4) * WPOLY)) -#define f3(x) (f2(x) ^ x) -#define f9(x) (f8(x) ^ x) -#define fb(x) (f8(x) ^ f2(x) ^ x) -#define fd(x) (f8(x) ^ f4(x) ^ x) -#define fe(x) (f8(x) ^ f4(x) ^ f2(x)) - -#endif - -#if defined(FIXED_TABLES) - -#define sb_data(w) \ - w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), w(0xc5),\ - w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), w(0xab), w(0x76),\ - w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), w(0x59), w(0x47), w(0xf0),\ - w(0xad), w(0xd4), w(0xa2), w(0xaf), w(0x9c), w(0xa4), w(0x72), w(0xc0),\ - w(0xb7), w(0xfd), w(0x93), w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc),\ - w(0x34), w(0xa5), w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15),\ - w(0x04), w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a),\ - w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), w(0x75),\ - w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), w(0x5a), w(0xa0),\ - w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), w(0xe3), w(0x2f), w(0x84),\ - w(0x53), w(0xd1), w(0x00), w(0xed), w(0x20), w(0xfc), w(0xb1), w(0x5b),\ - w(0x6a), w(0xcb), w(0xbe), w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf),\ - w(0xd0), w(0xef), w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85),\ - w(0x45), w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8),\ - w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), w(0xf5),\ - w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), w(0xf3), w(0xd2),\ - w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), w(0x97), w(0x44), w(0x17),\ - w(0xc4), w(0xa7), w(0x7e), w(0x3d), w(0x64), w(0x5d), w(0x19), w(0x73),\ - w(0x60), w(0x81), w(0x4f), w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88),\ - w(0x46), w(0xee), w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb),\ - w(0xe0), w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c),\ - w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), w(0x79),\ - w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), w(0x4e), w(0xa9),\ - w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), w(0x7a), w(0xae), w(0x08),\ - w(0xba), w(0x78), w(0x25), w(0x2e), w(0x1c), w(0xa6), w(0xb4), w(0xc6),\ - w(0xe8), w(0xdd), w(0x74), w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a),\ - w(0x70), w(0x3e), w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e),\ - w(0x61), w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e),\ - w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), w(0x94),\ - w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), w(0x28), w(0xdf),\ - w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), w(0xe6), w(0x42), w(0x68),\ - w(0x41), w(0x99), w(0x2d), w(0x0f), w(0xb0), w(0x54), w(0xbb), w(0x16) - -#define isb_data(w) \ - w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), w(0x38),\ - w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), w(0xd7), w(0xfb),\ - w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), w(0x2f), w(0xff), w(0x87),\ - w(0x34), w(0x8e), w(0x43), w(0x44), w(0xc4), w(0xde), w(0xe9), w(0xcb),\ - w(0x54), w(0x7b), w(0x94), w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d),\ - w(0xee), w(0x4c), w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e),\ - w(0x08), w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2),\ - w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), w(0x25),\ - w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), w(0x98), w(0x16),\ - w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), w(0x65), w(0xb6), w(0x92),\ - w(0x6c), w(0x70), w(0x48), w(0x50), w(0xfd), w(0xed), w(0xb9), w(0xda),\ - w(0x5e), w(0x15), w(0x46), w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84),\ - w(0x90), w(0xd8), w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a),\ - w(0xf7), w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06),\ - w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), w(0x02),\ - w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), w(0x8a), w(0x6b),\ - w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), w(0x67), w(0xdc), w(0xea),\ - w(0x97), w(0xf2), w(0xcf), w(0xce), w(0xf0), w(0xb4), w(0xe6), w(0x73),\ - w(0x96), w(0xac), w(0x74), w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85),\ - w(0xe2), w(0xf9), w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e),\ - w(0x47), w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89),\ - w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), w(0x1b),\ - w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), w(0x79), w(0x20),\ - w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), w(0xcd), w(0x5a), w(0xf4),\ - w(0x1f), w(0xdd), w(0xa8), w(0x33), w(0x88), w(0x07), w(0xc7), w(0x31),\ - w(0xb1), w(0x12), w(0x10), w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f),\ - w(0x60), w(0x51), w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d),\ - w(0x2d), w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef),\ - w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), w(0xb0),\ - w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), w(0x99), w(0x61),\ - w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), w(0x77), w(0xd6), w(0x26),\ - w(0xe1), w(0x69), w(0x14), w(0x63), w(0x55), w(0x21), w(0x0c), w(0x7d), - -#define mm_data(w) \ - w(0x00), w(0x01), w(0x02), w(0x03), w(0x04), w(0x05), w(0x06), w(0x07),\ - w(0x08), w(0x09), w(0x0a), w(0x0b), w(0x0c), w(0x0d), w(0x0e), w(0x0f),\ - w(0x10), w(0x11), w(0x12), w(0x13), w(0x14), w(0x15), w(0x16), w(0x17),\ - w(0x18), w(0x19), w(0x1a), w(0x1b), w(0x1c), w(0x1d), w(0x1e), w(0x1f),\ - w(0x20), w(0x21), w(0x22), w(0x23), w(0x24), w(0x25), w(0x26), w(0x27),\ - w(0x28), w(0x29), w(0x2a), w(0x2b), w(0x2c), w(0x2d), w(0x2e), w(0x2f),\ - w(0x30), w(0x31), w(0x32), w(0x33), w(0x34), w(0x35), w(0x36), w(0x37),\ - w(0x38), w(0x39), w(0x3a), w(0x3b), w(0x3c), w(0x3d), w(0x3e), w(0x3f),\ - w(0x40), w(0x41), w(0x42), w(0x43), w(0x44), w(0x45), w(0x46), w(0x47),\ - w(0x48), w(0x49), w(0x4a), w(0x4b), w(0x4c), w(0x4d), w(0x4e), w(0x4f),\ - w(0x50), w(0x51), w(0x52), w(0x53), w(0x54), w(0x55), w(0x56), w(0x57),\ - w(0x58), w(0x59), w(0x5a), w(0x5b), w(0x5c), w(0x5d), w(0x5e), w(0x5f),\ - w(0x60), w(0x61), w(0x62), w(0x63), w(0x64), w(0x65), w(0x66), w(0x67),\ - w(0x68), w(0x69), w(0x6a), w(0x6b), w(0x6c), w(0x6d), w(0x6e), w(0x6f),\ - w(0x70), w(0x71), w(0x72), w(0x73), w(0x74), w(0x75), w(0x76), w(0x77),\ - w(0x78), w(0x79), w(0x7a), w(0x7b), w(0x7c), w(0x7d), w(0x7e), w(0x7f),\ - w(0x80), w(0x81), w(0x82), w(0x83), w(0x84), w(0x85), w(0x86), w(0x87),\ - w(0x88), w(0x89), w(0x8a), w(0x8b), w(0x8c), w(0x8d), w(0x8e), w(0x8f),\ - w(0x90), w(0x91), w(0x92), w(0x93), w(0x94), w(0x95), w(0x96), w(0x97),\ - w(0x98), w(0x99), w(0x9a), w(0x9b), w(0x9c), w(0x9d), w(0x9e), w(0x9f),\ - w(0xa0), w(0xa1), w(0xa2), w(0xa3), w(0xa4), w(0xa5), w(0xa6), w(0xa7),\ - w(0xa8), w(0xa9), w(0xaa), w(0xab), w(0xac), w(0xad), w(0xae), w(0xaf),\ - w(0xb0), w(0xb1), w(0xb2), w(0xb3), w(0xb4), w(0xb5), w(0xb6), w(0xb7),\ - w(0xb8), w(0xb9), w(0xba), w(0xbb), w(0xbc), w(0xbd), w(0xbe), w(0xbf),\ - w(0xc0), w(0xc1), w(0xc2), w(0xc3), w(0xc4), w(0xc5), w(0xc6), w(0xc7),\ - w(0xc8), w(0xc9), w(0xca), w(0xcb), w(0xcc), w(0xcd), w(0xce), w(0xcf),\ - w(0xd0), w(0xd1), w(0xd2), w(0xd3), w(0xd4), w(0xd5), w(0xd6), w(0xd7),\ - w(0xd8), w(0xd9), w(0xda), w(0xdb), w(0xdc), w(0xdd), w(0xde), w(0xdf),\ - w(0xe0), w(0xe1), w(0xe2), w(0xe3), w(0xe4), w(0xe5), w(0xe6), w(0xe7),\ - w(0xe8), w(0xe9), w(0xea), w(0xeb), w(0xec), w(0xed), w(0xee), w(0xef),\ - w(0xf0), w(0xf1), w(0xf2), w(0xf3), w(0xf4), w(0xf5), w(0xf6), w(0xf7),\ - w(0xf8), w(0xf9), w(0xfa), w(0xfb), w(0xfc), w(0xfd), w(0xfe), w(0xff) - -#define h0(x) (x) - -/* These defines are used to ensure tables are generated in the - right format depending on the internal byte order required -*/ - -#define w0(p) bytes2word(p, 0, 0, 0) -#define w1(p) bytes2word(0, p, 0, 0) -#define w2(p) bytes2word(0, 0, p, 0) -#define w3(p) bytes2word(0, 0, 0, p) - -/* Number of elements required in this table for different - block and key lengths is: - - Rcon Table key length (bytes) - Length 16 20 24 28 32 - --------------------- - block 16 | 10 9 8 7 7 - length 20 | 14 11 10 9 9 - (bytes) 24 | 19 15 12 11 11 - 28 | 24 19 16 13 13 - 32 | 29 23 19 17 14 - - this table can be a table of bytes if the key schedule - code is adjusted accordingly -*/ - -#define u0(p) bytes2word(f2(p), p, p, f3(p)) -#define u1(p) bytes2word(f3(p), f2(p), p, p) -#define u2(p) bytes2word(p, f3(p), f2(p), p) -#define u3(p) bytes2word(p, p, f3(p), f2(p)) - -#define v0(p) bytes2word(fe(p), f9(p), fd(p), fb(p)) -#define v1(p) bytes2word(fb(p), fe(p), f9(p), fd(p)) -#define v2(p) bytes2word(fd(p), fb(p), fe(p), f9(p)) -#define v3(p) bytes2word(f9(p), fd(p), fb(p), fe(p)) - -INTERNAL const aes_32t t_dec(r,c)[RC_LENGTH] = -{ - w0(0x01), w0(0x02), w0(0x04), w0(0x08), w0(0x10), - w0(0x20), w0(0x40), w0(0x80), w0(0x1b), w0(0x36), -#if RC_LENGTH > 10 - w0(0x6c), w0(0xd8), w0(0xab), w0(0x4d), -#endif -#if RC_LENGTH > 14 - w0(0x9a), w0(0x2f), w0(0x5e), w0(0xbc), w0(0x63), -#endif -#if RC_LENGTH > 19 - w0(0xc6), w0(0x97), w0(0x35), w0(0x6a), w0(0xd4), -#endif -#if RC_LENGTH > 24 - w0(0xb3), w0(0x7d), w0(0xfa), w0(0xef), w0(0xc5) -#endif -}; - -#ifdef SBX_SET -INTERNAL const aes_08t t_dec(s,box)[256] = { sb_data(h0) }; -#endif -#ifdef ISB_SET -INTERNAL const aes_08t t_dec(i,box)[256] = { isb_data(h0) }; -#endif - -#ifdef FT1_SET -INTERNAL const aes_32t t_dec(f,n)[256] = { sb_data(u0) }; -#endif -#ifdef FT4_SET -INTERNAL const aes_32t t_dec(f,n)[4][256] = - { { sb_data(u0) }, { sb_data(u1) }, { sb_data(u2) }, { sb_data(u3) } }; -#endif - -#ifdef FL1_SET -INTERNAL const aes_32t t_dec(f,l)[256] = { sb_data(w0) }; -#endif -#ifdef FL4_SET -INTERNAL const aes_32t t_dec(f,l)[4][256] = - { { sb_data(w0) }, { sb_data(w1) }, { sb_data(w2) }, { sb_data(w3) } }; -#endif - -#ifdef IT1_SET -INTERNAL const aes_32t t_dec(i,n)[256] = { isb_data(v0) }; -#endif -#ifdef IT4_SET -INTERNAL const aes_32t t_dec(i,n)[4][256] = - { { isb_data(v0) }, { isb_data(v1) }, { isb_data(v2) }, { isb_data(v3) } }; -#endif - -#ifdef IL1_SET -INTERNAL const aes_32t t_dec(i,l)[256] = { isb_data(w0) }; -#endif -#ifdef IL4_SET -INTERNAL const aes_32t t_dec(i,l)[4][256] = - { { isb_data(w0) }, { isb_data(w1) }, { isb_data(w2) }, { isb_data(w3) } }; -#endif - -#ifdef LS1_SET -INTERNAL const aes_32t t_dec(l,s)[256] = { sb_data(w0) }; -#endif -#ifdef LS4_SET -INTERNAL const aes_32t t_dec(l,s)[4][256] = - { { sb_data(w0) }, { sb_data(w1) }, { sb_data(w2) }, { sb_data(w3) } }; -#endif - -#ifdef IM1_SET -INTERNAL const aes_32t t_dec(i,m)[256] = { mm_data(v0) }; -#endif -#ifdef IM4_SET -INTERNAL const aes_32t t_dec(i,m)[4][256] = - { { mm_data(v0) }, { mm_data(v1) }, { mm_data(v2) }, { mm_data(v3) } }; -#endif - -#else /* dynamic table generation */ - -#ifdef GLOBALS - -aes_08t t_dec(in,it) = 0; - -aes_32t t_dec(r,c)[RC_LENGTH]; - -#ifdef SBX_SET -aes_08t t_dec(s,box)[256]; -#endif -#ifdef ISB_SET -aes_08t t_dec(i,box)[256]; -#endif - -#ifdef FT1_SET -aes_32t t_dec(f,n)[256]; -#endif -#ifdef FT4_SET -aes_32t t_dec(f,n)[4][256]; -#endif - -#ifdef FL1_SET -aes_32t t_dec(f,l)[256]; -#endif -#ifdef FL4_SET -aes_32t t_dec(f,l)[4][256]; -#endif - -#ifdef IT1_SET -aes_32t t_dec(i,n)[256]; -#endif -#ifdef IT4_SET -aes_32t t_dec(i,n)[4][256]; -#endif - -#ifdef IL1_SET -aes_32t t_dec(i,l)[256]; -#endif -#ifdef IL4_SET -aes_32t t_dec(i,l)[4][256]; -#endif - -#ifdef LS1_SET -aes_32t t_dec(l,s)[256]; -#endif -#ifdef LS4_SET -aes_32t t_dec(l,s)[4][256]; -#endif - -#ifdef IM1_SET -aes_32t t_dec(i,m)[256]; -#endif -#ifdef IM4_SET -aes_32t t_dec(i,m)[4][256]; -#endif - -#else -s_ty s_t; -#endif - -#if !defined(FF_TABLES) - -/* Generate the tables for the dynamic table option - - It will generally be sensible to use tables to compute finite - field multiplies and inverses but where memory is scarse this - code might sometimes be better. But it only has effect during - initialisation so its pretty unimportant in overall terms. -*/ - -/* return 2 ^ (n - 1) where n is the bit number of the highest bit - set in x with x in the range 1 < x < 0x00000200. This form is - used so that locals within fi can be bytes rather than words -*/ - -static aes_08t hibit(const aes_32t x) -{ aes_08t r = (aes_08t)((x >> 1) | (x >> 2)); - - r |= (r >> 2); - r |= (r >> 4); - return (r + 1) >> 1; -} - -/* return the inverse of the finite field element x */ - -static aes_08t fi(const aes_08t x) -{ aes_08t p1 = x, p2 = BPOLY, n1 = hibit(x), n2 = 0x80, v1 = 1, v2 = 0; - - if(x < 2) return x; - - for(;;) - { - if(!n1) return v1; - - while(n2 >= n1) - { - n2 /= n1; p2 ^= p1 * n2; v2 ^= v1 * n2; n2 = hibit(p2); - } - - if(!n2) return v2; - - while(n1 >= n2) - { - n1 /= n2; p1 ^= p2 * n1; v1 ^= v2 * n1; n1 = hibit(p1); - } - } -} - -#else - -/* define the finite field multiplies required for Rijndael */ - -#define f2(x) ((x) ? pow[log[x] + 0x19] : 0) -#define f3(x) ((x) ? pow[log[x] + 0x01] : 0) -#define f9(x) ((x) ? pow[log[x] + 0xc7] : 0) -#define fb(x) ((x) ? pow[log[x] + 0x68] : 0) -#define fd(x) ((x) ? pow[log[x] + 0xee] : 0) -#define fe(x) ((x) ? pow[log[x] + 0xdf] : 0) -#define fi(x) ((x) ? pow[255 - log[x]]: 0) - -#endif - -/* The forward and inverse affine transformations used in the S-box */ - -#define fwd_affine(x) \ - (w = (aes_32t)x, w ^= (w<<1)^(w<<2)^(w<<3)^(w<<4), 0x63^(aes_08t)(w^(w>>8))) - -#define inv_affine(x) \ - (w = (aes_32t)x, w = (w<<1)^(w<<3)^(w<<6), 0x05^(aes_08t)(w^(w>>8))) - -#ifdef GLOBALS -INTERNAL void gen_tabs(void) -#else -INTERNAL void gen_tabs(aes_ctx cx[1]) -#endif -{ aes_32t i, w; - -#if defined(FF_TABLES) - - aes_08t pow[512], log[256]; - - /* log and power tables for GF(2^8) finite field with - WPOLY as modular polynomial - the simplest primitive - root is 0x03, used here to generate the tables - */ - - i = 0; w = 1; - do - { - pow[i] = (aes_08t)w; - pow[i + 255] = (aes_08t)w; - log[w] = (aes_08t)i++; - w ^= (w << 1) ^ (w & 0x80 ? WPOLY : 0); - } - while (w != 1); - -#endif - -#ifndef GLOBALS - if(!cx->t_ptr) - cx->t_ptr = &s_t; -#endif - - for(i = 0, w = 1; i < RC_LENGTH; ++i) - { - t_set(r,c)[i] = bytes2word(w, 0, 0, 0); - w = f2(w); - } - - for(i = 0; i < 256; ++i) - { aes_08t b; - - b = fwd_affine(fi((aes_08t)i)); - w = bytes2word(f2(b), b, b, f3(b)); - -#ifdef SBX_SET - t_set(s,box)[i] = b; -#endif - -#ifdef FT1_SET /* tables for a normal encryption round */ - t_set(f,n)[i] = w; -#endif -#ifdef FT4_SET - t_set(f,n)[0][i] = w; - t_set(f,n)[1][i] = upr(w,1); - t_set(f,n)[2][i] = upr(w,2); - t_set(f,n)[3][i] = upr(w,3); -#endif - w = bytes2word(b, 0, 0, 0); - -#ifdef FL1_SET /* tables for last encryption round (may also */ - t_set(f,l)[i] = w; /* be used in the key schedule) */ -#endif -#ifdef FL4_SET - t_set(f,l)[0][i] = w; - t_set(f,l)[1][i] = upr(w,1); - t_set(f,l)[2][i] = upr(w,2); - t_set(f,l)[3][i] = upr(w,3); -#endif - -#ifdef LS1_SET /* table for key schedule if t_set(f,l) above is */ - t_set(l,s)[i] = w; /* not of the required form */ -#endif -#ifdef LS4_SET - t_set(l,s)[0][i] = w; - t_set(l,s)[1][i] = upr(w,1); - t_set(l,s)[2][i] = upr(w,2); - t_set(l,s)[3][i] = upr(w,3); -#endif - - b = fi(inv_affine((aes_08t)i)); - w = bytes2word(fe(b), f9(b), fd(b), fb(b)); - -#ifdef IM1_SET /* tables for the inverse mix column operation */ - t_set(i,m)[b] = w; -#endif -#ifdef IM4_SET - t_set(i,m)[0][b] = w; - t_set(i,m)[1][b] = upr(w,1); - t_set(i,m)[2][b] = upr(w,2); - t_set(i,m)[3][b] = upr(w,3); -#endif - -#ifdef ISB_SET - t_set(i,box)[i] = b; -#endif -#ifdef IT1_SET /* tables for a normal decryption round */ - t_set(i,n)[i] = w; -#endif -#ifdef IT4_SET - t_set(i,n)[0][i] = w; - t_set(i,n)[1][i] = upr(w,1); - t_set(i,n)[2][i] = upr(w,2); - t_set(i,n)[3][i] = upr(w,3); -#endif - w = bytes2word(b, 0, 0, 0); -#ifdef IL1_SET /* tables for last decryption round */ - t_set(i,l)[i] = w; -#endif -#ifdef IL4_SET - t_set(i,l)[0][i] = w; - t_set(i,l)[1][i] = upr(w,1); - t_set(i,l)[2][i] = upr(w,2); - t_set(i,l)[3][i] = upr(w,3); -#endif - } - - t_set(in,it) = 1; -} - -#endif - -#if defined(__cplusplus) -} -#endif - diff --git a/libzip-1.2.0/lib/gladman-fcrypt/fileenc.c b/libzip-1.2.0/lib/gladman-fcrypt/fileenc.c deleted file mode 100644 index a96083b9e..000000000 --- a/libzip-1.2.0/lib/gladman-fcrypt/fileenc.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK. - All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - ------------------------------------------------------------------------- - Issue Date: 24/01/2003 - - This file implements password based file encryption and authentication - using AES in CTR mode, HMAC-SHA1 authentication and RFC2898 password - based key derivation. - -*/ - -#include - -#include "fileenc.h" - -#if defined(__cplusplus) -extern "C" -{ -#endif - -/* subroutine for data encryption/decryption */ -/* this could be speeded up a lot by aligning */ -/* buffers and using 32 bit operations */ - -static void encr_data(unsigned char data[], unsigned long d_len, fcrypt_ctx cx[1]) - { unsigned long i = 0; - unsigned int pos = cx->encr_pos; - - while(i < d_len) - { - if(pos == BLOCK_SIZE) - { unsigned int j = 0; - /* increment encryption nonce */ - while(j < 8 && !++cx->nonce[j]) - ++j; - /* encrypt the nonce to form next xor buffer */ - aes_encrypt_block(cx->nonce, cx->encr_bfr, cx->encr_ctx); - pos = 0; - } - - data[i++] ^= cx->encr_bfr[pos++]; - } - - cx->encr_pos = pos; -} - -int _zip_fcrypt_init( - unsigned int mode, /* the mode to be used (input) */ - const unsigned char pwd[], /* the user specified password (input) */ - unsigned int pwd_len, /* the length of the password (input) */ - const unsigned char salt[], /* the salt (input) */ -#ifdef PASSWORD_VERIFIER - unsigned char pwd_ver[PWD_VER_LENGTH], /* 2 byte password verifier (output) */ -#endif - fcrypt_ctx cx[1]) /* the file encryption context (output) */ -{ unsigned char kbuf[2 * MAX_KEY_LENGTH + PWD_VER_LENGTH]; - - if(pwd_len > MAX_PWD_LENGTH) - return PASSWORD_TOO_LONG; - - if(mode < 1 || mode > 3) - return BAD_MODE; - - cx->mode = mode; - cx->pwd_len = pwd_len; - - /* derive the encryption and authetication keys and the password verifier */ - derive_key(pwd, pwd_len, salt, SALT_LENGTH(mode), KEYING_ITERATIONS, - kbuf, 2 * KEY_LENGTH(mode) + PWD_VER_LENGTH); - - /* initialise the encryption nonce and buffer pos */ - cx->encr_pos = BLOCK_SIZE; - /* if we need a random component in the encryption */ - /* nonce, this is where it would have to be set */ - memset(cx->nonce, 0, BLOCK_SIZE * sizeof(unsigned char)); - - /* initialise for encryption using key 1 */ - aes_set_encrypt_key(kbuf, KEY_LENGTH(mode), cx->encr_ctx); - - /* initialise for authentication using key 2 */ - hmac_sha1_begin(cx->auth_ctx); - hmac_sha1_key(kbuf + KEY_LENGTH(mode), KEY_LENGTH(mode), cx->auth_ctx); - -#ifdef PASSWORD_VERIFIER - memcpy(pwd_ver, kbuf + 2 * KEY_LENGTH(mode), PWD_VER_LENGTH); -#endif - - return GOOD_RETURN; -} - -/* perform 'in place' encryption and authentication */ - -void _zip_fcrypt_encrypt(unsigned char data[], unsigned int data_len, fcrypt_ctx cx[1]) -{ - encr_data(data, data_len, cx); - hmac_sha1_data(data, data_len, cx->auth_ctx); -} - -/* perform 'in place' authentication and decryption */ - -void _zip_fcrypt_decrypt(unsigned char data[], unsigned int data_len, fcrypt_ctx cx[1]) -{ - hmac_sha1_data(data, data_len, cx->auth_ctx); - encr_data(data, data_len, cx); -} - -/* close encryption/decryption and return the MAC value */ - -int _zip_fcrypt_end(unsigned char mac[], fcrypt_ctx cx[1]) -{ - hmac_sha1_end(mac, MAC_LENGTH(cx->mode), cx->auth_ctx); - return MAC_LENGTH(cx->mode); /* return MAC length in bytes */ -} - -#if defined(__cplusplus) -} -#endif diff --git a/libzip-1.2.0/lib/gladman-fcrypt/fileenc.h b/libzip-1.2.0/lib/gladman-fcrypt/fileenc.h deleted file mode 100644 index d7b523468..000000000 --- a/libzip-1.2.0/lib/gladman-fcrypt/fileenc.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK. - All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue Date: 24/01/2003 - - This file contains the header file for fileenc.c, which implements password - based file encryption and authentication using AES in CTR mode, HMAC-SHA1 - authentication and RFC2898 password based key derivation. -*/ - -#ifndef _FENC_H -#define _FENC_H - -#include "aes.h" -#include "hmac.h" -#include "pwd2key.h" - -#define PASSWORD_VERIFIER - -#define MAX_KEY_LENGTH 32 -#define MAX_PWD_LENGTH 128 -#define MAX_SALT_LENGTH 16 -#define KEYING_ITERATIONS 1000 - -#ifdef PASSWORD_VERIFIER -#define PWD_VER_LENGTH 2 -#else -#define PWD_VER_LENGTH 0 -#endif - -#define GOOD_RETURN 0 -#define PASSWORD_TOO_LONG -100 -#define BAD_MODE -101 - -/* - Field lengths (in bytes) versus File Encryption Mode (0 < mode < 4) - - Mode Key Salt MAC Overhead - 1 16 8 10 18 - 2 24 12 10 22 - 3 32 16 10 26 - - The following macros assume that the mode value is correct. -*/ - -#define KEY_LENGTH(mode) (8 * (mode & 3) + 8) -#define SALT_LENGTH(mode) (4 * (mode & 3) + 4) -#define MAC_LENGTH(mode) (10) - -/* the context for file encryption */ - -#if defined(__cplusplus) -extern "C" -{ -#endif - -typedef struct -{ unsigned char nonce[BLOCK_SIZE]; /* the CTR nonce */ - unsigned char encr_bfr[BLOCK_SIZE]; /* encrypt buffer */ - aes_ctx encr_ctx[1]; /* encryption context */ - hmac_ctx auth_ctx[1]; /* authentication context */ - unsigned int encr_pos; /* block position (enc) */ - unsigned int pwd_len; /* password length */ - unsigned int mode; /* File encryption mode */ -} fcrypt_ctx; - -/* initialise file encryption or decryption */ - -int _zip_fcrypt_init( - unsigned int mode, /* the mode to be used (input) */ - const unsigned char pwd[], /* the user specified password (input) */ - unsigned int pwd_len, /* the length of the password (input) */ - const unsigned char salt[], /* the salt (input) */ -#ifdef PASSWORD_VERIFIER - unsigned char pwd_ver[PWD_VER_LENGTH], /* 2 byte password verifier (output) */ -#endif - fcrypt_ctx cx[1]); /* the file encryption context (output) */ - -/* perform 'in place' encryption or decryption and authentication */ - -void _zip_fcrypt_encrypt(unsigned char data[], unsigned int data_len, fcrypt_ctx cx[1]); -void _zip_fcrypt_decrypt(unsigned char data[], unsigned int data_len, fcrypt_ctx cx[1]); - -/* close encryption/decryption and return the MAC value */ -/* the return value is the length of the MAC */ - -int _zip_fcrypt_end(unsigned char mac[], /* the MAC value (output) */ - fcrypt_ctx cx[1]); /* the context (input) */ - -#if defined(__cplusplus) -} -#endif - -#endif diff --git a/libzip-1.2.0/lib/gladman-fcrypt/hmac.c b/libzip-1.2.0/lib/gladman-fcrypt/hmac.c deleted file mode 100644 index d031a9dc9..000000000 --- a/libzip-1.2.0/lib/gladman-fcrypt/hmac.c +++ /dev/null @@ -1,150 +0,0 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK. - All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue Date: 24/01/2003 - - This is an implementation of HMAC, the FIPS standard keyed hash function -*/ - -#include "hmac.h" - -#if defined(__cplusplus) -extern "C" -{ -#endif - -/* initialise the HMAC context to zero */ -INTERNAL void hmac_sha1_begin(hmac_ctx cx[1]) -{ - memset(cx, 0, sizeof(hmac_ctx)); -} - -/* input the HMAC key (can be called multiple times) */ -INTERNAL int hmac_sha1_key(const unsigned char key[], unsigned int key_len, hmac_ctx cx[1]) -{ - if(cx->klen == HMAC_IN_DATA) /* error if further key input */ - return HMAC_BAD_MODE; /* is attempted in data mode */ - - if(cx->klen + key_len > IN_BLOCK_LENGTH) /* if the key has to be hashed */ - { - if(cx->klen <= IN_BLOCK_LENGTH) /* if the hash has not yet been */ - { /* started, initialise it and */ - sha1_begin(cx->ctx); /* hash stored key characters */ - sha1_hash(cx->key, cx->klen, cx->ctx); - } - - sha1_hash(key, key_len, cx->ctx); /* hash long key data into hash */ - } - else /* otherwise store key data */ - memcpy(cx->key + cx->klen, key, key_len); - - cx->klen += key_len; /* update the key length count */ - return HMAC_OK; -} - -/* input the HMAC data (can be called multiple times) - */ -/* note that this call terminates the key input phase */ -INTERNAL void hmac_sha1_data(const unsigned char data[], unsigned int data_len, hmac_ctx cx[1]) -{ unsigned int i; - - if(cx->klen != HMAC_IN_DATA) /* if not yet in data phase */ - { - if(cx->klen > IN_BLOCK_LENGTH) /* if key is being hashed */ - { /* complete the hash and */ - sha1_end(cx->key, cx->ctx); /* store the result as the */ - cx->klen = OUT_BLOCK_LENGTH; /* key and set new length */ - } - - /* pad the key if necessary */ - if (cx->klen < IN_BLOCK_LENGTH) - { - memset(cx->key + cx->klen, 0, IN_BLOCK_LENGTH - cx->klen); - } - - /* xor ipad into key value */ - for(i = 0; i < (IN_BLOCK_LENGTH >> 2); ++i) - ((sha1_32t*)cx->key)[i] ^= 0x36363636; - - /* and start hash operation */ - sha1_begin(cx->ctx); - sha1_hash(cx->key, IN_BLOCK_LENGTH, cx->ctx); - - /* mark as now in data mode */ - cx->klen = HMAC_IN_DATA; - } - - /* hash the data (if any) */ - if(data_len) - sha1_hash(data, data_len, cx->ctx); -} - -/* compute and output the MAC value */ -INTERNAL void hmac_sha1_end(unsigned char mac[], unsigned long mac_len, hmac_ctx cx[1]) -{ unsigned char dig[OUT_BLOCK_LENGTH]; - unsigned int i; - - /* if no data has been entered perform a null data phase */ - if(cx->klen != HMAC_IN_DATA) - hmac_sha1_data((const unsigned char*)0, 0, cx); - - sha1_end(dig, cx->ctx); /* complete the inner hash */ - - /* set outer key value using opad and removing ipad */ - for(i = 0; i < (IN_BLOCK_LENGTH >> 2); ++i) - ((sha1_32t*)cx->key)[i] ^= 0x36363636 ^ 0x5c5c5c5c; - - /* perform the outer hash operation */ - sha1_begin(cx->ctx); - sha1_hash(cx->key, IN_BLOCK_LENGTH, cx->ctx); - sha1_hash(dig, OUT_BLOCK_LENGTH, cx->ctx); - sha1_end(dig, cx->ctx); - - /* output the hash value */ - for(i = 0; i < mac_len; ++i) - mac[i] = dig[i]; -} - -#if 0 /* not used */ -/* 'do it all in one go' subroutine */ -INTERNAL void hmac_sha1(const unsigned char key[], unsigned int key_len, - const unsigned char data[], unsigned int data_len, - unsigned char mac[], unsigned int mac_len) -{ hmac_ctx cx[1]; - - hmac_sha1_begin(cx); - hmac_sha1_key(key, key_len, cx); - hmac_sha1_data(data, data_len, cx); - hmac_sha1_end(mac, mac_len, cx); -} -#endif - -#if defined(__cplusplus) -} -#endif diff --git a/libzip-1.2.0/lib/gladman-fcrypt/hmac.h b/libzip-1.2.0/lib/gladman-fcrypt/hmac.h deleted file mode 100644 index f84bdcf0d..000000000 --- a/libzip-1.2.0/lib/gladman-fcrypt/hmac.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK. - All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue Date: 24/01/2003 - - This is an implementation of HMAC, the FIPS standard keyed hash function -*/ - -#ifndef _HMAC_H -#define _HMAC_H - -#include - -#include "sha1.h" - -#define IN_BLOCK_LENGTH SHA1_BLOCK_SIZE -#define OUT_BLOCK_LENGTH SHA1_DIGEST_SIZE -#define HMAC_IN_DATA 0xffffffff - -#define HMAC_OK 0 -#define HMAC_BAD_MODE -1 - -#if defined(__cplusplus) -extern "C" -{ -#endif - -typedef struct -{ unsigned char key[IN_BLOCK_LENGTH]; - sha1_ctx ctx[1]; - unsigned int klen; -} hmac_ctx; - -#ifdef BUILDING_FCRYPT -INTERNAL void hmac_sha1_begin(hmac_ctx cx[1]); - -INTERNAL int hmac_sha1_key(const unsigned char key[], unsigned int key_len, hmac_ctx cx[1]); - -INTERNAL void hmac_sha1_data(const unsigned char data[], unsigned int data_len, hmac_ctx cx[1]); - -INTERNAL void hmac_sha1_end(unsigned char mac[], unsigned long mac_len, hmac_ctx cx[1]); -#endif - -#if 0 /* not used */ -INTERNAL void hmac_sha1(const unsigned char key[], unsigned int key_len, - const unsigned char data[], unsigned int data_len, - unsigned char mac[], unsigned int mac_len); -#endif - -#if defined(__cplusplus) -} -#endif - -#endif diff --git a/libzip-1.2.0/lib/gladman-fcrypt/pwd2key.c b/libzip-1.2.0/lib/gladman-fcrypt/pwd2key.c deleted file mode 100644 index 3bda2721e..000000000 --- a/libzip-1.2.0/lib/gladman-fcrypt/pwd2key.c +++ /dev/null @@ -1,159 +0,0 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK. - All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue Date: 24/01/2003 - - This is an implementation of RFC2898, which specifies key derivation from - a password and a salt value. -*/ - -#include -#include "hmac.h" - -#if defined(__cplusplus) -extern "C" -{ -#endif - -INTERNAL void derive_key(const unsigned char pwd[], /* the PASSWORD */ - unsigned int pwd_len, /* and its length */ - const unsigned char salt[], /* the SALT and its */ - unsigned int salt_len, /* length */ - unsigned int iter, /* the number of iterations */ - unsigned char key[], /* space for the output key */ - unsigned int key_len)/* and its required length */ -{ - unsigned int i, j, k, n_blk; - unsigned char uu[OUT_BLOCK_LENGTH], ux[OUT_BLOCK_LENGTH]; - hmac_ctx c1[1], c2[1], c3[1]; - - /* set HMAC context (c1) for password */ - hmac_sha1_begin(c1); - hmac_sha1_key(pwd, pwd_len, c1); - - /* set HMAC context (c2) for password and salt */ - memcpy(c2, c1, sizeof(hmac_ctx)); - hmac_sha1_data(salt, salt_len, c2); - - /* find the number of SHA blocks in the key */ - n_blk = 1 + (key_len - 1) / OUT_BLOCK_LENGTH; - - for(i = 0; i < n_blk; ++i) /* for each block in key */ - { - /* ux[] holds the running xor value */ - memset(ux, 0, OUT_BLOCK_LENGTH); - - /* set HMAC context (c3) for password and salt */ - memcpy(c3, c2, sizeof(hmac_ctx)); - - /* enter additional data for 1st block into uu */ - uu[0] = (unsigned char)((i + 1) >> 24); - uu[1] = (unsigned char)((i + 1) >> 16); - uu[2] = (unsigned char)((i + 1) >> 8); - uu[3] = (unsigned char)(i + 1); - - /* this is the key mixing iteration */ - for(j = 0, k = 4; j < iter; ++j) - { - /* add previous round data to HMAC */ - hmac_sha1_data(uu, k, c3); - - /* obtain HMAC for uu[] */ - hmac_sha1_end(uu, OUT_BLOCK_LENGTH, c3); - - /* xor into the running xor block */ - for(k = 0; k < OUT_BLOCK_LENGTH; ++k) - ux[k] ^= uu[k]; - - /* set HMAC context (c3) for password */ - memcpy(c3, c1, sizeof(hmac_ctx)); - } - - /* compile key blocks into the key output */ - j = 0; k = i * OUT_BLOCK_LENGTH; - while(j < OUT_BLOCK_LENGTH && k < key_len) - key[k++] = ux[j++]; - } -} - -#ifdef TEST - -#include - -struct -{ unsigned int pwd_len; - unsigned int salt_len; - unsigned int it_count; - unsigned char *pwd; - unsigned char salt[32]; - unsigned char key[32]; -} tests[] = -{ - { 8, 4, 5, (unsigned char*)"password", - { 0x12, 0x34, 0x56, 0x78 }, - { 0x5c, 0x75, 0xce, 0xf0, 0x1a, 0x96, 0x0d, 0xf7, - 0x4c, 0xb6, 0xb4, 0x9b, 0x9e, 0x38, 0xe6, 0xb5 } /* ... */ - }, - { 8, 8, 5, (unsigned char*)"password", - { 0x12, 0x34, 0x56, 0x78, 0x78, 0x56, 0x34, 0x12 }, - { 0xd1, 0xda, 0xa7, 0x86, 0x15, 0xf2, 0x87, 0xe6, - 0xa1, 0xc8, 0xb1, 0x20, 0xd7, 0x06, 0x2a, 0x49 } /* ... */ - } -}; - -int main() -{ unsigned int i, j, key_len = 256; - unsigned char key[256]; - - printf("\nTest of RFC2898 Password Based Key Derivation"); - for(i = 0; i < 2; ++i) - { - derive_key(tests[i].pwd, tests[i].pwd_len, tests[i].salt, - tests[i].salt_len, tests[i].it_count, key, key_len); - - printf("\ntest %i: ", i + 1); - printf("key %s", memcmp(tests[i].key, key, 16) ? "is bad" : "is good"); - for(j = 0; j < key_len && j < 64; j += 4) - { - if(j % 16 == 0) - printf("\n"); - printf("0x%02x%02x%02x%02x ", key[j], key[j + 1], key[j + 2], key[j + 3]); - } - printf(j < key_len ? " ... \n" : "\n"); - } - printf("\n"); - return 0; -} - -#if defined(__cplusplus) -} -#endif - -#endif diff --git a/libzip-1.2.0/lib/gladman-fcrypt/pwd2key.h b/libzip-1.2.0/lib/gladman-fcrypt/pwd2key.h deleted file mode 100644 index b00e288f5..000000000 --- a/libzip-1.2.0/lib/gladman-fcrypt/pwd2key.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK. - All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue Date: 24/01/2003 - - This is an implementation of RFC2898, which specifies key derivation from - a password and a salt value. -*/ - -#ifndef PWD2KEY_H -#define PWD2KEY_H - -#if defined(__cplusplus) -extern "C" -{ -#endif - -#ifdef BUILDING_FCRYPT -INTERNAL void derive_key( - const unsigned char pwd[], /* the PASSWORD, and */ - unsigned int pwd_len, /* its length */ - const unsigned char salt[], /* the SALT and its */ - unsigned int salt_len, /* length */ - unsigned int iter, /* the number of iterations */ - unsigned char key[], /* space for the output key */ - unsigned int key_len); /* and its required length */ -#endif - -#if defined(__cplusplus) -} -#endif - -#endif diff --git a/libzip-1.2.0/lib/gladman-fcrypt/sha1.c b/libzip-1.2.0/lib/gladman-fcrypt/sha1.c deleted file mode 100644 index 4e2c19684..000000000 --- a/libzip-1.2.0/lib/gladman-fcrypt/sha1.c +++ /dev/null @@ -1,287 +0,0 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK. - All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue Date: 24/01/2003 - - This is a byte oriented version of SHA1 that operates on arrays of bytes - stored in memory. -*/ - -#include /* for memcpy() etc. */ -#include /* for _lrotl with VC++ */ - -#include "sha1.h" - -#if defined(__cplusplus) -extern "C" -{ -#if 0 -} -#endif -#endif - -/* - To obtain the highest speed on processors with 32-bit words, this code - needs to determine the order in which bytes are packed into such words. - The following block of code is an attempt to capture the most obvious - ways in which various environemnts specify their endian definitions. - It may well fail, in which case the definitions will need to be set by - editing at the points marked **** EDIT HERE IF NECESSARY **** below. -*/ -#define SHA_LITTLE_ENDIAN 1234 /* byte 0 is least significant (i386) */ -#define SHA_BIG_ENDIAN 4321 /* byte 0 is most significant (mc68k) */ - -#include "config.h" - -#if !defined(PLATFORM_BYTE_ORDER) -# if defined(WORDS_BIGENDIAN) -# define PLATFORM_BYTE_ORDER SHA_BIG_ENDIAN -# else -# define PLATFORM_BYTE_ORDER SHA_LITTLE_ENDIAN -# endif -#endif - -#if !defined(PLATFORM_BYTE_ORDER) -#if defined(LITTLE_ENDIAN) || defined(BIG_ENDIAN) -# if defined(LITTLE_ENDIAN) && defined(BIG_ENDIAN) -# if defined(BYTE_ORDER) -# if (BYTE_ORDER == LITTLE_ENDIAN) -# define PLATFORM_BYTE_ORDER SHA_LITTLE_ENDIAN -# elif (BYTE_ORDER == BIG_ENDIAN) -# define PLATFORM_BYTE_ORDER SHA_BIG_ENDIAN -# endif -# endif -# elif defined(LITTLE_ENDIAN) && !defined(BIG_ENDIAN) -# define PLATFORM_BYTE_ORDER SHA_LITTLE_ENDIAN -# elif !defined(LITTLE_ENDIAN) && defined(BIG_ENDIAN) -# define PLATFORM_BYTE_ORDER SHA_BIG_ENDIAN -# endif -#elif defined(_LITTLE_ENDIAN) || defined(_BIG_ENDIAN) -# if defined(_LITTLE_ENDIAN) && defined(_BIG_ENDIAN) -# if defined(_BYTE_ORDER) -# if (_BYTE_ORDER == _LITTLE_ENDIAN) -# define PLATFORM_BYTE_ORDER SHA_LITTLE_ENDIAN -# elif (_BYTE_ORDER == _BIG_ENDIAN) -# define PLATFORM_BYTE_ORDER SHA_BIG_ENDIAN -# endif -# endif -# elif defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN) -# define PLATFORM_BYTE_ORDER SHA_LITTLE_ENDIAN -# elif !defined(_LITTLE_ENDIAN) && defined(_BIG_ENDIAN) -# define PLATFORM_BYTE_ORDER SHA_BIG_ENDIAN -# endif -#elif 0 /* **** EDIT HERE IF NECESSARY **** */ -#define PLATFORM_BYTE_ORDER SHA_LITTLE_ENDIAN -#elif 0 /* **** EDIT HERE IF NECESSARY **** */ -#define PLATFORM_BYTE_ORDER SHA_BIG_ENDIAN -#elif (('1234' >> 24) == '1') -# define PLATFORM_BYTE_ORDER SHA_LITTLE_ENDIAN -#elif (('4321' >> 24) == '1') -# define PLATFORM_BYTE_ORDER SHA_BIG_ENDIAN -#endif -#endif - -#if !defined(PLATFORM_BYTE_ORDER) -# error Please set undetermined byte order (lines 87 or 89 of sha1.c). -#endif - -#define rotl32(x,n) (((x) << n) | ((x) >> (32 - n))) - -#if (PLATFORM_BYTE_ORDER == SHA_BIG_ENDIAN) -#define swap_b32(x) (x) -#elif defined(bswap_32) -#define swap_b32(x) bswap_32(x) -#else -#define swap_b32(x) ((rotl32((x), 8) & 0x00ff00ff) | (rotl32((x), 24) & 0xff00ff00)) -#endif - -#define SHA1_MASK (SHA1_BLOCK_SIZE - 1) - -/* reverse byte order in 32-bit words */ - -#define ch(x,y,z) (((x) & (y)) ^ (~(x) & (z))) -#define parity(x,y,z) ((x) ^ (y) ^ (z)) -#define maj(x,y,z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z))) - -/* A normal version as set out in the FIPS */ - -#define rnd(f,k) \ - t = a; a = rotl32(a,5) + f(b,c,d) + e + k + w[i]; \ - e = d; d = c; c = rotl32(b, 30); b = t - -INTERNAL void sha1_compile(sha1_ctx ctx[1]) -{ sha1_32t w[80], i, a, b, c, d, e, t; - - /* note that words are compiled from the buffer into 32-bit */ - /* words in big-endian order so an order reversal is needed */ - /* here on little endian machines */ - for(i = 0; i < SHA1_BLOCK_SIZE / 4; ++i) - w[i] = swap_b32(ctx->wbuf[i]); - - for(i = SHA1_BLOCK_SIZE / 4; i < 80; ++i) - w[i] = rotl32(w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16], 1); - - a = ctx->hash[0]; - b = ctx->hash[1]; - c = ctx->hash[2]; - d = ctx->hash[3]; - e = ctx->hash[4]; - - for(i = 0; i < 20; ++i) - { - rnd(ch, 0x5a827999); - } - - for(i = 20; i < 40; ++i) - { - rnd(parity, 0x6ed9eba1); - } - - for(i = 40; i < 60; ++i) - { - rnd(maj, 0x8f1bbcdc); - } - - for(i = 60; i < 80; ++i) - { - rnd(parity, 0xca62c1d6); - } - - ctx->hash[0] += a; - ctx->hash[1] += b; - ctx->hash[2] += c; - ctx->hash[3] += d; - ctx->hash[4] += e; -} - -INTERNAL void sha1_begin(sha1_ctx ctx[1]) -{ - ctx->count[0] = ctx->count[1] = 0; - ctx->hash[0] = 0x67452301; - ctx->hash[1] = 0xefcdab89; - ctx->hash[2] = 0x98badcfe; - ctx->hash[3] = 0x10325476; - ctx->hash[4] = 0xc3d2e1f0; -} - -/* SHA1 hash data in an array of bytes into hash buffer and */ -/* call the hash_compile function as required. */ - -INTERNAL void sha1_hash(const unsigned char data[], unsigned int len, sha1_ctx ctx[1]) -{ sha1_32t pos = (sha1_32t)(ctx->count[0] & SHA1_MASK), - space = SHA1_BLOCK_SIZE - pos; - const unsigned char *sp = data; - - if((ctx->count[0] += len) < len) - ++(ctx->count[1]); - - while(len >= space) /* tranfer whole blocks if possible */ - { - memcpy(((unsigned char*)ctx->wbuf) + pos, sp, space); - sp += space; len -= space; space = SHA1_BLOCK_SIZE; pos = 0; - sha1_compile(ctx); - } - - /*lint -e{803} conceivable data overrun */ - /* there are two cases: the above while loop entered or not */ - /* entered. If not entered, 'space = SHA1_BLOCK_SIZE - pos' */ - /* and 'len < space' so that 'len + pos < SHA1_BLOCK_SIZE'. */ - /* If entered, 'pos = 0', 'space = SHA1_BLOCK_SIZE' and */ - /* 'len < space' so that 'pos + len < SHA1_BLOCK_SIZE'. In */ - /* both cases, therefore, the memory copy is in the buffer */ - - memcpy(((unsigned char*)ctx->wbuf) + pos, sp, len); -} - -/* SHA1 final padding and digest calculation */ - -#if (PLATFORM_BYTE_ORDER == SHA_LITTLE_ENDIAN) -static sha1_32t mask[4] = - { 0x00000000, 0x000000ff, 0x0000ffff, 0x00ffffff }; -static sha1_32t bits[4] = - { 0x00000080, 0x00008000, 0x00800000, 0x80000000 }; -#else -static sha1_32t mask[4] = - { 0x00000000, 0xff000000, 0xffff0000, 0xffffff00 }; -static sha1_32t bits[4] = - { 0x80000000, 0x00800000, 0x00008000, 0x00000080 }; -#endif - -INTERNAL void sha1_end(unsigned char hval[], sha1_ctx ctx[1]) -{ sha1_32t i = (sha1_32t)(ctx->count[0] & SHA1_MASK); - - /* mask out the rest of any partial 32-bit word and then set */ - /* the next byte to 0x80. On big-endian machines any bytes in */ - /* the buffer will be at the top end of 32 bit words, on little */ - /* endian machines they will be at the bottom. Hence the AND */ - /* and OR masks above are reversed for little endian systems */ - /* Note that we can always add the first padding byte at this */ - /* point because the buffer always has at least one empty slot */ - ctx->wbuf[i >> 2] = (ctx->wbuf[i >> 2] & mask[i & 3]) | bits[i & 3]; - - /* we need 9 or more empty positions, one for the padding byte */ - /* (above) and eight for the length count. If there is not */ - /* enough space pad and empty the buffer */ - if(i > SHA1_BLOCK_SIZE - 9) - { - if(i < 60) ctx->wbuf[15] = 0; - sha1_compile(ctx); - i = 0; - } - else /* compute a word index for the empty buffer positions */ - i = (i >> 2) + 1; - - while(i < 14) /* and zero pad all but last two positions */ - ctx->wbuf[i++] = 0; - - /* assemble the eight byte counter in in big-endian format */ - ctx->wbuf[14] = swap_b32((ctx->count[1] << 3) | (ctx->count[0] >> 29)); - ctx->wbuf[15] = swap_b32(ctx->count[0] << 3); - - sha1_compile(ctx); - - /* extract the hash value as bytes in case the hash buffer is */ - /* misaligned for 32-bit words */ - /*lint -e{504} unusual shift operation (unusually formed right argument) */ - for(i = 0; i < SHA1_DIGEST_SIZE; ++i) - hval[i] = (unsigned char)(ctx->hash[i >> 2] >> (8 * (~i & 3))); -} - -#if 0 /* not used */ -INTERNAL void sha1(unsigned char hval[], const unsigned char data[], unsigned int len) -{ sha1_ctx cx[1]; - - sha1_begin(cx); sha1_hash(data, len, cx); sha1_end(hval, cx); -} -#endif - -#if defined(__cplusplus) -} -#endif diff --git a/libzip-1.2.0/lib/gladman-fcrypt/sha1.h b/libzip-1.2.0/lib/gladman-fcrypt/sha1.h deleted file mode 100644 index 58529d4a1..000000000 --- a/libzip-1.2.0/lib/gladman-fcrypt/sha1.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK. - All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue Date: 24/01/2003 - - This file contains the definitions needed for SHA1 -*/ - -#ifndef _SHA1_H -#define _SHA1_H - -#include - -#define SHA1_BLOCK_SIZE 64 -#define SHA1_DIGEST_SIZE 20 - -#if defined(__cplusplus) -extern "C" -{ -#endif - -/* define an unsigned 32-bit type */ - -#include "config.h" - -typedef zip_uint32_t sha1_32t; - -/* type to hold the SHA256 context */ - -typedef struct -{ sha1_32t count[2]; - sha1_32t hash[5]; - sha1_32t wbuf[16]; -} sha1_ctx; - -#ifdef BUILDING_FCRYPT -INTERNAL void sha1_compile(sha1_ctx ctx[1]); - -INTERNAL void sha1_begin(sha1_ctx ctx[1]); -INTERNAL void sha1_hash(const unsigned char data[], unsigned int len, sha1_ctx ctx[1]); -INTERNAL void sha1_end(unsigned char hval[], sha1_ctx ctx[1]); -#endif - -#if 0 /* not used */ -INTERNAL void sha1(unsigned char hval[], const unsigned char data[], unsigned int len); -#endif - -#if defined(__cplusplus) -} -#endif - -#endif diff --git a/libzip-1.2.0/lib/make_zip_err_str.sh b/libzip-1.2.0/lib/make_zip_err_str.sh deleted file mode 100644 index 8d98f2351..000000000 --- a/libzip-1.2.0/lib/make_zip_err_str.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/sh - -# make_zip_err_str.sh: create zip_err_str.c from zip.h -# Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner -# -# This file is part of libzip, a library to manipulate ZIP archives. -# The authors can be contacted at -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# 3. The names of the authors may not be used to endorse or promote -# products derived from this software without specific prior -# written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -if [ "$#" -ne 2 ] -then - echo "Usage: $0 in_file out_file" >&2 - echo " e.g. $0 zip.h zip_err_str.c" >&2 - exit 1 -fi - -if [ "$1" = "$2" ] -then - echo "$0: error: output file = input file" >&2 - exit 1 -fi - -cat <> "$2.$$" || exit 1 -/* - This file was generated automatically by $0 - from $1; make changes there. - */ - -#include "zipint.h" - -const char * const _zip_err_str[] = { -EOF - -sed -n '/^#define ZIP_ER_/ s/.*\/\* . \([^*]*\) \*\// "\1",/p' "$1" \ - >> "$2.$$" || exit 1 - -cat <> "$2.$$" || exit 1 -}; - -const int _zip_nerr_str = sizeof(_zip_err_str)/sizeof(_zip_err_str[0]); - -#define N ZIP_ET_NONE -#define S ZIP_ET_SYS -#define Z ZIP_ET_ZLIB - -const int _zip_err_type[] = { -EOF - -sed -n '/^#define ZIP_ER_/ s/.*\/\* \(.\) \([^*]*\) \*\// \1,/p' "$1" \ - >> "$2.$$" || exit 1 - -echo '};' >> "$2.$$" || exit 1 - -mv "$2.$$" "$2" || exit 1 diff --git a/libzip-1.2.0/lib/make_zipconf.sh b/libzip-1.2.0/lib/make_zipconf.sh deleted file mode 100644 index cdf83f475..000000000 --- a/libzip-1.2.0/lib/make_zipconf.sh +++ /dev/null @@ -1,163 +0,0 @@ -#!/bin/sh - -# make_zipconf.sh: create platform specific include file zipconf.h -# Copyright (C) 1999-2011 Dieter Baron and Thomas Klausner -# -# This file is part of libzip, a library to manipulate ZIP archives. -# The authors can be contacted at -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# 3. The names of the authors may not be used to endorse or promote -# products derived from this software without specific prior -# written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -set -e - -define_type() -{ - short=$1 - long=$2 - bytes=$3 - infile="$4" - outfile="$5" - - bits=`expr $bytes '*' 8` - type="${short}int${bits}" - TYPE=`echo $type | tr '[a-z]' '[A-Z]'` - if grep "define HAVE_${TYPE}_T" "$infile" > /dev/null - then - echo "typedef ${type}_t zip_${type}_t;" >> "$outfile" - LTYPE="$TYPE" - else - SHORT=`echo $short | tr '[a-z]' '[A-Z]'` - if [ -z "$SHORT" ] - then - SHORT='S' - fi - if [ "$bytes" -eq 1 ] - then - if [ -z "$long" ] - then - long='signed' - fi - echo "typedef $long char ${type}_t;" >> $outfile - LTYPE="${SHORT}CHAR" - else - ctype=`sed -n "s/.define SIZEOF_\([A-Z_]*\) $bytes/\1/p" "$infile" \ - | head -1 | tr '[A-Z_]' '[a-z ]'` - if [ -z "$ctype" ] - then - echo "$0: no $bits bit type found" >&2 - exit 1 - fi - echo "typedef $long $ctype ${type}_t;" >> "$outfile" - case "$ctype" in - short) LTYPE=${SHORT}SHRT;; - int) LTYPE=${SHORT}INT;; - long) LTYPE=${SHORT}LONG;; - "long long") LTYPE=${SHORT}LLONG;; - esac - fi - fi - - if [ -z "$long" ] - then - echo "#define ZIP_${TYPE}_MIN ${LTYPE}_MIN" >> "$outfile" - fi - echo "#define ZIP_${TYPE}_MAX ${LTYPE}_MAX" >> "$outfile" - echo >> "$outfile" -} - - -if [ "$#" -ne 2 ] -then - echo "Usage: $0 config_h_file out_file" >&2 - echo " e.g. $0 ../config.h zip_err_str.c" >&2 - exit 1 -fi - -if [ "$1" = "$2" ] -then - echo "$0: error: output file = input file" >&2 - exit 1 -fi - -cat < "$2.$$" -#ifndef _HAD_ZIPCONF_H -#define _HAD_ZIPCONF_H - -/* - zipconf.h -- platform specific include file - - This file was generated automatically by $0 - based on $1. - */ - -EOF - -version=`sed -n 's/^#define VERSION "\(.*\)"/\1/p' "$1"` - -version_major=`expr "$version" : '^\([0-9]*\)' || true` -version_minor=`expr "$version" : '^[0-9]*\.\([0-9]*\)' || true` -version_micro=`expr "$version" : '^[0-9]*\.[0-9]\.\([0-9]*\)' || true` - -if [ -z "$version_major" ] -then - version_major=0 -fi -if [ -z "$version_minor" ] -then - version_minor=0 -fi -if [ -z "$version_micro" ] -then - version_micro=0 -fi - -cat <> "$2.$$" -#define LIBZIP_VERSION "$version" -#define LIBZIP_VERSION_MAJOR $version_major -#define LIBZIP_VERSION_MINOR $version_minor -#define LIBZIP_VERSION_MICRO $version_micro - -EOF - -if grep 'define HAVE_INTTYPES_H' "$1" > /dev/null -then - echo '#include ' >> "$2.$$" -else - echo '#include ' >> "$2.$$" -fi -echo >> "$2.$$" - -for size in 1 2 4 8 -do - define_type '' '' $size "$1" "$2.$$" - define_type u unsigned $size "$1" "$2.$$" -done - -echo >> "$2.$$" -echo '#endif /* zipconf.h */' >> "$2.$$" - -mv "$2.$$" "$2" diff --git a/libzip-1.2.0/lib/mkstemp.c b/libzip-1.2.0/lib/mkstemp.c deleted file mode 100644 index c1e81004f..000000000 --- a/libzip-1.2.0/lib/mkstemp.c +++ /dev/null @@ -1,154 +0,0 @@ -/* Adapted from NetBSB libc by Dieter Baron */ - -/* NetBSD: gettemp.c,v 1.13 2003/12/05 00:57:36 uebayasi Exp */ - -/* - * Copyright (c) 1987, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include -#include -#include -#include -#ifdef _WIN32 -#include -#include -#define getpid _getpid -#else -#include -#endif -#include -#include - -#ifndef O_BINARY -#define O_BINARY 0 -#endif - - -int -_zip_mkstemp(char *path) -{ -#ifdef _WIN32 - int ret; - ret = _creat(_mktemp(path), _S_IREAD|_S_IWRITE); - if (ret == -1) { - return 0; - } else { - return ret; - } -#else - int fd; - char *start, *trv; - struct stat sbuf; - pid_t pid; - - /* To guarantee multiple calls generate unique names even if - the file is not created. 676 different possibilities with 7 - or more X's, 26 with 6 or less. */ - static char xtra[2] = "aa"; - int xcnt = 0; - - pid = getpid(); - - /* Move to end of path and count trailing X's. */ - for (trv = path; *trv; ++trv) - if (*trv == 'X') - xcnt++; - else - xcnt = 0; - - /* Use at least one from xtra. Use 2 if more than 6 X's. */ - if (*(trv - 1) == 'X') - *--trv = xtra[0]; - if (xcnt > 6 && *(trv - 1) == 'X') - *--trv = xtra[1]; - - /* Set remaining X's to pid digits with 0's to the left. */ - while (*--trv == 'X') { - *trv = (pid % 10) + '0'; - pid /= 10; - } - - /* update xtra for next call. */ - if (xtra[0] != 'z') - xtra[0]++; - else { - xtra[0] = 'a'; - if (xtra[1] != 'z') - xtra[1]++; - else - xtra[1] = 'a'; - } - - /* - * check the target directory; if you have six X's and it - * doesn't exist this runs for a *very* long time. - */ - for (start = trv + 1;; --trv) { - if (trv <= path) - break; - if (*trv == '/') { - *trv = '\0'; - if (stat(path, &sbuf)) - return (0); - if (!S_ISDIR(sbuf.st_mode)) { - errno = ENOTDIR; - return (0); - } - *trv = '/'; - break; - } - } - - for (;;) { - if ((fd=open(path, O_CREAT|O_EXCL|O_RDWR|O_BINARY, 0600)) >= 0) - return (fd); - if (errno != EEXIST) - return (0); - - /* tricky little algorithm for backward compatibility */ - for (trv = start;;) { - if (!*trv) - return (0); - if (*trv == 'z') - *trv++ = 'a'; - else { - if (isdigit((unsigned char)*trv)) - *trv = 'a'; - else - ++*trv; - break; - } - } - } - /*NOTREACHED*/ -#endif -} diff --git a/libzip-1.2.0/lib/zip.h b/libzip-1.2.0/lib/zip.h deleted file mode 100644 index abdaf07ac..000000000 --- a/libzip-1.2.0/lib/zip.h +++ /dev/null @@ -1,431 +0,0 @@ -#ifndef _HAD_ZIP_H -#define _HAD_ZIP_H - -/* - zip.h -- exported declarations. - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#ifndef ZIP_EXTERN -# ifndef ZIP_STATIC -# ifdef _WIN32 -# define ZIP_EXTERN __declspec(dllimport) -# elif defined(__GNUC__) && __GNUC__ >= 4 -# define ZIP_EXTERN __attribute__ ((visibility ("default"))) -# else -# define ZIP_EXTERN -# endif -# else -# define ZIP_EXTERN -# endif -#endif - -#ifdef __cplusplus -extern "C" { -#if 0 -} /* fix autoindent */ -#endif -#endif - -#include - -#include -#include -#include - -/* flags for zip_open */ - -#define ZIP_CREATE 1 -#define ZIP_EXCL 2 -#define ZIP_CHECKCONS 4 -#define ZIP_TRUNCATE 8 -#define ZIP_RDONLY 16 - - -/* flags for zip_name_locate, zip_fopen, zip_stat, ... */ - -#define ZIP_FL_NOCASE 1u /* ignore case on name lookup */ -#define ZIP_FL_NODIR 2u /* ignore directory component */ -#define ZIP_FL_COMPRESSED 4u /* read compressed data */ -#define ZIP_FL_UNCHANGED 8u /* use original data, ignoring changes */ -#define ZIP_FL_RECOMPRESS 16u /* force recompression of data */ -#define ZIP_FL_ENCRYPTED 32u /* read encrypted data (implies ZIP_FL_COMPRESSED) */ -#define ZIP_FL_ENC_GUESS 0u /* guess string encoding (is default) */ -#define ZIP_FL_ENC_RAW 64u /* get unmodified string */ -#define ZIP_FL_ENC_STRICT 128u /* follow specification strictly */ -#define ZIP_FL_LOCAL 256u /* in local header */ -#define ZIP_FL_CENTRAL 512u /* in central directory */ -/* 1024u reserved for internal use */ -#define ZIP_FL_ENC_UTF_8 2048u /* string is UTF-8 encoded */ -#define ZIP_FL_ENC_CP437 4096u /* string is CP437 encoded */ -#define ZIP_FL_OVERWRITE 8192u /* zip_file_add: if file with name exists, overwrite (replace) it */ - -/* archive global flags flags */ - -#define ZIP_AFL_RDONLY 2u /* read only -- cannot be cleared */ - - -/* create a new extra field */ - -#define ZIP_EXTRA_FIELD_ALL ZIP_UINT16_MAX -#define ZIP_EXTRA_FIELD_NEW ZIP_UINT16_MAX - - -/* libzip error codes */ - -#define ZIP_ER_OK 0 /* N No error */ -#define ZIP_ER_MULTIDISK 1 /* N Multi-disk zip archives not supported */ -#define ZIP_ER_RENAME 2 /* S Renaming temporary file failed */ -#define ZIP_ER_CLOSE 3 /* S Closing zip archive failed */ -#define ZIP_ER_SEEK 4 /* S Seek error */ -#define ZIP_ER_READ 5 /* S Read error */ -#define ZIP_ER_WRITE 6 /* S Write error */ -#define ZIP_ER_CRC 7 /* N CRC error */ -#define ZIP_ER_ZIPCLOSED 8 /* N Containing zip archive was closed */ -#define ZIP_ER_NOENT 9 /* N No such file */ -#define ZIP_ER_EXISTS 10 /* N File already exists */ -#define ZIP_ER_OPEN 11 /* S Can't open file */ -#define ZIP_ER_TMPOPEN 12 /* S Failure to create temporary file */ -#define ZIP_ER_ZLIB 13 /* Z Zlib error */ -#define ZIP_ER_MEMORY 14 /* N Malloc failure */ -#define ZIP_ER_CHANGED 15 /* N Entry has been changed */ -#define ZIP_ER_COMPNOTSUPP 16 /* N Compression method not supported */ -#define ZIP_ER_EOF 17 /* N Premature end of file */ -#define ZIP_ER_INVAL 18 /* N Invalid argument */ -#define ZIP_ER_NOZIP 19 /* N Not a zip archive */ -#define ZIP_ER_INTERNAL 20 /* N Internal error */ -#define ZIP_ER_INCONS 21 /* N Zip archive inconsistent */ -#define ZIP_ER_REMOVE 22 /* S Can't remove file */ -#define ZIP_ER_DELETED 23 /* N Entry has been deleted */ -#define ZIP_ER_ENCRNOTSUPP 24 /* N Encryption method not supported */ -#define ZIP_ER_RDONLY 25 /* N Read-only archive */ -#define ZIP_ER_NOPASSWD 26 /* N No password provided */ -#define ZIP_ER_WRONGPASSWD 27 /* N Wrong password provided */ -#define ZIP_ER_OPNOTSUPP 28 /* N Operation not supported */ -#define ZIP_ER_INUSE 29 /* N Resource still in use */ -#define ZIP_ER_TELL 30 /* S Tell error */ - -/* type of system error value */ - -#define ZIP_ET_NONE 0 /* sys_err unused */ -#define ZIP_ET_SYS 1 /* sys_err is errno */ -#define ZIP_ET_ZLIB 2 /* sys_err is zlib error code */ - -/* compression methods */ - -#define ZIP_CM_DEFAULT -1 /* better of deflate or store */ -#define ZIP_CM_STORE 0 /* stored (uncompressed) */ -#define ZIP_CM_SHRINK 1 /* shrunk */ -#define ZIP_CM_REDUCE_1 2 /* reduced with factor 1 */ -#define ZIP_CM_REDUCE_2 3 /* reduced with factor 2 */ -#define ZIP_CM_REDUCE_3 4 /* reduced with factor 3 */ -#define ZIP_CM_REDUCE_4 5 /* reduced with factor 4 */ -#define ZIP_CM_IMPLODE 6 /* imploded */ -/* 7 - Reserved for Tokenizing compression algorithm */ -#define ZIP_CM_DEFLATE 8 /* deflated */ -#define ZIP_CM_DEFLATE64 9 /* deflate64 */ -#define ZIP_CM_PKWARE_IMPLODE 10 /* PKWARE imploding */ -/* 11 - Reserved by PKWARE */ -#define ZIP_CM_BZIP2 12 /* compressed using BZIP2 algorithm */ -/* 13 - Reserved by PKWARE */ -#define ZIP_CM_LZMA 14 /* LZMA (EFS) */ -/* 15-17 - Reserved by PKWARE */ -#define ZIP_CM_TERSE 18 /* compressed using IBM TERSE (new) */ -#define ZIP_CM_LZ77 19 /* IBM LZ77 z Architecture (PFS) */ -#define ZIP_CM_XZ 95 /* XZ compressed data */ -#define ZIP_CM_JPEG 96 /* Compressed Jpeg data */ -#define ZIP_CM_WAVPACK 97 /* WavPack compressed data */ -#define ZIP_CM_PPMD 98 /* PPMd version I, Rev 1 */ - -/* encryption methods */ - -#define ZIP_EM_NONE 0 /* not encrypted */ -#define ZIP_EM_TRAD_PKWARE 1 /* traditional PKWARE encryption */ -#if 0 /* Strong Encryption Header not parsed yet */ -#define ZIP_EM_DES 0x6601 /* strong encryption: DES */ -#define ZIP_EM_RC2_OLD 0x6602 /* strong encryption: RC2, version < 5.2 */ -#define ZIP_EM_3DES_168 0x6603 -#define ZIP_EM_3DES_112 0x6609 -#define ZIP_EM_PKZIP_AES_128 0x660e -#define ZIP_EM_PKZIP_AES_192 0x660f -#define ZIP_EM_PKZIP_AES_256 0x6610 -#define ZIP_EM_RC2 0x6702 /* strong encryption: RC2, version >= 5.2 */ -#define ZIP_EM_RC4 0x6801 -#endif -#define ZIP_EM_AES_128 0x0101 /* Winzip AES encryption */ -#define ZIP_EM_AES_192 0x0102 -#define ZIP_EM_AES_256 0x0103 -#define ZIP_EM_UNKNOWN 0xffff /* unknown algorithm */ - -#define ZIP_OPSYS_DOS 0x00u -#define ZIP_OPSYS_AMIGA 0x01u -#define ZIP_OPSYS_OPENVMS 0x02u -#define ZIP_OPSYS_UNIX 0x03u -#define ZIP_OPSYS_VM_CMS 0x04u -#define ZIP_OPSYS_ATARI_ST 0x05u -#define ZIP_OPSYS_OS_2 0x06u -#define ZIP_OPSYS_MACINTOSH 0x07u -#define ZIP_OPSYS_Z_SYSTEM 0x08u -#define ZIP_OPSYS_CPM 0x09u -#define ZIP_OPSYS_WINDOWS_NTFS 0x0au -#define ZIP_OPSYS_MVS 0x0bu -#define ZIP_OPSYS_VSE 0x0cu -#define ZIP_OPSYS_ACORN_RISC 0x0du -#define ZIP_OPSYS_VFAT 0x0eu -#define ZIP_OPSYS_ALTERNATE_MVS 0x0fu -#define ZIP_OPSYS_BEOS 0x10u -#define ZIP_OPSYS_TANDEM 0x11u -#define ZIP_OPSYS_OS_400 0x12u -#define ZIP_OPSYS_OS_X 0x13u - -#define ZIP_OPSYS_DEFAULT ZIP_OPSYS_UNIX - - -enum zip_source_cmd { - ZIP_SOURCE_OPEN, /* prepare for reading */ - ZIP_SOURCE_READ, /* read data */ - ZIP_SOURCE_CLOSE, /* reading is done */ - ZIP_SOURCE_STAT, /* get meta information */ - ZIP_SOURCE_ERROR, /* get error information */ - ZIP_SOURCE_FREE, /* cleanup and free resources */ - ZIP_SOURCE_SEEK, /* set position for reading */ - ZIP_SOURCE_TELL, /* get read position */ - ZIP_SOURCE_BEGIN_WRITE, /* prepare for writing */ - ZIP_SOURCE_COMMIT_WRITE, /* writing is done */ - ZIP_SOURCE_ROLLBACK_WRITE, /* discard written changes */ - ZIP_SOURCE_WRITE, /* write data */ - ZIP_SOURCE_SEEK_WRITE, /* set position for writing */ - ZIP_SOURCE_TELL_WRITE, /* get write position */ - ZIP_SOURCE_SUPPORTS, /* check whether source supports command */ - ZIP_SOURCE_REMOVE /* remove file */ -}; -typedef enum zip_source_cmd zip_source_cmd_t; - -#define ZIP_SOURCE_MAKE_COMMAND_BITMASK(cmd) (1<<(cmd)) - -#define ZIP_SOURCE_SUPPORTS_READABLE (ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_OPEN) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_READ) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_CLOSE) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_STAT) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_ERROR) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_FREE)) - -#define ZIP_SOURCE_SUPPORTS_SEEKABLE (ZIP_SOURCE_SUPPORTS_READABLE \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_TELL) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SUPPORTS)) - -#define ZIP_SOURCE_SUPPORTS_WRITABLE (ZIP_SOURCE_SUPPORTS_SEEKABLE \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_BEGIN_WRITE) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_COMMIT_WRITE) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_ROLLBACK_WRITE) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_WRITE) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK_WRITE) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_TELL_WRITE) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_REMOVE)) - -/* for use by sources */ -struct zip_source_args_seek { - zip_int64_t offset; - int whence; -}; - -typedef struct zip_source_args_seek zip_source_args_seek_t; -#define ZIP_SOURCE_GET_ARGS(type, data, len, error) ((len) < sizeof(type) ? zip_error_set((error), ZIP_ER_INVAL, 0), (type *)NULL : (type *)(data)) - - -/* error information */ -/* use zip_error_*() to access */ -struct zip_error { - int zip_err; /* libzip error code (ZIP_ER_*) */ - int sys_err; /* copy of errno (E*) or zlib error code */ - char *str; /* string representation or NULL */ -}; - -#define ZIP_STAT_NAME 0x0001u -#define ZIP_STAT_INDEX 0x0002u -#define ZIP_STAT_SIZE 0x0004u -#define ZIP_STAT_COMP_SIZE 0x0008u -#define ZIP_STAT_MTIME 0x0010u -#define ZIP_STAT_CRC 0x0020u -#define ZIP_STAT_COMP_METHOD 0x0040u -#define ZIP_STAT_ENCRYPTION_METHOD 0x0080u -#define ZIP_STAT_FLAGS 0x0100u - -struct zip_stat { - zip_uint64_t valid; /* which fields have valid values */ - const char *name; /* name of the file */ - zip_uint64_t index; /* index within archive */ - zip_uint64_t size; /* size of file (uncompressed) */ - zip_uint64_t comp_size; /* size of file (compressed) */ - time_t mtime; /* modification time */ - zip_uint32_t crc; /* crc of file data */ - zip_uint16_t comp_method; /* compression method used */ - zip_uint16_t encryption_method; /* encryption method used */ - zip_uint32_t flags; /* reserved for future use */ -}; - -struct zip; -struct zip_file; -struct zip_source; - -typedef struct zip zip_t; -typedef struct zip_error zip_error_t; -typedef struct zip_file zip_file_t; -typedef struct zip_source zip_source_t; -typedef struct zip_stat zip_stat_t; - -typedef zip_uint32_t zip_flags_t; - -typedef zip_int64_t (*zip_source_callback)(void *, void *, zip_uint64_t, zip_source_cmd_t); -typedef void (*zip_progress_callback_t)(double); - - -#ifndef ZIP_DISABLE_DEPRECATED -ZIP_EXTERN zip_int64_t zip_add(zip_t *, const char *, zip_source_t *); /* use zip_file_add */ -ZIP_EXTERN zip_int64_t zip_add_dir(zip_t *, const char *); /* use zip_dir_add */ -ZIP_EXTERN const char *zip_get_file_comment(zip_t *, zip_uint64_t, int *, int); /* use zip_file_get_comment */ -ZIP_EXTERN int zip_get_num_files(zip_t *); /* use zip_get_num_entries instead */ -ZIP_EXTERN int zip_rename(zip_t *, zip_uint64_t, const char *); /* use zip_file_rename */ -ZIP_EXTERN int zip_replace(zip_t *, zip_uint64_t, zip_source_t *); /* use zip_file_replace */ -ZIP_EXTERN int zip_set_file_comment(zip_t *, zip_uint64_t, const char *, int); /* use zip_file_set_comment */ -ZIP_EXTERN int zip_error_get_sys_type(int); /* use zip_error_system_type */ -ZIP_EXTERN void zip_error_get(zip_t *, int *, int *); /* use zip_get_error, zip_error_code_zip / zip_error_code_system */ -ZIP_EXTERN int zip_error_to_str(char *, zip_uint64_t, int, int); -ZIP_EXTERN void zip_file_error_get(zip_file_t *, int *, int *); /* use zip_file_get_error, zip_error_code_zip / zip_error_code_system */ -#endif - -ZIP_EXTERN int zip_close(zip_t *); -ZIP_EXTERN int zip_delete(zip_t *, zip_uint64_t); -ZIP_EXTERN zip_int64_t zip_dir_add(zip_t *, const char *, zip_flags_t); -ZIP_EXTERN void zip_discard(zip_t *); - -ZIP_EXTERN zip_error_t *zip_get_error(zip_t *); -ZIP_EXTERN void zip_error_clear(zip_t *); -ZIP_EXTERN int zip_error_code_zip(const zip_error_t *); -ZIP_EXTERN int zip_error_code_system(const zip_error_t *); -ZIP_EXTERN void zip_error_fini(zip_error_t *); -ZIP_EXTERN void zip_error_init(zip_error_t *); -ZIP_EXTERN void zip_error_init_with_code(zip_error_t *, int); -ZIP_EXTERN void zip_error_set(zip_error_t *, int, int); -ZIP_EXTERN const char *zip_error_strerror(zip_error_t *); -ZIP_EXTERN int zip_error_system_type(const zip_error_t *); -ZIP_EXTERN zip_int64_t zip_error_to_data(const zip_error_t *, void *, zip_uint64_t); - -ZIP_EXTERN int zip_fclose(zip_file_t *); -ZIP_EXTERN zip_t *zip_fdopen(int, int, int *); -ZIP_EXTERN zip_int64_t zip_file_add(zip_t *, const char *, zip_source_t *, zip_flags_t); -ZIP_EXTERN void zip_file_error_clear(zip_file_t *); -ZIP_EXTERN int zip_file_extra_field_delete(zip_t *, zip_uint64_t, zip_uint16_t, zip_flags_t); -ZIP_EXTERN int zip_file_extra_field_delete_by_id(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_flags_t); -ZIP_EXTERN int zip_file_extra_field_set(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t, const zip_uint8_t *, zip_uint16_t, zip_flags_t); -ZIP_EXTERN zip_int16_t zip_file_extra_fields_count(zip_t *, zip_uint64_t, zip_flags_t); -ZIP_EXTERN zip_int16_t zip_file_extra_fields_count_by_id(zip_t *, zip_uint64_t, zip_uint16_t, zip_flags_t); -ZIP_EXTERN const zip_uint8_t *zip_file_extra_field_get(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t *, zip_uint16_t *, zip_flags_t); -ZIP_EXTERN const zip_uint8_t *zip_file_extra_field_get_by_id(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_uint16_t *, zip_flags_t); -ZIP_EXTERN const char *zip_file_get_comment(zip_t *, zip_uint64_t, zip_uint32_t *, zip_flags_t); -ZIP_EXTERN zip_error_t *zip_file_get_error(zip_file_t *); -ZIP_EXTERN int zip_file_get_external_attributes(zip_t *, zip_uint64_t, zip_flags_t, zip_uint8_t *, zip_uint32_t *); -ZIP_EXTERN int zip_file_rename(zip_t *, zip_uint64_t, const char *, zip_flags_t); -ZIP_EXTERN int zip_file_replace(zip_t *, zip_uint64_t, zip_source_t *, zip_flags_t); -ZIP_EXTERN int zip_file_set_comment(zip_t *, zip_uint64_t, const char *, zip_uint16_t, zip_flags_t); -ZIP_EXTERN int zip_file_set_encryption(zip_t *, zip_uint64_t, zip_uint16_t, const char *); -ZIP_EXTERN int zip_file_set_external_attributes(zip_t *, zip_uint64_t, zip_flags_t, zip_uint8_t, zip_uint32_t); -ZIP_EXTERN int zip_file_set_mtime(zip_t *, zip_uint64_t, time_t, zip_flags_t); -ZIP_EXTERN const char *zip_file_strerror(zip_file_t *); -ZIP_EXTERN zip_file_t *zip_fopen(zip_t *, const char *, zip_flags_t); -ZIP_EXTERN zip_file_t *zip_fopen_encrypted(zip_t *, const char *, zip_flags_t, const char *); -ZIP_EXTERN zip_file_t *zip_fopen_index(zip_t *, zip_uint64_t, zip_flags_t); -ZIP_EXTERN zip_file_t *zip_fopen_index_encrypted(zip_t *, zip_uint64_t, zip_flags_t, const char *); -ZIP_EXTERN zip_int64_t zip_fread(zip_file_t *, void *, zip_uint64_t); -ZIP_EXTERN zip_int8_t zip_fseek(zip_file_t *, zip_int64_t, int); -ZIP_EXTERN zip_int64_t zip_ftell(zip_file_t *); -ZIP_EXTERN const char *zip_get_archive_comment(zip_t *, int *, zip_flags_t); -ZIP_EXTERN int zip_get_archive_flag(zip_t *, zip_flags_t, zip_flags_t); -ZIP_EXTERN const char *zip_get_name(zip_t *, zip_uint64_t, zip_flags_t); -ZIP_EXTERN zip_int64_t zip_get_num_entries(zip_t *, zip_flags_t); -ZIP_EXTERN zip_int64_t zip_name_locate(zip_t *, const char *, zip_flags_t); -ZIP_EXTERN zip_t *zip_open(const char *, int, int *); -ZIP_EXTERN zip_t *zip_open_from_source(zip_source_t *, int, zip_error_t *); -ZIP_EXTERN void zip_register_progress_callback(zip_t *, zip_progress_callback_t); -ZIP_EXTERN int zip_set_archive_comment(zip_t *, const char *, zip_uint16_t); -ZIP_EXTERN int zip_set_archive_flag(zip_t *, zip_flags_t, int); -ZIP_EXTERN int zip_set_default_password(zip_t *, const char *); -ZIP_EXTERN int zip_set_file_compression(zip_t *, zip_uint64_t, zip_int32_t, zip_uint32_t); -ZIP_EXTERN int zip_source_begin_write(zip_source_t *); -ZIP_EXTERN zip_source_t *zip_source_buffer(zip_t *, const void *, zip_uint64_t, int); -ZIP_EXTERN zip_source_t *zip_source_buffer_create(const void *, zip_uint64_t, int, zip_error_t *); -ZIP_EXTERN int zip_source_close(zip_source_t *); -ZIP_EXTERN int zip_source_commit_write(zip_source_t *); -ZIP_EXTERN zip_error_t *zip_source_error(zip_source_t *); -ZIP_EXTERN zip_source_t *zip_source_file(zip_t *, const char *, zip_uint64_t, zip_int64_t); -ZIP_EXTERN zip_source_t *zip_source_file_create(const char *, zip_uint64_t, zip_int64_t, zip_error_t *); -ZIP_EXTERN zip_source_t *zip_source_filep(zip_t *, FILE *, zip_uint64_t, zip_int64_t); -ZIP_EXTERN zip_source_t *zip_source_filep_create(FILE *, zip_uint64_t, zip_int64_t, zip_error_t *); -ZIP_EXTERN void zip_source_free(zip_source_t *); -ZIP_EXTERN zip_source_t *zip_source_function(zip_t *, zip_source_callback, void *); -ZIP_EXTERN zip_source_t *zip_source_function_create(zip_source_callback, void *, zip_error_t *); -ZIP_EXTERN int zip_source_is_deleted(zip_source_t *); -ZIP_EXTERN void zip_source_keep(zip_source_t *); -ZIP_EXTERN zip_int64_t zip_source_make_command_bitmap(zip_source_cmd_t, ...); -ZIP_EXTERN int zip_source_open(zip_source_t *); -ZIP_EXTERN zip_int64_t zip_source_read(zip_source_t *, void *, zip_uint64_t); -ZIP_EXTERN void zip_source_rollback_write(zip_source_t *); -ZIP_EXTERN int zip_source_seek(zip_source_t *, zip_int64_t, int); -ZIP_EXTERN zip_int64_t zip_source_seek_compute_offset(zip_uint64_t, zip_uint64_t, void *, zip_uint64_t, zip_error_t *); -ZIP_EXTERN int zip_source_seek_write(zip_source_t *, zip_int64_t, int); -ZIP_EXTERN int zip_source_stat(zip_source_t *, zip_stat_t *); -ZIP_EXTERN zip_int64_t zip_source_tell(zip_source_t *); -ZIP_EXTERN zip_int64_t zip_source_tell_write(zip_source_t *); -#ifdef _WIN32 -ZIP_EXTERN zip_source_t *zip_source_win32a(zip_t *, const char *, zip_uint64_t, zip_int64_t); -ZIP_EXTERN zip_source_t *zip_source_win32a_create(const char *, zip_uint64_t, zip_int64_t, zip_error_t *); -ZIP_EXTERN zip_source_t *zip_source_win32handle(zip_t *, void *, zip_uint64_t, zip_int64_t); -ZIP_EXTERN zip_source_t *zip_source_win32handle_create(void *, zip_uint64_t, zip_int64_t, zip_error_t *); -ZIP_EXTERN zip_source_t *zip_source_win32w(zip_t *, const wchar_t *, zip_uint64_t, zip_int64_t); -ZIP_EXTERN zip_source_t *zip_source_win32w_create(const wchar_t *, zip_uint64_t, zip_int64_t, zip_error_t *); -#endif -ZIP_EXTERN zip_int64_t zip_source_write(zip_source_t *, const void *, zip_uint64_t); -ZIP_EXTERN zip_source_t *zip_source_zip(zip_t *, zip_t *, zip_uint64_t, zip_flags_t, zip_uint64_t, zip_int64_t); -ZIP_EXTERN int zip_stat(zip_t *, const char *, zip_flags_t, zip_stat_t *); -ZIP_EXTERN int zip_stat_index(zip_t *, zip_uint64_t, zip_flags_t, zip_stat_t *); -ZIP_EXTERN void zip_stat_init(zip_stat_t *); -ZIP_EXTERN const char *zip_strerror(zip_t *); -ZIP_EXTERN int zip_unchange(zip_t *, zip_uint64_t); -ZIP_EXTERN int zip_unchange_all(zip_t *); -ZIP_EXTERN int zip_unchange_archive(zip_t *); - -#ifdef __cplusplus -} -#endif - -#endif /* _HAD_ZIP_H */ diff --git a/libzip-1.2.0/lib/zip_add.c b/libzip-1.2.0/lib/zip_add.c deleted file mode 100644 index d1be133b6..000000000 --- a/libzip-1.2.0/lib/zip_add.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - zip_add.c -- add file via callback function - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#define _ZIP_COMPILING_DEPRECATED -#include "zipint.h" - - -/* - NOTE: Return type is signed so we can return -1 on error. - The index can not be larger than ZIP_INT64_MAX since the size - of the central directory cannot be larger than - ZIP_UINT64_MAX, and each entry is larger than 2 bytes. -*/ - -ZIP_EXTERN zip_int64_t -zip_add(zip_t *za, const char *name, zip_source_t *source) -{ - return zip_file_add(za, name, source, 0); -} diff --git a/libzip-1.2.0/lib/zip_add_dir.c b/libzip-1.2.0/lib/zip_add_dir.c deleted file mode 100644 index 14bdeda11..000000000 --- a/libzip-1.2.0/lib/zip_add_dir.c +++ /dev/null @@ -1,45 +0,0 @@ -/* - zip_add_dir.c -- add directory - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#define _ZIP_COMPILING_DEPRECATED -#include "zipint.h" - - -/* NOTE: Signed due to -1 on error. See zip_add.c for more details. */ - -ZIP_EXTERN zip_int64_t -zip_add_dir(zip_t *za, const char *name) -{ - return zip_dir_add(za, name, 0); -} diff --git a/libzip-1.2.0/lib/zip_add_entry.c b/libzip-1.2.0/lib/zip_add_entry.c deleted file mode 100644 index f6212f159..000000000 --- a/libzip-1.2.0/lib/zip_add_entry.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - zip_add_entry.c -- create and init struct zip_entry - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" - - -/* NOTE: Signed due to -1 on error. See zip_add.c for more details. */ - -zip_int64_t -_zip_add_entry(zip_t *za) -{ - zip_uint64_t idx; - - if (za->nentry+1 >= za->nentry_alloc) { - zip_entry_t *rentries; - zip_uint64_t nalloc = za->nentry_alloc; - zip_uint64_t additional_entries = 2 * nalloc; - zip_uint64_t realloc_size; - - if (additional_entries < 16) { - additional_entries = 16; - } - else if (additional_entries > 1024) { - additional_entries = 1024; - } - /* neither + nor * overflows can happen: nentry_alloc * sizeof(struct zip_entry) < UINT64_MAX */ - nalloc += additional_entries; - realloc_size = sizeof(struct zip_entry) * (size_t)nalloc; - - if (sizeof(struct zip_entry) * (size_t)za->nentry_alloc > realloc_size) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return -1; - } - rentries = (zip_entry_t *)realloc(za->entry, sizeof(struct zip_entry) * (size_t)nalloc); - if (!rentries) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return -1; - } - za->entry = rentries; - za->nentry_alloc = nalloc; - } - - idx = za->nentry++; - - _zip_entry_init(za->entry+idx); - - return (zip_int64_t)idx; -} diff --git a/libzip-1.2.0/lib/zip_buffer.c b/libzip-1.2.0/lib/zip_buffer.c deleted file mode 100644 index 7addc4b6e..000000000 --- a/libzip-1.2.0/lib/zip_buffer.c +++ /dev/null @@ -1,348 +0,0 @@ -/* - zip_buffer.c -- bounds checked access to memory buffer - Copyright (C) 2014-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include - -#include "zipint.h" - -zip_uint8_t * -_zip_buffer_data(zip_buffer_t *buffer) -{ - return buffer->data; -} - - -void -_zip_buffer_free(zip_buffer_t *buffer) -{ - if (buffer == NULL) { - return; - } - - if (buffer->free_data) { - free(buffer->data); - } - - free(buffer); -} - - -bool -_zip_buffer_eof(zip_buffer_t *buffer) -{ - return buffer->ok && buffer->offset == buffer->size; -} - - -zip_uint8_t * -_zip_buffer_get(zip_buffer_t *buffer, zip_uint64_t length) -{ - zip_uint8_t *data; - - data = _zip_buffer_peek(buffer, length); - - if (data != NULL) { - buffer->offset += length; - } - - return data; -} - - -zip_uint16_t -_zip_buffer_get_16(zip_buffer_t *buffer) -{ - zip_uint8_t *data = _zip_buffer_get(buffer, 2); - - if (data == NULL) { - return 0; - } - - return (zip_uint16_t)(data[0] + (data[1] << 8)); -} - - -zip_uint32_t -_zip_buffer_get_32(zip_buffer_t *buffer) -{ - zip_uint8_t *data = _zip_buffer_get(buffer, 4); - - if (data == NULL) { - return 0; - } - - return ((((((zip_uint32_t)data[3] << 8) + data[2]) << 8) + data[1]) << 8) + data[0]; -} - - -zip_uint64_t -_zip_buffer_get_64(zip_buffer_t *buffer) -{ - zip_uint8_t *data = _zip_buffer_get(buffer, 8); - - if (data == NULL) { - return 0; - } - - return ((zip_uint64_t)data[7] << 56) + ((zip_uint64_t)data[6] << 48) + ((zip_uint64_t)data[5] << 40) + ((zip_uint64_t)data[4] << 32) + ((zip_uint64_t)data[3] << 24) + ((zip_uint64_t)data[2] << 16) + ((zip_uint64_t)data[1] << 8) + (zip_uint64_t)data[0]; -} - - - -zip_uint8_t -_zip_buffer_get_8(zip_buffer_t *buffer) -{ - zip_uint8_t *data = _zip_buffer_get(buffer, 1); - - if (data == NULL) { - return 0; - } - - return data[0]; -} - - -zip_uint64_t -_zip_buffer_left(zip_buffer_t *buffer) -{ - return buffer->ok ? buffer->size - buffer->offset : 0; -} - - -zip_uint64_t -_zip_buffer_read(zip_buffer_t *buffer, zip_uint8_t *data, zip_uint64_t length) -{ - if (_zip_buffer_left(buffer) < length) { - length = _zip_buffer_left(buffer); - } - - memcpy(data, _zip_buffer_get(buffer, length), length); - - return length; -} - - -zip_buffer_t * -_zip_buffer_new(zip_uint8_t *data, zip_uint64_t size) -{ - bool free_data = (data == NULL); - zip_buffer_t *buffer; - - if (data == NULL) { - if ((data = (zip_uint8_t *)malloc(size)) == NULL) { - return NULL; - } - } - - if ((buffer = (zip_buffer_t *)malloc(sizeof(*buffer))) == NULL) { - if (free_data) { - free(data); - } - return NULL; - } - - buffer->ok = true; - buffer->data = data; - buffer->size = size; - buffer->offset = 0; - buffer->free_data = free_data; - - return buffer; -} - - -zip_buffer_t * -_zip_buffer_new_from_source(zip_source_t *src, zip_uint64_t size, zip_uint8_t *buf, zip_error_t *error) -{ - zip_buffer_t *buffer; - - if ((buffer = _zip_buffer_new(buf, size)) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return NULL; - } - - if (_zip_read(src, buffer->data, size, error) < 0) { - _zip_buffer_free(buffer); - return NULL; - } - - return buffer; -} - - -zip_uint64_t -_zip_buffer_offset(zip_buffer_t *buffer) -{ - return buffer->ok ? buffer->offset : 0; -} - - -bool -_zip_buffer_ok(zip_buffer_t *buffer) -{ - return buffer->ok; -} - - - -zip_uint8_t * -_zip_buffer_peek(zip_buffer_t *buffer, zip_uint64_t length) -{ - zip_uint8_t *data; - - if (!buffer->ok || buffer->offset + length < length || buffer->offset + length > buffer->size) { - buffer->ok = false; - return NULL; - } - - data = buffer->data + buffer->offset; - return data; -} - -int -_zip_buffer_put(zip_buffer_t *buffer, const void *src, size_t length) -{ - zip_uint8_t *dst = _zip_buffer_get(buffer, length); - - if (dst == NULL) { - return -1; - } - - memcpy(dst, src, length); - return 0; -} - - -int -_zip_buffer_put_16(zip_buffer_t *buffer, zip_uint16_t i) -{ - zip_uint8_t *data = _zip_buffer_get(buffer, 2); - - if (data == NULL) { - return -1; - } - - data[0] = (zip_uint8_t)(i & 0xff); - data[1] = (zip_uint8_t)((i >> 8) & 0xff); - - return 0; -} - - -int -_zip_buffer_put_32(zip_buffer_t *buffer, zip_uint32_t i) -{ - zip_uint8_t *data = _zip_buffer_get(buffer, 4); - - if (data == NULL) { - return -1; - } - - data[0] = (zip_uint8_t)(i & 0xff); - data[1] = (zip_uint8_t)((i >> 8) & 0xff); - data[2] = (zip_uint8_t)((i >> 16) & 0xff); - data[3] = (zip_uint8_t)((i >> 24) & 0xff); - - return 0; -} - - -int -_zip_buffer_put_64(zip_buffer_t *buffer, zip_uint64_t i) -{ - zip_uint8_t *data = _zip_buffer_get(buffer, 8); - - if (data == NULL) { - return -1; - } - - data[0] = (zip_uint8_t)(i & 0xff); - data[1] = (zip_uint8_t)((i >> 8) & 0xff); - data[2] = (zip_uint8_t)((i >> 16) & 0xff); - data[3] = (zip_uint8_t)((i >> 24) & 0xff); - data[4] = (zip_uint8_t)((i >> 32) & 0xff); - data[5] = (zip_uint8_t)((i >> 40) & 0xff); - data[6] = (zip_uint8_t)((i >> 48) & 0xff); - data[7] = (zip_uint8_t)((i >> 56) & 0xff); - - return 0; -} - - -int -_zip_buffer_put_8(zip_buffer_t *buffer, zip_uint8_t i) -{ - zip_uint8_t *data = _zip_buffer_get(buffer, 1); - - if (data == NULL) { - return -1; - } - - data[0] = i; - - return 0; -} - - -int -_zip_buffer_set_offset(zip_buffer_t *buffer, zip_uint64_t offset) -{ - if (offset > buffer->size) { - buffer->ok = false; - return -1; - } - - buffer->ok = true; - buffer->offset = offset; - - return 0; -} - - -int -_zip_buffer_skip(zip_buffer_t *buffer, zip_uint64_t length) { - zip_uint64_t offset = buffer->offset + length; - - if (offset < buffer->offset) { - buffer->ok = false; - return -1; - } - return _zip_buffer_set_offset(buffer, offset); -} - -zip_uint64_t -_zip_buffer_size(zip_buffer_t *buffer) -{ - return buffer->size; -} diff --git a/libzip-1.2.0/lib/zip_close.c b/libzip-1.2.0/lib/zip_close.c deleted file mode 100644 index 88fa4449c..000000000 --- a/libzip-1.2.0/lib/zip_close.c +++ /dev/null @@ -1,561 +0,0 @@ -/* - zip_close.c -- close zip archive and update changes - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - -#include -#include -#include -#ifdef HAVE_STRINGS_H -#include -#endif -#ifdef HAVE_UNISTD_H -#include -#endif -#include -#include -#ifdef _WIN32 -#include -#include -#endif - - -/* max deflate size increase: size + ceil(size/16k)*5+6 */ -#define MAX_DEFLATE_SIZE_32 4293656963u - -static int add_data(zip_t *, zip_source_t *, zip_dirent_t *); -static int copy_data(zip_t *, zip_uint64_t); -static int copy_source(zip_t *, zip_source_t *); -static int write_cdir(zip_t *, const zip_filelist_t *, zip_uint64_t); - - -ZIP_EXTERN int -zip_close(zip_t *za) -{ - zip_uint64_t i, j, survivors; - zip_int64_t off; - int error; - zip_filelist_t *filelist; - int changed; - - if (za == NULL) - return -1; - - changed = _zip_changed(za, &survivors); - - /* don't create zip files with no entries */ - if (survivors == 0) { - if ((za->open_flags & ZIP_TRUNCATE) || changed) { - if (zip_source_remove(za->src) < 0) { - _zip_error_set_from_source(&za->error, za->src); - return -1; - } - } - zip_discard(za); - return 0; - } - - if (!changed) { - zip_discard(za); - return 0; - } - - if (survivors > za->nentry) { - zip_error_set(&za->error, ZIP_ER_INTERNAL, 0); - return -1; - } - - if ((filelist=(zip_filelist_t *)malloc(sizeof(filelist[0])*(size_t)survivors)) == NULL) - return -1; - - /* create list of files with index into original archive */ - for (i=j=0; inentry; i++) { - if (za->entry[i].deleted) - continue; - - if (j >= survivors) { - free(filelist); - zip_error_set(&za->error, ZIP_ER_INTERNAL, 0); - return -1; - } - - filelist[j].idx = i; - j++; - } - if (j < survivors) { - free(filelist); - zip_error_set(&za->error, ZIP_ER_INTERNAL, 0); - return -1; - } - - if (zip_source_begin_write(za->src) < 0) { - _zip_error_set_from_source(&za->error, za->src); - free(filelist); - return -1; - } - - error = 0; - for (j=0; jprogress_callback) { - za->progress_callback((double)j/survivors); - } - - i = filelist[j].idx; - entry = za->entry+i; - - new_data = (ZIP_ENTRY_DATA_CHANGED(entry) || ZIP_ENTRY_CHANGED(entry, ZIP_DIRENT_COMP_METHOD) || ZIP_ENTRY_CHANGED(entry, ZIP_DIRENT_ENCRYPTION_METHOD)); - - /* create new local directory entry */ - if (entry->changes == NULL) { - if ((entry->changes=_zip_dirent_clone(entry->orig)) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - error = 1; - break; - } - } - de = entry->changes; - - if (_zip_read_local_ef(za, i) < 0) { - error = 1; - break; - } - - if ((off = zip_source_tell_write(za->src)) < 0) { - error = 1; - break; - } - de->offset = (zip_uint64_t)off; - - if (new_data) { - zip_source_t *zs; - - zs = NULL; - if (!ZIP_ENTRY_DATA_CHANGED(entry)) { - if ((zs=_zip_source_zip_new(za, za, i, ZIP_FL_UNCHANGED, 0, 0, NULL)) == NULL) { - error = 1; - break; - } - } - - /* add_data writes dirent */ - if (add_data(za, zs ? zs : entry->source, de) < 0) { - error = 1; - if (zs) - zip_source_free(zs); - break; - } - if (zs) - zip_source_free(zs); - } - else { - zip_uint64_t offset; - - /* when copying data, all sizes are known -> no data descriptor needed */ - de->bitflags &= (zip_uint16_t)~ZIP_GPBF_DATA_DESCRIPTOR; - if (_zip_dirent_write(za, de, ZIP_FL_LOCAL) < 0) { - error = 1; - break; - } - if ((offset=_zip_file_get_offset(za, i, &za->error)) == 0) { - error = 1; - break; - } - if (zip_source_seek(za->src, (zip_int64_t)offset, SEEK_SET) < 0) { - _zip_error_set_from_source(&za->error, za->src); - error = 1; - break; - } - if (copy_data(za, de->comp_size) < 0) { - error = 1; - break; - } - } - } - - if (!error) { - if (write_cdir(za, filelist, survivors) < 0) - error = 1; - } - - free(filelist); - - if (!error) { - if (zip_source_commit_write(za->src) != 0) { - _zip_error_set_from_source(&za->error, za->src); - error = 1; - } - } - - if (error) { - zip_source_rollback_write(za->src); - return -1; - } - - if (za->progress_callback) { - za->progress_callback(1); - } - - zip_discard(za); - - return 0; -} - - -static int -add_data(zip_t *za, zip_source_t *src, zip_dirent_t *de) -{ - zip_int64_t offstart, offdata, offend; - struct zip_stat st; - zip_source_t *src_final, *src_tmp; - int ret; - int is_zip64; - zip_flags_t flags; - bool needs_recompress, needs_decompress, needs_crc, needs_compress, needs_reencrypt, needs_decrypt, needs_encrypt; - - if (zip_source_stat(src, &st) < 0) { - _zip_error_set_from_source(&za->error, src); - return -1; - } - - if ((st.valid & ZIP_STAT_COMP_METHOD) == 0) { - st.valid |= ZIP_STAT_COMP_METHOD; - st.comp_method = ZIP_CM_STORE; - } - - if (ZIP_CM_IS_DEFAULT(de->comp_method) && st.comp_method != ZIP_CM_STORE) - de->comp_method = st.comp_method; - else if (de->comp_method == ZIP_CM_STORE && (st.valid & ZIP_STAT_SIZE)) { - st.valid |= ZIP_STAT_COMP_SIZE; - st.comp_size = st.size; - } - else { - /* we'll recompress */ - st.valid &= ~ZIP_STAT_COMP_SIZE; - } - - if ((st.valid & ZIP_STAT_ENCRYPTION_METHOD) == 0) { - st.valid |= ZIP_STAT_ENCRYPTION_METHOD; - st.encryption_method = ZIP_EM_NONE; - } - - flags = ZIP_EF_LOCAL; - - if ((st.valid & ZIP_STAT_SIZE) == 0) - flags |= ZIP_FL_FORCE_ZIP64; - else { - de->uncomp_size = st.size; - - if ((st.valid & ZIP_STAT_COMP_SIZE) == 0) { - if (( ((de->comp_method == ZIP_CM_DEFLATE || ZIP_CM_IS_DEFAULT(de->comp_method)) && st.size > MAX_DEFLATE_SIZE_32) - || (de->comp_method != ZIP_CM_STORE && de->comp_method != ZIP_CM_DEFLATE && !ZIP_CM_IS_DEFAULT(de->comp_method)))) - flags |= ZIP_FL_FORCE_ZIP64; - } - else - de->comp_size = st.comp_size; - } - - if ((offstart = zip_source_tell_write(za->src)) < 0) { - return -1; - } - - /* as long as we don't support non-seekable output, clear data descriptor bit */ - de->bitflags &= (zip_uint16_t)~ZIP_GPBF_DATA_DESCRIPTOR; - if ((is_zip64=_zip_dirent_write(za, de, flags)) < 0) - return -1; - - needs_recompress = !((st.comp_method == de->comp_method) || (ZIP_CM_IS_DEFAULT(de->comp_method) && st.comp_method == ZIP_CM_DEFLATE)); - needs_decompress = needs_recompress && (st.comp_method != ZIP_CM_STORE); - needs_crc = (st.comp_method == ZIP_CM_STORE) || needs_decompress; - needs_compress = needs_recompress && (de->comp_method != ZIP_CM_STORE); - - needs_reencrypt = needs_recompress || (de->changed & ZIP_DIRENT_PASSWORD) || (de->encryption_method != st.encryption_method); - needs_decrypt = needs_reencrypt && (st.encryption_method != ZIP_EM_NONE); - needs_encrypt = needs_reencrypt && (de->encryption_method != ZIP_EM_NONE); - - src_final = src; - zip_source_keep(src_final); - - if (needs_decrypt) { - zip_encryption_implementation impl; - - if ((impl = _zip_get_encryption_implementation(st.encryption_method, ZIP_CODEC_DECODE)) == NULL) { - zip_error_set(&za->error, ZIP_ER_ENCRNOTSUPP, 0); - zip_source_free(src_final); - return -1; - } - if ((src_tmp = impl(za, src_final, st.encryption_method, ZIP_CODEC_DECODE, za->default_password)) == NULL) { - /* error set by impl */ - zip_source_free(src_final); - return -1; - } - - zip_source_free(src_final); - src_final = src_tmp; - } - - if (needs_decompress) { - zip_compression_implementation comp_impl; - - if ((comp_impl = _zip_get_compression_implementation(st.comp_method, ZIP_CODEC_DECODE)) == NULL) { - zip_error_set(&za->error, ZIP_ER_COMPNOTSUPP, 0); - zip_source_free(src_final); - return -1; - } - if ((src_tmp = comp_impl(za, src_final, st.comp_method, ZIP_CODEC_DECODE)) == NULL) { - /* error set by comp_impl */ - zip_source_free(src_final); - return -1; - } - - zip_source_free(src_final); - src_final = src_tmp; - } - - if (needs_crc) { - if ((src_tmp = zip_source_crc(za, src_final, 0)) == NULL) { - zip_source_free(src_final); - return -1; - } - - zip_source_free(src_final); - src_final = src_tmp; - } - - if (needs_compress) { - zip_compression_implementation comp_impl; - - if ((comp_impl = _zip_get_compression_implementation(de->comp_method, ZIP_CODEC_ENCODE)) == NULL) { - zip_error_set(&za->error, ZIP_ER_COMPNOTSUPP, 0); - zip_source_free(src_final); - return -1; - } - if ((src_tmp = comp_impl(za, src_final, de->comp_method, ZIP_CODEC_ENCODE)) == NULL) { - zip_source_free(src_final); - return -1; - } - - zip_source_free(src_final); - src_final = src_tmp; - } - - - if (needs_encrypt) { - zip_encryption_implementation impl; - const char *password = NULL; - - if (de->password) { - password = de->password; - } else if (za->default_password) { - password = za->default_password; - } - - if ((impl = _zip_get_encryption_implementation(de->encryption_method, ZIP_CODEC_ENCODE)) == NULL) { - zip_error_set(&za->error, ZIP_ER_ENCRNOTSUPP, 0); - zip_source_free(src_final); - return -1; - } - if ((src_tmp = impl(za, src_final, de->encryption_method, ZIP_CODEC_ENCODE, password)) == NULL) { - /* error set by impl */ - zip_source_free(src_final); - return -1; - } - - zip_source_free(src_final); - src_final = src_tmp; - } - - - if ((offdata = zip_source_tell_write(za->src)) < 0) { - return -1; - } - - ret = copy_source(za, src_final); - - if (zip_source_stat(src_final, &st) < 0) { - ret = -1; - } - - zip_source_free(src_final); - - if (ret < 0) { - return -1; - } - - if ((offend = zip_source_tell_write(za->src)) < 0) { - return -1; - } - - if (zip_source_seek_write(za->src, offstart, SEEK_SET) < 0) { - _zip_error_set_from_source(&za->error, za->src); - return -1; - } - - if ((st.valid & (ZIP_STAT_COMP_METHOD|ZIP_STAT_CRC|ZIP_STAT_SIZE)) != (ZIP_STAT_COMP_METHOD|ZIP_STAT_CRC|ZIP_STAT_SIZE)) { - zip_error_set(&za->error, ZIP_ER_INTERNAL, 0); - return -1; - } - - if ((de->changed & ZIP_DIRENT_LAST_MOD) == 0) { - if (st.valid & ZIP_STAT_MTIME) - de->last_mod = st.mtime; - else - time(&de->last_mod); - } - de->comp_method = st.comp_method; - de->crc = st.crc; - de->uncomp_size = st.size; - de->comp_size = (zip_uint64_t)(offend - offdata); - - if ((ret=_zip_dirent_write(za, de, flags)) < 0) - return -1; - - if (is_zip64 != ret) { - /* Zip64 mismatch between preliminary file header written before data and final file header written afterwards */ - zip_error_set(&za->error, ZIP_ER_INTERNAL, 0); - return -1; - } - - - if (zip_source_seek_write(za->src, offend, SEEK_SET) < 0) { - _zip_error_set_from_source(&za->error, za->src); - return -1; - } - - return 0; -} - - -static int -copy_data(zip_t *za, zip_uint64_t len) -{ - zip_uint8_t buf[BUFSIZE]; - size_t n; - - while (len > 0) { - n = len > sizeof(buf) ? sizeof(buf) : len; - if (_zip_read(za->src, buf, n, &za->error) < 0) { - return -1; - } - - if (_zip_write(za, buf, n) < 0) { - return -1; - } - - len -= n; - } - - return 0; -} - - -static int -copy_source(zip_t *za, zip_source_t *src) -{ - zip_uint8_t buf[BUFSIZE]; - zip_int64_t n; - int ret; - - if (zip_source_open(src) < 0) { - _zip_error_set_from_source(&za->error, src); - return -1; - } - - ret = 0; - while ((n=zip_source_read(src, buf, sizeof(buf))) > 0) { - if (_zip_write(za, buf, (zip_uint64_t)n) < 0) { - ret = -1; - break; - } - } - - if (n < 0) { - _zip_error_set_from_source(&za->error, src); - ret = -1; - } - - zip_source_close(src); - - return ret; -} - - -static int -write_cdir(zip_t *za, const zip_filelist_t *filelist, zip_uint64_t survivors) -{ - zip_int64_t cd_start, end, size; - - if ((cd_start = zip_source_tell_write(za->src)) < 0) { - return -1; - } - - if ((size=_zip_cdir_write(za, filelist, survivors)) < 0) { - return -1; - } - - if ((end = zip_source_tell_write(za->src)) < 0) { - return -1; - } - - return 0; -} - - -int -_zip_changed(const zip_t *za, zip_uint64_t *survivorsp) -{ - int changed; - zip_uint64_t i, survivors; - - changed = 0; - survivors = 0; - - if (za->comment_changed || za->ch_flags != za->flags) - changed = 1; - - for (i=0; inentry; i++) { - if (za->entry[i].deleted || za->entry[i].source || (za->entry[i].changes && za->entry[i].changes->changed != 0)) - changed = 1; - if (!za->entry[i].deleted) - survivors++; - } - - if (survivorsp) - *survivorsp = survivors; - - return changed; -} diff --git a/libzip-1.2.0/lib/zip_delete.c b/libzip-1.2.0/lib/zip_delete.c deleted file mode 100644 index e16021010..000000000 --- a/libzip-1.2.0/lib/zip_delete.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - zip_delete.c -- delete file from zip archive - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN int -zip_delete(zip_t *za, zip_uint64_t idx) -{ - const char *name; - - if (idx >= za->nentry) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (ZIP_IS_RDONLY(za)) { - zip_error_set(&za->error, ZIP_ER_RDONLY, 0); - return -1; - } - - if ((name=_zip_get_name(za, idx, 0, &za->error)) == NULL) { - return -1; - } - - if (!_zip_hash_delete(za->names, (const zip_uint8_t *)name, &za->error)) { - return -1; - } - - /* allow duplicate file names, because the file will - * be removed directly afterwards */ - if (_zip_unchange(za, idx, 1) != 0) - return -1; - - za->entry[idx].deleted = 1; - - return 0; -} - diff --git a/libzip-1.2.0/lib/zip_dir_add.c b/libzip-1.2.0/lib/zip_dir_add.c deleted file mode 100644 index f535b21f2..000000000 --- a/libzip-1.2.0/lib/zip_dir_add.c +++ /dev/null @@ -1,93 +0,0 @@ -/* - zip_dir_add.c -- add directory - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include - -#include "zipint.h" - - -/* NOTE: Signed due to -1 on error. See zip_add.c for more details. */ - -ZIP_EXTERN zip_int64_t -zip_dir_add(zip_t *za, const char *name, zip_flags_t flags) -{ - size_t len; - zip_int64_t idx; - char *s; - zip_source_t *source; - - if (ZIP_IS_RDONLY(za)) { - zip_error_set(&za->error, ZIP_ER_RDONLY, 0); - return -1; - } - - if (name == NULL) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - s = NULL; - len = strlen(name); - - if (name[len-1] != '/') { - if ((s=(char *)malloc(len+2)) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return -1; - } - strcpy(s, name); - s[len] = '/'; - s[len+1] = '\0'; - } - - if ((source=zip_source_buffer(za, NULL, 0, 0)) == NULL) { - free(s); - return -1; - } - - idx = _zip_file_replace(za, ZIP_UINT64_MAX, s ? s : name, source, flags); - - free(s); - - if (idx < 0) - zip_source_free(source); - else { - if (zip_file_set_external_attributes(za, (zip_uint64_t)idx, 0, ZIP_OPSYS_DEFAULT, ZIP_EXT_ATTRIB_DEFAULT_DIR) < 0) { - zip_delete(za, (zip_uint64_t)idx); - return -1; - } - } - - return idx; -} diff --git a/libzip-1.2.0/lib/zip_dirent.c b/libzip-1.2.0/lib/zip_dirent.c deleted file mode 100644 index df38afd98..000000000 --- a/libzip-1.2.0/lib/zip_dirent.c +++ /dev/null @@ -1,1105 +0,0 @@ -/* - zip_dirent.c -- read directory entry (local or central), clean dirent - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include -#include -#include -#include -#include - -#include "zipint.h" - -static time_t _zip_d2u_time(zip_uint16_t, zip_uint16_t); -static zip_string_t *_zip_dirent_process_ef_utf_8(const zip_dirent_t *de, zip_uint16_t id, zip_string_t *str); -static zip_extra_field_t *_zip_ef_utf8(zip_uint16_t, zip_string_t *, zip_error_t *); -static bool _zip_dirent_process_winzip_aes(zip_dirent_t *de, zip_error_t *error); - - -void -_zip_cdir_free(zip_cdir_t *cd) -{ - zip_uint64_t i; - - if (!cd) - return; - - for (i=0; inentry; i++) - _zip_entry_finalize(cd->entry+i); - free(cd->entry); - _zip_string_free(cd->comment); - free(cd); -} - - -zip_cdir_t * -_zip_cdir_new(zip_uint64_t nentry, zip_error_t *error) -{ - zip_cdir_t *cd; - - if ((cd=(zip_cdir_t *)malloc(sizeof(*cd))) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return NULL; - } - - cd->entry = NULL; - cd->nentry = cd->nentry_alloc = 0; - cd->size = cd->offset = 0; - cd->comment = NULL; - cd->is_zip64 = false; - - if (!_zip_cdir_grow(cd, nentry, error)) { - _zip_cdir_free(cd); - return NULL; - } - - return cd; -} - - -bool -_zip_cdir_grow(zip_cdir_t *cd, zip_uint64_t additional_entries, zip_error_t *error) -{ - zip_uint64_t i, new_alloc; - zip_entry_t *new_entry; - - if (additional_entries == 0) { - return true; - } - - new_alloc = cd->nentry_alloc + additional_entries; - - if (new_alloc < additional_entries || new_alloc > SIZE_MAX/sizeof(*(cd->entry))) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return false; - } - - if ((new_entry = (zip_entry_t *)realloc(cd->entry, sizeof(*(cd->entry))*(size_t)new_alloc)) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return false; - } - - cd->entry = new_entry; - - for (i = cd->nentry; i < new_alloc; i++) { - _zip_entry_init(cd->entry+i); - } - - cd->nentry = cd->nentry_alloc = new_alloc; - - return true; -} - - -zip_int64_t -_zip_cdir_write(zip_t *za, const zip_filelist_t *filelist, zip_uint64_t survivors) -{ - zip_uint64_t offset, size; - zip_string_t *comment; - zip_uint8_t buf[EOCDLEN + EOCD64LEN + EOCD64LOCLEN]; - zip_buffer_t *buffer; - zip_int64_t off; - zip_uint64_t i; - bool is_zip64; - int ret; - - if ((off = zip_source_tell_write(za->src)) < 0) { - _zip_error_set_from_source(&za->error, za->src); - return -1; - } - offset = (zip_uint64_t)off; - - is_zip64 = false; - - for (i=0; ientry+filelist[i].idx; - - if ((ret=_zip_dirent_write(za, entry->changes ? entry->changes : entry->orig, ZIP_FL_CENTRAL)) < 0) - return -1; - if (ret) - is_zip64 = true; - } - - if ((off = zip_source_tell_write(za->src)) < 0) { - _zip_error_set_from_source(&za->error, za->src); - return -1; - } - size = (zip_uint64_t)off - offset; - - if (offset > ZIP_UINT32_MAX || survivors > ZIP_UINT16_MAX) - is_zip64 = true; - - - if ((buffer = _zip_buffer_new(buf, sizeof(buf))) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return -1; - } - - if (is_zip64) { - _zip_buffer_put(buffer, EOCD64_MAGIC, 4); - _zip_buffer_put_64(buffer, EOCD64LEN-12); - _zip_buffer_put_16(buffer, 45); - _zip_buffer_put_16(buffer, 45); - _zip_buffer_put_32(buffer, 0); - _zip_buffer_put_32(buffer, 0); - _zip_buffer_put_64(buffer, survivors); - _zip_buffer_put_64(buffer, survivors); - _zip_buffer_put_64(buffer, size); - _zip_buffer_put_64(buffer, offset); - _zip_buffer_put(buffer, EOCD64LOC_MAGIC, 4); - _zip_buffer_put_32(buffer, 0); - _zip_buffer_put_64(buffer, offset+size); - _zip_buffer_put_32(buffer, 1); - } - - _zip_buffer_put(buffer, EOCD_MAGIC, 4); - _zip_buffer_put_32(buffer, 0); - _zip_buffer_put_16(buffer, (zip_uint16_t)(survivors >= ZIP_UINT16_MAX ? ZIP_UINT16_MAX : survivors)); - _zip_buffer_put_16(buffer, (zip_uint16_t)(survivors >= ZIP_UINT16_MAX ? ZIP_UINT16_MAX : survivors)); - _zip_buffer_put_32(buffer, size >= ZIP_UINT32_MAX ? ZIP_UINT32_MAX : (zip_uint32_t)size); - _zip_buffer_put_32(buffer, offset >= ZIP_UINT32_MAX ? ZIP_UINT32_MAX : (zip_uint32_t)offset); - - comment = za->comment_changed ? za->comment_changes : za->comment_orig; - - _zip_buffer_put_16(buffer, (zip_uint16_t)(comment ? comment->length : 0)); - - if (!_zip_buffer_ok(buffer)) { - zip_error_set(&za->error, ZIP_ER_INTERNAL, 0); - _zip_buffer_free(buffer); - return -1; - } - - if (_zip_write(za, _zip_buffer_data(buffer), _zip_buffer_offset(buffer)) < 0) { - _zip_buffer_free(buffer); - return -1; - } - - _zip_buffer_free(buffer); - - if (comment) { - if (_zip_write(za, comment->raw, comment->length) < 0) { - return -1; - } - } - - return (zip_int64_t)size; -} - - -zip_dirent_t * -_zip_dirent_clone(const zip_dirent_t *sde) -{ - zip_dirent_t *tde; - - if ((tde=(zip_dirent_t *)malloc(sizeof(*tde))) == NULL) - return NULL; - - if (sde) - memcpy(tde, sde, sizeof(*sde)); - else - _zip_dirent_init(tde); - - tde->changed = 0; - tde->cloned = 1; - - return tde; -} - - -void -_zip_dirent_finalize(zip_dirent_t *zde) -{ - if (!zde->cloned || zde->changed & ZIP_DIRENT_FILENAME) { - _zip_string_free(zde->filename); - zde->filename = NULL; - } - if (!zde->cloned || zde->changed & ZIP_DIRENT_EXTRA_FIELD) { - _zip_ef_free(zde->extra_fields); - zde->extra_fields = NULL; - } - if (!zde->cloned || zde->changed & ZIP_DIRENT_COMMENT) { - _zip_string_free(zde->comment); - zde->comment = NULL; - } - if (!zde->cloned || zde->changed & ZIP_DIRENT_PASSWORD) { - if (zde->password) { - _zip_crypto_clear(zde->password, strlen(zde->password)); - } - free(zde->password); - zde->password = NULL; - } -} - - -void -_zip_dirent_free(zip_dirent_t *zde) -{ - if (zde == NULL) - return; - - _zip_dirent_finalize(zde); - free(zde); -} - - -void -_zip_dirent_init(zip_dirent_t *de) -{ - de->changed = 0; - de->local_extra_fields_read = 0; - de->cloned = 0; - - de->crc_valid = true; - de->version_madeby = 20 | (ZIP_OPSYS_DEFAULT << 8); - de->version_needed = 20; /* 2.0 */ - de->bitflags = 0; - de->comp_method = ZIP_CM_DEFAULT; - de->last_mod = 0; - de->crc = 0; - de->comp_size = 0; - de->uncomp_size = 0; - de->filename = NULL; - de->extra_fields = NULL; - de->comment = NULL; - de->disk_number = 0; - de->int_attrib = 0; - de->ext_attrib = ZIP_EXT_ATTRIB_DEFAULT; - de->offset = 0; - de->encryption_method = ZIP_EM_NONE; - de->password = NULL; -} - - -bool -_zip_dirent_needs_zip64(const zip_dirent_t *de, zip_flags_t flags) -{ - if (de->uncomp_size >= ZIP_UINT32_MAX || de->comp_size >= ZIP_UINT32_MAX - || ((flags & ZIP_FL_CENTRAL) && de->offset >= ZIP_UINT32_MAX)) - return true; - - return false; -} - - -zip_dirent_t * -_zip_dirent_new(void) -{ - zip_dirent_t *de; - - if ((de=(zip_dirent_t *)malloc(sizeof(*de))) == NULL) - return NULL; - - _zip_dirent_init(de); - return de; -} - - -/* _zip_dirent_read(zde, fp, bufp, left, localp, error): - Fills the zip directory entry zde. - - If buffer is non-NULL, data is taken from there; otherwise data is read from fp as needed. - - If local is true, it reads a local header instead of a central directory entry. - - Returns size of dirent read if successful. On error, error is filled in and -1 is returned. -*/ - -zip_int64_t -_zip_dirent_read(zip_dirent_t *zde, zip_source_t *src, zip_buffer_t *buffer, bool local, zip_error_t *error) -{ - zip_uint8_t buf[CDENTRYSIZE]; - zip_uint16_t dostime, dosdate; - zip_uint32_t size, variable_size; - zip_uint16_t filename_len, comment_len, ef_len; - - bool from_buffer = (buffer != NULL); - - size = local ? LENTRYSIZE : CDENTRYSIZE; - - if (buffer) { - if (_zip_buffer_left(buffer) < size) { - zip_error_set(error, ZIP_ER_NOZIP, 0); - return -1; - } - } - else { - if ((buffer = _zip_buffer_new_from_source(src, size, buf, error)) == NULL) { - return -1; - } - } - - if (memcmp(_zip_buffer_get(buffer, 4), (local ? LOCAL_MAGIC : CENTRAL_MAGIC), 4) != 0) { - zip_error_set(error, ZIP_ER_NOZIP, 0); - if (!from_buffer) { - _zip_buffer_free(buffer); - } - return -1; - } - - /* convert buffercontents to zip_dirent */ - - _zip_dirent_init(zde); - if (!local) - zde->version_madeby = _zip_buffer_get_16(buffer); - else - zde->version_madeby = 0; - zde->version_needed = _zip_buffer_get_16(buffer); - zde->bitflags = _zip_buffer_get_16(buffer); - zde->comp_method = _zip_buffer_get_16(buffer); - - /* convert to time_t */ - dostime = _zip_buffer_get_16(buffer); - dosdate = _zip_buffer_get_16(buffer); - zde->last_mod = _zip_d2u_time(dostime, dosdate); - - zde->crc = _zip_buffer_get_32(buffer); - zde->comp_size = _zip_buffer_get_32(buffer); - zde->uncomp_size = _zip_buffer_get_32(buffer); - - filename_len = _zip_buffer_get_16(buffer); - ef_len = _zip_buffer_get_16(buffer); - - if (local) { - comment_len = 0; - zde->disk_number = 0; - zde->int_attrib = 0; - zde->ext_attrib = 0; - zde->offset = 0; - } else { - comment_len = _zip_buffer_get_16(buffer); - zde->disk_number = _zip_buffer_get_16(buffer); - zde->int_attrib = _zip_buffer_get_16(buffer); - zde->ext_attrib = _zip_buffer_get_32(buffer); - zde->offset = _zip_buffer_get_32(buffer); - } - - if (!_zip_buffer_ok(buffer)) { - zip_error_set(error, ZIP_ER_INTERNAL, 0); - if (!from_buffer) { - _zip_buffer_free(buffer); - } - return -1; - } - - if (zde->bitflags & ZIP_GPBF_ENCRYPTED) { - if (zde->bitflags & ZIP_GPBF_STRONG_ENCRYPTION) { - /* TODO */ - zde->encryption_method = ZIP_EM_UNKNOWN; - } - else { - zde->encryption_method = ZIP_EM_TRAD_PKWARE; - } - } - else { - zde->encryption_method = ZIP_EM_NONE; - } - - zde->filename = NULL; - zde->extra_fields = NULL; - zde->comment = NULL; - - variable_size = (zip_uint32_t)filename_len+(zip_uint32_t)ef_len+(zip_uint32_t)comment_len; - - if (from_buffer) { - if (_zip_buffer_left(buffer) < variable_size) { - zip_error_set(error, ZIP_ER_INCONS, 0); - return -1; - } - } - else { - _zip_buffer_free(buffer); - - if ((buffer = _zip_buffer_new_from_source(src, variable_size, NULL, error)) == NULL) { - return -1; - } - } - - if (filename_len) { - zde->filename = _zip_read_string(buffer, src, filename_len, 1, error); - if (!zde->filename) { - if (zip_error_code_zip(error) == ZIP_ER_EOF) { - zip_error_set(error, ZIP_ER_INCONS, 0); - } - if (!from_buffer) { - _zip_buffer_free(buffer); - } - return -1; - } - - if (zde->bitflags & ZIP_GPBF_ENCODING_UTF_8) { - if (_zip_guess_encoding(zde->filename, ZIP_ENCODING_UTF8_KNOWN) == ZIP_ENCODING_ERROR) { - zip_error_set(error, ZIP_ER_INCONS, 0); - if (!from_buffer) { - _zip_buffer_free(buffer); - } - return -1; - } - } - } - - if (ef_len) { - zip_uint8_t *ef = _zip_read_data(buffer, src, ef_len, 0, error); - - if (ef == NULL) { - if (!from_buffer) { - _zip_buffer_free(buffer); - } - return -1; - } - if (!_zip_ef_parse(ef, ef_len, local ? ZIP_EF_LOCAL : ZIP_EF_CENTRAL, &zde->extra_fields, error)) { - free(ef); - if (!from_buffer) { - _zip_buffer_free(buffer); - } - return -1; - } - free(ef); - if (local) - zde->local_extra_fields_read = 1; - } - - if (comment_len) { - zde->comment = _zip_read_string(buffer, src, comment_len, 0, error); - if (!zde->comment) { - if (!from_buffer) { - _zip_buffer_free(buffer); - } - return -1; - } - if (zde->bitflags & ZIP_GPBF_ENCODING_UTF_8) { - if (_zip_guess_encoding(zde->comment, ZIP_ENCODING_UTF8_KNOWN) == ZIP_ENCODING_ERROR) { - zip_error_set(error, ZIP_ER_INCONS, 0); - if (!from_buffer) { - _zip_buffer_free(buffer); - } - return -1; - } - } - } - - zde->filename = _zip_dirent_process_ef_utf_8(zde, ZIP_EF_UTF_8_NAME, zde->filename); - zde->comment = _zip_dirent_process_ef_utf_8(zde, ZIP_EF_UTF_8_COMMENT, zde->comment); - - /* Zip64 */ - - if (zde->uncomp_size == ZIP_UINT32_MAX || zde->comp_size == ZIP_UINT32_MAX || zde->offset == ZIP_UINT32_MAX) { - zip_uint16_t got_len; - zip_buffer_t *ef_buffer; - const zip_uint8_t *ef = _zip_ef_get_by_id(zde->extra_fields, &got_len, ZIP_EF_ZIP64, 0, local ? ZIP_EF_LOCAL : ZIP_EF_CENTRAL, error); - /* TODO: if got_len == 0 && !ZIP64_EOCD: no error, 0xffffffff is valid value */ - if (ef == NULL) { - if (!from_buffer) { - _zip_buffer_free(buffer); - } - return -1; - } - - if ((ef_buffer = _zip_buffer_new((zip_uint8_t *)ef, got_len)) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - if (!from_buffer) { - _zip_buffer_free(buffer); - } - return -1; - } - - if (zde->uncomp_size == ZIP_UINT32_MAX) - zde->uncomp_size = _zip_buffer_get_64(ef_buffer); - else if (local) { - /* From appnote.txt: This entry in the Local header MUST - include BOTH original and compressed file size fields. */ - (void)_zip_buffer_skip(ef_buffer, 8); /* error is caught by _zip_buffer_eof() call */ - } - if (zde->comp_size == ZIP_UINT32_MAX) - zde->comp_size = _zip_buffer_get_64(ef_buffer); - if (!local) { - if (zde->offset == ZIP_UINT32_MAX) - zde->offset = _zip_buffer_get_64(ef_buffer); - if (zde->disk_number == ZIP_UINT16_MAX) - zde->disk_number = _zip_buffer_get_32(buffer); - } - - if (!_zip_buffer_eof(ef_buffer)) { - zip_error_set(error, ZIP_ER_INCONS, 0); - _zip_buffer_free(ef_buffer); - if (!from_buffer) { - _zip_buffer_free(buffer); - } - return -1; - } - _zip_buffer_free(ef_buffer); - } - - if (!_zip_buffer_ok(buffer)) { - zip_error_set(error, ZIP_ER_INTERNAL, 0); - if (!from_buffer) { - _zip_buffer_free(buffer); - } - return -1; - } - if (!from_buffer) { - _zip_buffer_free(buffer); - } - - /* zip_source_seek / zip_source_tell don't support values > ZIP_INT64_MAX */ - if (zde->offset > ZIP_INT64_MAX) { - zip_error_set(error, ZIP_ER_SEEK, EFBIG); - return -1; - } - - if (!_zip_dirent_process_winzip_aes(zde, error)) { - if (!from_buffer) { - _zip_buffer_free(buffer); - } - return -1; - } - - zde->extra_fields = _zip_ef_remove_internal(zde->extra_fields); - - return (zip_int64_t)(size + variable_size); -} - - -static zip_string_t * -_zip_dirent_process_ef_utf_8(const zip_dirent_t *de, zip_uint16_t id, zip_string_t *str) -{ - zip_uint16_t ef_len; - zip_uint32_t ef_crc; - zip_buffer_t *buffer; - - const zip_uint8_t *ef = _zip_ef_get_by_id(de->extra_fields, &ef_len, id, 0, ZIP_EF_BOTH, NULL); - - if (ef == NULL || ef_len < 5 || ef[0] != 1) { - return str; - } - - if ((buffer = _zip_buffer_new((zip_uint8_t *)ef, ef_len)) == NULL) { - return str; - } - - _zip_buffer_get_8(buffer); - ef_crc = _zip_buffer_get_32(buffer); - - if (_zip_string_crc32(str) == ef_crc) { - zip_uint16_t len = (zip_uint16_t)_zip_buffer_left(buffer); - zip_string_t *ef_str = _zip_string_new(_zip_buffer_get(buffer, len), len, ZIP_FL_ENC_UTF_8, NULL); - - if (ef_str != NULL) { - _zip_string_free(str); - str = ef_str; - } - } - - _zip_buffer_free(buffer); - - return str; -} - - -static bool -_zip_dirent_process_winzip_aes(zip_dirent_t *de, zip_error_t *error) -{ - zip_uint16_t ef_len; - zip_buffer_t *buffer; - const zip_uint8_t *ef; - bool crc_valid; - zip_uint16_t enc_method; - - - if (de->comp_method != ZIP_CM_WINZIP_AES) { - return true; - } - - ef = _zip_ef_get_by_id(de->extra_fields, &ef_len, ZIP_EF_WINZIP_AES, 0, ZIP_EF_BOTH, NULL); - - if (ef == NULL || ef_len < 7) { - zip_error_set(error, ZIP_ER_INCONS, 0); - return false; - } - - if ((buffer = _zip_buffer_new((zip_uint8_t *)ef, ef_len)) == NULL) { - zip_error_set(error, ZIP_ER_INTERNAL, 0); - return false; - } - - /* version */ - - crc_valid = true; - switch (_zip_buffer_get_16(buffer)) { - case 1: - break; - - case 2: - if (de->uncomp_size < 20 /* TODO: constant */) { - crc_valid = false; - } - break; - - default: - zip_error_set(error, ZIP_ER_ENCRNOTSUPP, 0); - _zip_buffer_free(buffer); - return false; - } - - /* vendor */ - if (memcmp(_zip_buffer_get(buffer, 2), "AE", 2) != 0) { - zip_error_set(error, ZIP_ER_ENCRNOTSUPP, 0); - _zip_buffer_free(buffer); - return false; - } - - /* mode */ - switch (_zip_buffer_get_8(buffer)) { - case 1: - enc_method = ZIP_EM_AES_128; - break; - case 2: - enc_method = ZIP_EM_AES_192; - break; - case 3: - enc_method = ZIP_EM_AES_256; - break; - default: - zip_error_set(error, ZIP_ER_ENCRNOTSUPP, 0); - _zip_buffer_free(buffer); - return false; - } - - if (ef_len != 7) { - zip_error_set(error, ZIP_ER_INCONS, 0); - _zip_buffer_free(buffer); - return false; - } - - de->crc_valid = crc_valid; - de->encryption_method = enc_method; - de->comp_method = _zip_buffer_get_16(buffer); - - _zip_buffer_free(buffer); - return true; -} - - -zip_int32_t -_zip_dirent_size(zip_source_t *src, zip_uint16_t flags, zip_error_t *error) -{ - zip_int32_t size; - bool local = (flags & ZIP_EF_LOCAL) != 0; - int i; - zip_uint8_t b[6]; - zip_buffer_t *buffer; - - size = local ? LENTRYSIZE : CDENTRYSIZE; - - if (zip_source_seek(src, local ? 26 : 28, SEEK_CUR) < 0) { - _zip_error_set_from_source(error, src); - return -1; - } - - if ((buffer = _zip_buffer_new_from_source(src, local ? 4 : 6, b, error)) == NULL) { - return -1; - } - - for (i=0; i<(local ? 2 : 3); i++) { - size += _zip_buffer_get_16(buffer); - } - - if (!_zip_buffer_eof(buffer)) { - zip_error_set(error, ZIP_ER_INTERNAL, 0); - _zip_buffer_free(buffer); - return -1; - } - - _zip_buffer_free(buffer); - return size; -} - - -/* _zip_dirent_write - Writes zip directory entry. - - If flags & ZIP_EF_LOCAL, it writes a local header instead of a central - directory entry. If flags & ZIP_EF_FORCE_ZIP64, a ZIP64 extra field is written, even if not needed. - - Returns 0 if successful, 1 if successful and wrote ZIP64 extra field. On error, error is filled in and -1 is - returned. -*/ - -int -_zip_dirent_write(zip_t *za, zip_dirent_t *de, zip_flags_t flags) -{ - zip_uint16_t dostime, dosdate; - zip_encoding_type_t com_enc, name_enc; - zip_extra_field_t *ef; - zip_extra_field_t *ef64; - zip_uint32_t ef_total_size; - bool is_zip64; - bool is_really_zip64; - bool is_winzip_aes; - zip_uint8_t buf[CDENTRYSIZE]; - zip_buffer_t *buffer; - - ef = NULL; - - name_enc = _zip_guess_encoding(de->filename, ZIP_ENCODING_UNKNOWN); - com_enc = _zip_guess_encoding(de->comment, ZIP_ENCODING_UNKNOWN); - - if ((name_enc == ZIP_ENCODING_UTF8_KNOWN && com_enc == ZIP_ENCODING_ASCII) || - (name_enc == ZIP_ENCODING_ASCII && com_enc == ZIP_ENCODING_UTF8_KNOWN) || - (name_enc == ZIP_ENCODING_UTF8_KNOWN && com_enc == ZIP_ENCODING_UTF8_KNOWN)) - de->bitflags |= ZIP_GPBF_ENCODING_UTF_8; - else { - de->bitflags &= (zip_uint16_t)~ZIP_GPBF_ENCODING_UTF_8; - if (name_enc == ZIP_ENCODING_UTF8_KNOWN) { - ef = _zip_ef_utf8(ZIP_EF_UTF_8_NAME, de->filename, &za->error); - if (ef == NULL) - return -1; - } - if ((flags & ZIP_FL_LOCAL) == 0 && com_enc == ZIP_ENCODING_UTF8_KNOWN){ - zip_extra_field_t *ef2 = _zip_ef_utf8(ZIP_EF_UTF_8_COMMENT, de->comment, &za->error); - if (ef2 == NULL) { - _zip_ef_free(ef); - return -1; - } - ef2->next = ef; - ef = ef2; - } - } - - if (de->encryption_method == ZIP_EM_NONE) { - de->bitflags &= ~ZIP_GPBF_ENCRYPTED; - } - else { - de->bitflags |= ZIP_GPBF_ENCRYPTED; - } - - is_really_zip64 = _zip_dirent_needs_zip64(de, flags); - is_zip64 = (flags & (ZIP_FL_LOCAL|ZIP_FL_FORCE_ZIP64)) == (ZIP_FL_LOCAL|ZIP_FL_FORCE_ZIP64) || is_really_zip64; - is_winzip_aes = de->encryption_method == ZIP_EM_AES_128 || de->encryption_method == ZIP_EM_AES_192 || de->encryption_method == ZIP_EM_AES_256; - - if (is_zip64) { - zip_uint8_t ef_zip64[EFZIP64SIZE]; - zip_buffer_t *ef_buffer = _zip_buffer_new(ef_zip64, sizeof(ef_zip64)); - if (ef_buffer == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - _zip_ef_free(ef); - return -1; - } - - if (flags & ZIP_FL_LOCAL) { - if ((flags & ZIP_FL_FORCE_ZIP64) || de->comp_size > ZIP_UINT32_MAX || de->uncomp_size > ZIP_UINT32_MAX) { - _zip_buffer_put_64(ef_buffer, de->uncomp_size); - _zip_buffer_put_64(ef_buffer, de->comp_size); - } - } - else { - if ((flags & ZIP_FL_FORCE_ZIP64) || de->comp_size > ZIP_UINT32_MAX || de->uncomp_size > ZIP_UINT32_MAX || de->offset > ZIP_UINT32_MAX) { - if (de->uncomp_size >= ZIP_UINT32_MAX) { - _zip_buffer_put_64(ef_buffer, de->uncomp_size); - } - if (de->comp_size >= ZIP_UINT32_MAX) { - _zip_buffer_put_64(ef_buffer, de->comp_size); - } - if (de->offset >= ZIP_UINT32_MAX) { - _zip_buffer_put_64(ef_buffer, de->offset); - } - } - } - - if (!_zip_buffer_ok(ef_buffer)) { - zip_error_set(&za->error, ZIP_ER_INTERNAL, 0); - _zip_buffer_free(ef_buffer); - _zip_ef_free(ef); - return -1; - } - - ef64 = _zip_ef_new(ZIP_EF_ZIP64, (zip_uint16_t)(_zip_buffer_offset(ef_buffer)), ef_zip64, ZIP_EF_BOTH); - _zip_buffer_free(ef_buffer); - ef64->next = ef; - ef = ef64; - } - - if (is_winzip_aes) { - zip_uint8_t data[EF_WINZIP_AES_SIZE]; - zip_buffer_t *ef_buffer = _zip_buffer_new(data, sizeof(data)); - zip_extra_field_t *ef_winzip; - - if (ef_buffer == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - _zip_ef_free(ef); - return -1; - } - - _zip_buffer_put_16(ef_buffer, 2); - _zip_buffer_put(ef_buffer, "AE", 2); - _zip_buffer_put_8(ef_buffer, (de->encryption_method & 0xff)); - _zip_buffer_put_16(ef_buffer, (zip_uint16_t)de->comp_method); - - if (!_zip_buffer_ok(ef_buffer)) { - zip_error_set(&za->error, ZIP_ER_INTERNAL, 0); - _zip_buffer_free(ef_buffer); - _zip_ef_free(ef); - return -1; - } - - ef_winzip = _zip_ef_new(ZIP_EF_WINZIP_AES, EF_WINZIP_AES_SIZE, data, ZIP_EF_BOTH); - _zip_buffer_free(ef_buffer); - ef_winzip->next = ef; - ef = ef_winzip; - } - - if ((buffer = _zip_buffer_new(buf, sizeof(buf))) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - _zip_ef_free(ef); - return -1; - } - - _zip_buffer_put(buffer, (flags & ZIP_FL_LOCAL) ? LOCAL_MAGIC : CENTRAL_MAGIC, 4); - - if ((flags & ZIP_FL_LOCAL) == 0) { - _zip_buffer_put_16(buffer, (zip_uint16_t)(is_really_zip64 ? 45 : de->version_madeby)); - } - _zip_buffer_put_16(buffer, (zip_uint16_t)(is_really_zip64 ? 45 : de->version_needed)); - _zip_buffer_put_16(buffer, de->bitflags&0xfff9); /* clear compression method specific flags */ - if (is_winzip_aes) { - _zip_buffer_put_16(buffer, ZIP_CM_WINZIP_AES); - } - else { - _zip_buffer_put_16(buffer, (zip_uint16_t)de->comp_method); - } - - _zip_u2d_time(de->last_mod, &dostime, &dosdate); - _zip_buffer_put_16(buffer, dostime); - _zip_buffer_put_16(buffer, dosdate); - - if (is_winzip_aes && de->uncomp_size < 20) { - _zip_buffer_put_32(buffer, 0); - } - else { - _zip_buffer_put_32(buffer, de->crc); - } - - if (((flags & ZIP_FL_LOCAL) == ZIP_FL_LOCAL) && ((de->comp_size >= ZIP_UINT32_MAX) || (de->uncomp_size >= ZIP_UINT32_MAX))) { - /* In local headers, if a ZIP64 EF is written, it MUST contain - * both compressed and uncompressed sizes (even if one of the - * two is smaller than 0xFFFFFFFF); on the other hand, those - * may only appear when the corresponding standard entry is - * 0xFFFFFFFF. (appnote.txt 4.5.3) */ - _zip_buffer_put_32(buffer, ZIP_UINT32_MAX); - _zip_buffer_put_32(buffer, ZIP_UINT32_MAX); - } - else { - if (de->comp_size < ZIP_UINT32_MAX) { - _zip_buffer_put_32(buffer, (zip_uint32_t)de->comp_size); - } - else { - _zip_buffer_put_32(buffer, ZIP_UINT32_MAX); - } - if (de->uncomp_size < ZIP_UINT32_MAX) { - _zip_buffer_put_32(buffer, (zip_uint32_t)de->uncomp_size); - } - else { - _zip_buffer_put_32(buffer, ZIP_UINT32_MAX); - } - } - - _zip_buffer_put_16(buffer, _zip_string_length(de->filename)); - /* TODO: check for overflow */ - ef_total_size = (zip_uint32_t)_zip_ef_size(de->extra_fields, flags) + (zip_uint32_t)_zip_ef_size(ef, ZIP_EF_BOTH); - _zip_buffer_put_16(buffer, (zip_uint16_t)ef_total_size); - - if ((flags & ZIP_FL_LOCAL) == 0) { - _zip_buffer_put_16(buffer, _zip_string_length(de->comment)); - _zip_buffer_put_16(buffer, (zip_uint16_t)de->disk_number); - _zip_buffer_put_16(buffer, de->int_attrib); - _zip_buffer_put_32(buffer, de->ext_attrib); - if (de->offset < ZIP_UINT32_MAX) - _zip_buffer_put_32(buffer, (zip_uint32_t)de->offset); - else - _zip_buffer_put_32(buffer, ZIP_UINT32_MAX); - } - - if (!_zip_buffer_ok(buffer)) { - zip_error_set(&za->error, ZIP_ER_INTERNAL, 0); - _zip_buffer_free(buffer); - _zip_ef_free(ef); - return -1; - } - - if (_zip_write(za, buf, _zip_buffer_offset(buffer)) < 0) { - _zip_buffer_free(buffer); - _zip_ef_free(ef); - return -1; - } - - _zip_buffer_free(buffer); - - if (de->filename) { - if (_zip_string_write(za, de->filename) < 0) { - _zip_ef_free(ef); - return -1; - } - } - - if (ef) { - if (_zip_ef_write(za, ef, ZIP_EF_BOTH) < 0) { - _zip_ef_free(ef); - return -1; - } - } - _zip_ef_free(ef); - if (de->extra_fields) { - if (_zip_ef_write(za, de->extra_fields, flags) < 0) { - return -1; - } - } - - if ((flags & ZIP_FL_LOCAL) == 0) { - if (de->comment) { - if (_zip_string_write(za, de->comment) < 0) { - return -1; - } - } - } - - - return is_zip64; -} - - -static time_t -_zip_d2u_time(zip_uint16_t dtime, zip_uint16_t ddate) -{ - struct tm tm; - - memset(&tm, 0, sizeof(tm)); - - /* let mktime decide if DST is in effect */ - tm.tm_isdst = -1; - - tm.tm_year = ((ddate>>9)&127) + 1980 - 1900; - tm.tm_mon = ((ddate>>5)&15) - 1; - tm.tm_mday = ddate&31; - - tm.tm_hour = (dtime>>11)&31; - tm.tm_min = (dtime>>5)&63; - tm.tm_sec = (dtime<<1)&62; - - return mktime(&tm); -} - - -static zip_extra_field_t * -_zip_ef_utf8(zip_uint16_t id, zip_string_t *str, zip_error_t *error) -{ - const zip_uint8_t *raw; - zip_uint32_t len; - zip_buffer_t *buffer; - zip_extra_field_t *ef; - - if ((raw=_zip_string_get(str, &len, ZIP_FL_ENC_RAW, NULL)) == NULL) { - /* error already set */ - return NULL; - } - - if (len+5 > ZIP_UINT16_MAX) { - zip_error_set(error, ZIP_ER_INVAL, 0); /* TODO: better error code? */ - return NULL; - } - - if ((buffer = _zip_buffer_new(NULL, len+5)) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return NULL; - } - - _zip_buffer_put_8(buffer, 1); - _zip_buffer_put_32(buffer, _zip_string_crc32(str)); - _zip_buffer_put(buffer, raw, len); - - if (!_zip_buffer_ok(buffer)) { - zip_error_set(error, ZIP_ER_INTERNAL, 0); - _zip_buffer_free(buffer); - return NULL; - } - - ef = _zip_ef_new(id, (zip_uint16_t)(_zip_buffer_offset(buffer)), _zip_buffer_data(buffer), ZIP_EF_BOTH); - _zip_buffer_free(buffer); - - return ef; -} - - -zip_dirent_t * -_zip_get_dirent(zip_t *za, zip_uint64_t idx, zip_flags_t flags, zip_error_t *error) -{ - if (error == NULL) - error = &za->error; - - if (idx >= za->nentry) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return NULL; - } - - if ((flags & ZIP_FL_UNCHANGED) || za->entry[idx].changes == NULL) { - if (za->entry[idx].orig == NULL) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return NULL; - } - if (za->entry[idx].deleted && (flags & ZIP_FL_UNCHANGED) == 0) { - zip_error_set(error, ZIP_ER_DELETED, 0); - return NULL; - } - return za->entry[idx].orig; - } - else - return za->entry[idx].changes; -} - - - - -void -_zip_u2d_time(time_t intime, zip_uint16_t *dtime, zip_uint16_t *ddate) -{ - struct tm *tm; - - tm = localtime(&intime); - if (tm->tm_year < 80) { - tm->tm_year = 80; - } - - *ddate = (zip_uint16_t)(((tm->tm_year+1900-1980)<<9) + ((tm->tm_mon+1)<<5) + tm->tm_mday); - *dtime = (zip_uint16_t)(((tm->tm_hour)<<11) + ((tm->tm_min)<<5) + ((tm->tm_sec)>>1)); - - return; -} diff --git a/libzip-1.2.0/lib/zip_discard.c b/libzip-1.2.0/lib/zip_discard.c deleted file mode 100644 index ef891e386..000000000 --- a/libzip-1.2.0/lib/zip_discard.c +++ /dev/null @@ -1,79 +0,0 @@ -/* - zip_discard.c -- discard and free struct zip - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" - - -/* zip_discard: - frees the space allocated to a zipfile struct, and closes the - corresponding file. */ - -void -zip_discard(zip_t *za) -{ - zip_uint64_t i; - - if (za == NULL) - return; - - if (za->src) { - zip_source_close(za->src); - zip_source_free(za->src); - } - - free(za->default_password); - _zip_string_free(za->comment_orig); - _zip_string_free(za->comment_changes); - - _zip_hash_free(za->names); - - if (za->entry) { - for (i=0; inentry; i++) - _zip_entry_finalize(za->entry+i); - free(za->entry); - } - - for (i=0; inopen_source; i++) { - _zip_source_invalidate(za->open_source[i]); - } - free(za->open_source); - - zip_error_fini(&za->error); - - free(za); - - return; -} diff --git a/libzip-1.2.0/lib/zip_entry.c b/libzip-1.2.0/lib/zip_entry.c deleted file mode 100644 index 6f8900686..000000000 --- a/libzip-1.2.0/lib/zip_entry.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - zip_entry.c -- struct zip_entry helper functions - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - -void -_zip_entry_finalize(zip_entry_t *e) -{ - _zip_unchange_data(e); - _zip_dirent_free(e->orig); - _zip_dirent_free(e->changes); -} - - -void -_zip_entry_init(zip_entry_t *e) -{ - e->orig = NULL; - e->changes = NULL; - e->source = NULL; - e->deleted = 0; -} diff --git a/libzip-1.2.0/lib/zip_err_str.c b/libzip-1.2.0/lib/zip_err_str.c deleted file mode 100644 index 9c9adb559..000000000 --- a/libzip-1.2.0/lib/zip_err_str.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - This file was generated automatically by ./make_zip_err_str.sh - from ./zip.h; make changes there. - */ - -#include "zipint.h" - -const char * const _zip_err_str[] = { - "No error", - "Multi-disk zip archives not supported", - "Renaming temporary file failed", - "Closing zip archive failed", - "Seek error", - "Read error", - "Write error", - "CRC error", - "Containing zip archive was closed", - "No such file", - "File already exists", - "Can't open file", - "Failure to create temporary file", - "Zlib error", - "Malloc failure", - "Entry has been changed", - "Compression method not supported", - "Premature end of file", - "Invalid argument", - "Not a zip archive", - "Internal error", - "Zip archive inconsistent", - "Can't remove file", - "Entry has been deleted", - "Encryption method not supported", - "Read-only archive", - "No password provided", - "Wrong password provided", - "Operation not supported", - "Resource still in use", - "Tell error", -}; - -const int _zip_nerr_str = sizeof(_zip_err_str)/sizeof(_zip_err_str[0]); - -#define N ZIP_ET_NONE -#define S ZIP_ET_SYS -#define Z ZIP_ET_ZLIB - -const int _zip_err_type[] = { - N, - N, - S, - S, - S, - S, - S, - N, - N, - N, - N, - S, - S, - Z, - N, - N, - N, - N, - N, - N, - N, - N, - S, - N, - N, - N, - N, - N, - N, - N, - S, -}; diff --git a/libzip-1.2.0/lib/zip_error.c b/libzip-1.2.0/lib/zip_error.c deleted file mode 100644 index 5f4e07dc2..000000000 --- a/libzip-1.2.0/lib/zip_error.c +++ /dev/null @@ -1,155 +0,0 @@ -/* - zip_error.c -- zip_error_t helper functions - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include - -#include "zipint.h" - - -ZIP_EXTERN int -zip_error_code_system(const zip_error_t *error) { - return error->sys_err; -} - - -ZIP_EXTERN int -zip_error_code_zip(const zip_error_t *error) { - return error->zip_err; -} - - -ZIP_EXTERN void -zip_error_fini(zip_error_t *err) -{ - free(err->str); - err->str = NULL; -} - - -ZIP_EXTERN void -zip_error_init(zip_error_t *err) -{ - err->zip_err = ZIP_ER_OK; - err->sys_err = 0; - err->str = NULL; -} - -ZIP_EXTERN void -zip_error_init_with_code(zip_error_t *error, int ze) -{ - zip_error_init(error); - error->zip_err = ze; - switch (zip_error_system_type(error)) { - case ZIP_ET_SYS: - error->sys_err = errno; - break; - - default: - error->sys_err = 0; - break; - } -} - - -ZIP_EXTERN int -zip_error_system_type(const zip_error_t *error) { - if (error->zip_err < 0 || error->zip_err >= _zip_nerr_str) - return ZIP_ET_NONE; - - return _zip_err_type[error->zip_err]; -} - - -void -_zip_error_clear(zip_error_t *err) -{ - if (err == NULL) - return; - - err->zip_err = ZIP_ER_OK; - err->sys_err = 0; -} - - -void -_zip_error_copy(zip_error_t *dst, const zip_error_t *src) -{ - dst->zip_err = src->zip_err; - dst->sys_err = src->sys_err; -} - - -void -_zip_error_get(const zip_error_t *err, int *zep, int *sep) -{ - if (zep) - *zep = err->zip_err; - if (sep) { - if (zip_error_system_type(err) != ZIP_ET_NONE) - *sep = err->sys_err; - else - *sep = 0; - } -} - - -void -zip_error_set(zip_error_t *err, int ze, int se) -{ - if (err) { - err->zip_err = ze; - err->sys_err = se; - } -} - - -void -_zip_error_set_from_source(zip_error_t *err, zip_source_t *src) -{ - _zip_error_copy(err, zip_source_error(src)); -} - - -zip_int64_t -zip_error_to_data(const zip_error_t *error, void *data, zip_uint64_t length) -{ - int *e = (int *)data; - - if (length < sizeof(int)*2) { - return -1; - } - - e[0] = zip_error_code_zip(error); - e[1] = zip_error_code_system(error); - return sizeof(int)*2; -} diff --git a/libzip-1.2.0/lib/zip_error_clear.c b/libzip-1.2.0/lib/zip_error_clear.c deleted file mode 100644 index ec45e688e..000000000 --- a/libzip-1.2.0/lib/zip_error_clear.c +++ /dev/null @@ -1,45 +0,0 @@ -/* - zip_error_clear.c -- clear zip error - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN void -zip_error_clear(zip_t *za) -{ - if (za == NULL) - return; - - _zip_error_clear(&za->error); -} diff --git a/libzip-1.2.0/lib/zip_error_get.c b/libzip-1.2.0/lib/zip_error_get.c deleted file mode 100644 index c22201899..000000000 --- a/libzip-1.2.0/lib/zip_error_get.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - zip_error_get.c -- get zip error - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#define _ZIP_COMPILING_DEPRECATED -#include "zipint.h" - - -ZIP_EXTERN void -zip_error_get(zip_t *za, int *zep, int *sep) -{ - _zip_error_get(&za->error, zep, sep); -} - - -ZIP_EXTERN zip_error_t * -zip_get_error(zip_t *za) -{ - return &za->error; -} - - -ZIP_EXTERN zip_error_t * -zip_file_get_error(zip_file_t *f) -{ - return &f->error; -} diff --git a/libzip-1.2.0/lib/zip_error_get_sys_type.c b/libzip-1.2.0/lib/zip_error_get_sys_type.c deleted file mode 100644 index 7e27bbf33..000000000 --- a/libzip-1.2.0/lib/zip_error_get_sys_type.c +++ /dev/null @@ -1,45 +0,0 @@ -/* - zip_error_get_sys_type.c -- return type of system error code - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#define _ZIP_COMPILING_DEPRECATED -#include "zipint.h" - - -ZIP_EXTERN int -zip_error_get_sys_type(int ze) -{ - if (ze < 0 || ze >= _zip_nerr_str) - return 0; - - return _zip_err_type[ze]; -} diff --git a/libzip-1.2.0/lib/zip_error_strerror.c b/libzip-1.2.0/lib/zip_error_strerror.c deleted file mode 100644 index bdc1e44c5..000000000 --- a/libzip-1.2.0/lib/zip_error_strerror.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - zip_error_sterror.c -- get string representation of struct zip_error - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include -#include - -#include "zipint.h" - - -ZIP_EXTERN const char * -zip_error_strerror(zip_error_t *err) -{ - const char *zs, *ss; - char buf[128], *s; - - zip_error_fini(err); - - if (err->zip_err < 0 || err->zip_err >= _zip_nerr_str) { - sprintf(buf, "Unknown error %d", err->zip_err); - zs = NULL; - ss = buf; - } - else { - zs = _zip_err_str[err->zip_err]; - - switch (_zip_err_type[err->zip_err]) { - case ZIP_ET_SYS: - ss = strerror(err->sys_err); - break; - - case ZIP_ET_ZLIB: - ss = zError(err->sys_err); - break; - - default: - ss = NULL; - } - } - - if (ss == NULL) - return zs; - else { - if ((s=(char *)malloc(strlen(ss) - + (zs ? strlen(zs)+2 : 0) + 1)) == NULL) - return _zip_err_str[ZIP_ER_MEMORY]; - - sprintf(s, "%s%s%s", - (zs ? zs : ""), - (zs ? ": " : ""), - ss); - err->str = s; - - return s; - } -} diff --git a/libzip-1.2.0/lib/zip_error_to_str.c b/libzip-1.2.0/lib/zip_error_to_str.c deleted file mode 100644 index 019feff86..000000000 --- a/libzip-1.2.0/lib/zip_error_to_str.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - zip_error_to_str.c -- get string representation of zip error code - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include -#include - -#define _ZIP_COMPILING_DEPRECATED -#include "zipint.h" - - -ZIP_EXTERN int -zip_error_to_str(char *buf, zip_uint64_t len, int ze, int se) -{ - const char *zs, *ss; - - if (ze < 0 || ze >= _zip_nerr_str) - return snprintf(buf, len, "Unknown error %d", ze); - - zs = _zip_err_str[ze]; - - switch (_zip_err_type[ze]) { - case ZIP_ET_SYS: - ss = strerror(se); - break; - - case ZIP_ET_ZLIB: - ss = zError(se); - break; - - default: - ss = NULL; - } - - return snprintf(buf, len, "%s%s%s", - zs, (ss ? ": " : ""), (ss ? ss : "")); -} diff --git a/libzip-1.2.0/lib/zip_extra_field.c b/libzip-1.2.0/lib/zip_extra_field.c deleted file mode 100644 index a01ff790c..000000000 --- a/libzip-1.2.0/lib/zip_extra_field.c +++ /dev/null @@ -1,438 +0,0 @@ -/* - zip_extra_field.c -- manipulate extra fields - Copyright (C) 2012-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include -#include - -#include "zipint.h" - - -zip_extra_field_t * -_zip_ef_clone(const zip_extra_field_t *ef, zip_error_t *error) -{ - zip_extra_field_t *head, *prev, *def; - - head = prev = NULL; - - while (ef) { - if ((def=_zip_ef_new(ef->id, ef->size, ef->data, ef->flags)) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - _zip_ef_free(head); - return NULL; - } - - if (head == NULL) - head = def; - if (prev) - prev->next = def; - prev = def; - - ef = ef->next; - } - - return head; -} - - -zip_extra_field_t * -_zip_ef_delete_by_id(zip_extra_field_t *ef, zip_uint16_t id, zip_uint16_t id_idx, zip_flags_t flags) -{ - zip_extra_field_t *head, *prev; - int i; - - i = 0; - head = ef; - prev = NULL; - for (; ef; ef=(prev ? prev->next : head)) { - if ((ef->flags & flags & ZIP_EF_BOTH) && ((ef->id == id) || (id == ZIP_EXTRA_FIELD_ALL))) { - if (id_idx == ZIP_EXTRA_FIELD_ALL || i == id_idx) { - ef->flags &= ~(flags & ZIP_EF_BOTH); - if ((ef->flags & ZIP_EF_BOTH) == 0) { - if (prev) - prev->next = ef->next; - else - head = ef->next; - ef->next = NULL; - _zip_ef_free(ef); - - if (id_idx == ZIP_EXTRA_FIELD_ALL) - continue; - } - } - - i++; - if (i > id_idx) - break; - } - prev = ef; - } - - return head; -} - - - -void -_zip_ef_free(zip_extra_field_t *ef) -{ - zip_extra_field_t *ef2; - - while (ef) { - ef2 = ef->next; - free(ef->data); - free(ef); - ef = ef2; - } -} - - -const zip_uint8_t * -_zip_ef_get_by_id(const zip_extra_field_t *ef, zip_uint16_t *lenp, zip_uint16_t id, zip_uint16_t id_idx, zip_flags_t flags, zip_error_t *error) -{ - static const zip_uint8_t empty[1] = { '\0' }; - - int i; - - i = 0; - for (; ef; ef=ef->next) { - if (ef->id == id && (ef->flags & flags & ZIP_EF_BOTH)) { - if (i < id_idx) { - i++; - continue; - } - - if (lenp) - *lenp = ef->size; - if (ef->size > 0) - return ef->data; - else - return empty; - } - } - - zip_error_set(error, ZIP_ER_NOENT, 0); - return NULL; -} - - -zip_extra_field_t * -_zip_ef_merge(zip_extra_field_t *to, zip_extra_field_t *from) -{ - zip_extra_field_t *ef2, *tt, *tail; - int duplicate; - - if (to == NULL) - return from; - - for (tail=to; tail->next; tail=tail->next) - ; - - for (; from; from=ef2) { - ef2 = from->next; - - duplicate = 0; - for (tt=to; tt; tt=tt->next) { - if (tt->id == from->id && tt->size == from->size && memcmp(tt->data, from->data, tt->size) == 0) { - tt->flags |= (from->flags & ZIP_EF_BOTH); - duplicate = 1; - break; - } - } - - from->next = NULL; - if (duplicate) - _zip_ef_free(from); - else - tail = tail->next = from; - } - - return to; -} - - -zip_extra_field_t * -_zip_ef_new(zip_uint16_t id, zip_uint16_t size, const zip_uint8_t *data, zip_flags_t flags) -{ - zip_extra_field_t *ef; - - if ((ef=(zip_extra_field_t *)malloc(sizeof(*ef))) == NULL) - return NULL; - - ef->next = NULL; - ef->flags = flags; - ef->id = id; - ef->size = size; - if (size > 0) { - if ((ef->data=(zip_uint8_t *)_zip_memdup(data, size, NULL)) == NULL) { - free(ef); - return NULL; - } - } - else - ef->data = NULL; - - return ef; -} - - -bool -_zip_ef_parse(const zip_uint8_t *data, zip_uint16_t len, zip_flags_t flags, zip_extra_field_t **ef_head_p, zip_error_t *error) -{ - zip_buffer_t *buffer; - zip_extra_field_t *ef, *ef2, *ef_head; - - if ((buffer = _zip_buffer_new((zip_uint8_t *)data, len)) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return false; - } - - ef_head = ef = NULL; - - while (_zip_buffer_ok(buffer) && _zip_buffer_left(buffer) >= 4) { - zip_uint16_t fid, flen; - zip_uint8_t *ef_data; - - fid = _zip_buffer_get_16(buffer); - flen = _zip_buffer_get_16(buffer); - ef_data = _zip_buffer_get(buffer, flen); - - if (ef_data == NULL) { - zip_error_set(error, ZIP_ER_INCONS, 0); - _zip_buffer_free(buffer); - _zip_ef_free(ef_head); - return false; - } - - if ((ef2=_zip_ef_new(fid, flen, ef_data, flags)) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - _zip_buffer_free(buffer); - _zip_ef_free(ef_head); - return false; - } - - if (ef_head) { - ef->next = ef2; - ef = ef2; - } - else - ef_head = ef = ef2; - } - - if (!_zip_buffer_eof(buffer)) { - /* Android APK files align stored file data with padding in extra fields; ignore. */ - /* see https://android.googlesource.com/platform/build/+/master/tools/zipalign/ZipAlign.cpp */ - size_t glen = _zip_buffer_left(buffer); - zip_uint8_t *garbage; - garbage = _zip_buffer_get(buffer, glen); - if (glen >= 4 || garbage == NULL || memcmp(garbage, "\0\0\0", glen) != 0) { - zip_error_set(error, ZIP_ER_INCONS, 0); - _zip_buffer_free(buffer); - _zip_ef_free(ef_head); - return false; - } - } - - _zip_buffer_free(buffer); - - if (ef_head_p) { - *ef_head_p = ef_head; - } - else { - _zip_ef_free(ef_head); - } - - return true; -} - - -zip_extra_field_t * -_zip_ef_remove_internal(zip_extra_field_t *ef) -{ - zip_extra_field_t *ef_head; - zip_extra_field_t *prev, *next; - - ef_head = ef; - prev = NULL; - - while (ef) { - if (ZIP_EF_IS_INTERNAL(ef->id)) { - next = ef->next; - if (ef_head == ef) - ef_head = next; - ef->next = NULL; - _zip_ef_free(ef); - if (prev) - prev->next = next; - ef = next; - } - else { - prev = ef; - ef = ef->next; - } - } - - return ef_head; -} - - -zip_uint16_t -_zip_ef_size(const zip_extra_field_t *ef, zip_flags_t flags) -{ - zip_uint16_t size; - - size = 0; - for (; ef; ef=ef->next) { - if (ef->flags & flags & ZIP_EF_BOTH) - size = (zip_uint16_t)(size+4+ef->size); - } - - return size; -} - - -int -_zip_ef_write(zip_t *za, const zip_extra_field_t *ef, zip_flags_t flags) -{ - zip_uint8_t b[4]; - zip_buffer_t *buffer = _zip_buffer_new(b, sizeof(b)); - - if (buffer == NULL) { - return -1; - } - - for (; ef; ef=ef->next) { - if (ef->flags & flags & ZIP_EF_BOTH) { - _zip_buffer_set_offset(buffer, 0); - _zip_buffer_put_16(buffer, ef->id); - _zip_buffer_put_16(buffer, ef->size); - if (!_zip_buffer_ok(buffer)) { - zip_error_set(&za->error, ZIP_ER_INTERNAL, 0); - _zip_buffer_free(buffer); - return -1; - } - if (_zip_write(za, b, 4) < 0) { - _zip_buffer_free(buffer); - return -1; - } - if (ef->size > 0) { - if (_zip_write(za, ef->data, ef->size) < 0) { - _zip_buffer_free(buffer); - return -1; - } - } - } - } - - _zip_buffer_free(buffer); - return 0; -} - - -int -_zip_read_local_ef(zip_t *za, zip_uint64_t idx) -{ - zip_entry_t *e; - unsigned char b[4]; - zip_buffer_t *buffer; - zip_uint16_t fname_len, ef_len; - - if (idx >= za->nentry) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - e = za->entry+idx; - - if (e->orig == NULL || e->orig->local_extra_fields_read) - return 0; - - if (e->orig->offset + 26 > ZIP_INT64_MAX) { - zip_error_set(&za->error, ZIP_ER_SEEK, EFBIG); - return -1; - } - - if (zip_source_seek(za->src, (zip_int64_t)(e->orig->offset + 26), SEEK_SET) < 0) { - _zip_error_set_from_source(&za->error, za->src); - return -1; - } - - if ((buffer = _zip_buffer_new_from_source(za->src, sizeof(b), b, &za->error)) == NULL) { - return -1; - } - - fname_len = _zip_buffer_get_16(buffer); - ef_len = _zip_buffer_get_16(buffer); - - if (!_zip_buffer_eof(buffer)) { - _zip_buffer_free(buffer); - zip_error_set(&za->error, ZIP_ER_INTERNAL, 0); - return -1; - } - - _zip_buffer_free(buffer); - - if (ef_len > 0) { - zip_extra_field_t *ef; - zip_uint8_t *ef_raw; - - if (zip_source_seek(za->src, fname_len, SEEK_CUR) < 0) { - zip_error_set(&za->error, ZIP_ER_SEEK, errno); - return -1; - } - - ef_raw = _zip_read_data(NULL, za->src, ef_len, 0, &za->error); - - if (ef_raw == NULL) - return -1; - - if (!_zip_ef_parse(ef_raw, ef_len, ZIP_EF_LOCAL, &ef, &za->error)) { - free(ef_raw); - return -1; - } - free(ef_raw); - - if (ef) { - ef = _zip_ef_remove_internal(ef); - e->orig->extra_fields = _zip_ef_merge(e->orig->extra_fields, ef); - } - } - - e->orig->local_extra_fields_read = 1; - - if (e->changes && e->changes->local_extra_fields_read == 0) { - e->changes->extra_fields = e->orig->extra_fields; - e->changes->local_extra_fields_read = 1; - } - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_extra_field_api.c b/libzip-1.2.0/lib/zip_extra_field_api.c deleted file mode 100644 index ed93944ac..000000000 --- a/libzip-1.2.0/lib/zip_extra_field_api.c +++ /dev/null @@ -1,366 +0,0 @@ -/* - zip_extra_field_api.c -- public extra fields API functions - Copyright (C) 2012-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN int -zip_file_extra_field_delete(zip_t *za, zip_uint64_t idx, zip_uint16_t ef_idx, zip_flags_t flags) -{ - zip_dirent_t *de; - - if ((flags & ZIP_EF_BOTH) == 0) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (((flags & ZIP_EF_BOTH) == ZIP_EF_BOTH) && (ef_idx != ZIP_EXTRA_FIELD_ALL)) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (_zip_get_dirent(za, idx, 0, NULL) == NULL) - return -1; - - if (ZIP_IS_RDONLY(za)) { - zip_error_set(&za->error, ZIP_ER_RDONLY, 0); - return -1; - } - - if (_zip_file_extra_field_prepare_for_change(za, idx) < 0) - return -1; - - de = za->entry[idx].changes; - - de->extra_fields = _zip_ef_delete_by_id(de->extra_fields, ZIP_EXTRA_FIELD_ALL, ef_idx, flags); - return 0; -} - - -ZIP_EXTERN int -zip_file_extra_field_delete_by_id(zip_t *za, zip_uint64_t idx, zip_uint16_t ef_id, zip_uint16_t ef_idx, zip_flags_t flags) -{ - zip_dirent_t *de; - - if ((flags & ZIP_EF_BOTH) == 0) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (((flags & ZIP_EF_BOTH) == ZIP_EF_BOTH) && (ef_idx != ZIP_EXTRA_FIELD_ALL)) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (_zip_get_dirent(za, idx, 0, NULL) == NULL) - return -1; - - if (ZIP_IS_RDONLY(za)) { - zip_error_set(&za->error, ZIP_ER_RDONLY, 0); - return -1; - } - - if (_zip_file_extra_field_prepare_for_change(za, idx) < 0) - return -1; - - de = za->entry[idx].changes; - - de->extra_fields = _zip_ef_delete_by_id(de->extra_fields, ef_id, ef_idx, flags); - return 0; -} - - -ZIP_EXTERN const zip_uint8_t * -zip_file_extra_field_get(zip_t *za, zip_uint64_t idx, zip_uint16_t ef_idx, zip_uint16_t *idp, zip_uint16_t *lenp, zip_flags_t flags) -{ - static const zip_uint8_t empty[1] = { '\0' }; - - zip_dirent_t *de; - zip_extra_field_t *ef; - int i; - - if ((flags & ZIP_EF_BOTH) == 0) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return NULL; - } - - if ((de=_zip_get_dirent(za, idx, flags, &za->error)) == NULL) - return NULL; - - if (flags & ZIP_FL_LOCAL) - if (_zip_read_local_ef(za, idx) < 0) - return NULL; - - i = 0; - for (ef=de->extra_fields; ef; ef=ef->next) { - if (ef->flags & flags & ZIP_EF_BOTH) { - if (i < ef_idx) { - i++; - continue; - } - - if (idp) - *idp = ef->id; - if (lenp) - *lenp = ef->size; - if (ef->size > 0) - return ef->data; - else - return empty; - } - } - - zip_error_set(&za->error, ZIP_ER_NOENT, 0); - return NULL; - -} - - -ZIP_EXTERN const zip_uint8_t * -zip_file_extra_field_get_by_id(zip_t *za, zip_uint64_t idx, zip_uint16_t ef_id, zip_uint16_t ef_idx, zip_uint16_t *lenp, zip_flags_t flags) -{ - zip_dirent_t *de; - - if ((flags & ZIP_EF_BOTH) == 0) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return NULL; - } - - if ((de=_zip_get_dirent(za, idx, flags, &za->error)) == NULL) - return NULL; - - if (flags & ZIP_FL_LOCAL) - if (_zip_read_local_ef(za, idx) < 0) - return NULL; - - return _zip_ef_get_by_id(de->extra_fields, lenp, ef_id, ef_idx, flags, &za->error); -} - - -ZIP_EXTERN zip_int16_t -zip_file_extra_fields_count(zip_t *za, zip_uint64_t idx, zip_flags_t flags) -{ - zip_dirent_t *de; - zip_extra_field_t *ef; - zip_uint16_t n; - - if ((flags & ZIP_EF_BOTH) == 0) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - if ((de=_zip_get_dirent(za, idx, flags, &za->error)) == NULL) - return -1; - - if (flags & ZIP_FL_LOCAL) - if (_zip_read_local_ef(za, idx) < 0) - return -1; - - n = 0; - for (ef=de->extra_fields; ef; ef=ef->next) - if (ef->flags & flags & ZIP_EF_BOTH) - n++; - - return (zip_int16_t)n; -} - - -ZIP_EXTERN zip_int16_t -zip_file_extra_fields_count_by_id(zip_t *za, zip_uint64_t idx, zip_uint16_t ef_id, zip_flags_t flags) -{ - zip_dirent_t *de; - zip_extra_field_t *ef; - zip_uint16_t n; - - if ((flags & ZIP_EF_BOTH) == 0) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - if ((de=_zip_get_dirent(za, idx, flags, &za->error)) == NULL) - return -1; - - if (flags & ZIP_FL_LOCAL) - if (_zip_read_local_ef(za, idx) < 0) - return -1; - - n = 0; - for (ef=de->extra_fields; ef; ef=ef->next) - if (ef->id == ef_id && (ef->flags & flags & ZIP_EF_BOTH)) - n++; - - return (zip_int16_t)n; -} - - -ZIP_EXTERN int -zip_file_extra_field_set(zip_t *za, zip_uint64_t idx, zip_uint16_t ef_id, zip_uint16_t ef_idx, const zip_uint8_t *data, zip_uint16_t len, zip_flags_t flags) -{ - zip_dirent_t *de; - zip_uint16_t ls, cs; - zip_extra_field_t *ef, *ef_prev, *ef_new; - int i, found, new_len; - - if ((flags & ZIP_EF_BOTH) == 0) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (_zip_get_dirent(za, idx, 0, NULL) == NULL) - return -1; - - if (ZIP_IS_RDONLY(za)) { - zip_error_set(&za->error, ZIP_ER_RDONLY, 0); - return -1; - } - - if (ZIP_EF_IS_INTERNAL(ef_id)) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (_zip_file_extra_field_prepare_for_change(za, idx) < 0) - return -1; - - de = za->entry[idx].changes; - - ef = de->extra_fields; - ef_prev = NULL; - i = 0; - found = 0; - - for (; ef; ef=ef->next) { - if (ef->id == ef_id && (ef->flags & flags & ZIP_EF_BOTH)) { - if (i == ef_idx) { - found = 1; - break; - } - i++; - } - ef_prev = ef; - } - - if (i < ef_idx && ef_idx != ZIP_EXTRA_FIELD_NEW) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (flags & ZIP_EF_LOCAL) - ls = _zip_ef_size(de->extra_fields, ZIP_EF_LOCAL); - else - ls = 0; - if (flags & ZIP_EF_CENTRAL) - cs = _zip_ef_size(de->extra_fields, ZIP_EF_CENTRAL); - else - cs = 0; - - new_len = ls > cs ? ls : cs; - if (found) - new_len -= ef->size + 4; - new_len += len + 4; - - if (new_len > ZIP_UINT16_MAX) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - if ((ef_new=_zip_ef_new(ef_id, len, data, flags)) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return -1; - } - - if (found) { - if ((ef->flags & ZIP_EF_BOTH) == (flags & ZIP_EF_BOTH)) { - ef_new->next = ef->next; - ef->next = NULL; - _zip_ef_free(ef); - if (ef_prev) - ef_prev->next = ef_new; - else - de->extra_fields = ef_new; - } - else { - ef->flags &= ~(flags & ZIP_EF_BOTH); - ef_new->next = ef->next; - ef->next = ef_new; - } - } - else if (ef_prev) { - ef_new->next = ef_prev->next; - ef_prev->next = ef_new; - } - else - de->extra_fields = ef_new; - - return 0; -} - - - -int -_zip_file_extra_field_prepare_for_change(zip_t *za, zip_uint64_t idx) -{ - zip_entry_t *e; - - if (idx >= za->nentry) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - e = za->entry+idx; - - if (e->changes && (e->changes->changed & ZIP_DIRENT_EXTRA_FIELD)) - return 0; - - if (e->orig) { - if (_zip_read_local_ef(za, idx) < 0) - return -1; - } - - if (e->changes == NULL) { - if ((e->changes=_zip_dirent_clone(e->orig)) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return -1; - } - } - - if (e->orig && e->orig->extra_fields) { - if ((e->changes->extra_fields=_zip_ef_clone(e->orig->extra_fields, &za->error)) == NULL) - return -1; - } - e->changes->changed |= ZIP_DIRENT_EXTRA_FIELD; - - return 0; -} - diff --git a/libzip-1.2.0/lib/zip_fclose.c b/libzip-1.2.0/lib/zip_fclose.c deleted file mode 100644 index 25a201b18..000000000 --- a/libzip-1.2.0/lib/zip_fclose.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - zip_fclose.c -- close file in zip archive - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" - - -ZIP_EXTERN int -zip_fclose(zip_file_t *zf) -{ - int ret; - - if (zf->src) - zip_source_free(zf->src); - - ret = 0; - if (zf->error.zip_err) - ret = zf->error.zip_err; - - zip_error_fini(&zf->error); - free(zf); - return ret; -} diff --git a/libzip-1.2.0/lib/zip_fdopen.c b/libzip-1.2.0/lib/zip_fdopen.c deleted file mode 100644 index a058f811a..000000000 --- a/libzip-1.2.0/lib/zip_fdopen.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - zip_fdopen.c -- open read-only archive from file descriptor - Copyright (C) 2009-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" -#ifdef HAVE_UNISTD_H -#include -#endif - - -ZIP_EXTERN zip_t * -zip_fdopen(int fd_orig, int _flags, int *zep) -{ - int fd; - FILE *fp; - zip_t *za; - zip_source_t *src; - struct zip_error error; - - if (_flags < 0 || (_flags & ZIP_TRUNCATE)) { - _zip_set_open_error(zep, NULL, ZIP_ER_INVAL); - return NULL; - } - - /* We dup() here to avoid messing with the passed in fd. - We could not restore it to the original state in case of error. */ - - if ((fd=dup(fd_orig)) < 0) { - _zip_set_open_error(zep, NULL, ZIP_ER_OPEN); - return NULL; - } - - if ((fp=fdopen(fd, "rb")) == NULL) { - close(fd); - _zip_set_open_error(zep, NULL, ZIP_ER_OPEN); - return NULL; - } - - zip_error_init(&error); - if ((src = zip_source_filep_create(fp, 0, -1, &error)) == NULL) { - _zip_set_open_error(zep, &error, 0); - zip_error_fini(&error); - return NULL; - } - - if ((za = zip_open_from_source(src, _flags, &error)) == NULL) { - _zip_set_open_error(zep, &error, 0); - zip_error_fini(&error); - return NULL; - } - - zip_error_fini(&error); - close(fd_orig); - return za; -} diff --git a/libzip-1.2.0/lib/zip_file_add.c b/libzip-1.2.0/lib/zip_file_add.c deleted file mode 100644 index 9944c0f12..000000000 --- a/libzip-1.2.0/lib/zip_file_add.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - zip_file_add.c -- add file via callback function - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - -/* - NOTE: Return type is signed so we can return -1 on error. - The index can not be larger than ZIP_INT64_MAX since the size - of the central directory cannot be larger than - ZIP_UINT64_MAX, and each entry is larger than 2 bytes. -*/ - -ZIP_EXTERN zip_int64_t -zip_file_add(zip_t *za, const char *name, zip_source_t *source, zip_flags_t flags) -{ - if (name == NULL || source == NULL) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - return _zip_file_replace(za, ZIP_UINT64_MAX, name, source, flags); -} diff --git a/libzip-1.2.0/lib/zip_file_error_clear.c b/libzip-1.2.0/lib/zip_file_error_clear.c deleted file mode 100644 index be454982a..000000000 --- a/libzip-1.2.0/lib/zip_file_error_clear.c +++ /dev/null @@ -1,45 +0,0 @@ -/* - zip_file_error_clear.c -- clear zip file error - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN void -zip_file_error_clear(zip_file_t *zf) -{ - if (zf == NULL) - return; - - _zip_error_clear(&zf->error); -} diff --git a/libzip-1.2.0/lib/zip_file_error_get.c b/libzip-1.2.0/lib/zip_file_error_get.c deleted file mode 100644 index be764fd52..000000000 --- a/libzip-1.2.0/lib/zip_file_error_get.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - zip_file_error_get.c -- get zip file error - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#define _ZIP_COMPILING_DEPRECATED -#include "zipint.h" - - -ZIP_EXTERN void -zip_file_error_get(zip_file_t *zf, int *zep, int *sep) -{ - _zip_error_get(&zf->error, zep, sep); -} diff --git a/libzip-1.2.0/lib/zip_file_get_comment.c b/libzip-1.2.0/lib/zip_file_get_comment.c deleted file mode 100644 index 55e7dc289..000000000 --- a/libzip-1.2.0/lib/zip_file_get_comment.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - zip_file_get_comment.c -- get file comment - Copyright (C) 2006-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - -/* lenp is 32 bit because converted comment can be longer than ZIP_UINT16_MAX */ - -ZIP_EXTERN const char * -zip_file_get_comment(zip_t *za, zip_uint64_t idx, zip_uint32_t *lenp, zip_flags_t flags) -{ - zip_dirent_t *de; - zip_uint32_t len; - const zip_uint8_t *str; - - if ((de=_zip_get_dirent(za, idx, flags, NULL)) == NULL) - return NULL; - - if ((str=_zip_string_get(de->comment, &len, flags, &za->error)) == NULL) - return NULL; - - if (lenp) - *lenp = len; - - return (const char *)str; -} diff --git a/libzip-1.2.0/lib/zip_file_get_external_attributes.c b/libzip-1.2.0/lib/zip_file_get_external_attributes.c deleted file mode 100644 index b6526cf23..000000000 --- a/libzip-1.2.0/lib/zip_file_get_external_attributes.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - zip_file_get_external_attributes.c -- get opsys/external attributes - Copyright (C) 2013-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include "zipint.h" - -int -zip_file_get_external_attributes(zip_t *za, zip_uint64_t idx, zip_flags_t flags, zip_uint8_t *opsys, zip_uint32_t *attributes) -{ - zip_dirent_t *de; - - if ((de=_zip_get_dirent(za, idx, flags, NULL)) == NULL) - return -1; - - if (opsys) - *opsys = (zip_uint8_t)((de->version_madeby >> 8) & 0xff); - - if (attributes) - *attributes = de->ext_attrib; - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_file_get_offset.c b/libzip-1.2.0/lib/zip_file_get_offset.c deleted file mode 100644 index 826650e5c..000000000 --- a/libzip-1.2.0/lib/zip_file_get_offset.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - zip_file_get_offset.c -- get offset of file data in archive. - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include -#include -#include -#include - -#include "zipint.h" - - -/* _zip_file_get_offset(za, ze): - Returns the offset of the file data for entry ze. - - On error, fills in za->error and returns 0. -*/ - -zip_uint64_t -_zip_file_get_offset(const zip_t *za, zip_uint64_t idx, zip_error_t *error) -{ - zip_uint64_t offset; - zip_int32_t size; - - offset = za->entry[idx].orig->offset; - - if (zip_source_seek(za->src, (zip_int64_t)offset, SEEK_SET) < 0) { - _zip_error_set_from_source(error, za->src); - return 0; - } - - /* TODO: cache? */ - if ((size=_zip_dirent_size(za->src, ZIP_EF_LOCAL, error)) < 0) - return 0; - - if (offset+(zip_uint32_t)size > ZIP_INT64_MAX) { - zip_error_set(error, ZIP_ER_SEEK, EFBIG); - return 0; - } - - return offset + (zip_uint32_t)size; -} diff --git a/libzip-1.2.0/lib/zip_file_rename.c b/libzip-1.2.0/lib/zip_file_rename.c deleted file mode 100644 index 4400938ab..000000000 --- a/libzip-1.2.0/lib/zip_file_rename.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - zip_file_rename.c -- rename file in zip archive - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" - - -ZIP_EXTERN int -zip_file_rename(zip_t *za, zip_uint64_t idx, const char *name, zip_flags_t flags) -{ - const char *old_name; - int old_is_dir, new_is_dir; - - if (idx >= za->nentry || (name != NULL && strlen(name) > ZIP_UINT16_MAX)) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (ZIP_IS_RDONLY(za)) { - zip_error_set(&za->error, ZIP_ER_RDONLY, 0); - return -1; - } - - if ((old_name=zip_get_name(za, idx, 0)) == NULL) - return -1; - - new_is_dir = (name != NULL && name[strlen(name)-1] == '/'); - old_is_dir = (old_name[strlen(old_name)-1] == '/'); - - if (new_is_dir != old_is_dir) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - return _zip_set_name(za, idx, name, flags); -} diff --git a/libzip-1.2.0/lib/zip_file_replace.c b/libzip-1.2.0/lib/zip_file_replace.c deleted file mode 100644 index e430efae9..000000000 --- a/libzip-1.2.0/lib/zip_file_replace.c +++ /dev/null @@ -1,108 +0,0 @@ -/* - zip_file_replace.c -- replace file via callback function - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN int -zip_file_replace(zip_t *za, zip_uint64_t idx, zip_source_t *source, zip_flags_t flags) -{ - if (idx >= za->nentry || source == NULL) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (_zip_file_replace(za, idx, NULL, source, flags) == -1) - return -1; - - return 0; -} - - - -/* NOTE: Signed due to -1 on error. See zip_add.c for more details. */ - -zip_int64_t -_zip_file_replace(zip_t *za, zip_uint64_t idx, const char *name, zip_source_t *source, zip_flags_t flags) -{ - zip_uint64_t za_nentry_prev; - - if (ZIP_IS_RDONLY(za)) { - zip_error_set(&za->error, ZIP_ER_RDONLY, 0); - return -1; - } - - za_nentry_prev = za->nentry; - if (idx == ZIP_UINT64_MAX) { - zip_int64_t i = -1; - - if (flags & ZIP_FL_OVERWRITE) - i = _zip_name_locate(za, name, flags, NULL); - - if (i == -1) { - /* create and use new entry, used by zip_add */ - if ((i=_zip_add_entry(za)) < 0) - return -1; - } - idx = (zip_uint64_t)i; - } - - if (name && _zip_set_name(za, idx, name, flags) != 0) { - if (za->nentry != za_nentry_prev) { - _zip_entry_finalize(za->entry+idx); - za->nentry = za_nentry_prev; - } - return -1; - } - - /* does not change any name related data, so we can do it here; - * needed for a double add of the same file name */ - _zip_unchange_data(za->entry+idx); - - if (za->entry[idx].orig != NULL && (za->entry[idx].changes == NULL || (za->entry[idx].changes->changed & ZIP_DIRENT_COMP_METHOD) == 0)) { - if (za->entry[idx].changes == NULL) { - if ((za->entry[idx].changes=_zip_dirent_clone(za->entry[idx].orig)) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return -1; - } - } - - za->entry[idx].changes->comp_method = ZIP_CM_REPLACED_DEFAULT; - za->entry[idx].changes->changed |= ZIP_DIRENT_COMP_METHOD; - } - - za->entry[idx].source = source; - - return (zip_int64_t)idx; -} diff --git a/libzip-1.2.0/lib/zip_file_set_comment.c b/libzip-1.2.0/lib/zip_file_set_comment.c deleted file mode 100644 index e455fbd28..000000000 --- a/libzip-1.2.0/lib/zip_file_set_comment.c +++ /dev/null @@ -1,103 +0,0 @@ -/* - zip_file_set_comment.c -- set comment for file in archive - Copyright (C) 2006-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" - - -ZIP_EXTERN int -zip_file_set_comment(zip_t *za, zip_uint64_t idx, - const char *comment, zip_uint16_t len, zip_flags_t flags) -{ - zip_entry_t *e; - zip_string_t *cstr; - int changed; - - if (_zip_get_dirent(za, idx, 0, NULL) == NULL) - return -1; - - if (ZIP_IS_RDONLY(za)) { - zip_error_set(&za->error, ZIP_ER_RDONLY, 0); - return -1; - } - - if (len > 0 && comment == NULL) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (len > 0) { - if ((cstr=_zip_string_new((const zip_uint8_t *)comment, len, flags, &za->error)) == NULL) - return -1; - if ((flags & ZIP_FL_ENCODING_ALL) == ZIP_FL_ENC_GUESS && _zip_guess_encoding(cstr, ZIP_ENCODING_UNKNOWN) == ZIP_ENCODING_UTF8_GUESSED) - cstr->encoding = ZIP_ENCODING_UTF8_KNOWN; - } - else - cstr = NULL; - - e = za->entry+idx; - - if (e->changes) { - _zip_string_free(e->changes->comment); - e->changes->comment = NULL; - e->changes->changed &= ~ZIP_DIRENT_COMMENT; - } - - if (e->orig && e->orig->comment) - changed = !_zip_string_equal(e->orig->comment, cstr); - else - changed = (cstr != NULL); - - if (changed) { - if (e->changes == NULL) { - if ((e->changes=_zip_dirent_clone(e->orig)) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - _zip_string_free(cstr); - return -1; - } - } - e->changes->comment = cstr; - e->changes->changed |= ZIP_DIRENT_COMMENT; - } - else { - _zip_string_free(cstr); - if (e->changes && e->changes->changed == 0) { - _zip_dirent_free(e->changes); - e->changes = NULL; - } - } - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_file_set_encryption.c b/libzip-1.2.0/lib/zip_file_set_encryption.c deleted file mode 100644 index a7ed748bc..000000000 --- a/libzip-1.2.0/lib/zip_file_set_encryption.c +++ /dev/null @@ -1,117 +0,0 @@ -/* - zip_file_set_encryption.c -- set encryption for file in archive - Copyright (C) 2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - -#include -#include - -ZIP_EXTERN int -zip_file_set_encryption(zip_t *za, zip_uint64_t idx, zip_uint16_t method, const char *password) -{ - zip_entry_t *e; - zip_uint16_t old_method; - - if (idx >= za->nentry) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (ZIP_IS_RDONLY(za)) { - zip_error_set(&za->error, ZIP_ER_RDONLY, 0); - return -1; - } - - if (method != ZIP_EM_NONE && _zip_get_encryption_implementation(method, ZIP_CODEC_ENCODE) == NULL) { - zip_error_set(&za->error, ZIP_ER_ENCRNOTSUPP, 0); - return -1; - } - - e = za->entry+idx; - - old_method = (e->orig == NULL ? ZIP_EM_NONE : e->orig->encryption_method); - - if (method == old_method && password == NULL) { - if (e->changes) { - if (e->changes->changed & ZIP_DIRENT_PASSWORD) { - _zip_crypto_clear(e->changes->password, strlen(e->changes->password)); - free(e->changes->password); - e->changes->password = (e->orig == NULL ? NULL : e->orig->password); - } - e->changes->changed &= ~(ZIP_DIRENT_ENCRYPTION_METHOD|ZIP_DIRENT_PASSWORD); - if (e->changes->changed == 0) { - _zip_dirent_free(e->changes); - e->changes = NULL; - } - } - } - else { - char *our_password = NULL; - - if (password) { - if ((our_password = strdup(password)) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return -1; - } - } - - if (e->changes == NULL) { - if ((e->changes=_zip_dirent_clone(e->orig)) == NULL) { - if (our_password) { - _zip_crypto_clear(our_password, strlen(our_password)); - } - free(our_password); - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return -1; - } - } - - e->changes->encryption_method = method; - e->changes->changed |= ZIP_DIRENT_ENCRYPTION_METHOD; - if (password) { - e->changes->password = our_password; - e->changes->changed |= ZIP_DIRENT_PASSWORD; - } - else { - if (e->changes->changed & ZIP_DIRENT_PASSWORD) { - _zip_crypto_clear(e->changes->password, strlen(e->changes->password)); - free(e->changes->password); - e->changes->password = e->orig ? e->orig->password : NULL; - e->changes->changed &= ~ZIP_DIRENT_PASSWORD; - } - } - } - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_file_set_external_attributes.c b/libzip-1.2.0/lib/zip_file_set_external_attributes.c deleted file mode 100644 index b772c31e0..000000000 --- a/libzip-1.2.0/lib/zip_file_set_external_attributes.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - zip_file_set_external_attributes.c -- set external attributes for entry - Copyright (C) 2013-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include "zipint.h" - -ZIP_EXTERN int -zip_file_set_external_attributes(zip_t *za, zip_uint64_t idx, zip_flags_t flags, zip_uint8_t opsys, zip_uint32_t attributes) -{ - zip_entry_t *e; - int changed; - zip_uint8_t unchanged_opsys; - zip_uint32_t unchanged_attributes; - - if (_zip_get_dirent(za, idx, 0, NULL) == NULL) - return -1; - - if (ZIP_IS_RDONLY(za)) { - zip_error_set(&za->error, ZIP_ER_RDONLY, 0); - return -1; - } - - e = za->entry+idx; - - unchanged_opsys = (e->orig ? (zip_uint8_t)(e->orig->version_madeby>>8) : (zip_uint8_t)ZIP_OPSYS_DEFAULT); - unchanged_attributes = e->orig ? e->orig->ext_attrib : ZIP_EXT_ATTRIB_DEFAULT; - - changed = (opsys != unchanged_opsys || attributes != unchanged_attributes); - - if (changed) { - if (e->changes == NULL) { - if ((e->changes=_zip_dirent_clone(e->orig)) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return -1; - } - } - e->changes->version_madeby = (zip_uint16_t)((opsys << 8) | (e->changes->version_madeby & 0xff)); - e->changes->ext_attrib = attributes; - e->changes->changed |= ZIP_DIRENT_ATTRIBUTES; - } - else if (e->changes) { - e->changes->changed &= ~ZIP_DIRENT_ATTRIBUTES; - if (e->changes->changed == 0) { - _zip_dirent_free(e->changes); - e->changes = NULL; - } - else { - e->changes->version_madeby = (zip_uint16_t)((unchanged_opsys << 8) | (e->changes->version_madeby & 0xff)); - e->changes->ext_attrib = unchanged_attributes; - } - } - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_file_set_mtime.c b/libzip-1.2.0/lib/zip_file_set_mtime.c deleted file mode 100644 index 0cdd31a67..000000000 --- a/libzip-1.2.0/lib/zip_file_set_mtime.c +++ /dev/null @@ -1,74 +0,0 @@ -/* - zip_file_set_mtime.c -- set modification time of entry. - Copyright (C) 2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "zipint.h" - -ZIP_EXTERN int zip_file_set_mtime(zip_t *za, zip_uint64_t idx, time_t mtime, zip_flags_t flags) -{ - zip_entry_t *e; - int changed; - - if (_zip_get_dirent(za, idx, 0, NULL) == NULL) - return -1; - - if (ZIP_IS_RDONLY(za)) { - zip_error_set(&za->error, ZIP_ER_RDONLY, 0); - return -1; - } - - e = za->entry+idx; - - changed = e->orig == NULL || mtime != e->orig->last_mod; - - if (changed) { - if (e->changes == NULL) { - if ((e->changes=_zip_dirent_clone(e->orig)) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return -1; - } - } - e->changes->last_mod = mtime; - e->changes->changed |= ZIP_DIRENT_LAST_MOD; - } - else { - if (e->changes) { - e->changes->changed &= ~ZIP_DIRENT_LAST_MOD; - if (e->changes->changed == 0) { - _zip_dirent_free(e->changes); - e->changes = NULL; - } - } - } - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_file_strerror.c b/libzip-1.2.0/lib/zip_file_strerror.c deleted file mode 100644 index 8366f1ea9..000000000 --- a/libzip-1.2.0/lib/zip_file_strerror.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - zip_file_sterror.c -- get string representation of zip file error - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN const char * -zip_file_strerror(zip_file_t *zf) -{ - return zip_error_strerror(&zf->error); -} diff --git a/libzip-1.2.0/lib/zip_filerange_crc.c b/libzip-1.2.0/lib/zip_filerange_crc.c deleted file mode 100644 index 775af9adf..000000000 --- a/libzip-1.2.0/lib/zip_filerange_crc.c +++ /dev/null @@ -1,76 +0,0 @@ -/* - zip_filerange_crc.c -- compute CRC32 for a range of a file - Copyright (C) 2008-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" - - - -int -_zip_filerange_crc(zip_source_t *src, zip_uint64_t start, zip_uint64_t len, uLong *crcp, zip_error_t *error) -{ - Bytef buf[BUFSIZE]; - zip_int64_t n; - - *crcp = crc32(0L, Z_NULL, 0); - - if (start > ZIP_INT64_MAX) { - zip_error_set(error, ZIP_ER_SEEK, EFBIG); - return -1; - } - - if (zip_source_seek(src, (zip_int64_t)start, SEEK_SET) != 0) { - _zip_error_set_from_source(error, src); - return -1; - } - - while (len > 0) { - n = (zip_int64_t)(len > BUFSIZE ? BUFSIZE : len); - if ((n = zip_source_read(src, buf, (zip_uint64_t)n)) < 0) { - _zip_error_set_from_source(error, src); - return -1; - } - if (n == 0) { - zip_error_set(error, ZIP_ER_EOF, 0); - return -1; - } - - *crcp = crc32(*crcp, buf, (uInt)n); - - len -= (zip_uint64_t)n; - } - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_fopen.c b/libzip-1.2.0/lib/zip_fopen.c deleted file mode 100644 index 3adb5de65..000000000 --- a/libzip-1.2.0/lib/zip_fopen.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - zip_fopen.c -- open file in zip archive for reading - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN zip_file_t * -zip_fopen(zip_t *za, const char *fname, zip_flags_t flags) -{ - zip_int64_t idx; - - if ((idx=zip_name_locate(za, fname, flags)) < 0) - return NULL; - - return zip_fopen_index_encrypted(za, (zip_uint64_t)idx, flags, za->default_password); -} diff --git a/libzip-1.2.0/lib/zip_fopen_encrypted.c b/libzip-1.2.0/lib/zip_fopen_encrypted.c deleted file mode 100644 index 5eaf2b04b..000000000 --- a/libzip-1.2.0/lib/zip_fopen_encrypted.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - zip_fopen_encrypted.c -- open file for reading with password - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN zip_file_t * -zip_fopen_encrypted(zip_t *za, const char *fname, zip_flags_t flags, const char *password) -{ - zip_int64_t idx; - - if ((idx=zip_name_locate(za, fname, flags)) < 0) - return NULL; - - return zip_fopen_index_encrypted(za, (zip_uint64_t)idx, flags, password); -} diff --git a/libzip-1.2.0/lib/zip_fopen_index.c b/libzip-1.2.0/lib/zip_fopen_index.c deleted file mode 100644 index 0fb150b28..000000000 --- a/libzip-1.2.0/lib/zip_fopen_index.c +++ /dev/null @@ -1,45 +0,0 @@ -/* - zip_fopen_index.c -- open file in zip archive for reading by index - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include - -#include "zipint.h" - - -ZIP_EXTERN zip_file_t * -zip_fopen_index(zip_t *za, zip_uint64_t index, zip_flags_t flags) -{ - return zip_fopen_index_encrypted(za, index, flags, za->default_password); -} diff --git a/libzip-1.2.0/lib/zip_fopen_index_encrypted.c b/libzip-1.2.0/lib/zip_fopen_index_encrypted.c deleted file mode 100644 index 4c32e0263..000000000 --- a/libzip-1.2.0/lib/zip_fopen_index_encrypted.c +++ /dev/null @@ -1,86 +0,0 @@ -/* - zip_fopen_index_encrypted.c -- open file for reading by index w/ password - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include - -#include "zipint.h" - -static zip_file_t *_zip_file_new(zip_t *za); - - -ZIP_EXTERN zip_file_t * -zip_fopen_index_encrypted(zip_t *za, zip_uint64_t index, zip_flags_t flags, - const char *password) -{ - zip_file_t *zf; - zip_source_t *src; - - if ((src=_zip_source_zip_new(za, za, index, flags, 0, 0, password)) == NULL) - return NULL; - - if (zip_source_open(src) < 0) { - _zip_error_set_from_source(&za->error, src); - zip_source_free(src); - return NULL; - } - - if ((zf=_zip_file_new(za)) == NULL) { - zip_source_free(src); - return NULL; - } - - zf->src = src; - - return zf; -} - - -static zip_file_t * -_zip_file_new(zip_t *za) -{ - zip_file_t *zf; - - if ((zf=(zip_file_t *)malloc(sizeof(struct zip_file))) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return NULL; - } - - zf->za = za; - zip_error_init(&zf->error); - zf->eof = 0; - zf->src = NULL; - - return zf; -} diff --git a/libzip-1.2.0/lib/zip_fread.c b/libzip-1.2.0/lib/zip_fread.c deleted file mode 100644 index 9c1cbe0c4..000000000 --- a/libzip-1.2.0/lib/zip_fread.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - zip_fread.c -- read from file - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN zip_int64_t -zip_fread(zip_file_t *zf, void *outbuf, zip_uint64_t toread) -{ - zip_int64_t n; - - if (!zf) - return -1; - - if (zf->error.zip_err != 0) - return -1; - - if (toread > ZIP_INT64_MAX) { - zip_error_set(&zf->error, ZIP_ER_INVAL, 0); - return -1; - } - - if ((zf->eof) || (toread == 0)) - return 0; - - if ((n=zip_source_read(zf->src, outbuf, toread)) < 0) { - _zip_error_set_from_source(&zf->error, zf->src); - return -1; - } - - return n; -} diff --git a/libzip-1.2.0/lib/zip_fseek.c b/libzip-1.2.0/lib/zip_fseek.c deleted file mode 100644 index a16af1a7d..000000000 --- a/libzip-1.2.0/lib/zip_fseek.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - zip_fseek.c -- seek in file - Copyright (C) 2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" -#include - -ZIP_EXTERN zip_int8_t -zip_fseek(zip_file_t *zf, zip_int64_t offset, int whence) -{ - - if (!zf) - return -1; - - if (zf->error.zip_err != 0) - return -1; - - if (zip_source_seek(zf->src, offset, whence) < 0) { - _zip_error_set_from_source(&zf->error, zf->src); - return -1; - } - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_ftell.c b/libzip-1.2.0/lib/zip_ftell.c deleted file mode 100644 index abbf29611..000000000 --- a/libzip-1.2.0/lib/zip_ftell.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - zip_ftell.c -- tell position in file - Copyright (C) 2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" -#include - -ZIP_EXTERN zip_int64_t -zip_ftell(zip_file_t *zf) -{ - zip_int64_t res; - - if (!zf) - return -1; - - if (zf->error.zip_err != 0) - return -1; - - res = zip_source_tell(zf->src); - if (res < 0) { - _zip_error_set_from_source(&zf->error, zf->src); - return -1; - } - - return res; -} diff --git a/libzip-1.2.0/lib/zip_get_archive_comment.c b/libzip-1.2.0/lib/zip_get_archive_comment.c deleted file mode 100644 index 78f8ca09d..000000000 --- a/libzip-1.2.0/lib/zip_get_archive_comment.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - zip_get_archive_comment.c -- get archive comment - Copyright (C) 2006-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" - - -ZIP_EXTERN const char * -zip_get_archive_comment(zip_t *za, int *lenp, zip_flags_t flags) -{ - zip_string_t *comment; - zip_uint32_t len; - const zip_uint8_t *str; - - if ((flags & ZIP_FL_UNCHANGED) || (za->comment_changes == NULL)) - comment = za->comment_orig; - else - comment = za->comment_changes; - - if ((str=_zip_string_get(comment, &len, flags, &za->error)) == NULL) - return NULL; - - if (lenp) - *lenp = (int)len; - - return (const char *)str; -} diff --git a/libzip-1.2.0/lib/zip_get_archive_flag.c b/libzip-1.2.0/lib/zip_get_archive_flag.c deleted file mode 100644 index bffe10c11..000000000 --- a/libzip-1.2.0/lib/zip_get_archive_flag.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - zip_get_archive_flag.c -- get archive global flag - Copyright (C) 2008-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN int -zip_get_archive_flag(zip_t *za, zip_flags_t flag, zip_flags_t flags) -{ - unsigned int fl; - - fl = (flags & ZIP_FL_UNCHANGED) ? za->flags : za->ch_flags; - - return (fl & flag) ? 1 : 0; -} diff --git a/libzip-1.2.0/lib/zip_get_compression_implementation.c b/libzip-1.2.0/lib/zip_get_compression_implementation.c deleted file mode 100644 index 5f8d0c7b9..000000000 --- a/libzip-1.2.0/lib/zip_get_compression_implementation.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - zip_get_compression_implementation.c -- get compression implementation - Copyright (C) 2009-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -zip_compression_implementation -_zip_get_compression_implementation(zip_int32_t cm, int operation) -{ - if (cm == ZIP_CM_DEFLATE || ZIP_CM_IS_DEFAULT(cm)) - return zip_source_deflate; - return NULL; -} diff --git a/libzip-1.2.0/lib/zip_get_encryption_implementation.c b/libzip-1.2.0/lib/zip_get_encryption_implementation.c deleted file mode 100644 index f8af7b020..000000000 --- a/libzip-1.2.0/lib/zip_get_encryption_implementation.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - zip_get_encryption_implementation.c -- get encryption implementation - Copyright (C) 2009-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -zip_encryption_implementation -_zip_get_encryption_implementation(zip_uint16_t em, int operation) -{ - switch (em) { - case ZIP_EM_TRAD_PKWARE: - if (operation == ZIP_CODEC_ENCODE) { - return NULL; - } - return zip_source_pkware; - - case ZIP_EM_AES_128: - case ZIP_EM_AES_192: - case ZIP_EM_AES_256: - return operation == ZIP_CODEC_DECODE ? zip_source_winzip_aes_decode : zip_source_winzip_aes_encode; - - default: - return NULL; - } -} diff --git a/libzip-1.2.0/lib/zip_get_file_comment.c b/libzip-1.2.0/lib/zip_get_file_comment.c deleted file mode 100644 index d5f50bf2a..000000000 --- a/libzip-1.2.0/lib/zip_get_file_comment.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - zip_get_file_comment.c -- get file comment - Copyright (C) 2006-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#define _ZIP_COMPILING_DEPRECATED -#include "zipint.h" - - -ZIP_EXTERN const char * -zip_get_file_comment(zip_t *za, zip_uint64_t idx, int *lenp, int flags) -{ - zip_uint32_t len; - const char *s; - - if ((s=zip_file_get_comment(za, idx, &len, (zip_flags_t)flags)) != NULL) { - if (lenp) - *lenp = (int)len; - } - - return s; -} diff --git a/libzip-1.2.0/lib/zip_get_name.c b/libzip-1.2.0/lib/zip_get_name.c deleted file mode 100644 index d29e63658..000000000 --- a/libzip-1.2.0/lib/zip_get_name.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - zip_get_name.c -- get filename for a file in zip file - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" - - -ZIP_EXTERN const char * -zip_get_name(zip_t *za, zip_uint64_t idx, zip_flags_t flags) -{ - return _zip_get_name(za, idx, flags, &za->error); -} - - -const char * -_zip_get_name(zip_t *za, zip_uint64_t idx, zip_flags_t flags, zip_error_t *error) -{ - zip_dirent_t *de; - const zip_uint8_t *str; - - if ((de=_zip_get_dirent(za, idx, flags, error)) == NULL) - return NULL; - - if ((str=_zip_string_get(de->filename, NULL, flags, error)) == NULL) - return NULL; - - return (const char *)str; -} diff --git a/libzip-1.2.0/lib/zip_get_num_entries.c b/libzip-1.2.0/lib/zip_get_num_entries.c deleted file mode 100644 index c8644a4c5..000000000 --- a/libzip-1.2.0/lib/zip_get_num_entries.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - zip_get_num_entries.c -- get number of entries in archive - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN zip_int64_t -zip_get_num_entries(zip_t *za, zip_flags_t flags) -{ - zip_uint64_t n; - - if (za == NULL) - return -1; - - if (flags & ZIP_FL_UNCHANGED) { - n = za->nentry; - while (n>0 && za->entry[n-1].orig == NULL) - --n; - return (zip_int64_t)n; - } - return (zip_int64_t)za->nentry; -} diff --git a/libzip-1.2.0/lib/zip_get_num_files.c b/libzip-1.2.0/lib/zip_get_num_files.c deleted file mode 100644 index cf96353fc..000000000 --- a/libzip-1.2.0/lib/zip_get_num_files.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - zip_get_num_files.c -- get number of files in archive - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#define _ZIP_COMPILING_DEPRECATED -#include "zipint.h" -#include - - -ZIP_EXTERN int -zip_get_num_files(zip_t *za) -{ - if (za == NULL) - return -1; - - if (za->nentry > INT_MAX) { - zip_error_set(&za->error, ZIP_ER_OPNOTSUPP, 0); - return -1; - } - - return (int)za->nentry; -} diff --git a/libzip-1.2.0/lib/zip_hash.c b/libzip-1.2.0/lib/zip_hash.c deleted file mode 100644 index 23f9708df..000000000 --- a/libzip-1.2.0/lib/zip_hash.c +++ /dev/null @@ -1,267 +0,0 @@ -/* - zip_hash.c -- hash table string -> uint64 - Copyright (C) 2015-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include -#include -#include "zipint.h" - -struct zip_hash_entry { - const zip_uint8_t *name; - zip_int64_t orig_index; - zip_int64_t current_index; - struct zip_hash_entry *next; -}; -typedef struct zip_hash_entry zip_hash_entry_t; - -struct zip_hash { - zip_uint16_t table_size; - zip_hash_entry_t **table; -}; - -zip_hash_t * -_zip_hash_new(zip_uint16_t table_size, zip_error_t *error) -{ - zip_hash_t *hash; - - if (table_size == 0) { - zip_error_set(error, ZIP_ER_INTERNAL, 0); - return NULL; - } - - if ((hash=(zip_hash_t *)malloc(sizeof(zip_hash_t))) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return NULL; - } - hash->table_size = table_size; - if ((hash->table=(zip_hash_entry_t**)calloc(table_size, sizeof(zip_hash_entry_t *))) == NULL) { - free(hash); - zip_error_set(error, ZIP_ER_MEMORY, 0); - return NULL; - } - - return hash; -} - -static void -_free_list(zip_hash_entry_t *entry) -{ - zip_hash_entry_t *next; - do { - next = entry->next; - free(entry); - entry = next; - } while (entry != NULL); -} - -void -_zip_hash_free(zip_hash_t *hash) -{ - zip_uint16_t i; - - if (hash == NULL) { - return; - } - - for (i=0; itable_size; i++) { - if (hash->table[i] != NULL) { - _free_list(hash->table[i]); - } - } - free(hash->table); - free(hash); -} - -static zip_uint16_t -_hash_string(const zip_uint8_t *name, zip_uint16_t size) -{ -#define HASH_MULTIPLIER 33 - zip_uint16_t value = 5381; - - if (name == NULL) - return 0; - - while (*name != 0) { - value = (zip_uint16_t)(((value * HASH_MULTIPLIER) + (zip_uint8_t)*name) % size); - name++; - } - - return value; -} - -/* insert into hash, return error on existence or memory issues */ -bool -_zip_hash_add(zip_hash_t *hash, const zip_uint8_t *name, zip_uint64_t index, zip_flags_t flags, zip_error_t *error) -{ - zip_uint16_t hash_value; - zip_hash_entry_t *entry; - - if (hash == NULL || name == NULL || index > ZIP_INT64_MAX) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return false; - } - - hash_value = _hash_string(name, hash->table_size); - for (entry = hash->table[hash_value]; entry != NULL; entry = entry->next) { - if (strcmp((const char *)name, (const char *)entry->name) == 0) { - if (((flags & ZIP_FL_UNCHANGED) && entry->orig_index != -1) || entry->current_index != -1) { - zip_error_set(error, ZIP_ER_EXISTS, 0); - return false; - } - else { - break; - } - } - } - - if (entry == NULL) { - if ((entry=(zip_hash_entry_t *)malloc(sizeof(zip_hash_entry_t))) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return false; - } - entry->name = name; - entry->next = hash->table[hash_value]; - hash->table[hash_value] = entry; - entry->orig_index = -1; - } - - if (flags & ZIP_FL_UNCHANGED) { - entry->orig_index = (zip_int64_t)index; - } - entry->current_index = (zip_int64_t)index; - - return true; -} - -/* remove entry from hash, error if not found */ -bool -_zip_hash_delete(zip_hash_t *hash, const zip_uint8_t *name, zip_error_t *error) -{ - zip_uint16_t hash_value; - zip_hash_entry_t *entry, *previous; - - if (hash == NULL || name == NULL) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return false; - } - - hash_value = _hash_string(name, hash->table_size); - previous = NULL; - entry = hash->table[hash_value]; - while (entry) { - if (strcmp((const char *)name, (const char *)entry->name) == 0) { - if (entry->orig_index == -1) { - if (previous) { - previous->next = entry->next; - } - else { - hash->table[hash_value] = entry->next; - } - free(entry); - } - else { - entry->current_index = -1; - } - return true; - } - previous = entry; - entry = entry->next; - }; - - zip_error_set(error, ZIP_ER_NOENT, 0); - return false; -} - -/* find value for entry in hash, -1 if not found */ -zip_int64_t -_zip_hash_lookup(zip_hash_t *hash, const zip_uint8_t *name, zip_flags_t flags, zip_error_t *error) -{ - zip_uint16_t hash_value; - zip_hash_entry_t *entry; - - if (hash == NULL || name == NULL) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return -1; - } - - hash_value = _hash_string(name, hash->table_size); - for (entry = hash->table[hash_value]; entry != NULL; entry = entry->next) { - if (strcmp((const char *)name, (const char *)entry->name) == 0) { - if (flags & ZIP_FL_UNCHANGED) { - if (entry->orig_index != -1) { - return entry->orig_index; - } - } - else { - if (entry->current_index != -1) { - return entry->current_index; - } - } - break; - } - } - - zip_error_set(error, ZIP_ER_NOENT, 0); - return -1; -} - -void -_zip_hash_revert(zip_hash_t *hash) -{ - zip_uint16_t i; - zip_hash_entry_t *entry, *previous; - - for (i = 0; i < hash->table_size; i++) { - previous = NULL; - entry = hash->table[i]; - while (entry) { - if (entry->orig_index == -1) { - zip_hash_entry_t *p; - if (previous) { - previous->next = entry->next; - } - else { - hash->table[i] = entry->next; - } - p = entry; - entry = entry->next; - /* previous does not change */ - free(p); - } - else { - entry->current_index = entry->orig_index; - previous = entry; - entry = entry->next; - } - } - } -} diff --git a/libzip-1.2.0/lib/zip_io_util.c b/libzip-1.2.0/lib/zip_io_util.c deleted file mode 100644 index 53a5dd265..000000000 --- a/libzip-1.2.0/lib/zip_io_util.c +++ /dev/null @@ -1,138 +0,0 @@ -/* - zip_io_util.c -- I/O helper functions - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include - -#include "zipint.h" - -int -_zip_read(zip_source_t *src, zip_uint8_t *b, zip_uint64_t length, zip_error_t *error) -{ - zip_int64_t n; - - if (length > ZIP_INT64_MAX) { - zip_error_set(error, ZIP_ER_INTERNAL, 0); - return -1; - } - - if ((n = zip_source_read(src, b, length)) < 0) { - _zip_error_set_from_source(error, src); - return -1; - } - - if (n < (zip_int64_t)length) { - zip_error_set(error, ZIP_ER_EOF, 0); - return -1; - } - - return 0; -} - - -zip_uint8_t * -_zip_read_data(zip_buffer_t *buffer, zip_source_t *src, size_t length, bool nulp, zip_error_t *error) -{ - zip_uint8_t *r; - - if (length == 0 && !nulp) { - return NULL; - } - - r = (zip_uint8_t *)malloc(length + (nulp ? 1 : 0)); - if (!r) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return NULL; - } - - if (buffer) { - zip_uint8_t *data = _zip_buffer_get(buffer, length); - - if (data == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - free(r); - return NULL; - } - memcpy(r, data, length); - } - else { - if (_zip_read(src, r, length, error) < 0) { - free(r); - return NULL; - } - } - - if (nulp) { - zip_uint8_t *o; - /* replace any in-string NUL characters with spaces */ - r[length] = 0; - for (o=r; osrc, data, length)) < 0) { - _zip_error_set_from_source(&za->error, za->src); - return -1; - } - if ((zip_uint64_t)n != length) { - zip_error_set(&za->error, ZIP_ER_WRITE, EINTR); - return -1; - } - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_memdup.c b/libzip-1.2.0/lib/zip_memdup.c deleted file mode 100644 index cc6d767d9..000000000 --- a/libzip-1.2.0/lib/zip_memdup.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - zip_memdup.c -- internal zip function, "strdup" with len - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include -#include - -#include "zipint.h" - - -void * -_zip_memdup(const void *mem, size_t len, zip_error_t *error) -{ - void *ret; - - if (len == 0) - return NULL; - - ret = malloc(len); - if (!ret) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return NULL; - } - - memcpy(ret, mem, len); - - return ret; -} diff --git a/libzip-1.2.0/lib/zip_name_locate.c b/libzip-1.2.0/lib/zip_name_locate.c deleted file mode 100644 index 706093f1a..000000000 --- a/libzip-1.2.0/lib/zip_name_locate.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - zip_name_locate.c -- get index by name - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#ifdef HAVE_STRINGS_H -#include -#endif - -#include "zipint.h" - - -ZIP_EXTERN zip_int64_t -zip_name_locate(zip_t *za, const char *fname, zip_flags_t flags) -{ - return _zip_name_locate(za, fname, flags, &za->error); -} - - -zip_int64_t -_zip_name_locate(zip_t *za, const char *fname, zip_flags_t flags, zip_error_t *error) -{ - int (*cmp)(const char *, const char *); - const char *fn, *p; - zip_uint64_t i; - - if (za == NULL) - return -1; - - if (fname == NULL) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return -1; - } - - if (flags & (ZIP_FL_NOCASE|ZIP_FL_NODIR|ZIP_FL_ENC_CP437)) { - /* can't use hash table */ - cmp = (flags & ZIP_FL_NOCASE) ? strcasecmp : strcmp; - - for (i=0; inentry; i++) { - fn = _zip_get_name(za, i, flags, error); - - /* newly added (partially filled) entry or error */ - if (fn == NULL) - continue; - - if (flags & ZIP_FL_NODIR) { - p = strrchr(fn, '/'); - if (p) - fn = p+1; - } - - if (cmp(fname, fn) == 0) { - _zip_error_clear(error); - return (zip_int64_t)i; - } - } - - zip_error_set(error, ZIP_ER_NOENT, 0); - return -1; - } - else { - return _zip_hash_lookup(za->names, (const zip_uint8_t *)fname, flags, error); - } -} diff --git a/libzip-1.2.0/lib/zip_new.c b/libzip-1.2.0/lib/zip_new.c deleted file mode 100644 index c05c2a3c1..000000000 --- a/libzip-1.2.0/lib/zip_new.c +++ /dev/null @@ -1,74 +0,0 @@ -/* - zip_new.c -- create and init struct zip - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" - - -/* _zip_new: - creates a new zipfile struct, and sets the contents to zero; returns - the new struct. */ - -zip_t * -_zip_new(zip_error_t *error) -{ - zip_t *za; - - za = (zip_t *)malloc(sizeof(struct zip)); - if (!za) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return NULL; - } - - if ((za->names = _zip_hash_new(ZIP_HASH_TABLE_SIZE, error)) == NULL) { - free(za); - return NULL; - } - - za->src = NULL; - za->open_flags = 0; - zip_error_init(&za->error); - za->flags = za->ch_flags = 0; - za->default_password = NULL; - za->comment_orig = za->comment_changes = NULL; - za->comment_changed = 0; - za->nentry = za->nentry_alloc = 0; - za->entry = NULL; - za->nopen_source = za->nopen_source_alloc = 0; - za->open_source = NULL; - za->progress_callback = NULL; - - return za; -} diff --git a/libzip-1.2.0/lib/zip_open.c b/libzip-1.2.0/lib/zip_open.c deleted file mode 100644 index f62f95f62..000000000 --- a/libzip-1.2.0/lib/zip_open.c +++ /dev/null @@ -1,862 +0,0 @@ -/* - zip_open.c -- open zip archive by name - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include -#include -#include -#include - -#include "zipint.h" - -typedef enum { - EXISTS_ERROR = -1, - EXISTS_NOT = 0, - EXISTS_EMPTY, - EXISTS_NONEMPTY, -} exists_t; -static zip_t *_zip_allocate_new(zip_source_t *src, unsigned int flags, zip_error_t *error); -static zip_int64_t _zip_checkcons(zip_t *za, zip_cdir_t *cdir, zip_error_t *error); -static zip_cdir_t *_zip_find_central_dir(zip_t *za, zip_uint64_t len); -static exists_t _zip_file_exists(zip_source_t *src, zip_error_t *error); -static int _zip_headercomp(const zip_dirent_t *, const zip_dirent_t *); -static unsigned char *_zip_memmem(const unsigned char *, size_t, const unsigned char *, size_t); -static zip_cdir_t *_zip_read_cdir(zip_t *za, zip_buffer_t *buffer, zip_uint64_t buf_offset, zip_error_t *error); -static zip_cdir_t *_zip_read_eocd(zip_buffer_t *buffer, zip_uint64_t buf_offset, unsigned int flags, zip_error_t *error); -static zip_cdir_t *_zip_read_eocd64(zip_source_t *src, zip_buffer_t *buffer, zip_uint64_t buf_offset, unsigned int flags, zip_error_t *error); - - -ZIP_EXTERN zip_t * -zip_open(const char *fn, int _flags, int *zep) -{ - zip_t *za; - zip_source_t *src; - struct zip_error error; - - zip_error_init(&error); - if ((src = zip_source_file_create(fn, 0, -1, &error)) == NULL) { - _zip_set_open_error(zep, &error, 0); - zip_error_fini(&error); - return NULL; - } - - if ((za = zip_open_from_source(src, _flags, &error)) == NULL) { - zip_source_free(src); - _zip_set_open_error(zep, &error, 0); - zip_error_fini(&error); - return NULL; - } - - zip_error_fini(&error); - return za; -} - - -ZIP_EXTERN zip_t * -zip_open_from_source(zip_source_t *src, int _flags, zip_error_t *error) -{ - static zip_int64_t needed_support_read = -1; - static zip_int64_t needed_support_write = -1; - - unsigned int flags; - zip_int64_t supported; - exists_t exists; - - if (_flags < 0 || src == NULL) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return NULL; - } - flags = (unsigned int)_flags; - - supported = zip_source_supports(src); - if (needed_support_read == -1) { - needed_support_read = zip_source_make_command_bitmap(ZIP_SOURCE_OPEN, ZIP_SOURCE_READ, ZIP_SOURCE_CLOSE, ZIP_SOURCE_SEEK, ZIP_SOURCE_TELL, ZIP_SOURCE_STAT, -1); - needed_support_write = zip_source_make_command_bitmap(ZIP_SOURCE_BEGIN_WRITE, ZIP_SOURCE_COMMIT_WRITE, ZIP_SOURCE_ROLLBACK_WRITE, ZIP_SOURCE_SEEK_WRITE, ZIP_SOURCE_TELL_WRITE, ZIP_SOURCE_REMOVE, -1); - } - if ((supported & needed_support_read) != needed_support_read) { - zip_error_set(error, ZIP_ER_OPNOTSUPP, 0); - return NULL; - } - if ((supported & needed_support_write) != needed_support_write) { - flags |= ZIP_RDONLY; - } - - if ((flags & (ZIP_RDONLY|ZIP_TRUNCATE)) == (ZIP_RDONLY|ZIP_TRUNCATE)) { - zip_error_set(error, ZIP_ER_RDONLY, 0); - return NULL; - } - - exists = _zip_file_exists(src, error); - switch (exists) { - case EXISTS_ERROR: - return NULL; - - case EXISTS_NOT: - if ((flags & ZIP_CREATE) == 0) { - zip_error_set(error, ZIP_ER_NOENT, 0); - return NULL; - } - return _zip_allocate_new(src, flags, error); - - default: { - zip_t *za; - if (flags & ZIP_EXCL) { - zip_error_set(error, ZIP_ER_EXISTS, 0); - return NULL; - } - if (zip_source_open(src) < 0) { - _zip_error_set_from_source(error, src); - return NULL; - } - - if (flags & ZIP_TRUNCATE) { - za = _zip_allocate_new(src, flags, error); - } - else { - /* ZIP_CREATE gets ignored if file exists and not ZIP_EXCL, just like open() */ - za = _zip_open(src, flags, error); - } - - if (za == NULL) { - zip_source_close(src); - return NULL; - } - return za; - } - } -} - -ZIP_EXTERN void -zip_register_progress_callback(zip_t *za, zip_progress_callback_t progress_callback) -{ - za->progress_callback = progress_callback; -} - - -zip_t * -_zip_open(zip_source_t *src, unsigned int flags, zip_error_t *error) -{ - zip_t *za; - zip_cdir_t *cdir; - struct zip_stat st; - zip_uint64_t len, idx; - - zip_stat_init(&st); - if (zip_source_stat(src, &st) < 0) { - _zip_error_set_from_source(error, src); - return NULL; - } - if ((st.valid & ZIP_STAT_SIZE) == 0) { - zip_error_set(error, ZIP_ER_SEEK, EOPNOTSUPP); - return NULL; - } - len = st.size; - - /* treat empty files as empty archives */ - if (len == 0) { - if ((za=_zip_allocate_new(src, flags, error)) == NULL) { - zip_source_free(src); - return NULL; - } - - return za; - } - - if ((za=_zip_allocate_new(src, flags, error)) == NULL) { - return NULL; - } - - if ((cdir = _zip_find_central_dir(za, len)) == NULL) { - _zip_error_copy(error, &za->error); - /* keep src so discard does not get rid of it */ - zip_source_keep(src); - zip_discard(za); - return NULL; - } - - za->entry = cdir->entry; - za->nentry = cdir->nentry; - za->nentry_alloc = cdir->nentry_alloc; - za->comment_orig = cdir->comment; - - free(cdir); - - for (idx = 0; idx < za->nentry; idx++) { - const zip_uint8_t *name = _zip_string_get(za->entry[idx].orig->filename, NULL, 0, error); - if (name == NULL) { - /* keep src so discard does not get rid of it */ - zip_source_keep(src); - zip_discard(za); - return NULL; - } - - if (_zip_hash_add(za->names, name, idx, ZIP_FL_UNCHANGED, &za->error) == false) { - if (za->error.zip_err != ZIP_ER_EXISTS || (flags & ZIP_CHECKCONS)) { - _zip_error_copy(error, &za->error); - /* keep src so discard does not get rid of it */ - zip_source_keep(src); - zip_discard(za); - return NULL; - } - } - } - - za->ch_flags = za->flags; - - return za; -} - - -void -_zip_set_open_error(int *zep, const zip_error_t *err, int ze) -{ - if (err) { - ze = zip_error_code_zip(err); - if (zip_error_system_type(err) == ZIP_ET_SYS) { - errno = zip_error_code_system(err); - } - } - - if (zep) - *zep = ze; -} - - -/* _zip_readcdir: - tries to find a valid end-of-central-directory at the beginning of - buf, and then the corresponding central directory entries. - Returns a struct zip_cdir which contains the central directory - entries, or NULL if unsuccessful. */ - -static zip_cdir_t * -_zip_read_cdir(zip_t *za, zip_buffer_t *buffer, zip_uint64_t buf_offset, zip_error_t *error) -{ - zip_cdir_t *cd; - zip_uint16_t comment_len; - zip_uint64_t i, left; - zip_uint64_t eocd_offset = _zip_buffer_offset(buffer); - zip_buffer_t *cd_buffer; - - if (_zip_buffer_left(buffer) < EOCDLEN) { - /* not enough bytes left for comment */ - zip_error_set(error, ZIP_ER_NOZIP, 0); - return NULL; - } - - /* check for end-of-central-dir magic */ - if (memcmp(_zip_buffer_get(buffer, 4), EOCD_MAGIC, 4) != 0) { - zip_error_set(error, ZIP_ER_NOZIP, 0); - return NULL; - } - - if (eocd_offset >= EOCD64LOCLEN && memcmp(_zip_buffer_data(buffer) + eocd_offset - EOCD64LOCLEN, EOCD64LOC_MAGIC, 4) == 0) { - _zip_buffer_set_offset(buffer, eocd_offset - EOCD64LOCLEN); - cd = _zip_read_eocd64(za->src, buffer, buf_offset, za->flags, error); - } - else { - _zip_buffer_set_offset(buffer, eocd_offset); - cd = _zip_read_eocd(buffer, buf_offset, za->flags, error); - } - - if (cd == NULL) - return NULL; - - _zip_buffer_set_offset(buffer, eocd_offset + 20); - comment_len = _zip_buffer_get_16(buffer); - - if (cd->offset + cd->size > buf_offset + eocd_offset) { - /* cdir spans past EOCD record */ - zip_error_set(error, ZIP_ER_INCONS, 0); - _zip_cdir_free(cd); - return NULL; - } - - if (comment_len || (za->open_flags & ZIP_CHECKCONS)) { - zip_uint64_t tail_len; - - _zip_buffer_set_offset(buffer, eocd_offset + EOCDLEN); - tail_len = _zip_buffer_left(buffer); - - if (tail_len < comment_len || ((za->open_flags & ZIP_CHECKCONS) && tail_len != comment_len)) { - zip_error_set(error, ZIP_ER_INCONS, 0); - _zip_cdir_free(cd); - return NULL; - } - - if (comment_len) { - if ((cd->comment=_zip_string_new(_zip_buffer_get(buffer, comment_len), comment_len, ZIP_FL_ENC_GUESS, error)) == NULL) { - _zip_cdir_free(cd); - return NULL; - } - } - } - - if (cd->offset >= buf_offset) { - zip_uint8_t *data; - /* if buffer already read in, use it */ - _zip_buffer_set_offset(buffer, cd->offset - buf_offset); - - if ((data = _zip_buffer_get(buffer, cd->size)) == NULL) { - zip_error_set(error, ZIP_ER_INCONS, 0); - _zip_cdir_free(cd); - return NULL; - } - if ((cd_buffer = _zip_buffer_new(data, cd->size)) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - _zip_cdir_free(cd); - return NULL; - } - } - else { - cd_buffer = NULL; - - if (zip_source_seek(za->src, (zip_int64_t)cd->offset, SEEK_SET) < 0) { - _zip_error_set_from_source(error, za->src); - _zip_cdir_free(cd); - return NULL; - } - - /* possible consistency check: cd->offset = len-(cd->size+cd->comment_len+EOCDLEN) ? */ - if (zip_source_tell(za->src) != (zip_int64_t)cd->offset) { - zip_error_set(error, ZIP_ER_NOZIP, 0); - _zip_cdir_free(cd); - return NULL; - } - } - - left = (zip_uint64_t)cd->size; - i=0; - while (left > 0) { - bool grown = false; - zip_int64_t entry_size; - - if (i == cd->nentry) { - /* InfoZIP has a hack to avoid using Zip64: it stores nentries % 0x10000 */ - /* This hack isn't applicable if we're using Zip64, or if there is no central directory entry following. */ - - if (cd->is_zip64 || left < CDENTRYSIZE) { - break; - } - - if (!_zip_cdir_grow(cd, 0x10000, error)) { - _zip_cdir_free(cd); - _zip_buffer_free(cd_buffer); - return NULL; - } - grown = true; - } - - if ((cd->entry[i].orig=_zip_dirent_new()) == NULL || (entry_size = _zip_dirent_read(cd->entry[i].orig, za->src, cd_buffer, false, error)) < 0) { - if (grown && zip_error_code_zip(error) == ZIP_ER_NOZIP) { - zip_error_set(error, ZIP_ER_INCONS, 0); - } - _zip_cdir_free(cd); - _zip_buffer_free(cd_buffer); - return NULL; - } - i++; - left -= (zip_uint64_t)entry_size; - } - - if (i != cd->nentry || left > 0) { - zip_error_set(error, ZIP_ER_INCONS, 0); - _zip_buffer_free(cd_buffer); - _zip_cdir_free(cd); - return NULL; - } - - if (za->open_flags & ZIP_CHECKCONS) { - bool ok; - - if (cd_buffer) { - ok = _zip_buffer_eof(cd_buffer); - } - else { - zip_int64_t offset = zip_source_tell(za->src); - - if (offset < 0) { - _zip_error_set_from_source(error, za->src); - _zip_buffer_free(cd_buffer); - _zip_cdir_free(cd); - return NULL; - } - ok = ((zip_uint64_t)offset == cd->offset + cd->size); - } - - if (!ok) { - zip_error_set(error, ZIP_ER_INCONS, 0); - _zip_buffer_free(cd_buffer); - _zip_cdir_free(cd); - return NULL; - } - } - - _zip_buffer_free(cd_buffer); - return cd; -} - - -/* _zip_checkcons: - Checks the consistency of the central directory by comparing central - directory entries with local headers and checking for plausible - file and header offsets. Returns -1 if not plausible, else the - difference between the lowest and the highest fileposition reached */ - -static zip_int64_t -_zip_checkcons(zip_t *za, zip_cdir_t *cd, zip_error_t *error) -{ - zip_uint64_t i; - zip_uint64_t min, max, j; - struct zip_dirent temp; - - _zip_dirent_init(&temp); - if (cd->nentry) { - max = cd->entry[0].orig->offset; - min = cd->entry[0].orig->offset; - } - else - min = max = 0; - - for (i=0; inentry; i++) { - if (cd->entry[i].orig->offset < min) - min = cd->entry[i].orig->offset; - if (min > (zip_uint64_t)cd->offset) { - zip_error_set(error, ZIP_ER_NOZIP, 0); - return -1; - } - - j = cd->entry[i].orig->offset + cd->entry[i].orig->comp_size - + _zip_string_length(cd->entry[i].orig->filename) + LENTRYSIZE; - if (j > max) - max = j; - if (max > (zip_uint64_t)cd->offset) { - zip_error_set(error, ZIP_ER_NOZIP, 0); - return -1; - } - - if (zip_source_seek(za->src, (zip_int64_t)cd->entry[i].orig->offset, SEEK_SET) < 0) { - _zip_error_set_from_source(error, za->src); - return -1; - } - - if (_zip_dirent_read(&temp, za->src, NULL, true, error) == -1) { - _zip_dirent_finalize(&temp); - return -1; - } - - if (_zip_headercomp(cd->entry[i].orig, &temp) != 0) { - zip_error_set(error, ZIP_ER_INCONS, 0); - _zip_dirent_finalize(&temp); - return -1; - } - - cd->entry[i].orig->extra_fields = _zip_ef_merge(cd->entry[i].orig->extra_fields, temp.extra_fields); - cd->entry[i].orig->local_extra_fields_read = 1; - temp.extra_fields = NULL; - - _zip_dirent_finalize(&temp); - } - - return (max-min) < ZIP_INT64_MAX ? (zip_int64_t)(max-min) : ZIP_INT64_MAX; -} - - -/* _zip_headercomp: - compares a central directory entry and a local file header - Return 0 if they are consistent, -1 if not. */ - -static int -_zip_headercomp(const zip_dirent_t *central, const zip_dirent_t *local) -{ - if ((central->version_needed < local->version_needed) -#if 0 - /* some zip-files have different values in local - and global headers for the bitflags */ - || (central->bitflags != local->bitflags) -#endif - || (central->comp_method != local->comp_method) - || (central->last_mod != local->last_mod) - || !_zip_string_equal(central->filename, local->filename)) - return -1; - - if ((central->crc != local->crc) || (central->comp_size != local->comp_size) - || (central->uncomp_size != local->uncomp_size)) { - /* InfoZip stores valid values in local header even when data descriptor is used. - This is in violation of the appnote. */ - if (((local->bitflags & ZIP_GPBF_DATA_DESCRIPTOR) == 0 - || local->crc != 0 || local->comp_size != 0 || local->uncomp_size != 0)) - return -1; - } - - return 0; -} - - -static zip_t * -_zip_allocate_new(zip_source_t *src, unsigned int flags, zip_error_t *error) -{ - zip_t *za; - - if ((za = _zip_new(error)) == NULL) { - return NULL; - } - - za->src = src; - za->open_flags = flags; - if (flags & ZIP_RDONLY) { - za->flags |= ZIP_AFL_RDONLY; - za->ch_flags |= ZIP_AFL_RDONLY; - } - return za; -} - - -/* - * tests for file existence - */ -static exists_t -_zip_file_exists(zip_source_t *src, zip_error_t *error) -{ - struct zip_stat st; - - zip_stat_init(&st); - if (zip_source_stat(src, &st) != 0) { - zip_error_t *src_error = zip_source_error(src); - if (zip_error_code_zip(src_error) == ZIP_ER_READ && zip_error_code_system(src_error) == ENOENT) { - return EXISTS_NOT; - } - _zip_error_copy(error, src_error); - return EXISTS_ERROR; - } - - return (st.valid & ZIP_STAT_SIZE) && st.size == 0 ? EXISTS_EMPTY : EXISTS_NONEMPTY; -} - - -static zip_cdir_t * -_zip_find_central_dir(zip_t *za, zip_uint64_t len) -{ - zip_cdir_t *cdir, *cdirnew; - zip_uint8_t *match; - zip_int64_t buf_offset; - zip_uint64_t buflen; - zip_int64_t a; - zip_int64_t best; - zip_error_t error; - zip_buffer_t *buffer; - - if (len < EOCDLEN) { - zip_error_set(&za->error, ZIP_ER_NOZIP, 0); - return NULL; - } - - buflen = (len < CDBUFSIZE ? len : CDBUFSIZE); - if (zip_source_seek(za->src, -(zip_int64_t)buflen, SEEK_END) < 0) { - zip_error_t *src_error = zip_source_error(za->src); - if (zip_error_code_zip(src_error) != ZIP_ER_SEEK || zip_error_code_system(src_error) != EFBIG) { - /* seek before start of file on my machine */ - _zip_error_copy(&za->error, src_error); - return NULL; - } - } - if ((buf_offset = zip_source_tell(za->src)) < 0) { - _zip_error_set_from_source(&za->error, za->src); - return NULL; - } - - if ((buffer = _zip_buffer_new_from_source(za->src, buflen, NULL, &za->error)) == NULL) { - return NULL; - } - - best = -1; - cdir = NULL; - if (buflen >= CDBUFSIZE) { - /* EOCD64 locator is before EOCD, so leave place for it */ - _zip_buffer_set_offset(buffer, EOCD64LOCLEN); - } - zip_error_set(&error, ZIP_ER_NOZIP, 0); - - match = _zip_buffer_get(buffer, 0); - while ((match=_zip_memmem(match, _zip_buffer_left(buffer)-(EOCDLEN-4), (const unsigned char *)EOCD_MAGIC, 4)) != NULL) { - _zip_buffer_set_offset(buffer, (zip_uint64_t)(match - _zip_buffer_data(buffer))); - if ((cdirnew = _zip_read_cdir(za, buffer, (zip_uint64_t)buf_offset, &error)) != NULL) { - if (cdir) { - if (best <= 0) { - best = _zip_checkcons(za, cdir, &error); - } - - a = _zip_checkcons(za, cdirnew, &error); - if (best < a) { - _zip_cdir_free(cdir); - cdir = cdirnew; - best = a; - } - else { - _zip_cdir_free(cdirnew); - } - } - else { - cdir = cdirnew; - if (za->open_flags & ZIP_CHECKCONS) - best = _zip_checkcons(za, cdir, &error); - else { - best = 0; - } - } - cdirnew = NULL; - } - - match++; - _zip_buffer_set_offset(buffer, (zip_uint64_t)(match - _zip_buffer_data(buffer))); - } - - _zip_buffer_free(buffer); - - if (best < 0) { - _zip_error_copy(&za->error, &error); - _zip_cdir_free(cdir); - return NULL; - } - - return cdir; -} - - -static unsigned char * -_zip_memmem(const unsigned char *big, size_t biglen, const unsigned char *little, size_t littlelen) -{ - const unsigned char *p; - - if ((biglen < littlelen) || (littlelen == 0)) - return NULL; - p = big-1; - while ((p=(const unsigned char *) - memchr(p+1, little[0], (size_t)(big-(p+1))+(size_t)(biglen-littlelen)+1)) != NULL) { - if (memcmp(p+1, little+1, littlelen-1)==0) - return (unsigned char *)p; - } - - return NULL; -} - - -static zip_cdir_t * -_zip_read_eocd(zip_buffer_t *buffer, zip_uint64_t buf_offset, unsigned int flags, zip_error_t *error) -{ - zip_cdir_t *cd; - zip_uint64_t i, nentry, size, offset, eocd_offset; - - if (_zip_buffer_left(buffer) < EOCDLEN) { - zip_error_set(error, ZIP_ER_INCONS, 0); - return NULL; - } - - eocd_offset = _zip_buffer_offset(buffer); - - _zip_buffer_get(buffer, 4); /* magic already verified */ - - if (_zip_buffer_get_32(buffer) != 0) { - zip_error_set(error, ZIP_ER_MULTIDISK, 0); - return NULL; - } - - /* number of cdir-entries on this disk */ - i = _zip_buffer_get_16(buffer); - /* number of cdir-entries */ - nentry = _zip_buffer_get_16(buffer); - - if (nentry != i) { - zip_error_set(error, ZIP_ER_NOZIP, 0); - return NULL; - } - - size = _zip_buffer_get_32(buffer); - offset = _zip_buffer_get_32(buffer); - - if (offset+size < offset) { - zip_error_set(error, ZIP_ER_SEEK, EFBIG); - return NULL; - } - - if (offset+size > buf_offset + eocd_offset) { - /* cdir spans past EOCD record */ - zip_error_set(error, ZIP_ER_INCONS, 0); - return NULL; - } - - if ((flags & ZIP_CHECKCONS) && offset+size != buf_offset + eocd_offset) { - zip_error_set(error, ZIP_ER_INCONS, 0); - return NULL; - } - - if ((cd=_zip_cdir_new(nentry, error)) == NULL) - return NULL; - - cd->is_zip64 = false; - cd->size = size; - cd->offset = offset; - - return cd; -} - - -static zip_cdir_t * -_zip_read_eocd64(zip_source_t *src, zip_buffer_t *buffer, zip_uint64_t buf_offset, unsigned int flags, zip_error_t *error) -{ - zip_cdir_t *cd; - zip_uint64_t offset; - zip_uint8_t eocd[EOCD64LEN]; - zip_uint64_t eocd_offset; - zip_uint64_t size, nentry, i, eocdloc_offset; - bool free_buffer; - zip_uint32_t num_disks, num_disks64, eocd_disk, eocd_disk64; - - eocdloc_offset = _zip_buffer_offset(buffer); - - _zip_buffer_get(buffer, 4); /* magic already verified */ - - num_disks = _zip_buffer_get_16(buffer); - eocd_disk = _zip_buffer_get_16(buffer); - eocd_offset = _zip_buffer_get_64(buffer); - - if (eocd_offset > ZIP_INT64_MAX || eocd_offset + EOCD64LEN < eocd_offset) { - zip_error_set(error, ZIP_ER_SEEK, EFBIG); - return NULL; - } - - if (eocd_offset + EOCD64LEN > eocdloc_offset + buf_offset) { - zip_error_set(error, ZIP_ER_INCONS, 0); - return NULL; - } - - if (eocd_offset >= buf_offset && eocd_offset + EOCD64LEN <= buf_offset + _zip_buffer_size(buffer)) { - _zip_buffer_set_offset(buffer, eocd_offset - buf_offset); - free_buffer = false; - } - else { - if (zip_source_seek(src, (zip_int64_t)eocd_offset, SEEK_SET) < 0) { - _zip_error_set_from_source(error, src); - return NULL; - } - if ((buffer = _zip_buffer_new_from_source(src, EOCD64LEN, eocd, error)) == NULL) { - return NULL; - } - free_buffer = true; - } - - if (memcmp(_zip_buffer_get(buffer, 4), EOCD64_MAGIC, 4) != 0) { - zip_error_set(error, ZIP_ER_INCONS, 0); - if (free_buffer) { - _zip_buffer_free(buffer); - } - return NULL; - } - - size = _zip_buffer_get_64(buffer); - - if ((flags & ZIP_CHECKCONS) && size + eocd_offset + 12 != buf_offset + eocdloc_offset) { - zip_error_set(error, ZIP_ER_INCONS, 0); - if (free_buffer) { - _zip_buffer_free(buffer); - } - return NULL; - } - - _zip_buffer_get(buffer, 4); /* skip version made by/needed */ - - num_disks64 = _zip_buffer_get_32(buffer); - eocd_disk64 = _zip_buffer_get_32(buffer); - - /* if eocd values are 0xffff, we have to use eocd64 values. - otherwise, if the values are not the same, it's inconsistent; - in any case, if the value is not 0, we don't support it */ - if (num_disks == 0xffff) { - num_disks = num_disks64; - } - if (eocd_disk == 0xffff) { - eocd_disk = eocd_disk64; - } - if ((flags & ZIP_CHECKCONS) && (eocd_disk != eocd_disk64 || num_disks != num_disks64)) { - zip_error_set(error, ZIP_ER_INCONS, 0); - return NULL; - } - if (num_disks != 0 || eocd_disk != 0) { - zip_error_set(error, ZIP_ER_MULTIDISK, 0); - return NULL; - } - - nentry = _zip_buffer_get_64(buffer); - i = _zip_buffer_get_64(buffer); - - if (nentry != i) { - zip_error_set(error, ZIP_ER_MULTIDISK, 0); - if (free_buffer) { - _zip_buffer_free(buffer); - } - return NULL; - } - - size = _zip_buffer_get_64(buffer); - offset = _zip_buffer_get_64(buffer); - - if (!_zip_buffer_ok(buffer)) { - zip_error_set(error, ZIP_ER_INTERNAL, 0); - if (free_buffer) { - _zip_buffer_free(buffer); - } - return NULL; - } - - if (free_buffer) { - _zip_buffer_free(buffer); - } - - if (offset > ZIP_INT64_MAX || offset+size < offset) { - zip_error_set(error, ZIP_ER_SEEK, EFBIG); - return NULL; - } - if ((flags & ZIP_CHECKCONS) && offset+size != eocd_offset) { - zip_error_set(error, ZIP_ER_INCONS, 0); - return NULL; - } - - if ((cd=_zip_cdir_new(nentry, error)) == NULL) - return NULL; - - cd->is_zip64 = true; - cd->size = size; - cd->offset = offset; - - return cd; -} diff --git a/libzip-1.2.0/lib/zip_random_unix.c b/libzip-1.2.0/lib/zip_random_unix.c deleted file mode 100644 index 7a932ef6a..000000000 --- a/libzip-1.2.0/lib/zip_random_unix.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - zip_random_unix.c -- fill the user's buffer with random stuff (Unix version) - Copyright (C) 2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include "zipint.h" - -#include - -bool -zip_random(zip_uint8_t *buffer, zip_uint16_t length) -{ - int fd; - - if ((fd = open("/dev/urandom", O_RDONLY)) < 0) { - return false; - } - - if (read(fd, buffer, length) != length) { - close(fd); - return false; - } - - close(fd); - return true; -} diff --git a/libzip-1.2.0/lib/zip_random_win32.c b/libzip-1.2.0/lib/zip_random_win32.c deleted file mode 100644 index 967a54cbe..000000000 --- a/libzip-1.2.0/lib/zip_random_win32.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - zip_random_win32.c -- fill the user's buffer with random stuff (Windows version) - Copyright (C) 2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include "zipint.h" -#include "zipwin32.h" - -bool -zip_random(zip_uint8_t *buffer, zip_uint16_t length) -{ - HCRYPTPROV hprov; - if (!CryptAcquireContext(&hprov, NULL, NULL, PROV_RSA_AES, CRYPT_VERIFYCONTEXT | CRYPT_SILENT)) { - return false; - } - if (!CryptGenRandom(hprov, length, buffer)) { - return false; - } - if (!CryptReleaseContext(hprov, 0)) { - return false; - } - return true; -} diff --git a/libzip-1.2.0/lib/zip_rename.c b/libzip-1.2.0/lib/zip_rename.c deleted file mode 100644 index 14e101d79..000000000 --- a/libzip-1.2.0/lib/zip_rename.c +++ /dev/null @@ -1,45 +0,0 @@ -/* - zip_rename.c -- rename file in zip archive - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#define _ZIP_COMPILING_DEPRECATED -#include "zipint.h" - - -ZIP_EXTERN int -zip_rename(zip_t *za, zip_uint64_t idx, const char *name) -{ - return zip_file_rename(za, idx, name, 0); -} diff --git a/libzip-1.2.0/lib/zip_replace.c b/libzip-1.2.0/lib/zip_replace.c deleted file mode 100644 index eed019a09..000000000 --- a/libzip-1.2.0/lib/zip_replace.c +++ /dev/null @@ -1,43 +0,0 @@ -/* - zip_replace.c -- replace file via callback function - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#define _ZIP_COMPILING_DEPRECATED -#include "zipint.h" - - -ZIP_EXTERN int -zip_replace(zip_t *za, zip_uint64_t idx, zip_source_t *source) -{ - return zip_file_replace(za, idx, source, 0); -} diff --git a/libzip-1.2.0/lib/zip_set_archive_comment.c b/libzip-1.2.0/lib/zip_set_archive_comment.c deleted file mode 100644 index 9090eec95..000000000 --- a/libzip-1.2.0/lib/zip_set_archive_comment.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - zip_set_archive_comment.c -- set archive comment - Copyright (C) 2006-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" - - -ZIP_EXTERN int -zip_set_archive_comment(zip_t *za, const char *comment, zip_uint16_t len) -{ - zip_string_t *cstr; - - if (ZIP_IS_RDONLY(za)) { - zip_error_set(&za->error, ZIP_ER_RDONLY, 0); - return -1; - } - - if (len > 0 && comment == NULL) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (len > 0) { - if ((cstr=_zip_string_new((const zip_uint8_t *)comment, len, ZIP_FL_ENC_GUESS, &za->error)) == NULL) - return -1; - - if (_zip_guess_encoding(cstr, ZIP_ENCODING_UNKNOWN) == ZIP_ENCODING_CP437) { - _zip_string_free(cstr); - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - } - else - cstr = NULL; - - _zip_string_free(za->comment_changes); - za->comment_changes = NULL; - - if (((za->comment_orig && _zip_string_equal(za->comment_orig, cstr)) - || (za->comment_orig == NULL && cstr == NULL))) { - _zip_string_free(cstr); - za->comment_changed = 0; - } - else { - za->comment_changes = cstr; - za->comment_changed = 1; - } - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_set_archive_flag.c b/libzip-1.2.0/lib/zip_set_archive_flag.c deleted file mode 100644 index 2625b2e65..000000000 --- a/libzip-1.2.0/lib/zip_set_archive_flag.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - zip_get_archive_flag.c -- set archive global flag - Copyright (C) 2008-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN int -zip_set_archive_flag(zip_t *za, zip_flags_t flag, int value) -{ - unsigned int new_flags; - - if (value) - new_flags = za->ch_flags | flag; - else - new_flags = za->ch_flags & ~flag; - - if (new_flags == za->ch_flags) - return 0; - - if (ZIP_IS_RDONLY(za)) { - zip_error_set(&za->error, ZIP_ER_RDONLY, 0); - return -1; - } - - if ((flag & ZIP_AFL_RDONLY) && value - && (za->ch_flags & ZIP_AFL_RDONLY) == 0) { - if (_zip_changed(za, NULL)) { - zip_error_set(&za->error, ZIP_ER_CHANGED, 0); - return -1; - } - } - - za->ch_flags = new_flags; - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_set_default_password.c b/libzip-1.2.0/lib/zip_set_default_password.c deleted file mode 100644 index ff7e35a69..000000000 --- a/libzip-1.2.0/lib/zip_set_default_password.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - zip_set_default_password.c -- set default password for decryption - Copyright (C) 2009-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include - -#include "zipint.h" - - -ZIP_EXTERN int -zip_set_default_password(zip_t *za, const char *passwd) -{ - if (za == NULL) - return -1; - - free(za->default_password); - - if (passwd) { - if ((za->default_password=strdup(passwd)) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return -1; - } - } - else - za->default_password = NULL; - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_set_file_comment.c b/libzip-1.2.0/lib/zip_set_file_comment.c deleted file mode 100644 index d35669374..000000000 --- a/libzip-1.2.0/lib/zip_set_file_comment.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - zip_set_file_comment.c -- set comment for file in archive - Copyright (C) 2006-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#define _ZIP_COMPILING_DEPRECATED -#include "zipint.h" - - -ZIP_EXTERN int -zip_set_file_comment(zip_t *za, zip_uint64_t idx, const char *comment, int len) -{ - if (len < 0 || len > ZIP_UINT16_MAX) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - return zip_file_set_comment(za, idx, comment, (zip_uint16_t)len, 0); -} diff --git a/libzip-1.2.0/lib/zip_set_file_compression.c b/libzip-1.2.0/lib/zip_set_file_compression.c deleted file mode 100644 index 7bb0bf945..000000000 --- a/libzip-1.2.0/lib/zip_set_file_compression.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - zip_set_file_compression.c -- set compression for file in archive - Copyright (C) 2012-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN int -zip_set_file_compression(zip_t *za, zip_uint64_t idx, zip_int32_t method, zip_uint32_t flags) -{ - zip_entry_t *e; - zip_int32_t old_method; - - if (idx >= za->nentry) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (ZIP_IS_RDONLY(za)) { - zip_error_set(&za->error, ZIP_ER_RDONLY, 0); - return -1; - } - - if (method != ZIP_CM_DEFAULT && method != ZIP_CM_STORE && method != ZIP_CM_DEFLATE) { - zip_error_set(&za->error, ZIP_ER_COMPNOTSUPP, 0); - return -1; - } - - e = za->entry+idx; - - old_method = (e->orig == NULL ? ZIP_CM_DEFAULT : e->orig->comp_method); - - /* TODO: revisit this when flags are supported, since they may require a recompression */ - - if (method == old_method) { - if (e->changes) { - e->changes->changed &= ~ZIP_DIRENT_COMP_METHOD; - if (e->changes->changed == 0) { - _zip_dirent_free(e->changes); - e->changes = NULL; - } - } - } - else { - if (e->changes == NULL) { - if ((e->changes=_zip_dirent_clone(e->orig)) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return -1; - } - } - - e->changes->comp_method = method; - e->changes->changed |= ZIP_DIRENT_COMP_METHOD; - } - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_set_name.c b/libzip-1.2.0/lib/zip_set_name.c deleted file mode 100644 index 34b761546..000000000 --- a/libzip-1.2.0/lib/zip_set_name.c +++ /dev/null @@ -1,158 +0,0 @@ -/* - zip_set_name.c -- rename helper function - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include - -#include "zipint.h" - - -int -_zip_set_name(zip_t *za, zip_uint64_t idx, const char *name, zip_flags_t flags) -{ - zip_entry_t *e; - zip_string_t *str; - bool same_as_orig; - zip_int64_t i; - const zip_uint8_t *old_name, *new_name; - zip_string_t *old_str; - - if (idx >= za->nentry) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (ZIP_IS_RDONLY(za)) { - zip_error_set(&za->error, ZIP_ER_RDONLY, 0); - return -1; - } - - if (name && name[0] != '\0') { - /* TODO: check for string too long */ - if ((str=_zip_string_new((const zip_uint8_t *)name, (zip_uint16_t)strlen(name), flags, &za->error)) == NULL) - return -1; - if ((flags & ZIP_FL_ENCODING_ALL) == ZIP_FL_ENC_GUESS && _zip_guess_encoding(str, ZIP_ENCODING_UNKNOWN) == ZIP_ENCODING_UTF8_GUESSED) - str->encoding = ZIP_ENCODING_UTF8_KNOWN; - } - else - str = NULL; - - /* TODO: encoding flags needed for CP437? */ - if ((i=_zip_name_locate(za, name, 0, NULL)) >= 0 && (zip_uint64_t)i != idx) { - _zip_string_free(str); - zip_error_set(&za->error, ZIP_ER_EXISTS, 0); - return -1; - } - - /* no effective name change */ - if (i>=0 && (zip_uint64_t)i == idx) { - _zip_string_free(str); - return 0; - } - - e = za->entry+idx; - - if (e->orig) - same_as_orig = _zip_string_equal(e->orig->filename, str); - else - same_as_orig = false; - - if (!same_as_orig && e->changes == NULL) { - if ((e->changes=_zip_dirent_clone(e->orig)) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - _zip_string_free(str); - return -1; - } - } - - if ((new_name = _zip_string_get(same_as_orig ? e->orig->filename : str, NULL, 0, &za->error)) == NULL) { - _zip_string_free(str); - return -1; - } - - if (e->changes) { - old_str = e->changes->filename; - } - else if (e->orig) { - old_str = e->orig->filename; - } - else { - old_str = NULL; - } - - if (old_str) { - if ((old_name = _zip_string_get(old_str, NULL, 0, &za->error)) == NULL) { - _zip_string_free(str); - return -1; - } - } - else { - old_name = NULL; - } - - if (_zip_hash_add(za->names, new_name, idx, 0, &za->error) == false) { - _zip_string_free(str); - return -1; - } - if (old_name) { - _zip_hash_delete(za->names, old_name, NULL); - } - - if (same_as_orig) { - if (e->changes) { - if (e->changes->changed & ZIP_DIRENT_FILENAME) { - _zip_string_free(e->changes->filename); - e->changes->changed &= ~ZIP_DIRENT_FILENAME; - if (e->changes->changed == 0) { - _zip_dirent_free(e->changes); - e->changes = NULL; - } - else { - /* TODO: what if not cloned? can that happen? */ - e->changes->filename = e->orig->filename; - } - } - } - _zip_string_free(str); - } - else { - if (e->changes->changed & ZIP_DIRENT_FILENAME) { - _zip_string_free(e->changes->filename); - } - e->changes->changed |= ZIP_DIRENT_FILENAME; - e->changes->filename = str; - } - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_source_begin_write.c b/libzip-1.2.0/lib/zip_source_begin_write.c deleted file mode 100644 index 045933771..000000000 --- a/libzip-1.2.0/lib/zip_source_begin_write.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - zip_source_begin_write.c -- start a new file for writing - Copyright (C) 2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN int -zip_source_begin_write(zip_source_t *src) -{ - if (ZIP_SOURCE_IS_OPEN_WRITING(src)) { - zip_error_set(&src->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (_zip_source_call(src, NULL, 0, ZIP_SOURCE_BEGIN_WRITE) < 0) { - return -1; - } - - src->write_state = ZIP_SOURCE_WRITE_OPEN; - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_source_buffer.c b/libzip-1.2.0/lib/zip_source_buffer.c deleted file mode 100644 index f3f8ee0d5..000000000 --- a/libzip-1.2.0/lib/zip_source_buffer.c +++ /dev/null @@ -1,435 +0,0 @@ -/* - zip_source_buffer.c -- create zip data source from buffer - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include -#include - -#include "zipint.h" - -#ifndef WRITE_FRAGMENT_SIZE -#define WRITE_FRAGMENT_SIZE 64*1024 -#endif - -struct buffer { - zip_uint64_t fragment_size; /* size of each fragment */ - - zip_uint8_t **fragments; /* pointers to fragments */ - zip_uint64_t nfragments; /* number of allocated fragments */ - zip_uint64_t fragments_capacity; /* size of fragments (number of pointers) */ - zip_uint64_t size; /* size of data in bytes */ - zip_uint64_t offset; /* current offset */ - int free_data; -}; - -typedef struct buffer buffer_t; - -struct read_data { - zip_error_t error; - time_t mtime; - buffer_t *in; - buffer_t *out; -}; - -static void buffer_free(buffer_t *buffer); -static buffer_t *buffer_new(zip_uint64_t fragment_size); -static buffer_t *buffer_new_read(const void *data, zip_uint64_t length, int free_data); -static buffer_t *buffer_new_write(zip_uint64_t fragment_size); -static zip_int64_t buffer_read(buffer_t *buffer, zip_uint8_t *data, zip_uint64_t length); -static int buffer_seek(buffer_t *buffer, void *data, zip_uint64_t len, zip_error_t *error); -static zip_int64_t buffer_write(buffer_t *buffer, const zip_uint8_t *data, zip_uint64_t length, zip_error_t *); - -static zip_int64_t read_data(void *, void *, zip_uint64_t, zip_source_cmd_t); - - -ZIP_EXTERN zip_source_t * -zip_source_buffer(zip_t *za, const void *data, zip_uint64_t len, int freep) -{ - if (za == NULL) - return NULL; - - return zip_source_buffer_create(data, len, freep, &za->error); -} - - -ZIP_EXTERN zip_source_t * -zip_source_buffer_create(const void *data, zip_uint64_t len, int freep, zip_error_t *error) -{ - struct read_data *ctx; - zip_source_t *zs; - - if (data == NULL && len > 0) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return NULL; - } - - if ((ctx=(struct read_data *)malloc(sizeof(*ctx))) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return NULL; - } - - if ((ctx->in = buffer_new_read(data, len, freep)) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - free(ctx); - return NULL; - } - - ctx->out = NULL; - ctx->mtime = time(NULL); - zip_error_init(&ctx->error); - - if ((zs=zip_source_function_create(read_data, ctx, error)) == NULL) { - buffer_free(ctx->in); - free(ctx); - return NULL; - } - - return zs; -} - - -static zip_int64_t -read_data(void *state, void *data, zip_uint64_t len, zip_source_cmd_t cmd) -{ - struct read_data *ctx = (struct read_data *)state; - - switch (cmd) { - case ZIP_SOURCE_BEGIN_WRITE: - if ((ctx->out = buffer_new_write(WRITE_FRAGMENT_SIZE)) == NULL) { - zip_error_set(&ctx->error, ZIP_ER_MEMORY, 0); - return -1; - } - return 0; - - case ZIP_SOURCE_CLOSE: - return 0; - - case ZIP_SOURCE_COMMIT_WRITE: - buffer_free(ctx->in); - ctx->in = ctx->out; - ctx->out = NULL; - return 0; - - case ZIP_SOURCE_ERROR: - return zip_error_to_data(&ctx->error, data, len); - - case ZIP_SOURCE_FREE: - buffer_free(ctx->in); - buffer_free(ctx->out); - free(ctx); - return 0; - - case ZIP_SOURCE_OPEN: - ctx->in->offset = 0; - return 0; - - case ZIP_SOURCE_READ: - if (len > ZIP_INT64_MAX) { - zip_error_set(&ctx->error, ZIP_ER_INVAL, 0); - return -1; - } - return buffer_read(ctx->in, data, len); - - case ZIP_SOURCE_REMOVE: - { - buffer_t *empty = buffer_new_read(NULL, 0, 0); - if (empty == 0) { - zip_error_set(&ctx->error, ZIP_ER_MEMORY, 0); - return -1; - } - - buffer_free(ctx->in); - ctx->in = empty; - return 0; - } - - case ZIP_SOURCE_ROLLBACK_WRITE: - buffer_free(ctx->out); - ctx->out = NULL; - return 0; - - case ZIP_SOURCE_SEEK: - return buffer_seek(ctx->in, data, len, &ctx->error); - - case ZIP_SOURCE_SEEK_WRITE: - return buffer_seek(ctx->out, data, len, &ctx->error); - - case ZIP_SOURCE_STAT: - { - zip_stat_t *st; - - if (len < sizeof(*st)) { - zip_error_set(&ctx->error, ZIP_ER_INVAL, 0); - return -1; - } - - st = (zip_stat_t *)data; - - zip_stat_init(st); - st->mtime = ctx->mtime; - st->size = ctx->in->size; - st->comp_size = st->size; - st->comp_method = ZIP_CM_STORE; - st->encryption_method = ZIP_EM_NONE; - st->valid = ZIP_STAT_MTIME|ZIP_STAT_SIZE|ZIP_STAT_COMP_SIZE|ZIP_STAT_COMP_METHOD|ZIP_STAT_ENCRYPTION_METHOD; - - return sizeof(*st); - } - - case ZIP_SOURCE_SUPPORTS: - return zip_source_make_command_bitmap(ZIP_SOURCE_OPEN, ZIP_SOURCE_READ, ZIP_SOURCE_CLOSE, ZIP_SOURCE_STAT, ZIP_SOURCE_ERROR, ZIP_SOURCE_FREE, ZIP_SOURCE_SEEK, ZIP_SOURCE_TELL, ZIP_SOURCE_BEGIN_WRITE, ZIP_SOURCE_COMMIT_WRITE, ZIP_SOURCE_REMOVE, ZIP_SOURCE_ROLLBACK_WRITE, ZIP_SOURCE_SEEK_WRITE, ZIP_SOURCE_TELL_WRITE, ZIP_SOURCE_WRITE, -1); - - case ZIP_SOURCE_TELL: - if (ctx->in->offset > ZIP_INT64_MAX) { - zip_error_set(&ctx->error, ZIP_ER_TELL, EOVERFLOW); - return -1; - } - return (zip_int64_t)ctx->in->offset; - - - case ZIP_SOURCE_TELL_WRITE: - if (ctx->out->offset > ZIP_INT64_MAX) { - zip_error_set(&ctx->error, ZIP_ER_TELL, EOVERFLOW); - return -1; - } - return (zip_int64_t)ctx->out->offset; - - case ZIP_SOURCE_WRITE: - if (len > ZIP_INT64_MAX) { - zip_error_set(&ctx->error, ZIP_ER_INVAL, 0); - return -1; - } - return buffer_write(ctx->out, data, len, &ctx->error); - - default: - zip_error_set(&ctx->error, ZIP_ER_OPNOTSUPP, 0); - return -1; - } -} - - -static void -buffer_free(buffer_t *buffer) -{ - if (buffer == NULL) { - return; - } - - if (buffer->free_data) { - zip_uint64_t i; - - for (i=0; i < buffer->nfragments; i++) { - free(buffer->fragments[i]); - } - } - free(buffer->fragments); - free(buffer); -} - - -static buffer_t * -buffer_new(zip_uint64_t fragment_size) -{ - buffer_t *buffer; - - if ((buffer = malloc(sizeof(*buffer))) == NULL) { - return NULL; - } - - buffer->fragment_size = fragment_size; - buffer->offset = 0; - buffer->free_data = 0; - buffer->nfragments = 0; - buffer->fragments_capacity = 0; - buffer->fragments = NULL; - buffer->size = 0; - - return buffer; -} - - -static buffer_t * -buffer_new_read(const void *data, zip_uint64_t length, int free_data) -{ - buffer_t *buffer; - - if ((buffer = buffer_new(length)) == NULL) { - return NULL; - } - - buffer->size = length; - - if (length > 0) { - if ((buffer->fragments = malloc(sizeof(*(buffer->fragments)))) == NULL) { - buffer_free(buffer); - return NULL; - } - buffer->fragments_capacity = 1; - - buffer->nfragments = 1; - buffer->fragments[0] = (zip_uint8_t *)data; - buffer->free_data = free_data; - } - - return buffer; -} - - -static buffer_t * -buffer_new_write(zip_uint64_t fragment_size) -{ - buffer_t *buffer; - - if ((buffer = buffer_new(fragment_size)) == NULL) { - return NULL; - } - - if ((buffer->fragments = malloc(sizeof(*(buffer->fragments)))) == NULL) { - buffer_free(buffer); - return NULL; - } - buffer->fragments_capacity = 1; - buffer->nfragments = 0; - buffer->free_data = 1; - - return buffer; -} - - -static zip_int64_t -buffer_read(buffer_t *buffer, zip_uint8_t *data, zip_uint64_t length) -{ - zip_uint64_t n, i, fragment_offset; - - length = ZIP_MIN(length, buffer->size - buffer->offset); - - if (length == 0) { - return 0; - } - if (length > ZIP_INT64_MAX) { - return -1; - } - - i = buffer->offset / buffer->fragment_size; - fragment_offset = buffer->offset % buffer->fragment_size; - n = 0; - while (n < length) { - zip_uint64_t left = ZIP_MIN(length - n, buffer->fragment_size - fragment_offset); - - memcpy(data + n, buffer->fragments[i] + fragment_offset, left); - - n += left; - i++; - fragment_offset = 0; - } - - buffer->offset += n; - return (zip_int64_t)n; -} - - -static int -buffer_seek(buffer_t *buffer, void *data, zip_uint64_t len, zip_error_t *error) -{ - zip_int64_t new_offset = zip_source_seek_compute_offset(buffer->offset, buffer->size, data, len, error); - - if (new_offset < 0) { - return -1; - } - - buffer->offset = (zip_uint64_t)new_offset; - return 0; -} - - -static zip_int64_t -buffer_write(buffer_t *buffer, const zip_uint8_t *data, zip_uint64_t length, zip_error_t *error) -{ - zip_uint64_t n, i, fragment_offset; - zip_uint8_t **fragments; - - if (buffer->offset + length + buffer->fragment_size - 1 < length) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return -1; - } - - /* grow buffer if needed */ - if (buffer->offset + length > buffer->nfragments * buffer->fragment_size) { - zip_uint64_t needed_fragments = (buffer->offset + length + buffer->fragment_size - 1) / buffer->fragment_size; - - if (needed_fragments > buffer->fragments_capacity) { - zip_uint64_t new_capacity = buffer->fragments_capacity; - - while (new_capacity < needed_fragments) { - new_capacity *= 2; - } - - fragments = realloc(buffer->fragments, new_capacity * sizeof(*fragments)); - - if (fragments == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return -1; - } - - buffer->fragments = fragments; - buffer->fragments_capacity = new_capacity; - } - - while (buffer->nfragments < needed_fragments) { - if ((buffer->fragments[buffer->nfragments] = malloc(buffer->fragment_size)) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return -1; - } - buffer->nfragments++; - } - } - - i = buffer->offset / buffer->fragment_size; - fragment_offset = buffer->offset % buffer->fragment_size; - n = 0; - while (n < length) { - zip_uint64_t left = ZIP_MIN(length - n, buffer->fragment_size - fragment_offset); - - memcpy(buffer->fragments[i] + fragment_offset, data + n, left); - - n += left; - i++; - fragment_offset = 0; - } - - buffer->offset += n; - if (buffer->offset > buffer->size) { - buffer->size = buffer->offset; - } - - return (zip_int64_t)n; -} diff --git a/libzip-1.2.0/lib/zip_source_call.c b/libzip-1.2.0/lib/zip_source_call.c deleted file mode 100644 index 21f28bc42..000000000 --- a/libzip-1.2.0/lib/zip_source_call.c +++ /dev/null @@ -1,69 +0,0 @@ -/* - zip_source_call.c -- invoke callback command on zip_source - Copyright (C) 2009-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - -#include "zipint.h" - - -zip_int64_t -_zip_source_call(zip_source_t *src, void *data, zip_uint64_t length, zip_source_cmd_t command) -{ - zip_int64_t ret; - - if ((src->supports & ZIP_SOURCE_MAKE_COMMAND_BITMASK(command)) == 0) { - zip_error_set(&src->error, ZIP_ER_OPNOTSUPP, 0); - return -1; - } - - if (src->src == NULL) { - ret = src->cb.f(src->ud, data, length, command); - } - else { - ret = src->cb.l(src->src, src->ud, data, length, command); - } - - if (ret < 0) { - if (command != ZIP_SOURCE_ERROR && command != ZIP_SOURCE_SUPPORTS) { - int e[2]; - - if (_zip_source_call(src, e, sizeof(e), ZIP_SOURCE_ERROR) < 0) { - zip_error_set(&src->error, ZIP_ER_INTERNAL, 0); - } - else { - zip_error_set(&src->error, e[0], e[1]); - } - } - } - - return ret; -} diff --git a/libzip-1.2.0/lib/zip_source_close.c b/libzip-1.2.0/lib/zip_source_close.c deleted file mode 100644 index 36bc84235..000000000 --- a/libzip-1.2.0/lib/zip_source_close.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - zip_source_close.c -- close zip_source (stop reading) - Copyright (C) 2009-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -int -zip_source_close(zip_source_t *src) -{ - if (!ZIP_SOURCE_IS_OPEN_READING(src)) { - zip_error_set(&src->error, ZIP_ER_INVAL, 0); - return -1; - } - - src->open_count--; - if (src->open_count == 0) { - _zip_source_call(src, NULL, 0, ZIP_SOURCE_CLOSE); - - if (ZIP_SOURCE_IS_LAYERED(src)) { - if (zip_source_close(src->src) < 0) { - zip_error_set(&src->error, ZIP_ER_INTERNAL, 0); - } - } - } - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_source_commit_write.c b/libzip-1.2.0/lib/zip_source_commit_write.c deleted file mode 100644 index ba77abc34..000000000 --- a/libzip-1.2.0/lib/zip_source_commit_write.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - zip_source_commit_write.c -- commit changes to file - Copyright (C) 2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN int -zip_source_commit_write(zip_source_t *src) -{ - if (!ZIP_SOURCE_IS_OPEN_WRITING(src)) { - zip_error_set(&src->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (src->open_count > 1) { - zip_error_set(&src->error, ZIP_ER_INUSE, 0); - return -1; - } - else if (ZIP_SOURCE_IS_OPEN_READING(src)) { - if (zip_source_close(src) < 0) { - return -1; - } - } - - if (_zip_source_call(src, NULL, 0, ZIP_SOURCE_COMMIT_WRITE) < 0) { - src->write_state = ZIP_SOURCE_WRITE_FAILED; - return -1; - } - - src->write_state = ZIP_SOURCE_WRITE_CLOSED; - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_source_crc.c b/libzip-1.2.0/lib/zip_source_crc.c deleted file mode 100644 index 01f526c64..000000000 --- a/libzip-1.2.0/lib/zip_source_crc.c +++ /dev/null @@ -1,202 +0,0 @@ -/* - zip_source_crc.c -- pass-through source that calculates CRC32 and size - Copyright (C) 2009-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include -#include - -#include "zipint.h" - -struct crc_context { - int validate; /* whether to check CRC on EOF and return error on mismatch */ - int crc_complete; /* whether CRC was computed for complete file */ - zip_error_t error; - zip_uint64_t size; - zip_uint64_t position; /* current reading position */ - zip_uint64_t crc_position; /* how far we've computed the CRC */ - zip_uint32_t crc; -}; - -static zip_int64_t crc_read(zip_source_t *, void *, void *, zip_uint64_t, zip_source_cmd_t); - - -zip_source_t * -zip_source_crc(zip_t *za, zip_source_t *src, int validate) -{ - struct crc_context *ctx; - - if (src == NULL) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return NULL; - } - - if ((ctx=(struct crc_context *)malloc(sizeof(*ctx))) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return NULL; - } - - zip_error_init(&ctx->error); - ctx->validate = validate; - ctx->crc_complete = 0; - ctx->crc_position = 0; - ctx->crc = (zip_uint32_t)crc32(0, NULL, 0); - ctx->size = 0; - - return zip_source_layered(za, src, crc_read, ctx); -} - - -static zip_int64_t -crc_read(zip_source_t *src, void *_ctx, void *data, zip_uint64_t len, zip_source_cmd_t cmd) -{ - struct crc_context *ctx; - zip_int64_t n; - - ctx = (struct crc_context *)_ctx; - - switch (cmd) { - case ZIP_SOURCE_OPEN: - ctx->position = 0; - return 0; - - case ZIP_SOURCE_READ: - if ((n = zip_source_read(src, data, len)) < 0) { - _zip_error_set_from_source(&ctx->error, src); - return -1; - } - - if (n == 0) { - if (ctx->crc_position == ctx->position) { - ctx->crc_complete = 1; - ctx->size = ctx->position; - - if (ctx->validate) { - struct zip_stat st; - - if (zip_source_stat(src, &st) < 0) { - _zip_error_set_from_source(&ctx->error, src); - return -1; - } - - if ((st.valid & ZIP_STAT_CRC) && st.crc != ctx->crc) { - zip_error_set(&ctx->error, ZIP_ER_CRC, 0); - return -1; - } - if ((st.valid & ZIP_STAT_SIZE) && st.size != ctx->size) { - zip_error_set(&ctx->error, ZIP_ER_INCONS, 0); - return -1; - } - } - } - } - else if (!ctx->crc_complete && ctx->position <= ctx->crc_position) { - zip_uint64_t i, nn; - - for (i = ctx->crc_position - ctx->position; i < (zip_uint64_t)n; i += nn) { - nn = ZIP_MIN(UINT_MAX, (zip_uint64_t)n-i); - - ctx->crc = (zip_uint32_t)crc32(ctx->crc, (const Bytef *)data+i, (uInt)nn); - ctx->crc_position += nn; - } - } - ctx->position += (zip_uint64_t)n; - return n; - - case ZIP_SOURCE_CLOSE: - return 0; - - case ZIP_SOURCE_STAT: - { - zip_stat_t *st; - - st = (zip_stat_t *)data; - - if (ctx->crc_complete) { - /* TODO: Set comp_size, comp_method, encryption_method? - After all, this only works for uncompressed data. */ - st->size = ctx->size; - st->crc = ctx->crc; - st->comp_size = ctx->size; - st->comp_method = ZIP_CM_STORE; - st->encryption_method = ZIP_EM_NONE; - st->valid |= ZIP_STAT_SIZE|ZIP_STAT_CRC|ZIP_STAT_COMP_SIZE|ZIP_STAT_COMP_METHOD|ZIP_STAT_ENCRYPTION_METHOD;; - } - return 0; - } - - case ZIP_SOURCE_ERROR: - return zip_error_to_data(&ctx->error, data, len); - - case ZIP_SOURCE_FREE: - free(ctx); - return 0; - - case ZIP_SOURCE_SUPPORTS: - { - zip_int64_t mask = zip_source_supports(src); - - if (mask < 0) { - _zip_error_set_from_source(&ctx->error, src); - return -1; - } - - return mask & ~zip_source_make_command_bitmap(ZIP_SOURCE_BEGIN_WRITE, ZIP_SOURCE_COMMIT_WRITE, ZIP_SOURCE_ROLLBACK_WRITE, ZIP_SOURCE_SEEK_WRITE, ZIP_SOURCE_TELL_WRITE, ZIP_SOURCE_REMOVE, -1); - } - - case ZIP_SOURCE_SEEK: - { - zip_int64_t new_position; - zip_source_args_seek_t *args = ZIP_SOURCE_GET_ARGS(zip_source_args_seek_t, data, len, &ctx->error); - - if (args == NULL) { - return -1; - } - if (zip_source_seek(src, args->offset, args->whence) < 0 || (new_position = zip_source_tell(src)) < 0) { - _zip_error_set_from_source(&ctx->error, src); - return -1; - } - - ctx->position = (zip_uint64_t)new_position; - - return 0; - } - - case ZIP_SOURCE_TELL: - return (zip_int64_t)ctx->position; - - default: - zip_error_set(&ctx->error, ZIP_ER_OPNOTSUPP, 0); - return -1; - } -} diff --git a/libzip-1.2.0/lib/zip_source_deflate.c b/libzip-1.2.0/lib/zip_source_deflate.c deleted file mode 100644 index 2574ad017..000000000 --- a/libzip-1.2.0/lib/zip_source_deflate.c +++ /dev/null @@ -1,415 +0,0 @@ -/* - zip_source_deflate.c -- deflate (de)compressoin routines - Copyright (C) 2009-2015 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include -#include -#include - -#include "zipint.h" - -struct deflate { - zip_error_t error; - - bool eof; - bool can_store; - bool is_stored; - int mem_level; - zip_uint64_t size; - zip_uint8_t buffer[BUFSIZE]; - z_stream zstr; -}; - -static zip_int64_t compress_read(zip_source_t *, struct deflate *, void *, zip_uint64_t); -static zip_int64_t decompress_read(zip_source_t *, struct deflate *, void *, zip_uint64_t); -static zip_int64_t deflate_compress(zip_source_t *, void *, void *, zip_uint64_t, zip_source_cmd_t); -static zip_int64_t deflate_decompress(zip_source_t *, void *, void *, zip_uint64_t, zip_source_cmd_t); -static void deflate_free(struct deflate *); - - -zip_source_t * -zip_source_deflate(zip_t *za, zip_source_t *src, zip_int32_t cm, int flags) -{ - struct deflate *ctx; - zip_source_t *s2; - - if (src == NULL || (cm != ZIP_CM_DEFLATE && !ZIP_CM_IS_DEFAULT(cm))) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return NULL; - } - - if ((ctx=(struct deflate *)malloc(sizeof(*ctx))) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return NULL; - } - - zip_error_init(&ctx->error); - ctx->eof = false; - ctx->is_stored = false; - ctx->can_store = ZIP_CM_IS_DEFAULT(cm); - if (flags & ZIP_CODEC_ENCODE) { - ctx->mem_level = MAX_MEM_LEVEL; - } - - if ((s2=zip_source_layered(za, src, - ((flags & ZIP_CODEC_ENCODE) - ? deflate_compress : deflate_decompress), - ctx)) == NULL) { - deflate_free(ctx); - return NULL; - } - - return s2; -} - - -static zip_int64_t -compress_read(zip_source_t *src, struct deflate *ctx, void *data, zip_uint64_t len) -{ - int end, ret; - zip_int64_t n; - zip_uint64_t out_offset; - uInt out_len; - - if (zip_error_code_zip(&ctx->error) != ZIP_ER_OK) - return -1; - - if (len == 0 || ctx->is_stored) { - return 0; - } - - out_offset = 0; - out_len = (uInt)ZIP_MIN(UINT_MAX, len); - ctx->zstr.next_out = (Bytef *)data; - ctx->zstr.avail_out = out_len; - - end = 0; - while (!end) { - ret = deflate(&ctx->zstr, ctx->eof ? Z_FINISH : 0); - - switch (ret) { - case Z_STREAM_END: - if (ctx->can_store && ctx->zstr.total_in <= ctx->zstr.total_out) { - ctx->is_stored = true; - ctx->size = ctx->zstr.total_in; - memcpy(data, ctx->buffer, ctx->size); - return (zip_int64_t)ctx->size; - } - /* fallthrough */ - case Z_OK: - /* all ok */ - - if (ctx->zstr.avail_out == 0) { - out_offset += out_len; - if (out_offset < len) { - out_len = (uInt)ZIP_MIN(UINT_MAX, len-out_offset); - ctx->zstr.next_out = (Bytef *)data+out_offset; - ctx->zstr.avail_out = out_len; - } - else { - ctx->can_store = false; - end = 1; - } - } - else if (ctx->eof && ctx->zstr.avail_in == 0) - end = 1; - break; - - case Z_BUF_ERROR: - if (ctx->zstr.avail_in == 0) { - if (ctx->eof) { - end = 1; - break; - } - - if ((n=zip_source_read(src, ctx->buffer, sizeof(ctx->buffer))) < 0) { - _zip_error_set_from_source(&ctx->error, src); - end = 1; - break; - } - else if (n == 0) { - ctx->eof = true; - /* TODO: check against stat of src? */ - ctx->size = ctx->zstr.total_in; - } - else { - if (ctx->zstr.total_in > 0) { - /* we overwrote a previously filled ctx->buffer */ - ctx->can_store = false; - } - ctx->zstr.next_in = (Bytef *)ctx->buffer; - ctx->zstr.avail_in = (uInt)n; - } - continue; - } - /* fallthrough */ - case Z_NEED_DICT: - case Z_DATA_ERROR: - case Z_STREAM_ERROR: - case Z_MEM_ERROR: - zip_error_set(&ctx->error, ZIP_ER_ZLIB, ret); - - end = 1; - break; - } - } - - if (ctx->zstr.avail_out < len) { - ctx->can_store = false; - return (zip_int64_t)(len - ctx->zstr.avail_out); - } - - return (zip_error_code_zip(&ctx->error) == ZIP_ER_OK) ? 0 : -1; -} - - -static zip_int64_t -decompress_read(zip_source_t *src, struct deflate *ctx, void *data, zip_uint64_t len) -{ - int end, ret; - zip_int64_t n; - zip_uint64_t out_offset; - uInt out_len; - - if (zip_error_code_zip(&ctx->error) != ZIP_ER_OK) - return -1; - - if (len == 0) - return 0; - - out_offset = 0; - out_len = (uInt)ZIP_MIN(UINT_MAX, len); - ctx->zstr.next_out = (Bytef *)data; - ctx->zstr.avail_out = out_len; - - end = 0; - while (!end) { - ret = inflate(&ctx->zstr, Z_SYNC_FLUSH); - - switch (ret) { - case Z_OK: - if (ctx->zstr.avail_out == 0) { - out_offset += out_len; - if (out_offset < len) { - out_len = (uInt)ZIP_MIN(UINT_MAX, len-out_offset); - ctx->zstr.next_out = (Bytef *)data+out_offset; - ctx->zstr.avail_out = out_len; - } - else { - end = 1; - } - } - break; - - case Z_STREAM_END: - ctx->eof = 1; - end = 1; - break; - - case Z_BUF_ERROR: - if (ctx->zstr.avail_in == 0) { - if (ctx->eof) { - end = 1; - break; - } - - if ((n=zip_source_read(src, ctx->buffer, sizeof(ctx->buffer))) < 0) { - _zip_error_set_from_source(&ctx->error, src); - end = 1; - break; - } - else if (n == 0) { - ctx->eof = 1; - } - else { - ctx->zstr.next_in = (Bytef *)ctx->buffer; - ctx->zstr.avail_in = (uInt)n; - } - continue; - } - /* fallthrough */ - case Z_NEED_DICT: - case Z_DATA_ERROR: - case Z_STREAM_ERROR: - case Z_MEM_ERROR: - zip_error_set(&ctx->error, ZIP_ER_ZLIB, ret); - end = 1; - break; - } - } - - if (ctx->zstr.avail_out < len) - return (zip_int64_t)(len - ctx->zstr.avail_out); - - return (zip_error_code_zip(&ctx->error) == ZIP_ER_OK) ? 0 : -1; -} - - -static zip_int64_t -deflate_compress(zip_source_t *src, void *ud, void *data, zip_uint64_t len, zip_source_cmd_t cmd) -{ - struct deflate *ctx; - int ret; - - ctx = (struct deflate *)ud; - - switch (cmd) { - case ZIP_SOURCE_OPEN: - ctx->zstr.zalloc = Z_NULL; - ctx->zstr.zfree = Z_NULL; - ctx->zstr.opaque = NULL; - ctx->zstr.avail_in = 0; - ctx->zstr.next_in = NULL; - ctx->zstr.avail_out = 0; - ctx->zstr.next_out = NULL; - - /* negative value to tell zlib not to write a header */ - if ((ret=deflateInit2(&ctx->zstr, Z_BEST_COMPRESSION, Z_DEFLATED, -MAX_WBITS, ctx->mem_level, Z_DEFAULT_STRATEGY)) != Z_OK) { - zip_error_set(&ctx->error, ZIP_ER_ZLIB, ret); - return -1; - } - - return 0; - - case ZIP_SOURCE_READ: - return compress_read(src, ctx, data, len); - - case ZIP_SOURCE_CLOSE: - deflateEnd(&ctx->zstr); - return 0; - - case ZIP_SOURCE_STAT: - { - zip_stat_t *st; - - st = (zip_stat_t *)data; - - st->comp_method = ctx->is_stored ? ZIP_CM_STORE : ZIP_CM_DEFLATE; - st->valid |= ZIP_STAT_COMP_METHOD; - if (ctx->eof) { - st->comp_size = ctx->size; - st->valid |= ZIP_STAT_COMP_SIZE; - } - else - st->valid &= ~ZIP_STAT_COMP_SIZE; - } - return 0; - - case ZIP_SOURCE_ERROR: - return zip_error_to_data(&ctx->error, data, len); - - case ZIP_SOURCE_FREE: - deflate_free(ctx); - return 0; - - case ZIP_SOURCE_SUPPORTS: - return ZIP_SOURCE_SUPPORTS_READABLE; - - default: - zip_error_set(&ctx->error, ZIP_ER_INTERNAL, 0); - return -1; - } -} - - -static zip_int64_t -deflate_decompress(zip_source_t *src, void *ud, void *data, - zip_uint64_t len, zip_source_cmd_t cmd) -{ - struct deflate *ctx; - zip_int64_t n; - int ret; - - ctx = (struct deflate *)ud; - - switch (cmd) { - case ZIP_SOURCE_OPEN: - if ((n=zip_source_read(src, ctx->buffer, sizeof(ctx->buffer))) < 0) { - _zip_error_set_from_source(&ctx->error, src); - return -1; - } - - ctx->zstr.zalloc = Z_NULL; - ctx->zstr.zfree = Z_NULL; - ctx->zstr.opaque = NULL; - ctx->zstr.next_in = (Bytef *)ctx->buffer; - ctx->zstr.avail_in = (uInt)n; - - /* negative value to tell zlib that there is no header */ - if ((ret=inflateInit2(&ctx->zstr, -MAX_WBITS)) != Z_OK) { - zip_error_set(&ctx->error, ZIP_ER_ZLIB, ret); - return -1; - } - return 0; - - case ZIP_SOURCE_READ: - return decompress_read(src, ctx, data, len); - - case ZIP_SOURCE_CLOSE: - inflateEnd(&ctx->zstr); - return 0; - - case ZIP_SOURCE_STAT: - { - zip_stat_t *st; - - st = (zip_stat_t *)data; - - st->comp_method = ZIP_CM_STORE; - if (st->comp_size > 0 && st->size > 0) - st->comp_size = st->size; - - return 0; - } - - case ZIP_SOURCE_ERROR: - return zip_error_to_data(&ctx->error, data, len); - - case ZIP_SOURCE_FREE: - free(ctx); - return 0; - - case ZIP_SOURCE_SUPPORTS: - return zip_source_make_command_bitmap(ZIP_SOURCE_OPEN, ZIP_SOURCE_READ, ZIP_SOURCE_CLOSE, ZIP_SOURCE_STAT, ZIP_SOURCE_ERROR, ZIP_SOURCE_FREE, -1); - - default: - zip_error_set(&ctx->error, ZIP_ER_OPNOTSUPP, 0); - return -1; - } -} - - -static void -deflate_free(struct deflate *ctx) -{ - free(ctx); -} diff --git a/libzip-1.2.0/lib/zip_source_error.c b/libzip-1.2.0/lib/zip_source_error.c deleted file mode 100644 index 91e2dd644..000000000 --- a/libzip-1.2.0/lib/zip_source_error.c +++ /dev/null @@ -1,48 +0,0 @@ -/* - zip_source_error.c -- get last error from zip_source - Copyright (C) 2009-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -zip_error_t * -zip_source_error(zip_source_t *src) -{ - return &src->error; -} - -bool -_zip_source_had_error(zip_source_t *src) -{ - return zip_source_error(src)->zip_err != ZIP_ER_OK; -} diff --git a/libzip-1.2.0/lib/zip_source_file.c b/libzip-1.2.0/lib/zip_source_file.c deleted file mode 100644 index 6a10c0105..000000000 --- a/libzip-1.2.0/lib/zip_source_file.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - zip_source_file.c -- create data source from file - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" - -#ifdef _WIN32 -#error This file is incompatible with Windows, use zip_source_win32utf8.c instead. -#error Something probably went wrong with configure/cmake. -#endif - -ZIP_EXTERN zip_source_t * -zip_source_file(zip_t *za, const char *fname, zip_uint64_t start, zip_int64_t len) -{ - if (za == NULL) - return NULL; - - return zip_source_file_create(fname, start, len, &za->error); -} - - -ZIP_EXTERN zip_source_t * -zip_source_file_create(const char *fname, zip_uint64_t start, zip_int64_t length, zip_error_t *error) -{ - if (fname == NULL || length < -1) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return NULL; - } - - return _zip_source_file_or_p(fname, NULL, start, length, NULL, error); -} diff --git a/libzip-1.2.0/lib/zip_source_filep.c b/libzip-1.2.0/lib/zip_source_filep.c deleted file mode 100644 index a8a271a80..000000000 --- a/libzip-1.2.0/lib/zip_source_filep.c +++ /dev/null @@ -1,527 +0,0 @@ -/* - zip_source_filep.c -- create data source from FILE * - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include -#include -#include -#include - -#include "zipint.h" - -#ifdef HAVE_UNISTD_H -#include -#endif - -#ifdef _WIN32 -/* WIN32 needs for _O_BINARY */ -#include -#endif - -/* Windows sys/types.h does not provide these */ -#ifndef S_ISREG -#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) -#endif -#if defined(S_IXUSR) && defined(S_IRWXG) && defined(S_IRWXO) -#define _SAFE_MASK (S_IXUSR | S_IRWXG | S_IRWXO) -#elif defined(_S_IWRITE) -#define _SAFE_MASK (_S_IWRITE) -#else -#error do not know safe values for umask, please report this -#endif - -#ifdef _MSC_VER -/* MSVC doesn't have mode_t */ -typedef int mode_t; -#endif - -struct read_file { - zip_error_t error; /* last error information */ - zip_int64_t supports; - - /* reading */ - char *fname; /* name of file to read from */ - FILE *f; /* file to read from */ - struct zip_stat st; /* stat information passed in */ - zip_error_t stat_error; /* error returned for stat */ - zip_uint64_t start; /* start offset of data to read */ - zip_uint64_t end; /* end offset of data to read relative to start, 0 for up to EOF */ - zip_uint64_t current; /* current offset relative to start (0 is beginning of part we read) */ - - /* writing */ - char *tmpname; - FILE *fout; -}; - -static zip_int64_t read_file(void *state, void *data, zip_uint64_t len, zip_source_cmd_t cmd); -static int create_temp_output(struct read_file *ctx); -static int _zip_fseek_u(FILE *f, zip_uint64_t offset, int whence, zip_error_t *error); -static int _zip_fseek(FILE *f, zip_int64_t offset, int whence, zip_error_t *error); - - -ZIP_EXTERN zip_source_t * -zip_source_filep(zip_t *za, FILE *file, zip_uint64_t start, zip_int64_t len) -{ - if (za == NULL) - return NULL; - - return zip_source_filep_create(file, start, len, &za->error); -} - - -ZIP_EXTERN zip_source_t * -zip_source_filep_create(FILE *file, zip_uint64_t start, zip_int64_t length, zip_error_t *error) -{ - if (file == NULL || length < -1) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return NULL; - } - - return _zip_source_file_or_p(NULL, file, start, length, NULL, error); -} - - -zip_source_t * -_zip_source_file_or_p(const char *fname, FILE *file, zip_uint64_t start, zip_int64_t len, const zip_stat_t *st, zip_error_t *error) -{ - struct read_file *ctx; - zip_source_t *zs; - - if (file == NULL && fname == NULL) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return NULL; - } - - if (len < 0) { - len = 0; - } - - if (start > ZIP_INT64_MAX || start + (zip_uint64_t)len < start) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return NULL; - } - - if ((ctx=(struct read_file *)malloc(sizeof(struct read_file))) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return NULL; - } - - ctx->fname = NULL; - if (fname) { - if ((ctx->fname=strdup(fname)) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - free(ctx); - return NULL; - } - } - ctx->f = file; - ctx->start = start; - ctx->end = (zip_uint64_t)len; - if (st) { - memcpy(&ctx->st, st, sizeof(ctx->st)); - ctx->st.name = NULL; - ctx->st.valid &= ~ZIP_STAT_NAME; - } - else { - zip_stat_init(&ctx->st); - } - - if (ctx->end > 0) { - ctx->st.size = ctx->end; - ctx->st.valid |= ZIP_STAT_SIZE; - } - - zip_error_init(&ctx->stat_error); - - ctx->tmpname = NULL; - ctx->fout = NULL; - - zip_error_init(&ctx->error); - - ctx->supports = ZIP_SOURCE_SUPPORTS_READABLE | zip_source_make_command_bitmap(ZIP_SOURCE_SUPPORTS, ZIP_SOURCE_TELL, -1); - - if (ctx->fname) { - struct stat sb; - if (stat(ctx->fname, &sb) < 0) { - zip_error_set(&ctx->stat_error, ZIP_ER_READ, errno); - if (ctx->start == 0 && ctx->end == 0) { - ctx->supports = ZIP_SOURCE_SUPPORTS_WRITABLE; - } - } - else { - if ((ctx->st.valid & ZIP_STAT_MTIME) == 0) { - ctx->st.mtime = sb.st_mtime; - ctx->st.valid |= ZIP_STAT_MTIME; - } - if (S_ISREG(sb.st_mode)) { - ctx->supports = ZIP_SOURCE_SUPPORTS_SEEKABLE; - - if (ctx->start + ctx->end > (zip_uint64_t)sb.st_size) { - zip_error_set(error, ZIP_ER_INVAL, 0); - free(ctx->fname); - free(ctx); - return NULL; - } - - if (ctx->end == 0) { - ctx->st.size = (zip_uint64_t)sb.st_size - ctx->start; - ctx->st.valid |= ZIP_STAT_SIZE; - - if (start == 0) { - ctx->supports = ZIP_SOURCE_SUPPORTS_WRITABLE; - } - } - } - } - } - else if (fseeko(ctx->f, 0, SEEK_CUR) == 0) { - ctx->supports = ZIP_SOURCE_SUPPORTS_SEEKABLE; - } - - if ((zs=zip_source_function_create(read_file, ctx, error)) == NULL) { - free(ctx->fname); - free(ctx); - return NULL; - } - - return zs; -} - - -static int -create_temp_output(struct read_file *ctx) -{ - char *temp; - int tfd; - mode_t mask; - FILE *tfp; - - if ((temp=(char *)malloc(strlen(ctx->fname)+8)) == NULL) { - zip_error_set(&ctx->error, ZIP_ER_MEMORY, 0); - return -1; - } - sprintf(temp, "%s.XXXXXX", ctx->fname); - - mask = umask(_SAFE_MASK); - if ((tfd=mkstemp(temp)) == -1) { - zip_error_set(&ctx->error, ZIP_ER_TMPOPEN, errno); - umask(mask); - free(temp); - return -1; - } - umask(mask); - - if ((tfp=fdopen(tfd, "r+b")) == NULL) { - zip_error_set(&ctx->error, ZIP_ER_TMPOPEN, errno); - close(tfd); - (void)remove(temp); - free(temp); - return -1; - } - -#ifdef _WIN32 - /* - According to Pierre Joye, Windows in some environments per - default creates text files, so force binary mode. - */ - _setmode(_fileno(tfp), _O_BINARY ); -#endif - - ctx->fout = tfp; - ctx->tmpname = temp; - - return 0; -} - - -static zip_int64_t -read_file(void *state, void *data, zip_uint64_t len, zip_source_cmd_t cmd) -{ - struct read_file *ctx; - char *buf; - zip_uint64_t n; - size_t i; - - ctx = (struct read_file *)state; - buf = (char *)data; - - switch (cmd) { - case ZIP_SOURCE_BEGIN_WRITE: - if (ctx->fname == NULL) { - zip_error_set(&ctx->error, ZIP_ER_OPNOTSUPP, 0); - return -1; - } - return create_temp_output(ctx); - - case ZIP_SOURCE_COMMIT_WRITE: { - mode_t mask; - - if (fclose(ctx->fout) < 0) { - ctx->fout = NULL; - zip_error_set(&ctx->error, ZIP_ER_WRITE, errno); - } - ctx->fout = NULL; - if (rename(ctx->tmpname, ctx->fname) < 0) { - zip_error_set(&ctx->error, ZIP_ER_RENAME, errno); - return -1; - } - mask = umask(022); - umask(mask); - /* not much we can do if chmod fails except make the whole commit fail */ - (void)chmod(ctx->fname, 0666&~mask); - free(ctx->tmpname); - ctx->tmpname = NULL; - return 0; - } - - case ZIP_SOURCE_CLOSE: - if (ctx->fname) { - fclose(ctx->f); - ctx->f = NULL; - } - return 0; - - case ZIP_SOURCE_ERROR: - return zip_error_to_data(&ctx->error, data, len); - - case ZIP_SOURCE_FREE: - free(ctx->fname); - free(ctx->tmpname); - if (ctx->f) - fclose(ctx->f); - free(ctx); - return 0; - - case ZIP_SOURCE_OPEN: - if (ctx->fname) { - if ((ctx->f=fopen(ctx->fname, "rb")) == NULL) { - zip_error_set(&ctx->error, ZIP_ER_OPEN, errno); - return -1; - } - } - - if (ctx->start > 0) { - if (_zip_fseek_u(ctx->f, ctx->start, SEEK_SET, &ctx->error) < 0) { - /* TODO: skip by reading */ - return -1; - } - } - ctx->current = 0; - return 0; - - case ZIP_SOURCE_READ: - if (ctx->end > 0) { - n = ctx->end - ctx->current; - if (n > len) { - n = len; - } - } - else { - n = len; - } - - if (n > SIZE_MAX) - n = SIZE_MAX; - - if ((i=fread(buf, 1, (size_t)n, ctx->f)) == 0) { - if (ferror(ctx->f)) { - zip_error_set(&ctx->error, ZIP_ER_READ, errno); - return -1; - } - } - ctx->current += i; - - return (zip_int64_t)i; - - case ZIP_SOURCE_REMOVE: - if (remove(ctx->fname) < 0) { - zip_error_set(&ctx->error, ZIP_ER_REMOVE, errno); - return -1; - } - return 0; - - case ZIP_SOURCE_ROLLBACK_WRITE: - if (ctx->fout) { - fclose(ctx->fout); - ctx->fout = NULL; - } - (void)remove(ctx->tmpname); - free(ctx->tmpname); - ctx->tmpname = NULL; - return 0; - - case ZIP_SOURCE_SEEK: { - zip_int64_t new_current; - int need_seek; - zip_source_args_seek_t *args = ZIP_SOURCE_GET_ARGS(zip_source_args_seek_t, data, len, &ctx->error); - - if (args == NULL) - return -1; - - need_seek = 1; - - switch (args->whence) { - case SEEK_SET: - new_current = args->offset; - break; - - case SEEK_END: - if (ctx->end == 0) { - if (_zip_fseek(ctx->f, args->offset, SEEK_END, &ctx->error) < 0) { - return -1; - } - if ((new_current = ftello(ctx->f)) < 0) { - zip_error_set(&ctx->error, ZIP_ER_SEEK, errno); - return -1; - } - new_current -= (zip_int64_t)ctx->start; - need_seek = 0; - } - else { - new_current = (zip_int64_t)ctx->end + args->offset; - } - break; - - case SEEK_CUR: - new_current = (zip_int64_t)ctx->current + args->offset; - break; - - default: - zip_error_set(&ctx->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (new_current < 0 || (ctx->end != 0 && (zip_uint64_t)new_current > ctx->end) - || (zip_uint64_t)new_current + ctx->start < ctx->start) { - zip_error_set(&ctx->error, ZIP_ER_INVAL, 0); - return -1; - } - - ctx->current = (zip_uint64_t)new_current; - - if (need_seek) { - if (_zip_fseek_u(ctx->f, ctx->current + ctx->start, SEEK_SET, &ctx->error) < 0) { - return -1; - } - } - return 0; - } - - case ZIP_SOURCE_SEEK_WRITE: { - zip_source_args_seek_t *args; - - args = ZIP_SOURCE_GET_ARGS(zip_source_args_seek_t, data, len, &ctx->error); - if (args == NULL) { - return -1; - } - - if (_zip_fseek(ctx->fout, args->offset, args->whence, &ctx->error) < 0) { - return -1; - } - return 0; - } - - case ZIP_SOURCE_STAT: { - if (len < sizeof(ctx->st)) - return -1; - - if (zip_error_code_zip(&ctx->stat_error) != 0) { - zip_error_set(&ctx->error, zip_error_code_zip(&ctx->stat_error), zip_error_code_system(&ctx->stat_error)); - return -1; - } - - memcpy(data, &ctx->st, sizeof(ctx->st)); - return sizeof(ctx->st); - } - - case ZIP_SOURCE_SUPPORTS: - return ctx->supports; - - case ZIP_SOURCE_TELL: - return (zip_int64_t)ctx->current; - - case ZIP_SOURCE_TELL_WRITE: - { - off_t ret = ftello(ctx->fout); - - if (ret < 0) { - zip_error_set(&ctx->error, ZIP_ER_TELL, errno); - return -1; - } - return ret; - } - - case ZIP_SOURCE_WRITE: - { - size_t ret; - - clearerr(ctx->fout); - ret = fwrite(data, 1, len, ctx->fout); - if (ret != len || ferror(ctx->fout)) { - zip_error_set(&ctx->error, ZIP_ER_WRITE, errno); - return -1; - } - - return (zip_int64_t)ret; - } - - default: - zip_error_set(&ctx->error, ZIP_ER_OPNOTSUPP, 0); - return -1; - } -} - - -static int -_zip_fseek_u(FILE *f, zip_uint64_t offset, int whence, zip_error_t *error) -{ - if (offset > ZIP_INT64_MAX) { - zip_error_set(error, ZIP_ER_SEEK, EOVERFLOW); - return -1; - } - return _zip_fseek(f, (zip_int64_t)offset, whence, error); -} - - -static int -_zip_fseek(FILE *f, zip_int64_t offset, int whence, zip_error_t *error) -{ - if (offset > ZIP_FSEEK_MAX || offset < ZIP_FSEEK_MIN) { - zip_error_set(error, ZIP_ER_SEEK, EOVERFLOW); - return -1; - } - if (fseeko(f, (off_t)offset, whence) < 0) { - zip_error_set(error, ZIP_ER_SEEK, errno); - return -1; - } - return 0; -} diff --git a/libzip-1.2.0/lib/zip_source_free.c b/libzip-1.2.0/lib/zip_source_free.c deleted file mode 100644 index 907046994..000000000 --- a/libzip-1.2.0/lib/zip_source_free.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - zip_source_free.c -- free zip data source - Copyright (C) 1999-2015 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" - - -ZIP_EXTERN void -zip_source_free(zip_source_t *src) -{ - if (src == NULL) - return; - - if (src->refcount > 0) { - src->refcount--; - } - if (src->refcount > 0) { - return; - } - - if (ZIP_SOURCE_IS_OPEN_READING(src)) { - src->open_count = 1; /* force close */ - zip_source_close(src); - } - if (ZIP_SOURCE_IS_OPEN_WRITING(src)) { - zip_source_rollback_write(src); - } - - if (src->source_archive && !src->source_closed) { - _zip_deregister_source(src->source_archive, src); - } - - (void)_zip_source_call(src, NULL, 0, ZIP_SOURCE_FREE); - - if (src->src) { - zip_source_free(src->src); - } - - free(src); -} diff --git a/libzip-1.2.0/lib/zip_source_function.c b/libzip-1.2.0/lib/zip_source_function.c deleted file mode 100644 index 06ce5c977..000000000 --- a/libzip-1.2.0/lib/zip_source_function.c +++ /dev/null @@ -1,100 +0,0 @@ -/* - zip_source_function.c -- create zip data source from callback function - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" - - -ZIP_EXTERN zip_source_t * -zip_source_function(zip_t *za, zip_source_callback zcb, void *ud) -{ - if (za == NULL) { - return NULL; - } - - return zip_source_function_create(zcb, ud, &za->error); -} - - -ZIP_EXTERN zip_source_t * -zip_source_function_create(zip_source_callback zcb, void *ud, zip_error_t *error) -{ - zip_source_t *zs; - - if ((zs=_zip_source_new(error)) == NULL) - return NULL; - - zs->cb.f = zcb; - zs->ud = ud; - - zs->supports = zcb(ud, NULL, 0, ZIP_SOURCE_SUPPORTS); - if (zs->supports < 0) { - zs->supports = ZIP_SOURCE_SUPPORTS_READABLE; - } - - return zs; -} - - -ZIP_EXTERN void -zip_source_keep(zip_source_t *src) -{ - src->refcount++; -} - - -zip_source_t * -_zip_source_new(zip_error_t *error) -{ - zip_source_t *src; - - if ((src=(zip_source_t *)malloc(sizeof(*src))) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return NULL; - } - - src->src = NULL; - src->cb.f = NULL; - src->ud = NULL; - src->open_count = 0; - src->write_state = ZIP_SOURCE_WRITE_CLOSED; - src->source_closed = false; - src->source_archive = NULL; - src->refcount = 1; - zip_error_init(&src->error); - src->eof = false; - - return src; -} diff --git a/libzip-1.2.0/lib/zip_source_is_deleted.c b/libzip-1.2.0/lib/zip_source_is_deleted.c deleted file mode 100644 index e50cdd9e3..000000000 --- a/libzip-1.2.0/lib/zip_source_is_deleted.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - zip_source_is_deleted.c -- was archive was removed? - Copyright (C) 2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN int -zip_source_is_deleted(zip_source_t *src) -{ - return src->write_state == ZIP_SOURCE_WRITE_REMOVED; -} diff --git a/libzip-1.2.0/lib/zip_source_layered.c b/libzip-1.2.0/lib/zip_source_layered.c deleted file mode 100644 index 94b331010..000000000 --- a/libzip-1.2.0/lib/zip_source_layered.c +++ /dev/null @@ -1,69 +0,0 @@ -/* - zip_source_layered.c -- create layered source - Copyright (C) 2009-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" - - -zip_source_t * -zip_source_layered(zip_t *za, zip_source_t *src, zip_source_layered_callback cb, void *ud) -{ - if (za == NULL) - return NULL; - - return zip_source_layered_create(src, cb, ud, &za->error); -} - - -zip_source_t * -zip_source_layered_create(zip_source_t *src, zip_source_layered_callback cb, void *ud, zip_error_t *error) -{ - zip_source_t *zs; - - if ((zs=_zip_source_new(error)) == NULL) - return NULL; - - zip_source_keep(src); - zs->src = src; - zs->cb.l = cb; - zs->ud = ud; - - zs->supports = cb(src, ud, NULL, 0, ZIP_SOURCE_SUPPORTS); - if (zs->supports < 0) { - zs->supports = ZIP_SOURCE_SUPPORTS_READABLE; - } - - return zs; -} diff --git a/libzip-1.2.0/lib/zip_source_open.c b/libzip-1.2.0/lib/zip_source_open.c deleted file mode 100644 index a5712b270..000000000 --- a/libzip-1.2.0/lib/zip_source_open.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - zip_source_open.c -- open zip_source (prepare for reading) - Copyright (C) 2009-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - -ZIP_EXTERN int -zip_source_open(zip_source_t *src) -{ - if (src->source_closed) { - return -1; - } - if (src->write_state == ZIP_SOURCE_WRITE_REMOVED) { - zip_error_set(&src->error, ZIP_ER_DELETED, 0); - return -1; - } - - if (ZIP_SOURCE_IS_OPEN_READING(src)) { - if ((zip_source_supports(src) & ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK)) == 0) { - zip_error_set(&src->error, ZIP_ER_INUSE, 0); - return -1; - } - } - else { - if (ZIP_SOURCE_IS_LAYERED(src)) { - if (zip_source_open(src->src) < 0) { - _zip_error_set_from_source(&src->error, src->src); - return -1; - } - } - - if (_zip_source_call(src, NULL, 0, ZIP_SOURCE_OPEN) < 0) { - if (ZIP_SOURCE_IS_LAYERED(src)) { - zip_source_close(src->src); - } - return -1; - } - } - - src->eof = false; - _zip_error_clear(&src->error); - src->open_count++; - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_source_pkware.c b/libzip-1.2.0/lib/zip_source_pkware.c deleted file mode 100644 index 3957d9930..000000000 --- a/libzip-1.2.0/lib/zip_source_pkware.c +++ /dev/null @@ -1,226 +0,0 @@ -/* - zip_source_pkware.c -- Traditional PKWARE de/encryption routines - Copyright (C) 2009-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include - -#include "zipint.h" - -struct trad_pkware { - zip_error_t error; - zip_uint32_t key[3]; -}; - -#define HEADERLEN 12 -#define KEY0 305419896 -#define KEY1 591751049 -#define KEY2 878082192 - - -static void decrypt(struct trad_pkware *, zip_uint8_t *, - const zip_uint8_t *, zip_uint64_t, int); -static int decrypt_header(zip_source_t *, struct trad_pkware *); -static zip_int64_t pkware_decrypt(zip_source_t *, void *, void *, - zip_uint64_t, zip_source_cmd_t); -static void pkware_free(struct trad_pkware *); - - -zip_source_t * -zip_source_pkware(zip_t *za, zip_source_t *src, - zip_uint16_t em, int flags, const char *password) -{ - struct trad_pkware *ctx; - zip_source_t *s2; - - if (password == NULL || src == NULL || em != ZIP_EM_TRAD_PKWARE) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return NULL; - } - if (flags & ZIP_CODEC_ENCODE) { - zip_error_set(&za->error, ZIP_ER_ENCRNOTSUPP, 0); - return NULL; - } - - if ((ctx=(struct trad_pkware *)malloc(sizeof(*ctx))) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return NULL; - } - - zip_error_init(&ctx->error); - - ctx->key[0] = KEY0; - ctx->key[1] = KEY1; - ctx->key[2] = KEY2; - decrypt(ctx, NULL, (const zip_uint8_t *)password, strlen(password), 1); - - if ((s2=zip_source_layered(za, src, pkware_decrypt, ctx)) == NULL) { - pkware_free(ctx); - return NULL; - } - - return s2; -} - - -static void -decrypt(struct trad_pkware *ctx, zip_uint8_t *out, const zip_uint8_t *in, - zip_uint64_t len, int update_only) -{ - zip_uint16_t tmp; - zip_uint64_t i; - Bytef b; - - for (i=0; ikey[2] | 2); - tmp = (zip_uint16_t)(((zip_uint32_t)tmp * (tmp ^ 1)) >> 8); - b ^= (Bytef)tmp; - } - - /* store cleartext */ - if (out) - out[i] = b; - - /* update keys */ - ctx->key[0] = (zip_uint32_t)crc32(ctx->key[0] ^ 0xffffffffUL, &b, 1) ^ 0xffffffffUL; - ctx->key[1] = (ctx->key[1] + (ctx->key[0] & 0xff)) * 134775813 + 1; - b = (Bytef)(ctx->key[1] >> 24); - ctx->key[2] = (zip_uint32_t)crc32(ctx->key[2] ^ 0xffffffffUL, &b, 1) ^ 0xffffffffUL; - } -} - - -static int -decrypt_header(zip_source_t *src, struct trad_pkware *ctx) -{ - zip_uint8_t header[HEADERLEN]; - struct zip_stat st; - zip_int64_t n; - unsigned short dostime, dosdate; - - if ((n=zip_source_read(src, header, HEADERLEN)) < 0) { - _zip_error_set_from_source(&ctx->error, src); - return -1; - } - - if (n != HEADERLEN) { - zip_error_set(&ctx->error, ZIP_ER_EOF, 0); - return -1; - } - - decrypt(ctx, header, header, HEADERLEN, 0); - - if (zip_source_stat(src, &st) < 0) { - /* stat failed, skip password validation */ - return 0; - } - - _zip_u2d_time(st.mtime, &dostime, &dosdate); - - if (header[HEADERLEN-1] != st.crc>>24 && header[HEADERLEN-1] != dostime>>8) { - zip_error_set(&ctx->error, ZIP_ER_WRONGPASSWD, 0); - return -1; - } - - return 0; -} - - -static zip_int64_t -pkware_decrypt(zip_source_t *src, void *ud, void *data, - zip_uint64_t len, zip_source_cmd_t cmd) -{ - struct trad_pkware *ctx; - zip_int64_t n; - - ctx = (struct trad_pkware *)ud; - - switch (cmd) { - case ZIP_SOURCE_OPEN: - if (decrypt_header(src, ctx) < 0) - return -1; - return 0; - - case ZIP_SOURCE_READ: - if ((n=zip_source_read(src, data, len)) < 0) { - _zip_error_set_from_source(&ctx->error, src); - return -1; - } - - decrypt((struct trad_pkware *)ud, (zip_uint8_t *)data, (zip_uint8_t *)data, (zip_uint64_t)n, 0); - return n; - - case ZIP_SOURCE_CLOSE: - return 0; - - case ZIP_SOURCE_STAT: - { - zip_stat_t *st; - - st = (zip_stat_t *)data; - - st->encryption_method = ZIP_EM_NONE; - st->valid |= ZIP_STAT_ENCRYPTION_METHOD; - /* TODO: deduce HEADERLEN from size for uncompressed */ - if (st->valid & ZIP_STAT_COMP_SIZE) - st->comp_size -= HEADERLEN; - - return 0; - } - - case ZIP_SOURCE_SUPPORTS: - return zip_source_make_command_bitmap(ZIP_SOURCE_OPEN, ZIP_SOURCE_READ, ZIP_SOURCE_CLOSE, ZIP_SOURCE_STAT, ZIP_SOURCE_ERROR, ZIP_SOURCE_FREE, -1); - - case ZIP_SOURCE_ERROR: - return zip_error_to_data(&ctx->error, data, len); - - case ZIP_SOURCE_FREE: - pkware_free(ctx); - return 0; - - default: - zip_error_set(&ctx->error, ZIP_ER_INVAL, 0); - return -1; - } -} - - -static void -pkware_free(struct trad_pkware *ctx) -{ - free(ctx); -} diff --git a/libzip-1.2.0/lib/zip_source_read.c b/libzip-1.2.0/lib/zip_source_read.c deleted file mode 100644 index 267128ba9..000000000 --- a/libzip-1.2.0/lib/zip_source_read.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - zip_source_read.c -- read data from zip_source - Copyright (C) 2009-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -zip_int64_t -zip_source_read(zip_source_t *src, void *data, zip_uint64_t len) -{ - zip_uint64_t bytes_read; - zip_int64_t n; - - if (src->source_closed) { - return -1; - } - if (!ZIP_SOURCE_IS_OPEN_READING(src) || len > ZIP_INT64_MAX || (len > 0 && data == NULL)) { - zip_error_set(&src->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (_zip_source_had_error(src)) { - return -1; - } - - if (_zip_source_eof(src)) { - return 0; - } - - bytes_read = 0; - while (bytes_read < len) { - if ((n = _zip_source_call(src, (zip_uint8_t *)data + bytes_read, len - bytes_read, ZIP_SOURCE_READ)) < 0) { - if (bytes_read == 0) { - return -1; - } - else { - return (zip_int64_t)bytes_read; - } - } - - if (n == 0) { - src->eof = 1; - break; - } - - bytes_read += (zip_uint64_t)n; - } - - return (zip_int64_t)bytes_read; -} - - -bool -_zip_source_eof(zip_source_t *src) -{ - return src->eof; -} diff --git a/libzip-1.2.0/lib/zip_source_remove.c b/libzip-1.2.0/lib/zip_source_remove.c deleted file mode 100644 index 470a5edaf..000000000 --- a/libzip-1.2.0/lib/zip_source_remove.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - zip_source_remove.c -- remove empty archive - Copyright (C) 2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - -#include "zipint.h" - - -int -zip_source_remove(zip_source_t *src) -{ - if (src->write_state == ZIP_SOURCE_WRITE_REMOVED) { - return 0; - } - - if (ZIP_SOURCE_IS_OPEN_READING(src)) { - if (zip_source_close(src) < 0) { - return -1; - } - } - if (src->write_state != ZIP_SOURCE_WRITE_CLOSED) { - zip_source_rollback_write(src); - } - - if (_zip_source_call(src, NULL, 0, ZIP_SOURCE_REMOVE) < 0) { - return -1; - } - - src->write_state = ZIP_SOURCE_WRITE_REMOVED; - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_source_rollback_write.c b/libzip-1.2.0/lib/zip_source_rollback_write.c deleted file mode 100644 index c35f30f95..000000000 --- a/libzip-1.2.0/lib/zip_source_rollback_write.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - zip_source_rollback_write.c -- discard changes - Copyright (C) 2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN void -zip_source_rollback_write(zip_source_t *src) -{ - if (src->write_state != ZIP_SOURCE_WRITE_OPEN && src->write_state != ZIP_SOURCE_WRITE_FAILED) { - return; - } - - _zip_source_call(src, NULL, 0, ZIP_SOURCE_ROLLBACK_WRITE); - src->write_state = ZIP_SOURCE_WRITE_CLOSED; -} diff --git a/libzip-1.2.0/lib/zip_source_seek.c b/libzip-1.2.0/lib/zip_source_seek.c deleted file mode 100644 index c3f47036a..000000000 --- a/libzip-1.2.0/lib/zip_source_seek.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - zip_source_seek.c -- seek to offset - Copyright (C) 2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN int -zip_source_seek(zip_source_t *src, zip_int64_t offset, int whence) -{ - zip_source_args_seek_t args; - - if (src->source_closed) { - return -1; - } - if (!ZIP_SOURCE_IS_OPEN_READING(src) || (whence != SEEK_SET && whence != SEEK_CUR && whence != SEEK_END)) { - zip_error_set(&src->error, ZIP_ER_INVAL, 0); - return -1; - } - - args.offset = offset; - args.whence = whence; - - return (_zip_source_call(src, &args, sizeof(args), ZIP_SOURCE_SEEK) < 0 ? -1 : 0); -} - - -zip_int64_t -zip_source_seek_compute_offset(zip_uint64_t offset, zip_uint64_t length, void *data, zip_uint64_t data_length, zip_error_t *error) -{ - zip_int64_t new_offset; - zip_source_args_seek_t *args = ZIP_SOURCE_GET_ARGS(zip_source_args_seek_t, data, data_length, error); - - if (args == NULL) { - return -1; - } - - switch (args->whence) { - case SEEK_CUR: - new_offset = (zip_int64_t)offset + args->offset; - break; - - case SEEK_END: - new_offset = (zip_int64_t)length + args->offset; - break; - - case SEEK_SET: - new_offset = args->offset; - break; - - default: - zip_error_set(error, ZIP_ER_INVAL, 0); - return -1; - } - - if (new_offset < 0 || (zip_uint64_t)new_offset > length) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return -1; - } - - return new_offset; -} diff --git a/libzip-1.2.0/lib/zip_source_seek_write.c b/libzip-1.2.0/lib/zip_source_seek_write.c deleted file mode 100644 index 666076649..000000000 --- a/libzip-1.2.0/lib/zip_source_seek_write.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - zip_source_seek_write.c -- seek to offset for writing - Copyright (C) 2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN int -zip_source_seek_write(zip_source_t *src, zip_int64_t offset, int whence) -{ - zip_source_args_seek_t args; - - if (!ZIP_SOURCE_IS_OPEN_WRITING(src) || (whence != SEEK_SET && whence != SEEK_CUR && whence != SEEK_END)) { - zip_error_set(&src->error, ZIP_ER_INVAL, 0); - return -1; - } - - args.offset = offset; - args.whence = whence; - - return (_zip_source_call(src, &args, sizeof(args), ZIP_SOURCE_SEEK_WRITE) < 0 ? -1 : 0); -} diff --git a/libzip-1.2.0/lib/zip_source_stat.c b/libzip-1.2.0/lib/zip_source_stat.c deleted file mode 100644 index 864507e19..000000000 --- a/libzip-1.2.0/lib/zip_source_stat.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - zip_source_stat.c -- get meta information from zip_source - Copyright (C) 2009-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN int -zip_source_stat(zip_source_t *src, zip_stat_t *st) -{ - if (src->source_closed) { - return -1; - } - if (st == NULL) { - zip_error_set(&src->error, ZIP_ER_INVAL, 0); - return -1; - } - - zip_stat_init(st); - - if (ZIP_SOURCE_IS_LAYERED(src)) { - if (zip_source_stat(src->src, st) < 0) { - _zip_error_set_from_source(&src->error, src->src); - return -1; - } - } - - if (_zip_source_call(src, st, sizeof(*st), ZIP_SOURCE_STAT) < 0) { - return -1; - } - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_source_supports.c b/libzip-1.2.0/lib/zip_source_supports.c deleted file mode 100644 index c59aa1f87..000000000 --- a/libzip-1.2.0/lib/zip_source_supports.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - zip_source_supports.c -- check for supported functions - Copyright (C) 2014-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" - - -zip_int64_t -zip_source_supports(zip_source_t *src) -{ - return src->supports; -} - - -ZIP_EXTERN zip_int64_t -zip_source_make_command_bitmap(zip_source_cmd_t cmd0, ...) -{ - zip_int64_t bitmap; - va_list ap; - - bitmap = ZIP_SOURCE_MAKE_COMMAND_BITMASK(cmd0); - - - - va_start(ap, cmd0); - for (;;) { - int cmd = va_arg(ap, int); - if (cmd < 0) { - break; - } - bitmap |= ZIP_SOURCE_MAKE_COMMAND_BITMASK(cmd); - } - va_end(ap); - - return bitmap; -} diff --git a/libzip-1.2.0/lib/zip_source_tell.c b/libzip-1.2.0/lib/zip_source_tell.c deleted file mode 100644 index f1c10b5b5..000000000 --- a/libzip-1.2.0/lib/zip_source_tell.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - zip_source_tell.c -- report current offset - Copyright (C) 2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN zip_int64_t -zip_source_tell(zip_source_t *src) -{ - if (src->source_closed) { - return -1; - } - if (!ZIP_SOURCE_IS_OPEN_READING(src)) { - zip_error_set(&src->error, ZIP_ER_INVAL, 0); - return -1; - } - - return _zip_source_call(src, NULL, 0, ZIP_SOURCE_TELL); -} diff --git a/libzip-1.2.0/lib/zip_source_tell_write.c b/libzip-1.2.0/lib/zip_source_tell_write.c deleted file mode 100644 index 2fa150722..000000000 --- a/libzip-1.2.0/lib/zip_source_tell_write.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - zip_source_tell_write.c -- report current offset for writing - Copyright (C) 2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN zip_int64_t -zip_source_tell_write(zip_source_t *src) -{ - if (!ZIP_SOURCE_IS_OPEN_WRITING(src)) { - zip_error_set(&src->error, ZIP_ER_INVAL, 0); - return -1; - } - - return _zip_source_call(src, NULL, 0, ZIP_SOURCE_TELL_WRITE); -} diff --git a/libzip-1.2.0/lib/zip_source_win32a.c b/libzip-1.2.0/lib/zip_source_win32a.c deleted file mode 100644 index 85493b660..000000000 --- a/libzip-1.2.0/lib/zip_source_win32a.c +++ /dev/null @@ -1,124 +0,0 @@ -/* -zip_source_win32a.c -- create data source from Windows file (ANSI) -Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - -This file is part of libzip, a library to manipulate ZIP archives. -The authors can be contacted at - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in -the documentation and/or other materials provided with the -distribution. -3. The names of the authors may not be used to endorse or promote -products derived from this software without specific prior -written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" -#include "zipwin32.h" - -static void * _win32_strdup_a(const void *str); -static HANDLE _win32_open_a(_zip_source_win32_read_file_t *ctx); -static HANDLE _win32_create_temp_a(_zip_source_win32_read_file_t *ctx, void **temp, zip_uint32_t value, PSECURITY_ATTRIBUTES sa); -static int _win32_rename_temp_a(_zip_source_win32_read_file_t *ctx); -static int _win32_remove_a(const void *fname); - -static _zip_source_win32_file_ops_t win32_ops_a = { - _win32_strdup_a, - _win32_open_a, - _win32_create_temp_a, - _win32_rename_temp_a, - _win32_remove_a -}; - -ZIP_EXTERN zip_source_t * -zip_source_win32a(zip_t *za, const char *fname, zip_uint64_t start, zip_int64_t len) -{ - if (za == NULL) - return NULL; - - return zip_source_win32a_create(fname, start, len, &za->error); -} - - -ZIP_EXTERN zip_source_t * -zip_source_win32a_create(const char *fname, zip_uint64_t start, zip_int64_t length, zip_error_t *error) -{ - if (fname == NULL || length < -1) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return NULL; - } - - return _zip_source_win32_handle_or_name(fname, INVALID_HANDLE_VALUE, start, length, 1, NULL, &win32_ops_a, error); -} - - -static void * -_win32_strdup_a(const void *str) -{ - return strdup((const char *)str); -} - - -static HANDLE -_win32_open_a(_zip_source_win32_read_file_t *ctx) -{ - return CreateFileA(ctx->fname, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); -} - - -static HANDLE -_win32_create_temp_a(_zip_source_win32_read_file_t *ctx, void **temp, zip_uint32_t value, PSECURITY_ATTRIBUTES sa) -{ - int len; - - len = strlen((const char *)ctx->fname) + 10; - if (*temp == NULL) { - if ((*temp = malloc(sizeof(char) * len)) == NULL) { - zip_error_set(&ctx->error, ZIP_ER_MEMORY, 0); - return INVALID_HANDLE_VALUE; - } - } - if (sprintf((char *)*temp, "%s.%08x", (const char *)ctx->fname, value) != len - 1) { - return INVALID_HANDLE_VALUE; - } - - return CreateFileA((const char *)*temp, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, sa, CREATE_NEW, FILE_ATTRIBUTE_NORMAL | FILE_ATTRIBUTE_TEMPORARY, NULL); -} - - -static int -_win32_rename_temp_a(_zip_source_win32_read_file_t *ctx) -{ - if (!MoveFileExA(ctx->tmpname, ctx->fname, MOVEFILE_REPLACE_EXISTING)) - return -1; - return 0; -} - - -static int -_win32_remove_a(const void *fname) -{ - DeleteFileA((const char *)fname); - return 0; -} diff --git a/libzip-1.2.0/lib/zip_source_win32handle.c b/libzip-1.2.0/lib/zip_source_win32handle.c deleted file mode 100644 index 7fe003dca..000000000 --- a/libzip-1.2.0/lib/zip_source_win32handle.c +++ /dev/null @@ -1,610 +0,0 @@ -/* -zip_source_win32file.c -- create data source from HANDLE (Win32) -Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - -This file is part of libzip, a library to manipulate ZIP archives. -The authors can be contacted at - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in -the documentation and/or other materials provided with the -distribution. -3. The names of the authors may not be used to endorse or promote -products derived from this software without specific prior -written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include -#include - -#include "zipint.h" -#include "zipwin32.h" - -static zip_int64_t _win32_read_file(void *state, void *data, zip_uint64_t len, zip_source_cmd_t cmd); -static int _win32_create_temp_file(_zip_source_win32_read_file_t *ctx); -static int _zip_filetime_to_time_t(FILETIME ft, time_t *t); -static int _zip_seek_win32_u(void *h, zip_uint64_t offset, int whence, zip_error_t *error); -static int _zip_seek_win32(void *h, zip_int64_t offset, int whence, zip_error_t *error); -static int _zip_win32_error_to_errno(unsigned long win32err); -static int _zip_stat_win32(void *h, zip_stat_t *st, _zip_source_win32_read_file_t *ctx); - -ZIP_EXTERN zip_source_t * -zip_source_win32handle(zip_t *za, HANDLE h, zip_uint64_t start, zip_int64_t len) -{ - if (za == NULL) - return NULL; - - return zip_source_win32handle_create(h, start, len, &za->error); -} - - -ZIP_EXTERN zip_source_t * -zip_source_win32handle_create(HANDLE h, zip_uint64_t start, zip_int64_t length, zip_error_t *error) -{ - if (h == INVALID_HANDLE_VALUE || length < -1) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return NULL; - } - - return _zip_source_win32_handle_or_name(NULL, h, start, length, 1, NULL, NULL, error); -} - - -zip_source_t * -_zip_source_win32_handle_or_name(const void *fname, HANDLE h, zip_uint64_t start, zip_int64_t len, int closep, const zip_stat_t *st, _zip_source_win32_file_ops_t *ops, zip_error_t *error) -{ - _zip_source_win32_read_file_t *ctx; - zip_source_t *zs; - - if (h == INVALID_HANDLE_VALUE && fname == NULL) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return NULL; - } - - if ((ctx = (_zip_source_win32_read_file_t *)malloc(sizeof(_zip_source_win32_read_file_t))) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return NULL; - } - - ctx->fname = NULL; - if (fname) { - if ((ctx->fname = ops->op_strdup(fname)) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - free(ctx); - return NULL; - } - } - - ctx->ops = ops; - ctx->h = h; - ctx->start = start; - ctx->end = (len < 0 ? 0 : start + (zip_uint64_t)len); - ctx->closep = ctx->fname ? 1 : closep; - if (st) { - memcpy(&ctx->st, st, sizeof(ctx->st)); - ctx->st.name = NULL; - ctx->st.valid &= ~ZIP_STAT_NAME; - } - else { - zip_stat_init(&ctx->st); - } - - ctx->tmpname = NULL; - ctx->hout = INVALID_HANDLE_VALUE; - - zip_error_init(&ctx->error); - - ctx->supports = ZIP_SOURCE_SUPPORTS_READABLE | zip_source_make_command_bitmap(ZIP_SOURCE_SUPPORTS, ZIP_SOURCE_TELL, -1); - if (ctx->fname) { - HANDLE th; - - th = ops->op_open(ctx); - if (th == INVALID_HANDLE_VALUE || GetFileType(th) == FILE_TYPE_DISK) { - ctx->supports = ZIP_SOURCE_SUPPORTS_WRITABLE; - } - if (th != INVALID_HANDLE_VALUE) { - CloseHandle(th); - } - } - else if (GetFileType(ctx->h) == FILE_TYPE_DISK) { - ctx->supports = ZIP_SOURCE_SUPPORTS_SEEKABLE; - } - - if ((zs = zip_source_function_create(_win32_read_file, ctx, error)) == NULL) { - free(ctx->fname); - free(ctx); - return NULL; - } - - return zs; -} - - -static zip_int64_t -_win32_read_file(void *state, void *data, zip_uint64_t len, zip_source_cmd_t cmd) -{ - _zip_source_win32_read_file_t *ctx; - char *buf; - zip_uint64_t n; - DWORD i; - - ctx = (_zip_source_win32_read_file_t *)state; - buf = (char *)data; - - switch (cmd) { - case ZIP_SOURCE_BEGIN_WRITE: - if (ctx->fname == NULL) { - zip_error_set(&ctx->error, ZIP_ER_OPNOTSUPP, 0); - return -1; - } - return _win32_create_temp_file(ctx); - - case ZIP_SOURCE_COMMIT_WRITE: { - if (!CloseHandle(ctx->hout)) { - ctx->hout = INVALID_HANDLE_VALUE; - zip_error_set(&ctx->error, ZIP_ER_WRITE, _zip_win32_error_to_errno(GetLastError())); - } - ctx->hout = INVALID_HANDLE_VALUE; - if (ctx->ops->op_rename_temp(ctx) < 0) { - zip_error_set(&ctx->error, ZIP_ER_RENAME, _zip_win32_error_to_errno(GetLastError())); - return -1; - } - free(ctx->tmpname); - ctx->tmpname = NULL; - return 0; - } - - case ZIP_SOURCE_CLOSE: - if (ctx->fname) { - CloseHandle(ctx->h); - ctx->h = INVALID_HANDLE_VALUE; - } - return 0; - - case ZIP_SOURCE_ERROR: - return zip_error_to_data(&ctx->error, data, len); - - case ZIP_SOURCE_FREE: - free(ctx->fname); - free(ctx->tmpname); - if (ctx->closep && ctx->h != INVALID_HANDLE_VALUE) - CloseHandle(ctx->h); - free(ctx); - return 0; - - case ZIP_SOURCE_OPEN: - if (ctx->fname) { - if ((ctx->h = ctx->ops->op_open(ctx)) == INVALID_HANDLE_VALUE) { - zip_error_set(&ctx->error, ZIP_ER_OPEN, _zip_win32_error_to_errno(GetLastError())); - return -1; - } - } - - if (ctx->closep && ctx->start > 0) { - if (_zip_seek_win32_u(ctx->h, ctx->start, SEEK_SET, &ctx->error) < 0) { - return -1; - } - } - ctx->current = ctx->start; - return 0; - - case ZIP_SOURCE_READ: - if (ctx->end > 0) { - n = ctx->end - ctx->current; - if (n > len) { - n = len; - } - } - else { - n = len; - } - - if (n > SIZE_MAX) - n = SIZE_MAX; - - if (!ctx->closep) { - if (_zip_seek_win32_u(ctx->h, ctx->current, SEEK_SET, &ctx->error) < 0) { - return -1; - } - } - - if (!ReadFile(ctx->h, buf, (DWORD)n, &i, NULL)) { - zip_error_set(&ctx->error, ZIP_ER_READ, _zip_win32_error_to_errno(GetLastError())); - return -1; - } - ctx->current += i; - - return (zip_int64_t)i; - - case ZIP_SOURCE_REMOVE: - if (ctx->ops->op_remove(ctx->fname) < 0) { - zip_error_set(&ctx->error, ZIP_ER_REMOVE, _zip_win32_error_to_errno(GetLastError())); - return -1; - } - return 0; - - case ZIP_SOURCE_ROLLBACK_WRITE: - if (ctx->hout) { - CloseHandle(ctx->hout); - ctx->hout = INVALID_HANDLE_VALUE; - } - ctx->ops->op_remove(ctx->tmpname); - free(ctx->tmpname); - ctx->tmpname = NULL; - return 0; - - case ZIP_SOURCE_SEEK: { - zip_int64_t new_current; - int need_seek; - zip_source_args_seek_t *args = ZIP_SOURCE_GET_ARGS(zip_source_args_seek_t, data, len, &ctx->error); - - if (args == NULL) - return -1; - - need_seek = ctx->closep; - - switch (args->whence) { - case SEEK_SET: - new_current = args->offset; - break; - - case SEEK_END: - if (ctx->end == 0) { - LARGE_INTEGER zero; - LARGE_INTEGER new_offset; - - if (_zip_seek_win32(ctx->h, args->offset, SEEK_END, &ctx->error) < 0) { - return -1; - } - zero.QuadPart = 0; - if (!SetFilePointerEx(ctx->h, zero, &new_offset, FILE_CURRENT)) { - zip_error_set(&ctx->error, ZIP_ER_SEEK, _zip_win32_error_to_errno(GetLastError())); - return -1; - } - new_current = new_offset.QuadPart; - need_seek = 0; - } - else { - new_current = (zip_int64_t)ctx->end + args->offset; - } - break; - case SEEK_CUR: - new_current = (zip_int64_t)ctx->current + args->offset; - break; - - default: - zip_error_set(&ctx->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (new_current < 0 || (zip_uint64_t)new_current < ctx->start || (ctx->end != 0 && (zip_uint64_t)new_current > ctx->end)) { - zip_error_set(&ctx->error, ZIP_ER_INVAL, 0); - return -1; - } - - ctx->current = (zip_uint64_t)new_current; - - if (need_seek) { - if (_zip_seek_win32_u(ctx->h, ctx->current, SEEK_SET, &ctx->error) < 0) { - return -1; - } - } - return 0; - } - - case ZIP_SOURCE_SEEK_WRITE: { - zip_source_args_seek_t *args; - - args = ZIP_SOURCE_GET_ARGS(zip_source_args_seek_t, data, len, &ctx->error); - if (args == NULL) { - return -1; - } - - if (_zip_seek_win32(ctx->hout, args->offset, args->whence, &ctx->error) < 0) { - return -1; - } - return 0; - } - - case ZIP_SOURCE_STAT: { - if (len < sizeof(ctx->st)) - return -1; - - if (ctx->st.valid != 0) - memcpy(data, &ctx->st, sizeof(ctx->st)); - else { - DWORD win32err; - zip_stat_t *st; - HANDLE h; - int success; - - st = (zip_stat_t *)data; - - if (ctx->h != INVALID_HANDLE_VALUE) { - h = ctx->h; - } - else { - h = ctx->ops->op_open(ctx); - if (h == INVALID_HANDLE_VALUE) { - win32err = GetLastError(); - if (win32err == ERROR_FILE_NOT_FOUND || win32err == ERROR_PATH_NOT_FOUND) { - zip_error_set(&ctx->error, ZIP_ER_READ, ENOENT); - return -1; - } - } - } - - success = _zip_stat_win32(h, st, ctx); - win32err = GetLastError(); - - /* We're done with the handle, so close it if we just opened it. */ - if (h != ctx->h) { - CloseHandle(h); - } - - if (success < 0) { - /* TODO: Is this the correct error to return in all cases? */ - zip_error_set(&ctx->error, ZIP_ER_READ, _zip_win32_error_to_errno(win32err)); - return -1; - } - } - return sizeof(ctx->st); - } - - case ZIP_SOURCE_SUPPORTS: - return ctx->supports; - - case ZIP_SOURCE_TELL: - return (zip_int64_t)ctx->current; - - case ZIP_SOURCE_TELL_WRITE: - { - LARGE_INTEGER zero; - LARGE_INTEGER offset; - - zero.QuadPart = 0; - if (!SetFilePointerEx(ctx->hout, zero, &offset, FILE_CURRENT)) { - zip_error_set(&ctx->error, ZIP_ER_TELL, _zip_win32_error_to_errno(GetLastError())); - return -1; - } - - return offset.QuadPart; - } - - case ZIP_SOURCE_WRITE: - { - DWORD ret; - if (!WriteFile(ctx->hout, data, (DWORD)len, &ret, NULL) || ret != len) { - zip_error_set(&ctx->error, ZIP_ER_WRITE, _zip_win32_error_to_errno(GetLastError())); - return -1; - } - - return (zip_int64_t)ret; - } - - default: - zip_error_set(&ctx->error, ZIP_ER_OPNOTSUPP, 0); - return -1; - } -} - - -static int -_win32_create_temp_file(_zip_source_win32_read_file_t *ctx) -{ - zip_uint32_t value; - /* - Windows has GetTempFileName(), but it closes the file after - creation, leaving it open to a horrible race condition. So - we reinvent the wheel. - */ - int i; - HANDLE th = INVALID_HANDLE_VALUE; - void *temp = NULL; - SECURITY_INFORMATION si; - SECURITY_ATTRIBUTES sa; - PSECURITY_DESCRIPTOR psd = NULL; - PSECURITY_ATTRIBUTES psa = NULL; - DWORD len; - BOOL success; - - /* - Read the DACL from the original file, so we can copy it to the temp file. - If there is no original file, or if we can't read the DACL, we'll use the - default security descriptor. - */ - if (ctx->h != INVALID_HANDLE_VALUE && GetFileType(ctx->h) == FILE_TYPE_DISK) { - si = DACL_SECURITY_INFORMATION | UNPROTECTED_DACL_SECURITY_INFORMATION; - len = 0; - success = GetUserObjectSecurity(ctx->h, &si, NULL, len, &len); - if (!success && GetLastError() == ERROR_INSUFFICIENT_BUFFER) { - if ((psd = (PSECURITY_DESCRIPTOR)malloc(len)) == NULL) { - zip_error_set(&ctx->error, ZIP_ER_MEMORY, 0); - return -1; - } - success = GetUserObjectSecurity(ctx->h, &si, psd, len, &len); - } - if (success) { - sa.nLength = sizeof(SECURITY_ATTRIBUTES); - sa.bInheritHandle = FALSE; - sa.lpSecurityDescriptor = psd; - psa = &sa; - } - } - - value = GetTickCount(); - for (i = 0; i < 1024 && th == INVALID_HANDLE_VALUE; i++) { - th = ctx->ops->op_create_temp(ctx, &temp, value + i, psa); - if (th == INVALID_HANDLE_VALUE && GetLastError() != ERROR_FILE_EXISTS) - break; - } - - if (th == INVALID_HANDLE_VALUE) { - free(temp); - free(psd); - zip_error_set(&ctx->error, ZIP_ER_TMPOPEN, _zip_win32_error_to_errno(GetLastError())); - return -1; - } - - free(psd); - ctx->hout = th; - ctx->tmpname = temp; - - return 0; -} - - -static int -_zip_seek_win32_u(HANDLE h, zip_uint64_t offset, int whence, zip_error_t *error) -{ - if (offset > ZIP_INT64_MAX) { - zip_error_set(error, ZIP_ER_SEEK, EOVERFLOW); - return -1; - } - return _zip_seek_win32(h, (zip_int64_t)offset, whence, error); -} - - -static int -_zip_seek_win32(HANDLE h, zip_int64_t offset, int whence, zip_error_t *error) -{ - LARGE_INTEGER li; - DWORD method; - - switch (whence) { - case SEEK_SET: - method = FILE_BEGIN; - break; - case SEEK_END: - method = FILE_END; - break; - case SEEK_CUR: - method = FILE_CURRENT; - break; - default: - zip_error_set(error, ZIP_ER_SEEK, EINVAL); - return -1; - } - - li.QuadPart = (LONGLONG)offset; - if (!SetFilePointerEx(h, li, NULL, method)) { - zip_error_set(error, ZIP_ER_SEEK, _zip_win32_error_to_errno(GetLastError())); - return -1; - } - - return 0; -} - - -static int -_zip_win32_error_to_errno(DWORD win32err) -{ - /* - Note: This list isn't exhaustive, but should cover common cases. - */ - switch (win32err) { - case ERROR_INVALID_PARAMETER: - return EINVAL; - case ERROR_FILE_NOT_FOUND: - return ENOENT; - case ERROR_INVALID_HANDLE: - return EBADF; - case ERROR_ACCESS_DENIED: - return EACCES; - case ERROR_FILE_EXISTS: - return EEXIST; - case ERROR_TOO_MANY_OPEN_FILES: - return EMFILE; - case ERROR_DISK_FULL: - return ENOSPC; - default: - return 0; - } -} - - -static int -_zip_stat_win32(HANDLE h, zip_stat_t *st, _zip_source_win32_read_file_t *ctx) -{ - FILETIME mtimeft; - time_t mtime; - LARGE_INTEGER size; - int regularp; - - if (!GetFileTime(h, NULL, NULL, &mtimeft)) { - zip_error_set(&ctx->error, ZIP_ER_READ, _zip_win32_error_to_errno(GetLastError())); - return -1; - } - if (_zip_filetime_to_time_t(mtimeft, &mtime) < 0) { - zip_error_set(&ctx->error, ZIP_ER_READ, ERANGE); - return -1; - } - - regularp = 0; - if (GetFileType(h) == FILE_TYPE_DISK) { - regularp = 1; - } - - if (!GetFileSizeEx(h, &size)) { - zip_error_set(&ctx->error, ZIP_ER_READ, _zip_win32_error_to_errno(GetLastError())); - return -1; - } - - zip_stat_init(st); - st->mtime = mtime; - st->valid |= ZIP_STAT_MTIME; - if (ctx->end != 0) { - st->size = ctx->end - ctx->start; - st->valid |= ZIP_STAT_SIZE; - } - else if (regularp) { - st->size = (zip_uint64_t)size.QuadPart; - st->valid |= ZIP_STAT_SIZE; - } - - return 0; -} - - -static int -_zip_filetime_to_time_t(FILETIME ft, time_t *t) -{ - /* - Inspired by http://stackoverflow.com/questions/6161776/convert-windows-filetime-to-second-in-unix-linux - */ - const zip_int64_t WINDOWS_TICK = 10000000LL; - const zip_int64_t SEC_TO_UNIX_EPOCH = 11644473600LL; - ULARGE_INTEGER li; - zip_int64_t secs; - time_t temp; - - li.LowPart = ft.dwLowDateTime; - li.HighPart = ft.dwHighDateTime; - secs = (li.QuadPart / WINDOWS_TICK - SEC_TO_UNIX_EPOCH); - - temp = (time_t)secs; - if (secs != (zip_int64_t)temp) - return -1; - - *t = temp; - return 0; -} diff --git a/libzip-1.2.0/lib/zip_source_win32utf8.c b/libzip-1.2.0/lib/zip_source_win32utf8.c deleted file mode 100644 index 004c66ac2..000000000 --- a/libzip-1.2.0/lib/zip_source_win32utf8.c +++ /dev/null @@ -1,79 +0,0 @@ -/* -zip_source_win32utf8.c -- create data source from Windows file (UTF-8) -Copyright (C) 1999-2015 Dieter Baron and Thomas Klausner - -This file is part of libzip, a library to manipulate ZIP archives. -The authors can be contacted at - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in -the documentation and/or other materials provided with the -distribution. -3. The names of the authors may not be used to endorse or promote -products derived from this software without specific prior -written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" -#include "zipwin32.h" - - -ZIP_EXTERN zip_source_t * -zip_source_file(zip_t *za, const char *fname, zip_uint64_t start, zip_int64_t len) -{ - if (za == NULL) - return NULL; - - return zip_source_file_create(fname, start, len, &za->error); -} - - -ZIP_EXTERN zip_source_t * -zip_source_file_create(const char *fname, zip_uint64_t start, zip_int64_t length, zip_error_t *error) -{ - int size; - wchar_t *wfname; - zip_source_t *source; - - if (fname == NULL || length < -1) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return NULL; - } - - /* Convert fname from UTF-8 to Windows-friendly UTF-16. */ - size = MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, fname, -1, NULL, 0); - if (size == 0) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return NULL; - } - if ((wfname = (wchar_t *)malloc(sizeof(wchar_t) * size)) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return NULL; - } - MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, fname, -1, wfname, size); - - source = zip_source_win32w_create(wfname, start, length, error); - - free(wfname); - return source; -} diff --git a/libzip-1.2.0/lib/zip_source_win32w.c b/libzip-1.2.0/lib/zip_source_win32w.c deleted file mode 100644 index 551aba5f3..000000000 --- a/libzip-1.2.0/lib/zip_source_win32w.c +++ /dev/null @@ -1,124 +0,0 @@ -/* -zip_source_win32w.c -- create data source from Windows file (UTF-16) -Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - -This file is part of libzip, a library to manipulate ZIP archives. -The authors can be contacted at - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in -the documentation and/or other materials provided with the -distribution. -3. The names of the authors may not be used to endorse or promote -products derived from this software without specific prior -written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" -#include "zipwin32.h" - -static void * _win32_strdup_w(const void *str); -static HANDLE _win32_open_w(_zip_source_win32_read_file_t *ctx); -static HANDLE _win32_create_temp_w(_zip_source_win32_read_file_t *ctx, void **temp, zip_uint32_t value, PSECURITY_ATTRIBUTES sa); -static int _win32_rename_temp_w(_zip_source_win32_read_file_t *ctx); -static int _win32_remove_w(const void *fname); - -static _zip_source_win32_file_ops_t win32_ops_w = { - _win32_strdup_w, - _win32_open_w, - _win32_create_temp_w, - _win32_rename_temp_w, - _win32_remove_w -}; - -ZIP_EXTERN zip_source_t * -zip_source_win32w(zip_t *za, const wchar_t *fname, zip_uint64_t start, zip_int64_t len) -{ - if (za == NULL) - return NULL; - - return zip_source_win32w_create(fname, start, len, &za->error); -} - - -ZIP_EXTERN zip_source_t * -zip_source_win32w_create(const wchar_t *fname, zip_uint64_t start, zip_int64_t length, zip_error_t *error) -{ - if (fname == NULL || length < -1) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return NULL; - } - - return _zip_source_win32_handle_or_name(fname, INVALID_HANDLE_VALUE, start, length, 1, NULL, &win32_ops_w, error); -} - - -static void * -_win32_strdup_w(const void *str) -{ - return _wcsdup((const wchar_t *)str); -} - - -static HANDLE -_win32_open_w(_zip_source_win32_read_file_t *ctx) -{ - return CreateFileW(ctx->fname, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); -} - - -static HANDLE -_win32_create_temp_w(_zip_source_win32_read_file_t *ctx, void **temp, zip_uint32_t value, PSECURITY_ATTRIBUTES sa) -{ - int len; - - len = wcslen((const wchar_t *)ctx->fname) + 10; - if (*temp == NULL) { - if ((*temp = malloc(sizeof(wchar_t) * len)) == NULL) { - zip_error_set(&ctx->error, ZIP_ER_MEMORY, 0); - return INVALID_HANDLE_VALUE; - } - } - if (_snwprintf((wchar_t *)*temp, len, L"%s.%08x", (const wchar_t *)ctx->fname, value) != len - 1) { - return INVALID_HANDLE_VALUE; - } - - return CreateFileW((const wchar_t *)*temp, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, sa, CREATE_NEW, FILE_ATTRIBUTE_NORMAL | FILE_ATTRIBUTE_TEMPORARY, NULL); -} - - -static int -_win32_rename_temp_w(_zip_source_win32_read_file_t *ctx) -{ - if (!MoveFileExW(ctx->tmpname, ctx->fname, MOVEFILE_REPLACE_EXISTING)) - return -1; - return 0; -} - - -static int -_win32_remove_w(const void *fname) -{ - DeleteFileW((const wchar_t *)fname); - return 0; -} diff --git a/libzip-1.2.0/lib/zip_source_window.c b/libzip-1.2.0/lib/zip_source_window.c deleted file mode 100644 index f02d048c0..000000000 --- a/libzip-1.2.0/lib/zip_source_window.c +++ /dev/null @@ -1,253 +0,0 @@ -/* - zip_source_window.c -- return part of lower source - Copyright (C) 2012-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include - -#include "zipint.h" - -struct window { - zip_uint64_t start; - zip_uint64_t end; - zip_uint64_t offset; - zip_stat_t stat; - zip_error_t error; - zip_int64_t supports; - bool needs_seek; -}; - -static zip_int64_t window_read(zip_source_t *, void *, void *, zip_uint64_t, zip_source_cmd_t); - - -zip_source_t * -zip_source_window(zip_t *za, zip_source_t *src, zip_uint64_t start, zip_uint64_t len) -{ - return _zip_source_window_new(src, start, len, NULL, &za->error); -} - - -zip_source_t * -_zip_source_window_new(zip_source_t *src, zip_uint64_t start, zip_uint64_t length, zip_stat_t *st, zip_error_t *error) -{ - struct window *ctx; - - if (src == NULL || start + length < start) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return NULL; - } - - if ((ctx=(struct window *)malloc(sizeof(*ctx))) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return NULL; - } - - ctx->start = start; - ctx->end = start + length; - zip_stat_init(&ctx->stat); - zip_error_init(&ctx->error); - ctx->supports = (zip_source_supports(src) & ZIP_SOURCE_SUPPORTS_SEEKABLE) | (zip_source_make_command_bitmap(ZIP_SOURCE_SUPPORTS, ZIP_SOURCE_TELL, -1)); - ctx->needs_seek = (ctx->supports & ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK)) ? true : false; - - if (st) { - if (_zip_stat_merge(&ctx->stat, st, error) < 0) { - free(ctx); - return NULL; - } - } - - return zip_source_layered_create(src, window_read, ctx, error); -} - - -int -_zip_source_set_source_archive(zip_source_t *src, zip_t *za) -{ - src->source_archive = za; - return _zip_register_source(za, src); -} - - -/* called by zip_discard to avoid operating on file from closed archive */ -void -_zip_source_invalidate(zip_source_t *src) -{ - src->source_closed = 1; - - if (zip_error_code_zip(&src->error) == ZIP_ER_OK) { - zip_error_set(&src->error, ZIP_ER_ZIPCLOSED, 0); - } -} - - -static zip_int64_t -window_read(zip_source_t *src, void *_ctx, void *data, zip_uint64_t len, zip_source_cmd_t cmd) -{ - struct window *ctx; - zip_int64_t ret; - zip_uint64_t n, i; - char b[8192]; - - ctx = (struct window *)_ctx; - - switch (cmd) { - case ZIP_SOURCE_CLOSE: - return 0; - - case ZIP_SOURCE_ERROR: - return zip_error_to_data(&ctx->error, data, len); - - case ZIP_SOURCE_FREE: - free(ctx); - return 0; - - case ZIP_SOURCE_OPEN: - if (!ctx->needs_seek) { - for (n=0; nstart; n+=(zip_uint64_t)ret) { - i = (ctx->start-n > sizeof(b) ? sizeof(b) : ctx->start-n); - if ((ret=zip_source_read(src, b, i)) < 0) { - _zip_error_set_from_source(&ctx->error, src); - return -1; - } - if (ret==0) { - zip_error_set(&ctx->error, ZIP_ER_EOF, 0); - return -1; - } - } - - } - ctx->offset = ctx->start; - return 0; - - case ZIP_SOURCE_READ: - if (len > ctx->end - ctx->offset) - len = ctx->end - ctx->offset; - - if (len == 0) - return 0; - - if (ctx->needs_seek) { - if (zip_source_seek(src, (zip_int64_t)ctx->offset, SEEK_SET) < 0) { - _zip_error_set_from_source(&ctx->error, src); - return -1; - } - } - - if ((ret=zip_source_read(src, data, len)) < 0) { - zip_error_set(&ctx->error, ZIP_ER_EOF, 0); - return -1; - } - - ctx->offset += (zip_uint64_t)ret; - - if (ret == 0) { - if (ctx->offset < ctx->end) { - zip_error_set(&ctx->error, ZIP_ER_EOF, 0); - return -1; - } - } - return ret; - - case ZIP_SOURCE_SEEK: - { - zip_int64_t new_offset = zip_source_seek_compute_offset(ctx->offset - ctx->start, ctx->end - ctx->start, data, len, &ctx->error); - - if (new_offset < 0) { - return -1; - } - - ctx->offset = (zip_uint64_t)new_offset + ctx->start; - return 0; - } - - case ZIP_SOURCE_STAT: - { - zip_stat_t *st; - - st = (zip_stat_t *)data; - - if (_zip_stat_merge(st, &ctx->stat, &ctx->error) < 0) { - return -1; - } - return 0; - } - - case ZIP_SOURCE_SUPPORTS: - return ctx->supports; - - case ZIP_SOURCE_TELL: - return (zip_int64_t)(ctx->offset - ctx->start); - - default: - zip_error_set(&ctx->error, ZIP_ER_OPNOTSUPP, 0); - return -1; - } -} - - -void -_zip_deregister_source(zip_t *za, zip_source_t *src) -{ - unsigned int i; - - for (i=0; inopen_source; i++) { - if (za->open_source[i] == src) { - za->open_source[i] = za->open_source[za->nopen_source-1]; - za->nopen_source--; - break; - } - } -} - - -int -_zip_register_source(zip_t *za, zip_source_t *src) -{ - zip_source_t **open_source; - - if (za->nopen_source+1 >= za->nopen_source_alloc) { - unsigned int n; - n = za->nopen_source_alloc + 10; - open_source = (zip_source_t **)realloc(za->open_source, n*sizeof(zip_source_t *)); - if (open_source == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return -1; - } - za->nopen_source_alloc = n; - za->open_source = open_source; - } - - za->open_source[za->nopen_source++] = src; - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_source_winzip_aes_decode.c b/libzip-1.2.0/lib/zip_source_winzip_aes_decode.c deleted file mode 100644 index fc0b20899..000000000 --- a/libzip-1.2.0/lib/zip_source_winzip_aes_decode.c +++ /dev/null @@ -1,289 +0,0 @@ -/* - zip_source_winzip_aes.c -- Winzip AES de/encryption routines - Copyright (C) 2009-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include - -#include "zipint.h" - -#include "gladman-fcrypt.h" - -#define MAX_HEADER_LENGTH (16+PWD_VER_LENGTH) -#define HMAC_LENGTH 10 - -static unsigned int salt_length[] = { 0, 8, 12, 16 }; - -struct winzip_aes { - char *password; - unsigned int mode; - - zip_uint64_t data_length; - zip_uint64_t current_position; - - fcrypt_ctx fcrypt_ctx; - zip_error_t error; -}; - - -static int decrypt_header(zip_source_t *src, struct winzip_aes *ctx); -static void winzip_aes_free(struct winzip_aes *); -static zip_int64_t winzip_aes_decrypt(zip_source_t *src, void *ud, void *data, zip_uint64_t len, zip_source_cmd_t cmd); -static struct winzip_aes * winzip_aes_new(unsigned int mode, const char *password); - - -zip_source_t * -zip_source_winzip_aes_decode(zip_t *za, zip_source_t *src, zip_uint16_t em, int flags, const char *password) -{ - zip_source_t *s2; - unsigned int mode = 0; - zip_stat_t st; - zip_uint64_t aux_length; - struct winzip_aes *ctx; - - switch (em) { - case ZIP_EM_AES_128: - mode = 1; - break; - case ZIP_EM_AES_192: - mode = 2; - break; - case ZIP_EM_AES_256: - mode = 3; - break; - } - - if (password == NULL || src == NULL || mode == 0) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return NULL; - } - if (flags & ZIP_CODEC_ENCODE) { - zip_error_set(&za->error, ZIP_ER_ENCRNOTSUPP, 0); - return NULL; - } - - if (strlen(password) > UINT_MAX) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); /* TODO: better error code? (password too long) */ - return NULL; - } - - if (zip_source_stat(src, &st) != 0) { - _zip_error_set_from_source(&za->error, src); - return NULL; - } - - aux_length = PWD_VER_LENGTH + salt_length[mode] + HMAC_LENGTH; - - if ((st.valid & ZIP_STAT_COMP_SIZE) == 0 || st.comp_size < aux_length) { - zip_error_set(&za->error, ZIP_ER_OPNOTSUPP, 0); - return NULL; - } - - if ((ctx = winzip_aes_new(mode, password)) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return NULL; - } - - ctx->data_length = st.comp_size - aux_length; - - if ((s2 = zip_source_layered(za, src, winzip_aes_decrypt, ctx)) == NULL) { - winzip_aes_free(ctx); - return NULL; - } - - return s2; -} - - -static int -decrypt_header(zip_source_t *src, struct winzip_aes *ctx) -{ - zip_uint8_t header[MAX_HEADER_LENGTH]; - zip_uint8_t password_verification[PWD_VER_LENGTH]; - unsigned int headerlen; - zip_int64_t n; - - headerlen = PWD_VER_LENGTH + salt_length[ctx->mode]; - if ((n=zip_source_read(src, header, headerlen)) < 0) { - _zip_error_set_from_source(&ctx->error, src); - return -1; - } - - if (n != headerlen) { - zip_error_set(&ctx->error, ZIP_ER_EOF, 0); - return -1; - } - - if (_zip_fcrypt_init(ctx->mode, (unsigned char *)ctx->password, (unsigned int)strlen(ctx->password), header, password_verification, &ctx->fcrypt_ctx) != 0) { - zip_error_set(&ctx->error, ZIP_ER_MEMORY, 0); - return -1; - } - if (memcmp(password_verification, header + salt_length[ctx->mode], PWD_VER_LENGTH) != 0) { - zip_error_set(&ctx->error, ZIP_ER_WRONGPASSWD, 0); - return -1; - } - return 0; -} - - -static bool -verify_hmac(zip_source_t *src, struct winzip_aes *ctx) -{ - unsigned char computed[HMAC_LENGTH], from_file[HMAC_LENGTH]; - if (zip_source_read(src, from_file, HMAC_LENGTH) < HMAC_LENGTH) { - _zip_error_set_from_source(&ctx->error, src); - return false; - } - - _zip_fcrypt_end(computed, &ctx->fcrypt_ctx); - - if (memcmp(from_file, computed, HMAC_LENGTH) != 0) { - zip_error_set(&ctx->error, ZIP_ER_CRC, 0); - return false; - } - - return true; -} - - -static zip_int64_t -winzip_aes_decrypt(zip_source_t *src, void *ud, void *data, zip_uint64_t len, zip_source_cmd_t cmd) -{ - struct winzip_aes *ctx; - zip_int64_t n; - zip_uint64_t total, offset; - - ctx = (struct winzip_aes *)ud; - - switch (cmd) { - case ZIP_SOURCE_OPEN: - if (decrypt_header(src, ctx) < 0) { - return -1; - } - ctx->current_position = 0; - return 0; - - case ZIP_SOURCE_READ: - if (len > ctx->data_length - ctx->current_position) { - len = ctx->data_length - ctx->current_position; - } - - if (len == 0) { - if (!verify_hmac(src, ctx)) { - return -1; - } - return 0; - } - - if ((n=zip_source_read(src, data, len)) < 0) { - _zip_error_set_from_source(&ctx->error, src); - return -1; - } - ctx->current_position += (zip_uint64_t)n; - - total = (zip_uint64_t)n; - for (offset = 0; offset < total; offset += ZIP_MIN(total - offset, UINT_MAX)) { - _zip_fcrypt_decrypt((zip_uint8_t *)data + offset, (unsigned int)ZIP_MIN(total - offset, UINT_MAX), &ctx->fcrypt_ctx); - } - - return n; - - case ZIP_SOURCE_CLOSE: - return 0; - - case ZIP_SOURCE_STAT: - { - zip_stat_t *st; - - st = (zip_stat_t *)data; - - st->encryption_method = ZIP_EM_NONE; - st->valid |= ZIP_STAT_ENCRYPTION_METHOD; - if (st->valid & ZIP_STAT_COMP_SIZE) { - st->comp_size -= 12 + salt_length[ctx->mode]; - } - - return 0; - } - - case ZIP_SOURCE_SUPPORTS: - return zip_source_make_command_bitmap(ZIP_SOURCE_OPEN, ZIP_SOURCE_READ, ZIP_SOURCE_CLOSE, ZIP_SOURCE_STAT, ZIP_SOURCE_ERROR, ZIP_SOURCE_FREE, -1); - - case ZIP_SOURCE_ERROR: - return zip_error_to_data(&ctx->error, data, len); - - case ZIP_SOURCE_FREE: - winzip_aes_free(ctx); - return 0; - - default: - zip_error_set(&ctx->error, ZIP_ER_INVAL, 0); - return -1; - } -} - - -static void -winzip_aes_free(struct winzip_aes *ctx) -{ - if (ctx == NULL) { - return; - } - - _zip_crypto_clear(&ctx->fcrypt_ctx, sizeof(ctx->fcrypt_ctx)); - _zip_crypto_clear(ctx->password, strlen(ctx->password)); - free(ctx->password); - zip_error_fini(&ctx->error); - free(ctx); -} - - -static struct winzip_aes * -winzip_aes_new(unsigned int mode, const char *password) { - struct winzip_aes *ctx; - - if ((ctx = (struct winzip_aes *)malloc(sizeof(*ctx))) == NULL) { - return NULL; - } - - if ((ctx->password = strdup(password)) == NULL) { - free(ctx); - return NULL; - } - - ctx->mode = mode; - - zip_error_init(&ctx->error); - - return ctx; -} diff --git a/libzip-1.2.0/lib/zip_source_winzip_aes_encode.c b/libzip-1.2.0/lib/zip_source_winzip_aes_encode.c deleted file mode 100644 index a7ca32139..000000000 --- a/libzip-1.2.0/lib/zip_source_winzip_aes_encode.c +++ /dev/null @@ -1,261 +0,0 @@ -/* - zip_source_winzip_aes.c -- Winzip AES de/encryption routines - Copyright (C) 2009-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include - -#include "zipint.h" - -#include "gladman-fcrypt.h" - -#define MAX_HEADER_LENGTH (16+PWD_VER_LENGTH) -#define HMAC_LENGTH 10 - -static unsigned int salt_length[] = { 0, 8, 12, 16 }; - -struct winzip_aes { - char *password; - unsigned int mode; - zip_uint16_t encryption_method; - - zip_uint8_t data[MAX_HEADER_LENGTH]; - zip_buffer_t *buffer; - - fcrypt_ctx fcrypt_ctx; - bool eof; - zip_error_t error; -}; - - -static int encrypt_header(zip_source_t *src, struct winzip_aes *ctx); -static void winzip_aes_free(struct winzip_aes *); -static zip_int64_t winzip_aes_encrypt(zip_source_t *src, void *ud, void *data, zip_uint64_t len, zip_source_cmd_t cmd); -static struct winzip_aes * winzip_aes_new(unsigned int mode, zip_uint16_t encryption_method, const char *password); - - -zip_source_t * -zip_source_winzip_aes_encode(zip_t *za, zip_source_t *src, zip_uint16_t encryption_method, int flags, const char *password) -{ - zip_source_t *s2; - unsigned int mode = 0; - struct winzip_aes *ctx; - - switch (encryption_method) { - case ZIP_EM_AES_128: - mode = 1; - break; - case ZIP_EM_AES_192: - mode = 2; - break; - case ZIP_EM_AES_256: - mode = 3; - break; - } - - if (password == NULL || src == NULL || mode == 0) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return NULL; - } - - if (strlen(password) > UINT_MAX) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); /* TODO: better error code? (password too long) */ - return NULL; - } - - if ((ctx = winzip_aes_new(mode, encryption_method, password)) == NULL) { - zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return NULL; - } - - if ((s2 = zip_source_layered(za, src, winzip_aes_encrypt, ctx)) == NULL) { - winzip_aes_free(ctx); - return NULL; - } - - return s2; -} - - -static int -encrypt_header(zip_source_t *src, struct winzip_aes *ctx) -{ - if (!zip_random(ctx->data, (zip_uint16_t)salt_length[ctx->mode])) { - zip_error_set(&ctx->error, ZIP_ER_INTERNAL, 0); - return -1; - } - - if (_zip_fcrypt_init(ctx->mode, (unsigned char *)ctx->password, (unsigned int)strlen(ctx->password), ctx->data, ctx->data+salt_length[ctx->mode], &ctx->fcrypt_ctx) != 0) { - zip_error_set(&ctx->error, ZIP_ER_MEMORY, 0); - return -1; - } - - if ((ctx->buffer = _zip_buffer_new(ctx->data, salt_length[ctx->mode] + PWD_VER_LENGTH)) == NULL) { - zip_error_set(&ctx->error, ZIP_ER_MEMORY, 0); - return -1; - } - - return 0; -} - - -static zip_int64_t -winzip_aes_encrypt(zip_source_t *src, void *ud, void *data, zip_uint64_t length, zip_source_cmd_t cmd) -{ - struct winzip_aes *ctx; - zip_int64_t ret; - zip_uint64_t buffer_n, offset, n; - - ctx = (struct winzip_aes *)ud; - - switch (cmd) { - case ZIP_SOURCE_OPEN: - ctx->eof = false; - if (encrypt_header(src, ctx) < 0) { - return -1; - } - return 0; - - case ZIP_SOURCE_READ: - buffer_n = 0; - - if (ctx->buffer) { - buffer_n = _zip_buffer_read(ctx->buffer, data, length); - - data = (zip_uint8_t *)data + buffer_n; - length -= buffer_n; - - if (_zip_buffer_eof(ctx->buffer)) { - _zip_buffer_free(ctx->buffer); - ctx->buffer = NULL; - } - } - - if (ctx->eof) { - return (zip_int64_t)buffer_n; - } - - if ((ret = zip_source_read(src, data, length)) < 0) { - _zip_error_set_from_source(&ctx->error, src); - return -1; - } - - n = (zip_uint64_t)ret; - for (offset = 0; offset < n; offset += ZIP_MIN(n - offset, UINT_MAX)) { - _zip_fcrypt_encrypt((zip_uint8_t *)data + offset, (unsigned int)ZIP_MIN(n - offset, UINT_MAX), &ctx->fcrypt_ctx); - } - - if (n < length) { - ctx->eof = true; - _zip_fcrypt_end(ctx->data, &ctx->fcrypt_ctx); - if ((ctx->buffer = _zip_buffer_new(ctx->data, HMAC_LENGTH)) == NULL) { - zip_error_set(&ctx->error, ZIP_ER_MEMORY, 0); - /* TODO: return partial read? */ - return -1; - } - } - - return (zip_int64_t)(buffer_n + n); - - case ZIP_SOURCE_CLOSE: - return 0; - - case ZIP_SOURCE_STAT: - { - zip_stat_t *st; - - st = (zip_stat_t *)data; - st->encryption_method = ctx->encryption_method; - st->valid |= ZIP_STAT_ENCRYPTION_METHOD; - if (st->valid & ZIP_STAT_COMP_SIZE) { - st->comp_size += 12 + salt_length[ctx->mode]; - } - - return 0; - } - - case ZIP_SOURCE_SUPPORTS: - return zip_source_make_command_bitmap(ZIP_SOURCE_OPEN, ZIP_SOURCE_READ, ZIP_SOURCE_CLOSE, ZIP_SOURCE_STAT, ZIP_SOURCE_ERROR, ZIP_SOURCE_FREE, -1); - - case ZIP_SOURCE_ERROR: - return zip_error_to_data(&ctx->error, data, length); - - case ZIP_SOURCE_FREE: - winzip_aes_free(ctx); - return 0; - - default: - zip_error_set(&ctx->error, ZIP_ER_INVAL, 0); - return -1; - } -} - - -static void -winzip_aes_free(struct winzip_aes *ctx) -{ - if (ctx == NULL) { - return; - } - - _zip_crypto_clear(&ctx->fcrypt_ctx, sizeof(ctx->fcrypt_ctx)); - _zip_crypto_clear(ctx->password, strlen(ctx->password)); - free(ctx->password); - zip_error_fini(&ctx->error); - _zip_buffer_free(ctx->buffer); - free(ctx); -} - - -static struct winzip_aes * -winzip_aes_new(unsigned int mode, zip_uint16_t encryption_method, const char *password) { - struct winzip_aes *ctx; - - if ((ctx = (struct winzip_aes *)malloc(sizeof(*ctx))) == NULL) { - return NULL; - } - - if ((ctx->password = strdup(password)) == NULL) { - free(ctx); - return NULL; - } - - ctx->mode = mode; - ctx->encryption_method = encryption_method; - ctx->buffer = NULL; - - zip_error_init(&ctx->error); - - ctx->eof = false; - return ctx; -} diff --git a/libzip-1.2.0/lib/zip_source_write.c b/libzip-1.2.0/lib/zip_source_write.c deleted file mode 100644 index c98f5679a..000000000 --- a/libzip-1.2.0/lib/zip_source_write.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - zip_source_write.c -- start a new file for writing - Copyright (C) 2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN zip_int64_t -zip_source_write(zip_source_t *src, const void *data, zip_uint64_t length) -{ - if (!ZIP_SOURCE_IS_OPEN_WRITING(src) || length > ZIP_INT64_MAX) { - zip_error_set(&src->error, ZIP_ER_INVAL, 0); - return -1; - } - - return _zip_source_call(src, (void *)data, length, ZIP_SOURCE_WRITE); -} diff --git a/libzip-1.2.0/lib/zip_source_zip.c b/libzip-1.2.0/lib/zip_source_zip.c deleted file mode 100644 index e172ca208..000000000 --- a/libzip-1.2.0/lib/zip_source_zip.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - zip_source_zip.c -- create data source from zip file - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include - -#include "zipint.h" - - -ZIP_EXTERN zip_source_t * -zip_source_zip(zip_t *za, zip_t *srcza, zip_uint64_t srcidx, - zip_flags_t flags, zip_uint64_t start, zip_int64_t len) -{ - if (len < -1) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return NULL; - } - - if (len == -1) - len = 0; - - if (start == 0 && len == 0) - flags |= ZIP_FL_COMPRESSED; - else - flags &= ~ZIP_FL_COMPRESSED; - - return _zip_source_zip_new(za, srcza, srcidx, flags, start, (zip_uint64_t)len, NULL); -} diff --git a/libzip-1.2.0/lib/zip_source_zip_new.c b/libzip-1.2.0/lib/zip_source_zip_new.c deleted file mode 100644 index 925625587..000000000 --- a/libzip-1.2.0/lib/zip_source_zip_new.c +++ /dev/null @@ -1,176 +0,0 @@ -/* - zip_source_zip_new.c -- prepare data structures for zip_fopen/zip_source_zip - Copyright (C) 2012-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" - - -zip_source_t * -_zip_source_zip_new(zip_t *za, zip_t *srcza, zip_uint64_t srcidx, zip_flags_t flags, zip_uint64_t start, zip_uint64_t len, const char *password) -{ - zip_compression_implementation comp_impl; - zip_encryption_implementation enc_impl; - zip_source_t *src, *s2; - zip_uint64_t offset; - struct zip_stat st; - - if (za == NULL) - return NULL; - - if (srcza == NULL || srcidx >= srcza->nentry) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return NULL; - } - - if ((flags & ZIP_FL_UNCHANGED) == 0 - && (ZIP_ENTRY_DATA_CHANGED(srcza->entry+srcidx) || srcza->entry[srcidx].deleted)) { - zip_error_set(&za->error, ZIP_ER_CHANGED, 0); - return NULL; - } - - if (zip_stat_index(srcza, srcidx, flags|ZIP_FL_UNCHANGED, &st) < 0) { - zip_error_set(&za->error, ZIP_ER_INTERNAL, 0); - return NULL; - } - - if (flags & ZIP_FL_ENCRYPTED) - flags |= ZIP_FL_COMPRESSED; - - if ((start > 0 || len > 0) && (flags & ZIP_FL_COMPRESSED)) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return NULL; - } - - /* overflow or past end of file */ - if ((start > 0 || len > 0) && (start+len < start || start+len > st.size)) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return NULL; - } - - enc_impl = NULL; - if (((flags & ZIP_FL_ENCRYPTED) == 0) && (st.encryption_method != ZIP_EM_NONE)) { - if (password == NULL) { - password = za->default_password; - } - if (password == NULL) { - zip_error_set(&za->error, ZIP_ER_NOPASSWD, 0); - return NULL; - } - if ((enc_impl=_zip_get_encryption_implementation(st.encryption_method, ZIP_CODEC_DECODE)) == NULL) { - zip_error_set(&za->error, ZIP_ER_ENCRNOTSUPP, 0); - return NULL; - } - } - - comp_impl = NULL; - if ((flags & ZIP_FL_COMPRESSED) == 0) { - if (st.comp_method != ZIP_CM_STORE) { - if ((comp_impl=_zip_get_compression_implementation(st.comp_method, ZIP_CODEC_DECODE)) == NULL) { - zip_error_set(&za->error, ZIP_ER_COMPNOTSUPP, 0); - return NULL; - } - } - } - - if ((offset=_zip_file_get_offset(srcza, srcidx, &za->error)) == 0) - return NULL; - - if (st.comp_size == 0) { - return zip_source_buffer(za, NULL, 0, 0); - } - - if (start+len > 0 && enc_impl == NULL && comp_impl == NULL) { - struct zip_stat st2; - - st2.size = len ? len : st.size-start; - st2.comp_size = st2.size; - st2.comp_method = ZIP_CM_STORE; - st2.mtime = st.mtime; - st2.valid = ZIP_STAT_SIZE|ZIP_STAT_COMP_SIZE|ZIP_STAT_COMP_METHOD|ZIP_STAT_MTIME; - - if ((src = _zip_source_window_new(srcza->src, offset+start, st2.size, &st2, &za->error)) == NULL) { - return NULL; - } - } - else { - if ((src = _zip_source_window_new(srcza->src, offset, st.comp_size, &st, &za->error)) == NULL) { - return NULL; - } - } - - if (_zip_source_set_source_archive(src, srcza) < 0) { - zip_source_free(src); - return NULL; - } - - /* creating a layered source calls zip_keep() on the lower layer, so we free it */ - - if (enc_impl) { - s2 = enc_impl(za, src, st.encryption_method, 0, password); - zip_source_free(src); - if (s2 == NULL) { - return NULL; - } - src = s2; - } - if (comp_impl) { - s2 = comp_impl(za, src, st.comp_method, 0); - zip_source_free(src); - if (s2 == NULL) { - return NULL; - } - src = s2; - } - if (((flags & ZIP_FL_COMPRESSED) == 0 || st.comp_method == ZIP_CM_STORE) && (len == 0 || len == st.comp_size)) { - /* when reading the whole file, check for CRC errors */ - s2 = zip_source_crc(za, src, 1); - zip_source_free(src); - if (s2 == NULL) { - return NULL; - } - src = s2; - } - - if (start+len > 0 && (comp_impl || enc_impl)) { - s2 = zip_source_window(za, src, start, len ? len : st.size-start); - zip_source_free(src); - if (s2 == NULL) { - return NULL; - } - src = s2; - } - - return src; -} diff --git a/libzip-1.2.0/lib/zip_stat.c b/libzip-1.2.0/lib/zip_stat.c deleted file mode 100644 index cf8e56613..000000000 --- a/libzip-1.2.0/lib/zip_stat.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - zip_stat.c -- get information about file by name - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN int -zip_stat(zip_t *za, const char *fname, zip_flags_t flags, zip_stat_t *st) -{ - zip_int64_t idx; - - if ((idx=zip_name_locate(za, fname, flags)) < 0) - return -1; - - return zip_stat_index(za, (zip_uint64_t)idx, flags, st); -} diff --git a/libzip-1.2.0/lib/zip_stat_index.c b/libzip-1.2.0/lib/zip_stat_index.c deleted file mode 100644 index a2ef59bba..000000000 --- a/libzip-1.2.0/lib/zip_stat_index.c +++ /dev/null @@ -1,77 +0,0 @@ -/* - zip_stat_index.c -- get information about file by index - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN int -zip_stat_index(zip_t *za, zip_uint64_t index, zip_flags_t flags, - zip_stat_t *st) -{ - const char *name; - zip_dirent_t *de; - - if ((de=_zip_get_dirent(za, index, flags, NULL)) == NULL) - return -1; - - if ((name=zip_get_name(za, index, flags)) == NULL) - return -1; - - - if ((flags & ZIP_FL_UNCHANGED) == 0 - && ZIP_ENTRY_DATA_CHANGED(za->entry+index)) { - if (zip_source_stat(za->entry[index].source, st) < 0) { - zip_error_set(&za->error, ZIP_ER_CHANGED, 0); - return -1; - } - } - else { - zip_stat_init(st); - - st->crc = de->crc; - st->size = de->uncomp_size; - st->mtime = de->last_mod; - st->comp_size = de->comp_size; - st->comp_method = (zip_uint16_t)de->comp_method; - st->encryption_method = de->encryption_method; - st->valid = (de->crc_valid ? ZIP_STAT_CRC : 0) | ZIP_STAT_SIZE|ZIP_STAT_MTIME - |ZIP_STAT_COMP_SIZE|ZIP_STAT_COMP_METHOD|ZIP_STAT_ENCRYPTION_METHOD; - } - - st->index = index; - st->name = name; - st->valid |= ZIP_STAT_INDEX|ZIP_STAT_NAME; - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_stat_init.c b/libzip-1.2.0/lib/zip_stat_init.c deleted file mode 100644 index 6b7d63374..000000000 --- a/libzip-1.2.0/lib/zip_stat_init.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - zip_stat_init.c -- initialize struct zip_stat. - Copyright (C) 2006-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include - -#include "zipint.h" - - -ZIP_EXTERN void -zip_stat_init(zip_stat_t *st) -{ - st->valid = 0; - st->name = NULL; - st->index = ZIP_UINT64_MAX; - st->crc = 0; - st->mtime = (time_t)-1; - st->size = 0; - st->comp_size = 0; - st->comp_method = ZIP_CM_STORE; - st->encryption_method = ZIP_EM_NONE; -} - - -int -_zip_stat_merge(zip_stat_t *dst, const zip_stat_t *src, zip_error_t *error) -{ - /* name is not merged, since zip_stat_t doesn't own it, and src may not be valid as long as dst */ - if (src->valid & ZIP_STAT_INDEX) { - dst->index = src->index; - } - if (src->valid & ZIP_STAT_SIZE) { - dst->size = src->size; - } - if (src->valid & ZIP_STAT_COMP_SIZE) { - dst->comp_size = src->comp_size; - } - if (src->valid & ZIP_STAT_MTIME) { - dst->mtime = src->mtime; - } - if (src->valid & ZIP_STAT_CRC) { - dst->crc = src->crc; - } - if (src->valid & ZIP_STAT_COMP_METHOD) { - dst->comp_method = src->comp_method; - } - if (src->valid & ZIP_STAT_ENCRYPTION_METHOD) { - dst->encryption_method = src->encryption_method; - } - if (src->valid & ZIP_STAT_FLAGS) { - dst->flags = src->flags; - } - dst->valid |= src->valid; - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_strerror.c b/libzip-1.2.0/lib/zip_strerror.c deleted file mode 100644 index 98c4f6b1c..000000000 --- a/libzip-1.2.0/lib/zip_strerror.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - zip_sterror.c -- get string representation of zip error - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - - -ZIP_EXTERN const char * -zip_strerror(zip_t *za) -{ - return zip_error_strerror(&za->error); -} diff --git a/libzip-1.2.0/lib/zip_string.c b/libzip-1.2.0/lib/zip_string.c deleted file mode 100644 index 307a425f7..000000000 --- a/libzip-1.2.0/lib/zip_string.c +++ /dev/null @@ -1,188 +0,0 @@ -/* - zip_string.c -- string handling (with encoding) - Copyright (C) 2012-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include - -#include "zipint.h" - - -zip_uint32_t -_zip_string_crc32(const zip_string_t *s) -{ - zip_uint32_t crc; - - crc = (zip_uint32_t)crc32(0L, Z_NULL, 0); - - if (s != NULL) - crc = (zip_uint32_t)crc32(crc, s->raw, s->length); - - return crc; -} - - -int -_zip_string_equal(const zip_string_t *a, const zip_string_t *b) -{ - if (a == NULL || b == NULL) - return a == b; - - if (a->length != b->length) - return 0; - - /* TODO: encoding */ - - return (memcmp(a->raw, b->raw, a->length) == 0); -} - - -void -_zip_string_free(zip_string_t *s) -{ - if (s == NULL) - return; - - free(s->raw); - free(s->converted); - free(s); -} - - -const zip_uint8_t * -_zip_string_get(zip_string_t *string, zip_uint32_t *lenp, zip_flags_t flags, zip_error_t *error) -{ - static const zip_uint8_t empty[1] = ""; - - if (string == NULL) { - if (lenp) - *lenp = 0; - return empty; - } - - if ((flags & ZIP_FL_ENC_RAW) == 0) { - /* start guessing */ - if (string->encoding == ZIP_ENCODING_UNKNOWN) - _zip_guess_encoding(string, ZIP_ENCODING_UNKNOWN); - - if (((flags & ZIP_FL_ENC_STRICT) - && string->encoding != ZIP_ENCODING_ASCII && string->encoding != ZIP_ENCODING_UTF8_KNOWN) - || (string->encoding == ZIP_ENCODING_CP437)) { - if (string->converted == NULL) { - if ((string->converted=_zip_cp437_to_utf8(string->raw, string->length, - &string->converted_length, error)) == NULL) - return NULL; - } - if (lenp) - *lenp = string->converted_length; - return string->converted; - } - } - - if (lenp) - *lenp = string->length; - return string->raw; -} - - -zip_uint16_t -_zip_string_length(const zip_string_t *s) -{ - if (s == NULL) - return 0; - - return s->length; -} - - -zip_string_t * -_zip_string_new(const zip_uint8_t *raw, zip_uint16_t length, zip_flags_t flags, zip_error_t *error) -{ - zip_string_t *s; - zip_encoding_type_t expected_encoding; - - if (length == 0) - return NULL; - - switch (flags & ZIP_FL_ENCODING_ALL) { - case ZIP_FL_ENC_GUESS: - expected_encoding = ZIP_ENCODING_UNKNOWN; - break; - case ZIP_FL_ENC_UTF_8: - expected_encoding = ZIP_ENCODING_UTF8_KNOWN; - break; - case ZIP_FL_ENC_CP437: - expected_encoding = ZIP_ENCODING_CP437; - break; - default: - zip_error_set(error, ZIP_ER_INVAL, 0); - return NULL; - } - - if ((s=(zip_string_t *)malloc(sizeof(*s))) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return NULL; - } - - if ((s->raw=(zip_uint8_t *)malloc((size_t)(length+1))) == NULL) { - free(s); - return NULL; - } - - memcpy(s->raw, raw, length); - s->raw[length] = '\0'; - s->length = length; - s->encoding = ZIP_ENCODING_UNKNOWN; - s->converted = NULL; - s->converted_length = 0; - - if (expected_encoding != ZIP_ENCODING_UNKNOWN) { - if (_zip_guess_encoding(s, expected_encoding) == ZIP_ENCODING_ERROR) { - _zip_string_free(s); - zip_error_set(error, ZIP_ER_INVAL, 0); - return NULL; - } - } - - return s; -} - - -int -_zip_string_write(zip_t *za, const zip_string_t *s) -{ - if (s == NULL) - return 0; - - return _zip_write(za, s->raw, s->length); -} diff --git a/libzip-1.2.0/lib/zip_unchange.c b/libzip-1.2.0/lib/zip_unchange.c deleted file mode 100644 index 4a3d64265..000000000 --- a/libzip-1.2.0/lib/zip_unchange.c +++ /dev/null @@ -1,95 +0,0 @@ -/* - zip_unchange.c -- undo changes to file in zip archive - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" - - -ZIP_EXTERN int -zip_unchange(zip_t *za, zip_uint64_t idx) -{ - return _zip_unchange(za, idx, 0); -} - - -int -_zip_unchange(zip_t *za, zip_uint64_t idx, int allow_duplicates) -{ - zip_int64_t i; - const char *orig_name, *changed_name; - - if (idx >= za->nentry) { - zip_error_set(&za->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (!allow_duplicates && za->entry[idx].changes && (za->entry[idx].changes->changed & ZIP_DIRENT_FILENAME)) { - if (za->entry[idx].orig != NULL) { - if ((orig_name=_zip_get_name(za, idx, ZIP_FL_UNCHANGED, &za->error)) == NULL) { - return -1; - } - - i = _zip_name_locate(za, orig_name, 0, NULL); - if (i >= 0 && (zip_uint64_t)i != idx) { - zip_error_set(&za->error, ZIP_ER_EXISTS, 0); - return -1; - } - } - else { - orig_name = NULL; - } - - if ((changed_name=_zip_get_name(za, idx, 0, &za->error)) == NULL) { - return -1; - } - - if (orig_name) { - if (_zip_hash_add(za->names, (const zip_uint8_t *)orig_name, idx, 0, &za->error) == false) { - return -1; - } - } - if (_zip_hash_delete(za->names, (const zip_uint8_t *)changed_name, &za->error) == false) { - _zip_hash_delete(za->names, (const zip_uint8_t *)orig_name, NULL); - return -1; - } - } - - _zip_dirent_free(za->entry[idx].changes); - za->entry[idx].changes = NULL; - - _zip_unchange_data(za->entry+idx); - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_unchange_all.c b/libzip-1.2.0/lib/zip_unchange_all.c deleted file mode 100644 index 2221d6cb3..000000000 --- a/libzip-1.2.0/lib/zip_unchange_all.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - zip_unchange.c -- undo changes to all files in zip archive - Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" - - -ZIP_EXTERN int -zip_unchange_all(zip_t *za) -{ - int ret; - zip_uint64_t i; - - _zip_hash_revert(za->names); - - ret = 0; - for (i=0; inentry; i++) - ret |= _zip_unchange(za, i, 1); - - ret |= zip_unchange_archive(za); - - return ret; -} diff --git a/libzip-1.2.0/lib/zip_unchange_archive.c b/libzip-1.2.0/lib/zip_unchange_archive.c deleted file mode 100644 index 920255cc7..000000000 --- a/libzip-1.2.0/lib/zip_unchange_archive.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - zip_unchange_archive.c -- undo global changes to ZIP archive - Copyright (C) 2006-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include - -#include "zipint.h" - - -ZIP_EXTERN int -zip_unchange_archive(zip_t *za) -{ - if (za->comment_changed) { - _zip_string_free(za->comment_changes); - za->comment_changes = NULL; - za->comment_changed = 0; - } - - za->ch_flags = za->flags; - - return 0; -} diff --git a/libzip-1.2.0/lib/zip_unchange_data.c b/libzip-1.2.0/lib/zip_unchange_data.c deleted file mode 100644 index 839d9a3cb..000000000 --- a/libzip-1.2.0/lib/zip_unchange_data.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - zip_unchange_data.c -- undo helper function - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - -void -_zip_unchange_data(zip_entry_t *ze) -{ - if (ze->source) { - zip_source_free(ze->source); - ze->source = NULL; - } - - if (ze->changes != NULL && (ze->changes->changed & ZIP_DIRENT_COMP_METHOD) && ze->changes->comp_method == ZIP_CM_REPLACED_DEFAULT) { - ze->changes->changed &= ~ZIP_DIRENT_COMP_METHOD; - if (ze->changes->changed == 0) { - _zip_dirent_free(ze->changes); - ze->changes = NULL; - } - } - - ze->deleted = 0; -} - diff --git a/libzip-1.2.0/lib/zip_utf-8.c b/libzip-1.2.0/lib/zip_utf-8.c deleted file mode 100644 index f38eea04d..000000000 --- a/libzip-1.2.0/lib/zip_utf-8.c +++ /dev/null @@ -1,249 +0,0 @@ -/* - zip_utf-8.c -- UTF-8 support functions for libzip - Copyright (C) 2011-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "zipint.h" - -#include - - -static const zip_uint16_t _cp437_to_unicode[256] = { - /* 0x00 - 0x0F */ - 0x2007, 0x263A, 0x263B, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, - 0x25D8, 0x25CB, 0x25D9, 0x2642, 0x2640, 0x266A, 0x266B, 0x263C, - - /* 0x10 - 0x1F */ - 0x25BA, 0x25C4, 0x2195, 0x203C, 0x00B6, 0x00A7, 0x25AC, 0x21A8, - 0x2191, 0x2193, 0x2192, 0x2190, 0x221F, 0x2194, 0x25B2, 0x25BC, - - /* 0x20 - 0x2F */ - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - - /* 0x30 - 0x3F */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - - /* 0x40 - 0x4F */ - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - - /* 0x50 - 0x5F */ - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - - /* 0x60 - 0x6F */ - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - - /* 0x70 - 0x7F */ - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x2302, - - /* 0x80 - 0x8F */ - 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, - 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, - - /* 0x90 - 0x9F */ - 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, - 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, - - /* 0xA0 - 0xAF */ - 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, - 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, - - /* 0xB0 - 0xBF */ - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, - - /* 0xC0 - 0xCF */ - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, - 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, - - /* 0xD0 - 0xDF */ - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, - 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, - - /* 0xE0 - 0xEF */ - 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, - 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, - - /* 0xF0 - 0xFF */ - 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, - 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 -}; - -#define UTF_8_LEN_2_MASK 0xe0 -#define UTF_8_LEN_2_MATCH 0xc0 -#define UTF_8_LEN_3_MASK 0xf0 -#define UTF_8_LEN_3_MATCH 0xe0 -#define UTF_8_LEN_4_MASK 0xf8 -#define UTF_8_LEN_4_MATCH 0xf0 -#define UTF_8_CONTINUE_MASK 0xc0 -#define UTF_8_CONTINUE_MATCH 0x80 - - -zip_encoding_type_t -_zip_guess_encoding(zip_string_t *str, zip_encoding_type_t expected_encoding) -{ - zip_encoding_type_t enc; - const zip_uint8_t *name; - zip_uint32_t i, j, ulen; - - if (str == NULL) - return ZIP_ENCODING_ASCII; - - name = str->raw; - - if (str->encoding != ZIP_ENCODING_UNKNOWN) - enc = str->encoding; - else { - enc = ZIP_ENCODING_ASCII; - for (i=0; ilength; i++) { - if ((name[i] > 31 && name[i] < 128) || name[i] == '\r' || name[i] == '\n' || name[i] == '\t') - continue; - - enc = ZIP_ENCODING_UTF8_GUESSED; - if ((name[i] & UTF_8_LEN_2_MASK) == UTF_8_LEN_2_MATCH) - ulen = 1; - else if ((name[i] & UTF_8_LEN_3_MASK) == UTF_8_LEN_3_MATCH) - ulen = 2; - else if ((name[i] & UTF_8_LEN_4_MASK) == UTF_8_LEN_4_MATCH) - ulen = 3; - else { - enc = ZIP_ENCODING_CP437; - break; - } - - if (i + ulen >= str->length) { - enc = ZIP_ENCODING_CP437; - break; - } - - for (j=1; j<=ulen; j++) { - if ((name[i+j] & UTF_8_CONTINUE_MASK) != UTF_8_CONTINUE_MATCH) { - enc = ZIP_ENCODING_CP437; - goto done; - } - } - i += ulen; - } - } - -done: - str->encoding = enc; - - if (expected_encoding != ZIP_ENCODING_UNKNOWN) { - if (expected_encoding == ZIP_ENCODING_UTF8_KNOWN && enc == ZIP_ENCODING_UTF8_GUESSED) - str->encoding = enc = ZIP_ENCODING_UTF8_KNOWN; - - if (expected_encoding != enc && enc != ZIP_ENCODING_ASCII) - return ZIP_ENCODING_ERROR; - } - - return enc; -} - - -static zip_uint32_t -_zip_unicode_to_utf8_len(zip_uint32_t codepoint) -{ - if (codepoint < 0x0080) - return 1; - if (codepoint < 0x0800) - return 2; - if (codepoint < 0x10000) - return 3; - return 4; -} - - -static zip_uint32_t -_zip_unicode_to_utf8(zip_uint32_t codepoint, zip_uint8_t *buf) -{ - if (codepoint < 0x0080) { - buf[0] = codepoint & 0xff; - return 1; - } - if (codepoint < 0x0800) { - buf[0] = (zip_uint8_t)(UTF_8_LEN_2_MATCH | ((codepoint >> 6) & 0x1f)); - buf[1] = (zip_uint8_t)(UTF_8_CONTINUE_MATCH | (codepoint & 0x3f)); - return 2; - } - if (codepoint < 0x10000) { - buf[0] = (zip_uint8_t)(UTF_8_LEN_3_MATCH | ((codepoint >> 12) & 0x0f)); - buf[1] = (zip_uint8_t)(UTF_8_CONTINUE_MATCH | ((codepoint >> 6) & 0x3f)); - buf[2] = (zip_uint8_t)(UTF_8_CONTINUE_MATCH | (codepoint & 0x3f)); - return 3; - } - buf[0] = (zip_uint8_t)(UTF_8_LEN_4_MATCH | ((codepoint >> 18) & 0x07)); - buf[1] = (zip_uint8_t)(UTF_8_CONTINUE_MATCH | ((codepoint >> 12) & 0x3f)); - buf[2] = (zip_uint8_t)(UTF_8_CONTINUE_MATCH | ((codepoint >> 6) & 0x3f)); - buf[3] = (zip_uint8_t)(UTF_8_CONTINUE_MATCH | (codepoint & 0x3f)); - return 4; -} - - -zip_uint8_t * -_zip_cp437_to_utf8(const zip_uint8_t * const _cp437buf, zip_uint32_t len, - zip_uint32_t *utf8_lenp, zip_error_t *error) -{ - zip_uint8_t *cp437buf = (zip_uint8_t *)_cp437buf; - zip_uint8_t *utf8buf; - zip_uint32_t buflen, i, offset; - - if (len == 0) { - if (utf8_lenp) - *utf8_lenp = 0; - return NULL; - } - - buflen = 1; - for (i=0; i - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "compat.h" - -#include - -#ifndef _ZIP_COMPILING_DEPRECATED -#define ZIP_DISABLE_DEPRECATED -#endif - -#include "zip.h" - -#define CENTRAL_MAGIC "PK\1\2" -#define LOCAL_MAGIC "PK\3\4" -#define EOCD_MAGIC "PK\5\6" -#define DATADES_MAGIC "PK\7\8" -#define EOCD64LOC_MAGIC "PK\6\7" -#define EOCD64_MAGIC "PK\6\6" -#define CDENTRYSIZE 46u -#define LENTRYSIZE 30 -#define MAXCOMLEN 65536 -#define MAXEXTLEN 65536 -#define EOCDLEN 22 -#define EOCD64LOCLEN 20 -#define EOCD64LEN 56 -#define CDBUFSIZE (MAXCOMLEN+EOCDLEN+EOCD64LOCLEN) -#define BUFSIZE 8192 -#define EFZIP64SIZE 28 -#define EF_WINZIP_AES_SIZE 7 - -#define ZIP_CM_REPLACED_DEFAULT (-2) -#define ZIP_CM_WINZIP_AES 99 /* Winzip AES encrypted */ - -#define ZIP_CM_IS_DEFAULT(x) ((x) == ZIP_CM_DEFAULT || (x) == ZIP_CM_REPLACED_DEFAULT) - -#define ZIP_EF_UTF_8_COMMENT 0x6375 -#define ZIP_EF_UTF_8_NAME 0x7075 -#define ZIP_EF_WINZIP_AES 0x9901 -#define ZIP_EF_ZIP64 0x0001 - -#define ZIP_EF_IS_INTERNAL(id) ((id) == ZIP_EF_UTF_8_COMMENT || (id) == ZIP_EF_UTF_8_NAME || (id) == ZIP_EF_WINZIP_AES || (id) == ZIP_EF_ZIP64) - -/* according to unzip-6.0's zipinfo.c, this corresponds to a regular file with rw permissions for everyone */ -#define ZIP_EXT_ATTRIB_DEFAULT (0100666u<<16) -/* according to unzip-6.0's zipinfo.c, this corresponds to a directory with rwx permissions for everyone */ -#define ZIP_EXT_ATTRIB_DEFAULT_DIR (0040777u<<16) - - -#define ZIP_MAX(a, b) ((a) > (b) ? (a) : (b)) -#define ZIP_MIN(a, b) ((a) < (b) ? (a) : (b)) - -/* This section contains API that won't materialize like this. It's - placed in the internal section, pending cleanup. */ - -/* flags for compression and encryption sources */ - -#define ZIP_CODEC_DECODE 0 /* decompress/decrypt (encode flag not set) */ -#define ZIP_CODEC_ENCODE 1 /* compress/encrypt */ - - -typedef zip_source_t *(*zip_compression_implementation)(zip_t *, zip_source_t *, zip_int32_t, int); -typedef zip_source_t *(*zip_encryption_implementation)(zip_t *, zip_source_t *, zip_uint16_t, int, const char *); - -zip_compression_implementation _zip_get_compression_implementation(zip_int32_t method, int operation); -zip_encryption_implementation _zip_get_encryption_implementation(zip_uint16_t method, int operation); - - - -/* This API is not final yet, but we need it internally, so it's private for now. */ - -const zip_uint8_t *zip_get_extra_field_by_id(zip_t *, int, int, zip_uint16_t, int, zip_uint16_t *); - -/* This section contains API that is of limited use until support for - user-supplied compression/encryption implementation is finished. - Thus we will keep it private for now. */ - -typedef zip_int64_t (*zip_source_layered_callback)(zip_source_t *, void *, void *, zip_uint64_t, enum zip_source_cmd); -zip_source_t *zip_source_crc(zip_t *, zip_source_t *, int); -zip_source_t *zip_source_deflate(zip_t *, zip_source_t *, zip_int32_t, int); -zip_source_t *zip_source_layered(zip_t *, zip_source_t *, zip_source_layered_callback, void *); -zip_source_t *zip_source_layered_create(zip_source_t *src, zip_source_layered_callback cb, void *ud, zip_error_t *error); -zip_source_t *zip_source_pkware(zip_t *, zip_source_t *, zip_uint16_t, int, const char *); -int zip_source_remove(zip_source_t *); -zip_int64_t zip_source_supports(zip_source_t *src); -zip_source_t *zip_source_window(zip_t *, zip_source_t *, zip_uint64_t, zip_uint64_t); -zip_source_t *zip_source_winzip_aes_decode(zip_t *, zip_source_t *, zip_uint16_t, int, const char *); -zip_source_t *zip_source_winzip_aes_encode(zip_t *, zip_source_t *, zip_uint16_t, int, const char *); - - -/* error source for layered sources */ - -enum zip_les { ZIP_LES_NONE, ZIP_LES_UPPER, ZIP_LES_LOWER, ZIP_LES_INVAL }; - -/* directory entry: general purpose bit flags */ - -#define ZIP_GPBF_ENCRYPTED 0x0001 /* is encrypted */ -#define ZIP_GPBF_DATA_DESCRIPTOR 0x0008 /* crc/size after file data */ -#define ZIP_GPBF_STRONG_ENCRYPTION 0x0040 /* uses strong encryption */ -#define ZIP_GPBF_ENCODING_UTF_8 0x0800 /* file name encoding is UTF-8 */ - - -/* extra fields */ -#define ZIP_EF_LOCAL ZIP_FL_LOCAL /* include in local header */ -#define ZIP_EF_CENTRAL ZIP_FL_CENTRAL /* include in central directory */ -#define ZIP_EF_BOTH (ZIP_EF_LOCAL|ZIP_EF_CENTRAL) /* include in both */ - -#define ZIP_FL_FORCE_ZIP64 1024 /* force zip64 extra field (_zip_dirent_write) */ - -#define ZIP_FL_ENCODING_ALL (ZIP_FL_ENC_GUESS|ZIP_FL_ENC_CP437|ZIP_FL_ENC_UTF_8) - - -/* encoding type */ -enum zip_encoding_type { - ZIP_ENCODING_UNKNOWN, /* not yet analyzed */ - ZIP_ENCODING_ASCII, /* plain ASCII */ - ZIP_ENCODING_UTF8_KNOWN, /* is UTF-8 */ - ZIP_ENCODING_UTF8_GUESSED, /* possibly UTF-8 */ - ZIP_ENCODING_CP437, /* Code Page 437 */ - ZIP_ENCODING_ERROR /* should be UTF-8 but isn't */ -}; - -typedef enum zip_encoding_type zip_encoding_type_t; - -#ifndef ZIP_HASH_TABLE_SIZE -#define ZIP_HASH_TABLE_SIZE 8192 -#endif - -struct zip_hash; - -typedef struct zip_cdir zip_cdir_t; -typedef struct zip_dirent zip_dirent_t; -typedef struct zip_entry zip_entry_t; -typedef struct zip_extra_field zip_extra_field_t; -typedef struct zip_string zip_string_t; -typedef struct zip_buffer zip_buffer_t; -typedef struct zip_hash zip_hash_t; - -/* zip archive, part of API */ - -struct zip { - zip_source_t *src; /* data source for archive */ - unsigned int open_flags; /* flags passed to zip_open */ - zip_error_t error; /* error information */ - - unsigned int flags; /* archive global flags */ - unsigned int ch_flags; /* changed archive global flags */ - - char *default_password; /* password used when no other supplied */ - - zip_string_t *comment_orig; /* archive comment */ - zip_string_t *comment_changes; /* changed archive comment */ - bool comment_changed; /* whether archive comment was changed */ - - zip_uint64_t nentry; /* number of entries */ - zip_uint64_t nentry_alloc; /* number of entries allocated */ - zip_entry_t *entry; /* entries */ - - unsigned int nopen_source; /* number of open sources using archive */ - unsigned int nopen_source_alloc; /* number of sources allocated */ - zip_source_t **open_source; /* open sources using archive */ - - zip_hash_t *names; /* hash table for name lookup */ - - zip_progress_callback_t progress_callback; /* progress callback for zip_close() */ -}; - -/* file in zip archive, part of API */ - -struct zip_file { - zip_t *za; /* zip archive containing this file */ - zip_error_t error; /* error information */ - bool eof; - zip_source_t *src; /* data source */ -}; - -/* zip archive directory entry (central or local) */ - -#define ZIP_DIRENT_COMP_METHOD 0x0001u -#define ZIP_DIRENT_FILENAME 0x0002u -#define ZIP_DIRENT_COMMENT 0x0004u -#define ZIP_DIRENT_EXTRA_FIELD 0x0008u -#define ZIP_DIRENT_ATTRIBUTES 0x0010u -#define ZIP_DIRENT_LAST_MOD 0x0020u -#define ZIP_DIRENT_ENCRYPTION_METHOD 0x0040u -#define ZIP_DIRENT_PASSWORD 0x0080u -#define ZIP_DIRENT_ALL ZIP_UINT32_MAX - -struct zip_dirent { - zip_uint32_t changed; - bool local_extra_fields_read; /* whether we already read in local header extra fields */ - bool cloned; /* whether this instance is cloned, and thus shares non-changed strings */ - - bool crc_valid; /* if CRC is valid (sometimes not for encrypted archives) */ - - zip_uint16_t version_madeby; /* (c) version of creator */ - zip_uint16_t version_needed; /* (cl) version needed to extract */ - zip_uint16_t bitflags; /* (cl) general purpose bit flag */ - zip_int32_t comp_method; /* (cl) compression method used (uint16 and ZIP_CM_DEFAULT (-1)) */ - time_t last_mod; /* (cl) time of last modification */ - zip_uint32_t crc; /* (cl) CRC-32 of uncompressed data */ - zip_uint64_t comp_size; /* (cl) size of compressed data */ - zip_uint64_t uncomp_size; /* (cl) size of uncompressed data */ - zip_string_t *filename; /* (cl) file name (NUL-terminated) */ - zip_extra_field_t *extra_fields; /* (cl) extra fields, parsed */ - zip_string_t *comment; /* (c) file comment */ - zip_uint32_t disk_number; /* (c) disk number start */ - zip_uint16_t int_attrib; /* (c) internal file attributes */ - zip_uint32_t ext_attrib; /* (c) external file attributes */ - zip_uint64_t offset; /* (c) offset of local header */ - - zip_uint16_t encryption_method; /* encryption method, computed from other fields */ - char *password; /* file specific encryption password */ -}; - -/* zip archive central directory */ - -struct zip_cdir { - zip_entry_t *entry; /* directory entries */ - zip_uint64_t nentry; /* number of entries */ - zip_uint64_t nentry_alloc; /* number of entries allocated */ - - zip_uint64_t size; /* size of central directory */ - zip_uint64_t offset; /* offset of central directory in file */ - zip_string_t *comment; /* zip archive comment */ - bool is_zip64; /* central directory in zip64 format */ -}; - -struct zip_extra_field { - zip_extra_field_t *next; - zip_flags_t flags; /* in local/central header */ - zip_uint16_t id; /* header id */ - zip_uint16_t size; /* data size */ - zip_uint8_t *data; -}; - -enum zip_source_write_state { - ZIP_SOURCE_WRITE_CLOSED, /* write is not in progress */ - ZIP_SOURCE_WRITE_OPEN, /* write is in progress */ - ZIP_SOURCE_WRITE_FAILED, /* commit failed, only rollback allowed */ - ZIP_SOURCE_WRITE_REMOVED /* file was removed */ -}; -typedef enum zip_source_write_state zip_source_write_state_t; - -struct zip_source { - zip_source_t *src; - union { - zip_source_callback f; - zip_source_layered_callback l; - } cb; - void *ud; - zip_error_t error; - zip_int64_t supports; /* supported commands */ - unsigned int open_count; /* number of times source was opened (directly or as lower layer) */ - zip_source_write_state_t write_state; /* whether source is open for writing */ - bool source_closed; /* set if source archive is closed */ - zip_t *source_archive; /* zip archive we're reading from, NULL if not from archive */ - unsigned int refcount; - bool eof; /* EOF reached */ -}; - -#define ZIP_SOURCE_IS_OPEN_READING(src) ((src)->open_count > 0) -#define ZIP_SOURCE_IS_OPEN_WRITING(src) ((src)->write_state == ZIP_SOURCE_WRITE_OPEN) -#define ZIP_SOURCE_IS_LAYERED(src) ((src)->src != NULL) - -/* entry in zip archive directory */ - -struct zip_entry { - zip_dirent_t *orig; - zip_dirent_t *changes; - zip_source_t *source; - bool deleted; -}; - - -/* file or archive comment, or filename */ - -struct zip_string { - zip_uint8_t *raw; /* raw string */ - zip_uint16_t length; /* length of raw string */ - enum zip_encoding_type encoding; /* autorecognized encoding */ - zip_uint8_t *converted; /* autoconverted string */ - zip_uint32_t converted_length; /* length of converted */ -}; - - -/* bounds checked access to memory buffer */ - -struct zip_buffer { - bool ok; - bool free_data; - - zip_uint8_t *data; - zip_uint64_t size; - zip_uint64_t offset; -}; - -/* which files to write in which order */ - -struct zip_filelist { - zip_uint64_t idx; -/* TODO const char *name; */ -}; - -typedef struct zip_filelist zip_filelist_t; - - -extern const char * const _zip_err_str[]; -extern const int _zip_nerr_str; -extern const int _zip_err_type[]; - -#define ZIP_MAX(a, b) ((a) > (b) ? (a) : (b)) -#define ZIP_MIN(a, b) ((a) < (b) ? (a) : (b)) - -#define ZIP_ENTRY_CHANGED(e, f) ((e)->changes && ((e)->changes->changed & (f))) - -#define ZIP_ENTRY_DATA_CHANGED(x) ((x)->source != NULL) - -#define ZIP_IS_RDONLY(za) ((za)->ch_flags & ZIP_AFL_RDONLY) - - -#ifdef HAVE_EXPLICIT_MEMSET -#define _zip_crypto_clear(b, l) explicit_memset((b), 0, (l)) -#else -#ifdef HAVE_EXPLICIT_BZERO -#define _zip_crypto_clear(b, l) explicit_bzero((b), (l)) -#else -#define _zip_crypto_clear(b, l) memset((b), 0, (l)) -#endif -#endif - - -zip_int64_t _zip_add_entry(zip_t *); - -zip_uint8_t *_zip_buffer_data(zip_buffer_t *buffer); -bool _zip_buffer_eof(zip_buffer_t *buffer); -void _zip_buffer_free(zip_buffer_t *buffer); -zip_uint8_t *_zip_buffer_get(zip_buffer_t *buffer, zip_uint64_t length); -zip_uint16_t _zip_buffer_get_16(zip_buffer_t *buffer); -zip_uint32_t _zip_buffer_get_32(zip_buffer_t *buffer); -zip_uint64_t _zip_buffer_get_64(zip_buffer_t *buffer); -zip_uint8_t _zip_buffer_get_8(zip_buffer_t *buffer); -zip_uint64_t _zip_buffer_left(zip_buffer_t *buffer); -zip_buffer_t *_zip_buffer_new(zip_uint8_t *data, zip_uint64_t size); -zip_buffer_t *_zip_buffer_new_from_source(zip_source_t *src, zip_uint64_t size, zip_uint8_t *buf, zip_error_t *error); -zip_uint64_t _zip_buffer_offset(zip_buffer_t *buffer); -bool _zip_buffer_ok(zip_buffer_t *buffer); -zip_uint8_t *_zip_buffer_peek(zip_buffer_t *buffer, zip_uint64_t length); -int _zip_buffer_put(zip_buffer_t *buffer, const void *src, size_t length); -int _zip_buffer_put_16(zip_buffer_t *buffer, zip_uint16_t i); -int _zip_buffer_put_32(zip_buffer_t *buffer, zip_uint32_t i); -int _zip_buffer_put_64(zip_buffer_t *buffer, zip_uint64_t i); -int _zip_buffer_put_8(zip_buffer_t *buffer, zip_uint8_t i); -zip_uint64_t _zip_buffer_read(zip_buffer_t *buffer, zip_uint8_t *data, zip_uint64_t length); -int _zip_buffer_skip(zip_buffer_t *buffer, zip_uint64_t length); -int _zip_buffer_set_offset(zip_buffer_t *buffer, zip_uint64_t offset); -zip_uint64_t _zip_buffer_size(zip_buffer_t *buffer); - -int _zip_cdir_compute_crc(zip_t *, uLong *); -void _zip_cdir_free(zip_cdir_t *); -bool _zip_cdir_grow(zip_cdir_t *cd, zip_uint64_t additional_entries, zip_error_t *error); -zip_cdir_t *_zip_cdir_new(zip_uint64_t, zip_error_t *); -zip_int64_t _zip_cdir_write(zip_t *za, const zip_filelist_t *filelist, zip_uint64_t survivors); -void _zip_deregister_source(zip_t *za, zip_source_t *src); - -zip_dirent_t *_zip_dirent_clone(const zip_dirent_t *); -void _zip_dirent_free(zip_dirent_t *); -void _zip_dirent_finalize(zip_dirent_t *); -void _zip_dirent_init(zip_dirent_t *); -bool _zip_dirent_needs_zip64(const zip_dirent_t *, zip_flags_t); -zip_dirent_t *_zip_dirent_new(void); -zip_int64_t _zip_dirent_read(zip_dirent_t *zde, zip_source_t *src, zip_buffer_t *buffer, bool local, zip_error_t *error); -zip_int32_t _zip_dirent_size(zip_source_t *src, zip_uint16_t, zip_error_t *); -int _zip_dirent_write(zip_t *za, zip_dirent_t *dirent, zip_flags_t flags); - -zip_extra_field_t *_zip_ef_clone(const zip_extra_field_t *, zip_error_t *); -zip_extra_field_t *_zip_ef_delete_by_id(zip_extra_field_t *, zip_uint16_t, zip_uint16_t, zip_flags_t); -void _zip_ef_free(zip_extra_field_t *); -const zip_uint8_t *_zip_ef_get_by_id(const zip_extra_field_t *, zip_uint16_t *, zip_uint16_t, zip_uint16_t, zip_flags_t, zip_error_t *); -zip_extra_field_t *_zip_ef_merge(zip_extra_field_t *, zip_extra_field_t *); -zip_extra_field_t *_zip_ef_new(zip_uint16_t, zip_uint16_t, const zip_uint8_t *, zip_flags_t); -bool _zip_ef_parse(const zip_uint8_t *, zip_uint16_t, zip_flags_t, zip_extra_field_t **, zip_error_t *); -zip_extra_field_t *_zip_ef_remove_internal(zip_extra_field_t *); -zip_uint16_t _zip_ef_size(const zip_extra_field_t *, zip_flags_t); -int _zip_ef_write(zip_t *za, const zip_extra_field_t *ef, zip_flags_t flags); - -void _zip_entry_finalize(zip_entry_t *); -void _zip_entry_init(zip_entry_t *); - -void _zip_error_clear(zip_error_t *); -void _zip_error_get(const zip_error_t *, int *, int *); - -void _zip_error_copy(zip_error_t *dst, const zip_error_t *src); -void _zip_error_set_from_source(zip_error_t *, zip_source_t *); - -const zip_uint8_t *_zip_extract_extra_field_by_id(zip_error_t *, zip_uint16_t, int, const zip_uint8_t *, zip_uint16_t, zip_uint16_t *); - -int _zip_file_extra_field_prepare_for_change(zip_t *, zip_uint64_t); -int _zip_file_fillbuf(void *, size_t, zip_file_t *); -zip_uint64_t _zip_file_get_offset(const zip_t *, zip_uint64_t, zip_error_t *); - -int _zip_filerange_crc(zip_source_t *src, zip_uint64_t offset, zip_uint64_t length, uLong *crcp, zip_error_t *error); - -zip_dirent_t *_zip_get_dirent(zip_t *, zip_uint64_t, zip_flags_t, zip_error_t *); - -enum zip_encoding_type _zip_guess_encoding(zip_string_t *, enum zip_encoding_type); -zip_uint8_t *_zip_cp437_to_utf8(const zip_uint8_t * const, zip_uint32_t, zip_uint32_t *, zip_error_t *); - -bool _zip_hash_add(zip_hash_t *hash, const zip_uint8_t *name, zip_uint64_t index, zip_flags_t flags, zip_error_t *error); -bool _zip_hash_delete(zip_hash_t *hash, const zip_uint8_t *key, zip_error_t *error); -void _zip_hash_free(zip_hash_t *hash); -zip_int64_t _zip_hash_lookup(zip_hash_t *hash, const zip_uint8_t *name, zip_flags_t flags, zip_error_t *error); -zip_hash_t *_zip_hash_new(zip_uint16_t hash_size, zip_error_t *error); -void _zip_hash_revert(zip_hash_t *hash); - -zip_t *_zip_open(zip_source_t *, unsigned int, zip_error_t *); - -bool zip_random(zip_uint8_t *buffer, zip_uint16_t length); - -int _zip_read(zip_source_t *src, zip_uint8_t *data, zip_uint64_t length, zip_error_t *error); -int _zip_read_at_offset(zip_source_t *src, zip_uint64_t offset, unsigned char *b, size_t length, zip_error_t *error); -zip_uint8_t *_zip_read_data(zip_buffer_t *buffer, zip_source_t *src, size_t length, bool nulp, zip_error_t *error); -int _zip_read_local_ef(zip_t *, zip_uint64_t); -zip_string_t *_zip_read_string(zip_buffer_t *buffer, zip_source_t *src, zip_uint16_t lenght, bool nulp, zip_error_t *error); -int _zip_register_source(zip_t *za, zip_source_t *src); - -void _zip_set_open_error(int *zep, const zip_error_t *err, int ze); - -zip_int64_t _zip_source_call(zip_source_t *src, void *data, zip_uint64_t length, zip_source_cmd_t command); -bool _zip_source_eof(zip_source_t *); -zip_source_t *_zip_source_file_or_p(const char *, FILE *, zip_uint64_t, zip_int64_t, const zip_stat_t *, zip_error_t *error); -void _zip_source_invalidate(zip_source_t *src); -bool _zip_source_had_error(zip_source_t *); -zip_source_t *_zip_source_new(zip_error_t *error); -int _zip_source_set_source_archive(zip_source_t *, zip_t *); -zip_source_t *_zip_source_window_new(zip_source_t *src, zip_uint64_t start, zip_uint64_t length, zip_stat_t *st, zip_error_t *error); -zip_source_t *_zip_source_zip_new(zip_t *, zip_t *, zip_uint64_t, zip_flags_t, zip_uint64_t, zip_uint64_t, const char *); - -int _zip_stat_merge(zip_stat_t *dst, const zip_stat_t *src, zip_error_t *error); -int _zip_string_equal(const zip_string_t *, const zip_string_t *); -void _zip_string_free(zip_string_t *); -zip_uint32_t _zip_string_crc32(const zip_string_t *); -const zip_uint8_t *_zip_string_get(zip_string_t *, zip_uint32_t *, zip_flags_t, zip_error_t *); -zip_uint16_t _zip_string_length(const zip_string_t *); -zip_string_t *_zip_string_new(const zip_uint8_t *, zip_uint16_t, zip_flags_t, zip_error_t *); -int _zip_string_write(zip_t *za, const zip_string_t *string); - -int _zip_changed(const zip_t *, zip_uint64_t *); -const char *_zip_get_name(zip_t *, zip_uint64_t, zip_flags_t, zip_error_t *); -int _zip_local_header_read(zip_t *, int); -void *_zip_memdup(const void *, size_t, zip_error_t *); -zip_int64_t _zip_name_locate(zip_t *, const char *, zip_flags_t, zip_error_t *); -zip_t *_zip_new(zip_error_t *); - -zip_int64_t _zip_file_replace(zip_t *, zip_uint64_t, const char *, zip_source_t *, zip_flags_t); -int _zip_set_name(zip_t *, zip_uint64_t, const char *, zip_flags_t); -void _zip_u2d_time(time_t, zip_uint16_t *, zip_uint16_t *); -int _zip_unchange(zip_t *, zip_uint64_t, int); -void _zip_unchange_data(zip_entry_t *); -int _zip_write(zip_t *za, const void *data, zip_uint64_t length); - -#endif /* zipint.h */ diff --git a/libzip-1.2.0/lib/zipwin32.h b/libzip-1.2.0/lib/zipwin32.h deleted file mode 100644 index 407e08914..000000000 --- a/libzip-1.2.0/lib/zipwin32.h +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef _HAD_ZIPWIN32_H -#define _HAD_ZIPWIN32_H - -/* - zipwin32.h -- internal declarations for Windows. - Copyright (C) 1999-2015 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* 0x0501 => Windows XP; needs to be at least this value because of GetFileSizeEx */ -#define _WIN32_WINNT 0x0501 -#define _HAS_STD_BYTE 0 -#include - -/* context for Win32 source */ - -struct _zip_source_win32_file_ops; - -struct _zip_source_win32_read_file { - zip_error_t error; /* last error information */ - zip_int64_t supports; - - /* operations */ - struct _zip_source_win32_file_ops *ops; - - /* reading */ - void *fname; /* name of file to read from - ANSI (char *) or Unicode (wchar_t *) */ - void *h; /* HANDLE for file to read from */ - int closep; /* whether to close f on ZIP_CMD_FREE */ - struct zip_stat st; /* stat information passed in */ - zip_uint64_t start; /* start offset of data to read */ - zip_uint64_t end; /* end offset of data to read, 0 for up to EOF */ - zip_uint64_t current; /* current offset */ - - /* writing */ - void *tmpname; /* name of temp file - ANSI (char *) or Unicode (wchar_t *) */ - void *hout; /* HANDLE for output file */ -}; - -typedef struct _zip_source_win32_read_file _zip_source_win32_read_file_t; - -/* internal operations for Win32 source */ - -struct _zip_source_win32_file_ops { - void *(*op_strdup)(const void *); - void *(*op_open)(_zip_source_win32_read_file_t *); - void *(*op_create_temp)(_zip_source_win32_read_file_t *, void **, zip_uint32_t, PSECURITY_ATTRIBUTES); - int (*op_rename_temp)(_zip_source_win32_read_file_t *); - int (*op_remove)(const void *); -}; - -typedef struct _zip_source_win32_file_ops _zip_source_win32_file_ops_t; - -zip_source_t *_zip_source_win32_handle_or_name(const void *, void *, zip_uint64_t, zip_int64_t, int, const zip_stat_t *, _zip_source_win32_file_ops_t *, zip_error_t *); - -#endif /* zipwin32.h */ diff --git a/libzip-1.2.0/libzip-uninstalled.pc.in b/libzip-1.2.0/libzip-uninstalled.pc.in deleted file mode 100644 index b82bd7b4e..000000000 --- a/libzip-1.2.0/libzip-uninstalled.pc.in +++ /dev/null @@ -1,7 +0,0 @@ -zipcmp=${pc_top_builddir}/${pcfiledir}/src/zipcmp - -Name: libzip uninstalled -Description: library for handling zip archvies, uninstalled -Version: @VERSION@ -Libs: ${pc_top_builddir}/${pcfiledir}/lib/libzip.la @LIBS@ -Cflags: -I${pc_top_builddir}/${pcfiledir}/@srcdir@/lib diff --git a/libzip-1.2.0/libzip.pc.in b/libzip-1.2.0/libzip.pc.in deleted file mode 100644 index ef8af2d84..000000000 --- a/libzip-1.2.0/libzip.pc.in +++ /dev/null @@ -1,14 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ -libincludedir=@libdir@/@PACKAGE@/include - -zipcmp=@prefix@/bin/zipcmp - -Name: libzip -Description: library for handling zip archives -Version: @VERSION@ -Libs: @PKG_CONFIG_RPATH@ -L${libdir} -lzip @LIBS@ -Cflags: -I${includedir} -I${libincludedir} - diff --git a/libzip-1.2.0/ltmain.sh b/libzip-1.2.0/ltmain.sh deleted file mode 100644 index fcc4d744b..000000000 --- a/libzip-1.2.0/ltmain.sh +++ /dev/null @@ -1,9669 +0,0 @@ - -# libtool (GNU libtool) 2.4.2 -# Written by Gordon Matzigkeit , 1996 - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, -# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# GNU Libtool is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, -# or obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -# Usage: $progname [OPTION]... [MODE-ARG]... -# -# Provide generalized library-building support services. -# -# --config show all configuration variables -# --debug enable verbose shell tracing -# -n, --dry-run display commands without modifying any files -# --features display basic configuration information and exit -# --mode=MODE use operation mode MODE -# --preserve-dup-deps don't remove duplicate dependency libraries -# --quiet, --silent don't print informational messages -# --no-quiet, --no-silent -# print informational messages (default) -# --no-warn don't display warning messages -# --tag=TAG use configuration variables from tag TAG -# -v, --verbose print more informational messages than default -# --no-verbose don't print the extra informational messages -# --version print version information -# -h, --help, --help-all print short, long, or detailed help message -# -# MODE must be one of the following: -# -# clean remove files from the build directory -# compile compile a source file into a libtool object -# execute automatically set library path, then run a program -# finish complete the installation of libtool libraries -# install install libraries or executables -# link create a library or an executable -# uninstall remove libraries from an installed directory -# -# MODE-ARGS vary depending on the MODE. When passed as first option, -# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. -# Try `$progname --help --mode=MODE' for a more detailed description of MODE. -# -# When reporting a bug, please describe a test case to reproduce it and -# include the following information: -# -# host-triplet: $host -# shell: $SHELL -# compiler: $LTCC -# compiler flags: $LTCFLAGS -# linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.4.2 -# automake: $automake_version -# autoconf: $autoconf_version -# -# Report bugs to . -# GNU libtool home page: . -# General help using GNU software: . - -PROGRAM=libtool -PACKAGE=libtool -VERSION=2.4.2 -TIMESTAMP="" -package_revision=1.3337 - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' -} - -# NLS nuisances: We save the old values to restore during execute mode. -lt_user_locale= -lt_safe_locale= -for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -do - eval "if test \"\${$lt_var+set}\" = set; then - save_$lt_var=\$$lt_var - $lt_var=C - export $lt_var - lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" - lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" - fi" -done -LC_ALL=C -LANGUAGE=C -export LANGUAGE LC_ALL - -$lt_unset CDPATH - - -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -# is ksh but when the shell is invoked as "sh" and the current value of -# the _XPG environment variable is not equal to 1 (one), the special -# positional parameter $0, within a function call, is the name of the -# function. -progpath="$0" - -unset CP -unset MV -unset RM -: ${CP="cp -f"} -test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} -: ${MAKE="make"} -: ${MKDIR="mkdir"} -: ${MV="mv -f"} -: ${RM="rm -f"} -: ${SHELL="${CONFIG_SHELL-/bin/sh}"} -: ${Xsed="$SED -e 1s/^X//"} - -# Global variables: -EXIT_SUCCESS=0 -EXIT_FAILURE=1 -EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. -EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. - -exit_status=$EXIT_SUCCESS - -# Make sure IFS has a sensible default -lt_nl=' -' -IFS=" $lt_nl" - -dirname="s,/[^/]*$,," -basename="s,^.*/,," - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi -} # func_dirname may be replaced by extended shell implementation - - -# func_basename file -func_basename () -{ - func_basename_result=`$ECHO "${1}" | $SED "$basename"` -} # func_basename may be replaced by extended shell implementation - - -# func_dirname_and_basename file append nondir_replacement -# perform func_basename and func_dirname in a single function -# call: -# dirname: Compute the dirname of FILE. If nonempty, -# add APPEND to the result, otherwise set result -# to NONDIR_REPLACEMENT. -# value returned in "$func_dirname_result" -# basename: Compute filename of FILE. -# value retuned in "$func_basename_result" -# Implementation must be kept synchronized with func_dirname -# and func_basename. For efficiency, we do not delegate to -# those functions but instead duplicate the functionality here. -func_dirname_and_basename () -{ - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi - func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` -} # func_dirname_and_basename may be replaced by extended shell implementation - - -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# func_strip_suffix prefix name -func_stripname () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; - esac -} # func_stripname may be replaced by extended shell implementation - - -# These SED scripts presuppose an absolute path with a trailing slash. -pathcar='s,^/\([^/]*\).*$,\1,' -pathcdr='s,^/[^/]*,,' -removedotparts=':dotsl - s@/\./@/@g - t dotsl - s,/\.$,/,' -collapseslashes='s@/\{1,\}@/@g' -finalslash='s,/*$,/,' - -# func_normal_abspath PATH -# Remove doubled-up and trailing slashes, "." path components, -# and cancel out any ".." path components in PATH after making -# it an absolute path. -# value returned in "$func_normal_abspath_result" -func_normal_abspath () -{ - # Start from root dir and reassemble the path. - func_normal_abspath_result= - func_normal_abspath_tpath=$1 - func_normal_abspath_altnamespace= - case $func_normal_abspath_tpath in - "") - # Empty path, that just means $cwd. - func_stripname '' '/' "`pwd`" - func_normal_abspath_result=$func_stripname_result - return - ;; - # The next three entries are used to spot a run of precisely - # two leading slashes without using negated character classes; - # we take advantage of case's first-match behaviour. - ///*) - # Unusual form of absolute path, do nothing. - ;; - //*) - # Not necessarily an ordinary path; POSIX reserves leading '//' - # and for example Cygwin uses it to access remote file shares - # over CIFS/SMB, so we conserve a leading double slash if found. - func_normal_abspath_altnamespace=/ - ;; - /*) - # Absolute path, do nothing. - ;; - *) - # Relative path, prepend $cwd. - func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath - ;; - esac - # Cancel out all the simple stuff to save iterations. We also want - # the path to end with a slash for ease of parsing, so make sure - # there is one (and only one) here. - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` - while :; do - # Processed it all yet? - if test "$func_normal_abspath_tpath" = / ; then - # If we ascended to the root using ".." the result may be empty now. - if test -z "$func_normal_abspath_result" ; then - func_normal_abspath_result=/ - fi - break - fi - func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$pathcar"` - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$pathcdr"` - # Figure out what to do with it - case $func_normal_abspath_tcomponent in - "") - # Trailing empty path component, ignore it. - ;; - ..) - # Parent dir; strip last assembled component from result. - func_dirname "$func_normal_abspath_result" - func_normal_abspath_result=$func_dirname_result - ;; - *) - # Actual path component, append it. - func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent - ;; - esac - done - # Restore leading double-slash if one was found on entry. - func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result -} - -# func_relative_path SRCDIR DSTDIR -# generates a relative path from SRCDIR to DSTDIR, with a trailing -# slash if non-empty, suitable for immediately appending a filename -# without needing to append a separator. -# value returned in "$func_relative_path_result" -func_relative_path () -{ - func_relative_path_result= - func_normal_abspath "$1" - func_relative_path_tlibdir=$func_normal_abspath_result - func_normal_abspath "$2" - func_relative_path_tbindir=$func_normal_abspath_result - - # Ascend the tree starting from libdir - while :; do - # check if we have found a prefix of bindir - case $func_relative_path_tbindir in - $func_relative_path_tlibdir) - # found an exact match - func_relative_path_tcancelled= - break - ;; - $func_relative_path_tlibdir*) - # found a matching prefix - func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" - func_relative_path_tcancelled=$func_stripname_result - if test -z "$func_relative_path_result"; then - func_relative_path_result=. - fi - break - ;; - *) - func_dirname $func_relative_path_tlibdir - func_relative_path_tlibdir=${func_dirname_result} - if test "x$func_relative_path_tlibdir" = x ; then - # Have to descend all the way to the root! - func_relative_path_result=../$func_relative_path_result - func_relative_path_tcancelled=$func_relative_path_tbindir - break - fi - func_relative_path_result=../$func_relative_path_result - ;; - esac - done - - # Now calculate path; take care to avoid doubling-up slashes. - func_stripname '' '/' "$func_relative_path_result" - func_relative_path_result=$func_stripname_result - func_stripname '/' '/' "$func_relative_path_tcancelled" - if test "x$func_stripname_result" != x ; then - func_relative_path_result=${func_relative_path_result}/${func_stripname_result} - fi - - # Normalisation. If bindir is libdir, return empty string, - # else relative path ending with a slash; either way, target - # file name can be directly appended. - if test ! -z "$func_relative_path_result"; then - func_stripname './' '' "$func_relative_path_result/" - func_relative_path_result=$func_stripname_result - fi -} - -# The name of this program: -func_dirname_and_basename "$progpath" -progname=$func_basename_result - -# Make sure we have an absolute path for reexecution: -case $progpath in - [\\/]*|[A-Za-z]:\\*) ;; - *[\\/]*) - progdir=$func_dirname_result - progdir=`cd "$progdir" && pwd` - progpath="$progdir/$progname" - ;; - *) - save_IFS="$IFS" - IFS=${PATH_SEPARATOR-:} - for progdir in $PATH; do - IFS="$save_IFS" - test -x "$progdir/$progname" && break - done - IFS="$save_IFS" - test -n "$progdir" || progdir=`pwd` - progpath="$progdir/$progname" - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed="${SED}"' -e 1s/^X//' -sed_quote_subst='s/\([`"$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution that turns a string into a regex matching for the -# string literally. -sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' - -# Sed substitution that converts a w32 file name or path -# which contains forward slashes, into one that contains -# (escaped) backslashes. A very naive implementation. -lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' - -# Re-`\' parameter expansions in output of double_quote_subst that were -# `\'-ed in input to the same. If an odd number of `\' preceded a '$' -# in input to double_quote_subst, that '$' was protected from expansion. -# Since each input `\' is now two `\'s, look for any number of runs of -# four `\'s followed by two `\'s and then a '$'. `\' that '$'. -bs='\\' -bs2='\\\\' -bs4='\\\\\\\\' -dollar='\$' -sed_double_backslash="\ - s/$bs4/&\\ -/g - s/^$bs2$dollar/$bs&/ - s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g - s/\n//g" - -# Standard options: -opt_dry_run=false -opt_help=false -opt_quiet=false -opt_verbose=false -opt_warning=: - -# func_echo arg... -# Echo program name prefixed message, along with the current mode -# name if it has been set yet. -func_echo () -{ - $ECHO "$progname: ${opt_mode+$opt_mode: }$*" -} - -# func_verbose arg... -# Echo program name prefixed message in verbose mode only. -func_verbose () -{ - $opt_verbose && func_echo ${1+"$@"} - - # A bug in bash halts the script if the last line of a function - # fails when set -e is in force, so we need another command to - # work around that: - : -} - -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "$*" -} - -# func_error arg... -# Echo program name prefixed message to standard error. -func_error () -{ - $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 -} - -# func_warning arg... -# Echo program name prefixed warning message to standard error. -func_warning () -{ - $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 - - # bash bug again: - : -} - -# func_fatal_error arg... -# Echo program name prefixed message to standard error, and exit. -func_fatal_error () -{ - func_error ${1+"$@"} - exit $EXIT_FAILURE -} - -# func_fatal_help arg... -# Echo program name prefixed message to standard error, followed by -# a help hint, and exit. -func_fatal_help () -{ - func_error ${1+"$@"} - func_fatal_error "$help" -} -help="Try \`$progname --help' for more information." ## default - - -# func_grep expression filename -# Check whether EXPRESSION matches any line of FILENAME, without output. -func_grep () -{ - $GREP "$1" "$2" >/dev/null 2>&1 -} - - -# func_mkdir_p directory-path -# Make sure the entire path to DIRECTORY-PATH is available. -func_mkdir_p () -{ - my_directory_path="$1" - my_dir_list= - - if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then - - # Protect directory names starting with `-' - case $my_directory_path in - -*) my_directory_path="./$my_directory_path" ;; - esac - - # While some portion of DIR does not yet exist... - while test ! -d "$my_directory_path"; do - # ...make a list in topmost first order. Use a colon delimited - # list incase some portion of path contains whitespace. - my_dir_list="$my_directory_path:$my_dir_list" - - # If the last portion added has no slash in it, the list is done - case $my_directory_path in */*) ;; *) break ;; esac - - # ...otherwise throw away the child directory and loop - my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` - done - my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` - - save_mkdir_p_IFS="$IFS"; IFS=':' - for my_dir in $my_dir_list; do - IFS="$save_mkdir_p_IFS" - # mkdir can fail with a `File exist' error if two processes - # try to create one of the directories concurrently. Don't - # stop in that case! - $MKDIR "$my_dir" 2>/dev/null || : - done - IFS="$save_mkdir_p_IFS" - - # Bail out if we (or some other process) failed to create a directory. - test -d "$my_directory_path" || \ - func_fatal_error "Failed to create \`$1'" - fi -} - - -# func_mktempdir [string] -# Make a temporary directory that won't clash with other running -# libtool processes, and avoids race conditions if possible. If -# given, STRING is the basename for that directory. -func_mktempdir () -{ - my_template="${TMPDIR-/tmp}/${1-$progname}" - - if test "$opt_dry_run" = ":"; then - # Return a directory name, but don't create it in dry-run mode - my_tmpdir="${my_template}-$$" - else - - # If mktemp works, use that first and foremost - my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` - - if test ! -d "$my_tmpdir"; then - # Failing that, at least try and use $RANDOM to avoid a race - my_tmpdir="${my_template}-${RANDOM-0}$$" - - save_mktempdir_umask=`umask` - umask 0077 - $MKDIR "$my_tmpdir" - umask $save_mktempdir_umask - fi - - # If we're not in dry-run mode, bomb out on failure - test -d "$my_tmpdir" || \ - func_fatal_error "cannot create temporary directory \`$my_tmpdir'" - fi - - $ECHO "$my_tmpdir" -} - - -# func_quote_for_eval arg -# Aesthetically quote ARG to be evaled later. -# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT -# is double-quoted, suitable for a subsequent eval, whereas -# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters -# which are still active within double quotes backslashified. -func_quote_for_eval () -{ - case $1 in - *[\\\`\"\$]*) - func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; - *) - func_quote_for_eval_unquoted_result="$1" ;; - esac - - case $func_quote_for_eval_unquoted_result in - # Double-quote args containing shell metacharacters to delay - # word splitting, command substitution and and variable - # expansion for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" - ;; - *) - func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" - esac -} - - -# func_quote_for_expand arg -# Aesthetically quote ARG to be evaled later; same as above, -# but do not quote variable references. -func_quote_for_expand () -{ - case $1 in - *[\\\`\"]*) - my_arg=`$ECHO "$1" | $SED \ - -e "$double_quote_subst" -e "$sed_double_backslash"` ;; - *) - my_arg="$1" ;; - esac - - case $my_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting and command substitution for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - my_arg="\"$my_arg\"" - ;; - esac - - func_quote_for_expand_result="$my_arg" -} - - -# func_show_eval cmd [fail_exp] -# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. -func_show_eval () -{ - my_cmd="$1" - my_fail_exp="${2-:}" - - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } - - if ${opt_dry_run-false}; then :; else - eval "$my_cmd" - my_status=$? - if test "$my_status" -eq 0; then :; else - eval "(exit $my_status); $my_fail_exp" - fi - fi -} - - -# func_show_eval_locale cmd [fail_exp] -# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. Use the saved locale for evaluation. -func_show_eval_locale () -{ - my_cmd="$1" - my_fail_exp="${2-:}" - - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } - - if ${opt_dry_run-false}; then :; else - eval "$lt_user_locale - $my_cmd" - my_status=$? - eval "$lt_safe_locale" - if test "$my_status" -eq 0; then :; else - eval "(exit $my_status); $my_fail_exp" - fi - fi -} - -# func_tr_sh -# Turn $1 into a string suitable for a shell variable name. -# Result is stored in $func_tr_sh_result. All characters -# not in the set a-zA-Z0-9_ are replaced with '_'. Further, -# if $1 begins with a digit, a '_' is prepended as well. -func_tr_sh () -{ - case $1 in - [0-9]* | *[!a-zA-Z0-9_]*) - func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` - ;; - * ) - func_tr_sh_result=$1 - ;; - esac -} - - -# func_version -# Echo version message to standard output and exit. -func_version () -{ - $opt_debug - - $SED -n '/(C)/!b go - :more - /\./!{ - N - s/\n# / / - b more - } - :go - /^# '$PROGRAM' (GNU /,/# warranty; / { - s/^# // - s/^# *$// - s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ - p - }' < "$progpath" - exit $? -} - -# func_usage -# Echo short help message to standard output and exit. -func_usage () -{ - $opt_debug - - $SED -n '/^# Usage:/,/^# *.*--help/ { - s/^# // - s/^# *$// - s/\$progname/'$progname'/ - p - }' < "$progpath" - echo - $ECHO "run \`$progname --help | more' for full usage" - exit $? -} - -# func_help [NOEXIT] -# Echo long help message to standard output and exit, -# unless 'noexit' is passed as argument. -func_help () -{ - $opt_debug - - $SED -n '/^# Usage:/,/# Report bugs to/ { - :print - s/^# // - s/^# *$// - s*\$progname*'$progname'* - s*\$host*'"$host"'* - s*\$SHELL*'"$SHELL"'* - s*\$LTCC*'"$LTCC"'* - s*\$LTCFLAGS*'"$LTCFLAGS"'* - s*\$LD*'"$LD"'* - s/\$with_gnu_ld/'"$with_gnu_ld"'/ - s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ - s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ - p - d - } - /^# .* home page:/b print - /^# General help using/b print - ' < "$progpath" - ret=$? - if test -z "$1"; then - exit $ret - fi -} - -# func_missing_arg argname -# Echo program name prefixed message to standard error and set global -# exit_cmd. -func_missing_arg () -{ - $opt_debug - - func_error "missing argument for $1." - exit_cmd=exit -} - - -# func_split_short_opt shortopt -# Set func_split_short_opt_name and func_split_short_opt_arg shell -# variables after splitting SHORTOPT after the 2nd character. -func_split_short_opt () -{ - my_sed_short_opt='1s/^\(..\).*$/\1/;q' - my_sed_short_rest='1s/^..\(.*\)$/\1/;q' - - func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` - func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` -} # func_split_short_opt may be replaced by extended shell implementation - - -# func_split_long_opt longopt -# Set func_split_long_opt_name and func_split_long_opt_arg shell -# variables after splitting LONGOPT at the `=' sign. -func_split_long_opt () -{ - my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' - my_sed_long_arg='1s/^--[^=]*=//' - - func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` - func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` -} # func_split_long_opt may be replaced by extended shell implementation - -exit_cmd=: - - - - - -magic="%%%MAGIC variable%%%" -magic_exe="%%%MAGIC EXE variable%%%" - -# Global variables. -nonopt= -preserve_args= -lo2o="s/\\.lo\$/.${objext}/" -o2lo="s/\\.${objext}\$/.lo/" -extracted_archives= -extracted_serial=0 - -# If this variable is set in any of the actions, the command in it -# will be execed at the end. This prevents here-documents from being -# left over by shells. -exec_cmd= - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "${1}=\$${1}\${2}" -} # func_append may be replaced by extended shell implementation - -# func_append_quoted var value -# Quote VALUE and append to the end of shell variable VAR, separated -# by a space. -func_append_quoted () -{ - func_quote_for_eval "${2}" - eval "${1}=\$${1}\\ \$func_quote_for_eval_result" -} # func_append_quoted may be replaced by extended shell implementation - - -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=`expr "${@}"` -} # func_arith may be replaced by extended shell implementation - - -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` -} # func_len may be replaced by extended shell implementation - - -# func_lo2o object -func_lo2o () -{ - func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` -} # func_lo2o may be replaced by extended shell implementation - - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` -} # func_xform may be replaced by extended shell implementation - - -# func_fatal_configuration arg... -# Echo program name prefixed message to standard error, followed by -# a configuration failure hint, and exit. -func_fatal_configuration () -{ - func_error ${1+"$@"} - func_error "See the $PACKAGE documentation for more information." - func_fatal_error "Fatal configuration error." -} - - -# func_config -# Display the configuration for all the tags in this script. -func_config () -{ - re_begincf='^# ### BEGIN LIBTOOL' - re_endcf='^# ### END LIBTOOL' - - # Default configuration. - $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" - - # Now print the configurations for the tags. - for tagname in $taglist; do - $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" - done - - exit $? -} - -# func_features -# Display the features supported by this script. -func_features () -{ - echo "host: $host" - if test "$build_libtool_libs" = yes; then - echo "enable shared libraries" - else - echo "disable shared libraries" - fi - if test "$build_old_libs" = yes; then - echo "enable static libraries" - else - echo "disable static libraries" - fi - - exit $? -} - -# func_enable_tag tagname -# Verify that TAGNAME is valid, and either flag an error and exit, or -# enable the TAGNAME tag. We also add TAGNAME to the global $taglist -# variable here. -func_enable_tag () -{ - # Global variable: - tagname="$1" - - re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" - re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" - sed_extractcf="/$re_begincf/,/$re_endcf/p" - - # Validate tagname. - case $tagname in - *[!-_A-Za-z0-9,/]*) - func_fatal_error "invalid tag name: $tagname" - ;; - esac - - # Don't test for the "default" C tag, as we know it's - # there but not specially marked. - case $tagname in - CC) ;; - *) - if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then - taglist="$taglist $tagname" - - # Evaluate the configuration. Be careful to quote the path - # and the sed script, to avoid splitting on whitespace, but - # also don't use non-portable quotes within backquotes within - # quotes we have to do it in 2 steps: - extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` - eval "$extractedcf" - else - func_error "ignoring unknown tag $tagname" - fi - ;; - esac -} - -# func_check_version_match -# Ensure that we are using m4 macros, and libtool script from the same -# release of libtool. -func_check_version_match () -{ - if test "$package_revision" != "$macro_revision"; then - if test "$VERSION" != "$macro_version"; then - if test -z "$macro_version"; then - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from an older release. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - fi - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, -$progname: but the definition of this LT_INIT comes from revision $macro_revision. -$progname: You should recreate aclocal.m4 with macros from revision $package_revision -$progname: of $PACKAGE $VERSION and run autoconf again. -_LT_EOF - fi - - exit $EXIT_MISMATCH - fi -} - - -# Shorthand for --mode=foo, only valid as the first argument -case $1 in -clean|clea|cle|cl) - shift; set dummy --mode clean ${1+"$@"}; shift - ;; -compile|compil|compi|comp|com|co|c) - shift; set dummy --mode compile ${1+"$@"}; shift - ;; -execute|execut|execu|exec|exe|ex|e) - shift; set dummy --mode execute ${1+"$@"}; shift - ;; -finish|finis|fini|fin|fi|f) - shift; set dummy --mode finish ${1+"$@"}; shift - ;; -install|instal|insta|inst|ins|in|i) - shift; set dummy --mode install ${1+"$@"}; shift - ;; -link|lin|li|l) - shift; set dummy --mode link ${1+"$@"}; shift - ;; -uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) - shift; set dummy --mode uninstall ${1+"$@"}; shift - ;; -esac - - - -# Option defaults: -opt_debug=: -opt_dry_run=false -opt_config=false -opt_preserve_dup_deps=false -opt_features=false -opt_finish=false -opt_help=false -opt_help_all=false -opt_silent=: -opt_warning=: -opt_verbose=: -opt_silent=false -opt_verbose=false - - -# Parse options once, thoroughly. This comes as soon as possible in the -# script to make things like `--version' happen as quickly as we can. -{ - # this just eases exit handling - while test $# -gt 0; do - opt="$1" - shift - case $opt in - --debug|-x) opt_debug='set -x' - func_echo "enabling shell trace mode" - $opt_debug - ;; - --dry-run|--dryrun|-n) - opt_dry_run=: - ;; - --config) - opt_config=: -func_config - ;; - --dlopen|-dlopen) - optarg="$1" - opt_dlopen="${opt_dlopen+$opt_dlopen -}$optarg" - shift - ;; - --preserve-dup-deps) - opt_preserve_dup_deps=: - ;; - --features) - opt_features=: -func_features - ;; - --finish) - opt_finish=: -set dummy --mode finish ${1+"$@"}; shift - ;; - --help) - opt_help=: - ;; - --help-all) - opt_help_all=: -opt_help=': help-all' - ;; - --mode) - test $# = 0 && func_missing_arg $opt && break - optarg="$1" - opt_mode="$optarg" -case $optarg in - # Valid mode arguments: - clean|compile|execute|finish|install|link|relink|uninstall) ;; - - # Catch anything else as an error - *) func_error "invalid argument for $opt" - exit_cmd=exit - break - ;; -esac - shift - ;; - --no-silent|--no-quiet) - opt_silent=false -func_append preserve_args " $opt" - ;; - --no-warning|--no-warn) - opt_warning=false -func_append preserve_args " $opt" - ;; - --no-verbose) - opt_verbose=false -func_append preserve_args " $opt" - ;; - --silent|--quiet) - opt_silent=: -func_append preserve_args " $opt" - opt_verbose=false - ;; - --verbose|-v) - opt_verbose=: -func_append preserve_args " $opt" -opt_silent=false - ;; - --tag) - test $# = 0 && func_missing_arg $opt && break - optarg="$1" - opt_tag="$optarg" -func_append preserve_args " $opt $optarg" -func_enable_tag "$optarg" - shift - ;; - - -\?|-h) func_usage ;; - --help) func_help ;; - --version) func_version ;; - - # Separate optargs to long options: - --*=*) - func_split_long_opt "$opt" - set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} - shift - ;; - - # Separate non-argument short options: - -\?*|-h*|-n*|-v*) - func_split_short_opt "$opt" - set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} - shift - ;; - - --) break ;; - -*) func_fatal_help "unrecognized option \`$opt'" ;; - *) set dummy "$opt" ${1+"$@"}; shift; break ;; - esac - done - - # Validate options: - - # save first non-option argument - if test "$#" -gt 0; then - nonopt="$opt" - shift - fi - - # preserve --debug - test "$opt_debug" = : || func_append preserve_args " --debug" - - case $host in - *cygwin* | *mingw* | *pw32* | *cegcc*) - # don't eliminate duplications in $postdeps and $predeps - opt_duplicate_compiler_generated_deps=: - ;; - *) - opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps - ;; - esac - - $opt_help || { - # Sanity checks first: - func_check_version_match - - if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - func_fatal_configuration "not configured to build any kind of library" - fi - - # Darwin sucks - eval std_shrext=\"$shrext_cmds\" - - # Only execute mode is allowed to have -dlopen flags. - if test -n "$opt_dlopen" && test "$opt_mode" != execute; then - func_error "unrecognized option \`-dlopen'" - $ECHO "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$progname --help --mode=$opt_mode' for more information." - } - - - # Bail if the options were screwed - $exit_cmd $EXIT_FAILURE -} - - - - -## ----------- ## -## Main. ## -## ----------- ## - -# func_lalib_p file -# True iff FILE is a libtool `.la' library or `.lo' object file. -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_lalib_p () -{ - test -f "$1" && - $SED -e 4q "$1" 2>/dev/null \ - | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 -} - -# func_lalib_unsafe_p file -# True iff FILE is a libtool `.la' library or `.lo' object file. -# This function implements the same check as func_lalib_p without -# resorting to external programs. To this end, it redirects stdin and -# closes it afterwards, without saving the original file descriptor. -# As a safety measure, use it only where a negative result would be -# fatal anyway. Works if `file' does not exist. -func_lalib_unsafe_p () -{ - lalib_p=no - if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then - for lalib_p_l in 1 2 3 4 - do - read lalib_p_line - case "$lalib_p_line" in - \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; - esac - done - exec 0<&5 5<&- - fi - test "$lalib_p" = yes -} - -# func_ltwrapper_script_p file -# True iff FILE is a libtool wrapper script -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_script_p () -{ - func_lalib_p "$1" -} - -# func_ltwrapper_executable_p file -# True iff FILE is a libtool wrapper executable -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_executable_p () -{ - func_ltwrapper_exec_suffix= - case $1 in - *.exe) ;; - *) func_ltwrapper_exec_suffix=.exe ;; - esac - $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 -} - -# func_ltwrapper_scriptname file -# Assumes file is an ltwrapper_executable -# uses $file to determine the appropriate filename for a -# temporary ltwrapper_script. -func_ltwrapper_scriptname () -{ - func_dirname_and_basename "$1" "" "." - func_stripname '' '.exe' "$func_basename_result" - func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" -} - -# func_ltwrapper_p file -# True iff FILE is a libtool wrapper script or wrapper executable -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_p () -{ - func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" -} - - -# func_execute_cmds commands fail_cmd -# Execute tilde-delimited COMMANDS. -# If FAIL_CMD is given, eval that upon failure. -# FAIL_CMD may read-access the current command in variable CMD! -func_execute_cmds () -{ - $opt_debug - save_ifs=$IFS; IFS='~' - for cmd in $1; do - IFS=$save_ifs - eval cmd=\"$cmd\" - func_show_eval "$cmd" "${2-:}" - done - IFS=$save_ifs -} - - -# func_source file -# Source FILE, adding directory component if necessary. -# Note that it is not necessary on cygwin/mingw to append a dot to -# FILE even if both FILE and FILE.exe exist: automatic-append-.exe -# behavior happens only for exec(3), not for open(2)! Also, sourcing -# `FILE.' does not work on cygwin managed mounts. -func_source () -{ - $opt_debug - case $1 in - */* | *\\*) . "$1" ;; - *) . "./$1" ;; - esac -} - - -# func_resolve_sysroot PATH -# Replace a leading = in PATH with a sysroot. Store the result into -# func_resolve_sysroot_result -func_resolve_sysroot () -{ - func_resolve_sysroot_result=$1 - case $func_resolve_sysroot_result in - =*) - func_stripname '=' '' "$func_resolve_sysroot_result" - func_resolve_sysroot_result=$lt_sysroot$func_stripname_result - ;; - esac -} - -# func_replace_sysroot PATH -# If PATH begins with the sysroot, replace it with = and -# store the result into func_replace_sysroot_result. -func_replace_sysroot () -{ - case "$lt_sysroot:$1" in - ?*:"$lt_sysroot"*) - func_stripname "$lt_sysroot" '' "$1" - func_replace_sysroot_result="=$func_stripname_result" - ;; - *) - # Including no sysroot. - func_replace_sysroot_result=$1 - ;; - esac -} - -# func_infer_tag arg -# Infer tagged configuration to use if any are available and -# if one wasn't chosen via the "--tag" command line option. -# Only attempt this if the compiler in the base compile -# command doesn't match the default compiler. -# arg is usually of the form 'gcc ...' -func_infer_tag () -{ - $opt_debug - if test -n "$available_tags" && test -z "$tagname"; then - CC_quoted= - for arg in $CC; do - func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` - case $@ in - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when configure was run. - " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ - " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; - # Blanks at the start of $base_compile will cause this to fail - # if we don't check for them as well. - *) - for z in $available_tags; do - if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" - CC_quoted= - for arg in $CC; do - # Double-quote args containing other shell metacharacters. - func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` - case "$@ " in - " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ - " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) - # The compiler in the base compile command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - func_echo "unable to infer tagged configuration" - func_fatal_error "specify a tag with \`--tag'" -# else -# func_verbose "using $tagname tagged configuration" - fi - ;; - esac - fi -} - - - -# func_write_libtool_object output_name pic_name nonpic_name -# Create a libtool object file (analogous to a ".la" file), -# but don't create it if we're doing a dry run. -func_write_libtool_object () -{ - write_libobj=${1} - if test "$build_libtool_libs" = yes; then - write_lobj=\'${2}\' - else - write_lobj=none - fi - - if test "$build_old_libs" = yes; then - write_oldobj=\'${3}\' - else - write_oldobj=none - fi - - $opt_dry_run || { - cat >${write_libobj}T </dev/null` - if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then - func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | - $SED -e "$lt_sed_naive_backslashify"` - else - func_convert_core_file_wine_to_w32_result= - fi - fi -} -# end: func_convert_core_file_wine_to_w32 - - -# func_convert_core_path_wine_to_w32 ARG -# Helper function used by path conversion functions when $build is *nix, and -# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly -# configured wine environment available, with the winepath program in $build's -# $PATH. Assumes ARG has no leading or trailing path separator characters. -# -# ARG is path to be converted from $build format to win32. -# Result is available in $func_convert_core_path_wine_to_w32_result. -# Unconvertible file (directory) names in ARG are skipped; if no directory names -# are convertible, then the result may be empty. -func_convert_core_path_wine_to_w32 () -{ - $opt_debug - # unfortunately, winepath doesn't convert paths, only file names - func_convert_core_path_wine_to_w32_result="" - if test -n "$1"; then - oldIFS=$IFS - IFS=: - for func_convert_core_path_wine_to_w32_f in $1; do - IFS=$oldIFS - func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" - if test -n "$func_convert_core_file_wine_to_w32_result" ; then - if test -z "$func_convert_core_path_wine_to_w32_result"; then - func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" - else - func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" - fi - fi - done - IFS=$oldIFS - fi -} -# end: func_convert_core_path_wine_to_w32 - - -# func_cygpath ARGS... -# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when -# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) -# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or -# (2), returns the Cygwin file name or path in func_cygpath_result (input -# file name or path is assumed to be in w32 format, as previously converted -# from $build's *nix or MSYS format). In case (3), returns the w32 file name -# or path in func_cygpath_result (input file name or path is assumed to be in -# Cygwin format). Returns an empty string on error. -# -# ARGS are passed to cygpath, with the last one being the file name or path to -# be converted. -# -# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH -# environment variable; do not put it in $PATH. -func_cygpath () -{ - $opt_debug - if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then - func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` - if test "$?" -ne 0; then - # on failure, ensure result is empty - func_cygpath_result= - fi - else - func_cygpath_result= - func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" - fi -} -#end: func_cygpath - - -# func_convert_core_msys_to_w32 ARG -# Convert file name or path ARG from MSYS format to w32 format. Return -# result in func_convert_core_msys_to_w32_result. -func_convert_core_msys_to_w32 () -{ - $opt_debug - # awkward: cmd appends spaces to result - func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | - $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` -} -#end: func_convert_core_msys_to_w32 - - -# func_convert_file_check ARG1 ARG2 -# Verify that ARG1 (a file name in $build format) was converted to $host -# format in ARG2. Otherwise, emit an error message, but continue (resetting -# func_to_host_file_result to ARG1). -func_convert_file_check () -{ - $opt_debug - if test -z "$2" && test -n "$1" ; then - func_error "Could not determine host file name corresponding to" - func_error " \`$1'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback: - func_to_host_file_result="$1" - fi -} -# end func_convert_file_check - - -# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH -# Verify that FROM_PATH (a path in $build format) was converted to $host -# format in TO_PATH. Otherwise, emit an error message, but continue, resetting -# func_to_host_file_result to a simplistic fallback value (see below). -func_convert_path_check () -{ - $opt_debug - if test -z "$4" && test -n "$3"; then - func_error "Could not determine the host path corresponding to" - func_error " \`$3'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback. This is a deliberately simplistic "conversion" and - # should not be "improved". See libtool.info. - if test "x$1" != "x$2"; then - lt_replace_pathsep_chars="s|$1|$2|g" - func_to_host_path_result=`echo "$3" | - $SED -e "$lt_replace_pathsep_chars"` - else - func_to_host_path_result="$3" - fi - fi -} -# end func_convert_path_check - - -# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG -# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT -# and appending REPL if ORIG matches BACKPAT. -func_convert_path_front_back_pathsep () -{ - $opt_debug - case $4 in - $1 ) func_to_host_path_result="$3$func_to_host_path_result" - ;; - esac - case $4 in - $2 ) func_append func_to_host_path_result "$3" - ;; - esac -} -# end func_convert_path_front_back_pathsep - - -################################################## -# $build to $host FILE NAME CONVERSION FUNCTIONS # -################################################## -# invoked via `$to_host_file_cmd ARG' -# -# In each case, ARG is the path to be converted from $build to $host format. -# Result will be available in $func_to_host_file_result. - - -# func_to_host_file ARG -# Converts the file name ARG from $build format to $host format. Return result -# in func_to_host_file_result. -func_to_host_file () -{ - $opt_debug - $to_host_file_cmd "$1" -} -# end func_to_host_file - - -# func_to_tool_file ARG LAZY -# converts the file name ARG from $build format to toolchain format. Return -# result in func_to_tool_file_result. If the conversion in use is listed -# in (the comma separated) LAZY, no conversion takes place. -func_to_tool_file () -{ - $opt_debug - case ,$2, in - *,"$to_tool_file_cmd",*) - func_to_tool_file_result=$1 - ;; - *) - $to_tool_file_cmd "$1" - func_to_tool_file_result=$func_to_host_file_result - ;; - esac -} -# end func_to_tool_file - - -# func_convert_file_noop ARG -# Copy ARG to func_to_host_file_result. -func_convert_file_noop () -{ - func_to_host_file_result="$1" -} -# end func_convert_file_noop - - -# func_convert_file_msys_to_w32 ARG -# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic -# conversion to w32 is not available inside the cwrapper. Returns result in -# func_to_host_file_result. -func_convert_file_msys_to_w32 () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - func_convert_core_msys_to_w32 "$1" - func_to_host_file_result="$func_convert_core_msys_to_w32_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_msys_to_w32 - - -# func_convert_file_cygwin_to_w32 ARG -# Convert file name ARG from Cygwin to w32 format. Returns result in -# func_to_host_file_result. -func_convert_file_cygwin_to_w32 () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - # because $build is cygwin, we call "the" cygpath in $PATH; no need to use - # LT_CYGPATH in this case. - func_to_host_file_result=`cygpath -m "$1"` - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_cygwin_to_w32 - - -# func_convert_file_nix_to_w32 ARG -# Convert file name ARG from *nix to w32 format. Requires a wine environment -# and a working winepath. Returns result in func_to_host_file_result. -func_convert_file_nix_to_w32 () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - func_convert_core_file_wine_to_w32 "$1" - func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_nix_to_w32 - - -# func_convert_file_msys_to_cygwin ARG -# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -# Returns result in func_to_host_file_result. -func_convert_file_msys_to_cygwin () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - func_convert_core_msys_to_w32 "$1" - func_cygpath -u "$func_convert_core_msys_to_w32_result" - func_to_host_file_result="$func_cygpath_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_msys_to_cygwin - - -# func_convert_file_nix_to_cygwin ARG -# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed -# in a wine environment, working winepath, and LT_CYGPATH set. Returns result -# in func_to_host_file_result. -func_convert_file_nix_to_cygwin () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. - func_convert_core_file_wine_to_w32 "$1" - func_cygpath -u "$func_convert_core_file_wine_to_w32_result" - func_to_host_file_result="$func_cygpath_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_nix_to_cygwin - - -############################################# -# $build to $host PATH CONVERSION FUNCTIONS # -############################################# -# invoked via `$to_host_path_cmd ARG' -# -# In each case, ARG is the path to be converted from $build to $host format. -# The result will be available in $func_to_host_path_result. -# -# Path separators are also converted from $build format to $host format. If -# ARG begins or ends with a path separator character, it is preserved (but -# converted to $host format) on output. -# -# All path conversion functions are named using the following convention: -# file name conversion function : func_convert_file_X_to_Y () -# path conversion function : func_convert_path_X_to_Y () -# where, for any given $build/$host combination the 'X_to_Y' value is the -# same. If conversion functions are added for new $build/$host combinations, -# the two new functions must follow this pattern, or func_init_to_host_path_cmd -# will break. - - -# func_init_to_host_path_cmd -# Ensures that function "pointer" variable $to_host_path_cmd is set to the -# appropriate value, based on the value of $to_host_file_cmd. -to_host_path_cmd= -func_init_to_host_path_cmd () -{ - $opt_debug - if test -z "$to_host_path_cmd"; then - func_stripname 'func_convert_file_' '' "$to_host_file_cmd" - to_host_path_cmd="func_convert_path_${func_stripname_result}" - fi -} - - -# func_to_host_path ARG -# Converts the path ARG from $build format to $host format. Return result -# in func_to_host_path_result. -func_to_host_path () -{ - $opt_debug - func_init_to_host_path_cmd - $to_host_path_cmd "$1" -} -# end func_to_host_path - - -# func_convert_path_noop ARG -# Copy ARG to func_to_host_path_result. -func_convert_path_noop () -{ - func_to_host_path_result="$1" -} -# end func_convert_path_noop - - -# func_convert_path_msys_to_w32 ARG -# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic -# conversion to w32 is not available inside the cwrapper. Returns result in -# func_to_host_path_result. -func_convert_path_msys_to_w32 () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # Remove leading and trailing path separator characters from ARG. MSYS - # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; - # and winepath ignores them completely. - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result="$func_convert_core_msys_to_w32_result" - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_msys_to_w32 - - -# func_convert_path_cygwin_to_w32 ARG -# Convert path ARG from Cygwin to w32 format. Returns result in -# func_to_host_file_result. -func_convert_path_cygwin_to_w32 () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_cygwin_to_w32 - - -# func_convert_path_nix_to_w32 ARG -# Convert path ARG from *nix to w32 format. Requires a wine environment and -# a working winepath. Returns result in func_to_host_file_result. -func_convert_path_nix_to_w32 () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_nix_to_w32 - - -# func_convert_path_msys_to_cygwin ARG -# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -# Returns result in func_to_host_file_result. -func_convert_path_msys_to_cygwin () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_cygpath -u -p "$func_convert_core_msys_to_w32_result" - func_to_host_path_result="$func_cygpath_result" - func_convert_path_check : : \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" : "$1" - fi -} -# end func_convert_path_msys_to_cygwin - - -# func_convert_path_nix_to_cygwin ARG -# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a -# a wine environment, working winepath, and LT_CYGPATH set. Returns result in -# func_to_host_file_result. -func_convert_path_nix_to_cygwin () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # Remove leading and trailing path separator characters from - # ARG. msys behavior is inconsistent here, cygpath turns them - # into '.;' and ';.', and winepath ignores them completely. - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" - func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" - func_to_host_path_result="$func_cygpath_result" - func_convert_path_check : : \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" : "$1" - fi -} -# end func_convert_path_nix_to_cygwin - - -# func_mode_compile arg... -func_mode_compile () -{ - $opt_debug - # Get the compilation command and the source file. - base_compile= - srcfile="$nonopt" # always keep a non-empty value in "srcfile" - suppress_opt=yes - suppress_output= - arg_mode=normal - libobj= - later= - pie_flag= - - for arg - do - case $arg_mode in - arg ) - # do not "continue". Instead, add this to base_compile - lastarg="$arg" - arg_mode=normal - ;; - - target ) - libobj="$arg" - arg_mode=normal - continue - ;; - - normal ) - # Accept any command-line options. - case $arg in - -o) - test -n "$libobj" && \ - func_fatal_error "you cannot specify \`-o' more than once" - arg_mode=target - continue - ;; - - -pie | -fpie | -fPIE) - func_append pie_flag " $arg" - continue - ;; - - -shared | -static | -prefer-pic | -prefer-non-pic) - func_append later " $arg" - continue - ;; - - -no-suppress) - suppress_opt=no - continue - ;; - - -Xcompiler) - arg_mode=arg # the next one goes into the "base_compile" arg list - continue # The current "srcfile" will either be retained or - ;; # replaced later. I would guess that would be a bug. - - -Wc,*) - func_stripname '-Wc,' '' "$arg" - args=$func_stripname_result - lastarg= - save_ifs="$IFS"; IFS=',' - for arg in $args; do - IFS="$save_ifs" - func_append_quoted lastarg "$arg" - done - IFS="$save_ifs" - func_stripname ' ' '' "$lastarg" - lastarg=$func_stripname_result - - # Add the arguments to base_compile. - func_append base_compile " $lastarg" - continue - ;; - - *) - # Accept the current argument as the source file. - # The previous "srcfile" becomes the current argument. - # - lastarg="$srcfile" - srcfile="$arg" - ;; - esac # case $arg - ;; - esac # case $arg_mode - - # Aesthetically quote the previous argument. - func_append_quoted base_compile "$lastarg" - done # for arg - - case $arg_mode in - arg) - func_fatal_error "you must specify an argument for -Xcompile" - ;; - target) - func_fatal_error "you must specify a target with \`-o'" - ;; - *) - # Get the name of the library object. - test -z "$libobj" && { - func_basename "$srcfile" - libobj="$func_basename_result" - } - ;; - esac - - # Recognize several different file suffixes. - # If the user specifies -o file.o, it is replaced with file.lo - case $libobj in - *.[cCFSifmso] | \ - *.ada | *.adb | *.ads | *.asm | \ - *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ - *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) - func_xform "$libobj" - libobj=$func_xform_result - ;; - esac - - case $libobj in - *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; - *) - func_fatal_error "cannot determine name of library object from \`$libobj'" - ;; - esac - - func_infer_tag $base_compile - - for arg in $later; do - case $arg in - -shared) - test "$build_libtool_libs" != yes && \ - func_fatal_configuration "can not build a shared library" - build_old_libs=no - continue - ;; - - -static) - build_libtool_libs=no - build_old_libs=yes - continue - ;; - - -prefer-pic) - pic_mode=yes - continue - ;; - - -prefer-non-pic) - pic_mode=no - continue - ;; - esac - done - - func_quote_for_eval "$libobj" - test "X$libobj" != "X$func_quote_for_eval_result" \ - && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ - && func_warning "libobj name \`$libobj' may not contain shell special characters." - func_dirname_and_basename "$obj" "/" "" - objname="$func_basename_result" - xdir="$func_dirname_result" - lobj=${xdir}$objdir/$objname - - test -z "$base_compile" && \ - func_fatal_help "you must specify a compilation command" - - # Delete any leftover library objects. - if test "$build_old_libs" = yes; then - removelist="$obj $lobj $libobj ${libobj}T" - else - removelist="$lobj $libobj ${libobj}T" - fi - - # On Cygwin there's no "real" PIC flag so we must build both object types - case $host_os in - cygwin* | mingw* | pw32* | os2* | cegcc*) - pic_mode=default - ;; - esac - if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then - # non-PIC code in shared libraries is not supported - pic_mode=default - fi - - # Calculate the filename of the output object if compiler does - # not support -o with -c - if test "$compiler_c_o" = no; then - output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} - lockfile="$output_obj.lock" - else - output_obj= - need_locks=no - lockfile= - fi - - # Lock this critical section if it is needed - # We use this script file to make the link, it avoids creating a new file - if test "$need_locks" = yes; then - until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do - func_echo "Waiting for $lockfile to be removed" - sleep 2 - done - elif test "$need_locks" = warn; then - if test -f "$lockfile"; then - $ECHO "\ -*** ERROR, $lockfile exists and contains: -`cat $lockfile 2>/dev/null` - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - func_append removelist " $output_obj" - $ECHO "$srcfile" > "$lockfile" - fi - - $opt_dry_run || $RM $removelist - func_append removelist " $lockfile" - trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 - - func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 - srcfile=$func_to_tool_file_result - func_quote_for_eval "$srcfile" - qsrcfile=$func_quote_for_eval_result - - # Only build a PIC object if we are building libtool libraries. - if test "$build_libtool_libs" = yes; then - # Without this assignment, base_compile gets emptied. - fbsd_hideous_sh_bug=$base_compile - - if test "$pic_mode" != no; then - command="$base_compile $qsrcfile $pic_flag" - else - # Don't build PIC code - command="$base_compile $qsrcfile" - fi - - func_mkdir_p "$xdir$objdir" - - if test -z "$output_obj"; then - # Place PIC objects in $objdir - func_append command " -o $lobj" - fi - - func_show_eval_locale "$command" \ - 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' - - if test "$need_locks" = warn && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then - $ECHO "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed, then go on to compile the next one - if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then - func_show_eval '$MV "$output_obj" "$lobj"' \ - 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi - - # Allow error messages only from the first compilation. - if test "$suppress_opt" = yes; then - suppress_output=' >/dev/null 2>&1' - fi - fi - - # Only build a position-dependent object if we build old libraries. - if test "$build_old_libs" = yes; then - if test "$pic_mode" != yes; then - # Don't build PIC code - command="$base_compile $qsrcfile$pie_flag" - else - command="$base_compile $qsrcfile $pic_flag" - fi - if test "$compiler_c_o" = yes; then - func_append command " -o $obj" - fi - - # Suppress compiler output if we already did a PIC compilation. - func_append command "$suppress_output" - func_show_eval_locale "$command" \ - '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' - - if test "$need_locks" = warn && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then - $ECHO "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed - if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then - func_show_eval '$MV "$output_obj" "$obj"' \ - 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi - fi - - $opt_dry_run || { - func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" - - # Unlock the critical section if it was locked - if test "$need_locks" != no; then - removelist=$lockfile - $RM "$lockfile" - fi - } - - exit $EXIT_SUCCESS -} - -$opt_help || { - test "$opt_mode" = compile && func_mode_compile ${1+"$@"} -} - -func_mode_help () -{ - # We need to display help for each of the modes. - case $opt_mode in - "") - # Generic help is extracted from the usage comments - # at the start of this file. - func_help - ;; - - clean) - $ECHO \ -"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... - -Remove files from the build directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, object or program, all the files associated -with it are deleted. Otherwise, only FILE itself is deleted using RM." - ;; - - compile) - $ECHO \ -"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE - -Compile a source file into a libtool library object. - -This mode accepts the following additional options: - - -o OUTPUT-FILE set the output file name to OUTPUT-FILE - -no-suppress do not suppress compiler output for multiple passes - -prefer-pic try to build PIC objects only - -prefer-non-pic try to build non-PIC objects only - -shared do not build a \`.o' file suitable for static linking - -static only build a \`.o' file suitable for static linking - -Wc,FLAG pass FLAG directly to the compiler - -COMPILE-COMMAND is a command to be used in creating a \`standard' object file -from the given SOURCEFILE. - -The output file name is determined by removing the directory component from -SOURCEFILE, then substituting the C source code suffix \`.c' with the -library object suffix, \`.lo'." - ;; - - execute) - $ECHO \ -"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... - -Automatically set library path, then run a program. - -This mode accepts the following additional options: - - -dlopen FILE add the directory containing FILE to the library path - -This mode sets the library path environment variable according to \`-dlopen' -flags. - -If any of the ARGS are libtool executable wrappers, then they are translated -into their corresponding uninstalled binary, and any of their required library -directories are added to the library path. - -Then, COMMAND is executed, with ARGS as arguments." - ;; - - finish) - $ECHO \ -"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... - -Complete the installation of libtool libraries. - -Each LIBDIR is a directory that contains libtool libraries. - -The commands that this mode executes may require superuser privileges. Use -the \`--dry-run' option if you just want to see what would be executed." - ;; - - install) - $ECHO \ -"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... - -Install executables or libraries. - -INSTALL-COMMAND is the installation command. The first component should be -either the \`install' or \`cp' program. - -The following components of INSTALL-COMMAND are treated specially: - - -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation - -The rest of the components are interpreted as arguments to that command (only -BSD-compatible install options are recognized)." - ;; - - link) - $ECHO \ -"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... - -Link object files or libraries together to form another library, or to -create an executable program. - -LINK-COMMAND is a command using the C compiler that you would use to create -a program from several object files. - -The following components of LINK-COMMAND are treated specially: - - -all-static do not do any dynamic linking at all - -avoid-version do not add a version suffix if possible - -bindir BINDIR specify path to binaries directory (for systems where - libraries must be found in the PATH setting at runtime) - -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime - -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols - -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) - -export-symbols SYMFILE - try to export only the symbols listed in SYMFILE - -export-symbols-regex REGEX - try to export only the symbols matching REGEX - -LLIBDIR search LIBDIR for required installed libraries - -lNAME OUTPUT-FILE requires the installed library libNAME - -module build a library that can dlopened - -no-fast-install disable the fast-install mode - -no-install link a not-installable executable - -no-undefined declare that a library does not refer to external symbols - -o OUTPUT-FILE create OUTPUT-FILE from the specified objects - -objectlist FILE Use a list of object files found in FILE to specify objects - -precious-files-regex REGEX - don't remove output files matching REGEX - -release RELEASE specify package release information - -rpath LIBDIR the created library will eventually be installed in LIBDIR - -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries - -shared only do dynamic linking of libtool libraries - -shrext SUFFIX override the standard shared library file extension - -static do not do any dynamic linking of uninstalled libtool libraries - -static-libtool-libs - do not do any dynamic linking of libtool libraries - -version-info CURRENT[:REVISION[:AGE]] - specify library version info [each variable defaults to 0] - -weak LIBNAME declare that the target provides the LIBNAME interface - -Wc,FLAG - -Xcompiler FLAG pass linker-specific FLAG directly to the compiler - -Wl,FLAG - -Xlinker FLAG pass linker-specific FLAG directly to the linker - -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) - -All other options (arguments beginning with \`-') are ignored. - -Every other argument is treated as a filename. Files ending in \`.la' are -treated as uninstalled libtool libraries, other files are standard or library -object files. - -If the OUTPUT-FILE ends in \`.la', then a libtool library is created, -only library objects (\`.lo' files) may be specified, and \`-rpath' is -required, except when creating a convenience library. - -If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created -using \`ar' and \`ranlib', or on Windows using \`lib'. - -If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file -is created, otherwise an executable program is created." - ;; - - uninstall) - $ECHO \ -"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... - -Remove libraries from an installation directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, all the files associated with it are deleted. -Otherwise, only FILE itself is deleted using RM." - ;; - - *) - func_fatal_help "invalid operation mode \`$opt_mode'" - ;; - esac - - echo - $ECHO "Try \`$progname --help' for more information about other modes." -} - -# Now that we've collected a possible --mode arg, show help if necessary -if $opt_help; then - if test "$opt_help" = :; then - func_mode_help - else - { - func_help noexit - for opt_mode in compile link execute install finish uninstall clean; do - func_mode_help - done - } | sed -n '1p; 2,$s/^Usage:/ or: /p' - { - func_help noexit - for opt_mode in compile link execute install finish uninstall clean; do - echo - func_mode_help - done - } | - sed '1d - /^When reporting/,/^Report/{ - H - d - } - $x - /information about other modes/d - /more detailed .*MODE/d - s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' - fi - exit $? -fi - - -# func_mode_execute arg... -func_mode_execute () -{ - $opt_debug - # The first argument is the command name. - cmd="$nonopt" - test -z "$cmd" && \ - func_fatal_help "you must specify a COMMAND" - - # Handle -dlopen flags immediately. - for file in $opt_dlopen; do - test -f "$file" \ - || func_fatal_help "\`$file' is not a file" - - dir= - case $file in - *.la) - func_resolve_sysroot "$file" - file=$func_resolve_sysroot_result - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$lib' is not a valid libtool archive" - - # Read the libtool library. - dlname= - library_names= - func_source "$file" - - # Skip this library if it cannot be dlopened. - if test -z "$dlname"; then - # Warn if it was a shared library. - test -n "$library_names" && \ - func_warning "\`$file' was not linked with \`-export-dynamic'" - continue - fi - - func_dirname "$file" "" "." - dir="$func_dirname_result" - - if test -f "$dir/$objdir/$dlname"; then - func_append dir "/$objdir" - else - if test ! -f "$dir/$dlname"; then - func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" - fi - fi - ;; - - *.lo) - # Just add the directory containing the .lo file. - func_dirname "$file" "" "." - dir="$func_dirname_result" - ;; - - *) - func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" - continue - ;; - esac - - # Get the absolute pathname. - absdir=`cd "$dir" && pwd` - test -n "$absdir" && dir="$absdir" - - # Now add the directory to shlibpath_var. - if eval "test -z \"\$$shlibpath_var\""; then - eval "$shlibpath_var=\"\$dir\"" - else - eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" - fi - done - - # This variable tells wrapper scripts just to set shlibpath_var - # rather than running their programs. - libtool_execute_magic="$magic" - - # Check if any of the arguments is a wrapper script. - args= - for file - do - case $file in - -* | *.la | *.lo ) ;; - *) - # Do a test to see if this is really a libtool program. - if func_ltwrapper_script_p "$file"; then - func_source "$file" - # Transform arg to wrapped name. - file="$progdir/$program" - elif func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - func_source "$func_ltwrapper_scriptname_result" - # Transform arg to wrapped name. - file="$progdir/$program" - fi - ;; - esac - # Quote arguments (to preserve shell metacharacters). - func_append_quoted args "$file" - done - - if test "X$opt_dry_run" = Xfalse; then - if test -n "$shlibpath_var"; then - # Export the shlibpath_var. - eval "export $shlibpath_var" - fi - - # Restore saved environment variables - for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES - do - eval "if test \"\${save_$lt_var+set}\" = set; then - $lt_var=\$save_$lt_var; export $lt_var - else - $lt_unset $lt_var - fi" - done - - # Now prepare to actually exec the command. - exec_cmd="\$cmd$args" - else - # Display what would be done. - if test -n "$shlibpath_var"; then - eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" - echo "export $shlibpath_var" - fi - $ECHO "$cmd$args" - exit $EXIT_SUCCESS - fi -} - -test "$opt_mode" = execute && func_mode_execute ${1+"$@"} - - -# func_mode_finish arg... -func_mode_finish () -{ - $opt_debug - libs= - libdirs= - admincmds= - - for opt in "$nonopt" ${1+"$@"} - do - if test -d "$opt"; then - func_append libdirs " $opt" - - elif test -f "$opt"; then - if func_lalib_unsafe_p "$opt"; then - func_append libs " $opt" - else - func_warning "\`$opt' is not a valid libtool archive" - fi - - else - func_fatal_error "invalid argument \`$opt'" - fi - done - - if test -n "$libs"; then - if test -n "$lt_sysroot"; then - sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` - sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" - else - sysroot_cmd= - fi - - # Remove sysroot references - if $opt_dry_run; then - for lib in $libs; do - echo "removing references to $lt_sysroot and \`=' prefixes from $lib" - done - else - tmpdir=`func_mktempdir` - for lib in $libs; do - sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ - > $tmpdir/tmp-la - mv -f $tmpdir/tmp-la $lib - done - ${RM}r "$tmpdir" - fi - fi - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. - func_execute_cmds "$finish_cmds" 'admincmds="$admincmds -'"$cmd"'"' - fi - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" - $opt_dry_run || eval "$cmds" || func_append admincmds " - $cmds" - fi - done - fi - - # Exit here if they wanted silent mode. - $opt_silent && exit $EXIT_SUCCESS - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - echo "----------------------------------------------------------------------" - echo "Libraries have been installed in:" - for libdir in $libdirs; do - $ECHO " $libdir" - done - echo - echo "If you ever happen to want to link against installed libraries" - echo "in a given directory, LIBDIR, you must either use libtool, and" - echo "specify the full pathname of the library, or use the \`-LLIBDIR'" - echo "flag during linking and do at least one of the following:" - if test -n "$shlibpath_var"; then - echo " - add LIBDIR to the \`$shlibpath_var' environment variable" - echo " during execution" - fi - if test -n "$runpath_var"; then - echo " - add LIBDIR to the \`$runpath_var' environment variable" - echo " during linking" - fi - if test -n "$hardcode_libdir_flag_spec"; then - libdir=LIBDIR - eval flag=\"$hardcode_libdir_flag_spec\" - - $ECHO " - use the \`$flag' linker flag" - fi - if test -n "$admincmds"; then - $ECHO " - have your system administrator run these commands:$admincmds" - fi - if test -f /etc/ld.so.conf; then - echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" - fi - echo - - echo "See any operating system documentation about shared libraries for" - case $host in - solaris2.[6789]|solaris2.1[0-9]) - echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" - echo "pages." - ;; - *) - echo "more information, such as the ld(1) and ld.so(8) manual pages." - ;; - esac - echo "----------------------------------------------------------------------" - fi - exit $EXIT_SUCCESS -} - -test "$opt_mode" = finish && func_mode_finish ${1+"$@"} - - -# func_mode_install arg... -func_mode_install () -{ - $opt_debug - # There may be an optional sh(1) argument at the beginning of - # install_prog (especially on Windows NT). - if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || - # Allow the use of GNU shtool's install command. - case $nonopt in *shtool*) :;; *) false;; esac; then - # Aesthetically quote it. - func_quote_for_eval "$nonopt" - install_prog="$func_quote_for_eval_result " - arg=$1 - shift - else - install_prog= - arg=$nonopt - fi - - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - func_quote_for_eval "$arg" - func_append install_prog "$func_quote_for_eval_result" - install_shared_prog=$install_prog - case " $install_prog " in - *[\\\ /]cp\ *) install_cp=: ;; - *) install_cp=false ;; - esac - - # We need to accept at least all the BSD install flags. - dest= - files= - opts= - prev= - install_type= - isdir=no - stripme= - no_mode=: - for arg - do - arg2= - if test -n "$dest"; then - func_append files " $dest" - dest=$arg - continue - fi - - case $arg in - -d) isdir=yes ;; - -f) - if $install_cp; then :; else - prev=$arg - fi - ;; - -g | -m | -o) - prev=$arg - ;; - -s) - stripme=" -s" - continue - ;; - -*) - ;; - *) - # If the previous option needed an argument, then skip it. - if test -n "$prev"; then - if test "x$prev" = x-m && test -n "$install_override_mode"; then - arg2=$install_override_mode - no_mode=false - fi - prev= - else - dest=$arg - continue - fi - ;; - esac - - # Aesthetically quote the argument. - func_quote_for_eval "$arg" - func_append install_prog " $func_quote_for_eval_result" - if test -n "$arg2"; then - func_quote_for_eval "$arg2" - fi - func_append install_shared_prog " $func_quote_for_eval_result" - done - - test -z "$install_prog" && \ - func_fatal_help "you must specify an install program" - - test -n "$prev" && \ - func_fatal_help "the \`$prev' option requires an argument" - - if test -n "$install_override_mode" && $no_mode; then - if $install_cp; then :; else - func_quote_for_eval "$install_override_mode" - func_append install_shared_prog " -m $func_quote_for_eval_result" - fi - fi - - if test -z "$files"; then - if test -z "$dest"; then - func_fatal_help "no file or destination specified" - else - func_fatal_help "you must specify a destination" - fi - fi - - # Strip any trailing slash from the destination. - func_stripname '' '/' "$dest" - dest=$func_stripname_result - - # Check to see that the destination is a directory. - test -d "$dest" && isdir=yes - if test "$isdir" = yes; then - destdir="$dest" - destname= - else - func_dirname_and_basename "$dest" "" "." - destdir="$func_dirname_result" - destname="$func_basename_result" - - # Not a directory, so check to see that there is only one file specified. - set dummy $files; shift - test "$#" -gt 1 && \ - func_fatal_help "\`$dest' is not a directory" - fi - case $destdir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - for file in $files; do - case $file in - *.lo) ;; - *) - func_fatal_help "\`$destdir' must be an absolute directory name" - ;; - esac - done - ;; - esac - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - staticlibs= - future_libdirs= - current_libdirs= - for file in $files; do - - # Do each installation. - case $file in - *.$libext) - # Do the static libraries later. - func_append staticlibs " $file" - ;; - - *.la) - func_resolve_sysroot "$file" - file=$func_resolve_sysroot_result - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$file' is not a valid libtool archive" - - library_names= - old_library= - relink_command= - func_source "$file" - - # Add the libdir to current_libdirs if it is the destination. - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; - *) func_append current_libdirs " $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; - *) func_append future_libdirs " $libdir" ;; - esac - fi - - func_dirname "$file" "/" "" - dir="$func_dirname_result" - func_append dir "$objdir" - - if test -n "$relink_command"; then - # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` - - # Don't allow the user to place us outside of our expected - # location b/c this prevents finding dependent libraries that - # are installed to the same prefix. - # At present, this check doesn't affect windows .dll's that - # are installed into $libdir/../bin (currently, that works fine) - # but it's something to keep an eye on. - test "$inst_prefix_dir" = "$destdir" && \ - func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" - - if test -n "$inst_prefix_dir"; then - # Stick the inst_prefix_dir data into the link command. - relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` - else - relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` - fi - - func_warning "relinking \`$file'" - func_show_eval "$relink_command" \ - 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' - fi - - # See the names of the shared library. - set dummy $library_names; shift - if test -n "$1"; then - realname="$1" - shift - - srcname="$realname" - test -n "$relink_command" && srcname="$realname"T - - # Install the shared library and build the symlinks. - func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ - 'exit $?' - tstripme="$stripme" - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - case $realname in - *.dll.a) - tstripme="" - ;; - esac - ;; - esac - if test -n "$tstripme" && test -n "$striplib"; then - func_show_eval "$striplib $destdir/$realname" 'exit $?' - fi - - if test "$#" -gt 0; then - # Delete the old symlinks, and create new ones. - # Try `ln -sf' first, because the `ln' binary might depend on - # the symlink we replace! Solaris /bin/ln does not understand -f, - # so we also need to try rm && ln -s. - for linkname - do - test "$linkname" != "$realname" \ - && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" - done - fi - - # Do each command in the postinstall commands. - lib="$destdir/$realname" - func_execute_cmds "$postinstall_cmds" 'exit $?' - fi - - # Install the pseudo-library for information purposes. - func_basename "$file" - name="$func_basename_result" - instname="$dir/$name"i - func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' - - # Maybe install the static library, too. - test -n "$old_library" && func_append staticlibs " $dir/$old_library" - ;; - - *.lo) - # Install (i.e. copy) a libtool object. - - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - func_basename "$file" - destfile="$func_basename_result" - destfile="$destdir/$destfile" - fi - - # Deduce the name of the destination old-style object file. - case $destfile in - *.lo) - func_lo2o "$destfile" - staticdest=$func_lo2o_result - ;; - *.$objext) - staticdest="$destfile" - destfile= - ;; - *) - func_fatal_help "cannot copy a libtool object to \`$destfile'" - ;; - esac - - # Install the libtool object if requested. - test -n "$destfile" && \ - func_show_eval "$install_prog $file $destfile" 'exit $?' - - # Install the old object if enabled. - if test "$build_old_libs" = yes; then - # Deduce the name of the old-style object file. - func_lo2o "$file" - staticobj=$func_lo2o_result - func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' - fi - exit $EXIT_SUCCESS - ;; - - *) - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - func_basename "$file" - destfile="$func_basename_result" - destfile="$destdir/$destfile" - fi - - # If the file is missing, and there is a .exe on the end, strip it - # because it is most likely a libtool script we actually want to - # install - stripped_ext="" - case $file in - *.exe) - if test ! -f "$file"; then - func_stripname '' '.exe' "$file" - file=$func_stripname_result - stripped_ext=".exe" - fi - ;; - esac - - # Do a test to see if this is really a libtool program. - case $host in - *cygwin* | *mingw*) - if func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - wrapper=$func_ltwrapper_scriptname_result - else - func_stripname '' '.exe' "$file" - wrapper=$func_stripname_result - fi - ;; - *) - wrapper=$file - ;; - esac - if func_ltwrapper_script_p "$wrapper"; then - notinst_deplibs= - relink_command= - - func_source "$wrapper" - - # Check the variables that should have been set. - test -z "$generated_by_libtool_version" && \ - func_fatal_error "invalid libtool wrapper script \`$wrapper'" - - finalize=yes - for lib in $notinst_deplibs; do - # Check to see that each library is installed. - libdir= - if test -f "$lib"; then - func_source "$lib" - fi - libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test - if test -n "$libdir" && test ! -f "$libfile"; then - func_warning "\`$lib' has not been installed in \`$libdir'" - finalize=no - fi - done - - relink_command= - func_source "$wrapper" - - outputname= - if test "$fast_install" = no && test -n "$relink_command"; then - $opt_dry_run || { - if test "$finalize" = yes; then - tmpdir=`func_mktempdir` - func_basename "$file$stripped_ext" - file="$func_basename_result" - outputname="$tmpdir/$file" - # Replace the output file specification. - relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` - - $opt_silent || { - func_quote_for_expand "$relink_command" - eval "func_echo $func_quote_for_expand_result" - } - if eval "$relink_command"; then : - else - func_error "error: relink \`$file' with the above command before installing it" - $opt_dry_run || ${RM}r "$tmpdir" - continue - fi - file="$outputname" - else - func_warning "cannot relink \`$file'" - fi - } - else - # Install the binary that we compiled earlier. - file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` - fi - fi - - # remove .exe since cygwin /usr/bin/install will append another - # one anyway - case $install_prog,$host in - */usr/bin/install*,*cygwin*) - case $file:$destfile in - *.exe:*.exe) - # this is ok - ;; - *.exe:*) - destfile=$destfile.exe - ;; - *:*.exe) - func_stripname '' '.exe' "$destfile" - destfile=$func_stripname_result - ;; - esac - ;; - esac - func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' - $opt_dry_run || if test -n "$outputname"; then - ${RM}r "$tmpdir" - fi - ;; - esac - done - - for file in $staticlibs; do - func_basename "$file" - name="$func_basename_result" - - # Set up the ranlib parameters. - oldlib="$destdir/$name" - func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 - tool_oldlib=$func_to_tool_file_result - - func_show_eval "$install_prog \$file \$oldlib" 'exit $?' - - if test -n "$stripme" && test -n "$old_striplib"; then - func_show_eval "$old_striplib $tool_oldlib" 'exit $?' - fi - - # Do each command in the postinstall commands. - func_execute_cmds "$old_postinstall_cmds" 'exit $?' - done - - test -n "$future_libdirs" && \ - func_warning "remember to run \`$progname --finish$future_libdirs'" - - if test -n "$current_libdirs"; then - # Maybe just do a dry run. - $opt_dry_run && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' - else - exit $EXIT_SUCCESS - fi -} - -test "$opt_mode" = install && func_mode_install ${1+"$@"} - - -# func_generate_dlsyms outputname originator pic_p -# Extract symbols from dlprefiles and create ${outputname}S.o with -# a dlpreopen symbol table. -func_generate_dlsyms () -{ - $opt_debug - my_outputname="$1" - my_originator="$2" - my_pic_p="${3-no}" - my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` - my_dlsyms= - - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - if test -n "$NM" && test -n "$global_symbol_pipe"; then - my_dlsyms="${my_outputname}S.c" - else - func_error "not configured to extract global symbols from dlpreopened files" - fi - fi - - if test -n "$my_dlsyms"; then - case $my_dlsyms in - "") ;; - *.c) - # Discover the nlist of each of the dlfiles. - nlist="$output_objdir/${my_outputname}.nm" - - func_show_eval "$RM $nlist ${nlist}S ${nlist}T" - - # Parse the name list into a source file. - func_verbose "creating $output_objdir/$my_dlsyms" - - $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ -/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ -/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ - -#ifdef __cplusplus -extern \"C\" { -#endif - -#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) -#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" -#endif - -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con'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 - -/* External symbol declarations for the compiler. */\ -" - - if test "$dlself" = yes; then - func_verbose "generating symbol list for \`$output'" - - $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" - - # Add our own program objects to the symbol list. - progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` - for progfile in $progfiles; do - func_to_tool_file "$progfile" func_convert_file_msys_to_w32 - func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" - $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" - done - - if test -n "$exclude_expsyms"; then - $opt_dry_run || { - eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - } - fi - - if test -n "$export_symbols_regex"; then - $opt_dry_run || { - eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - } - fi - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - export_symbols="$output_objdir/$outputname.exp" - $opt_dry_run || { - $RM $export_symbols - eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - case $host in - *cygwin* | *mingw* | *cegcc* ) - eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' - ;; - esac - } - else - $opt_dry_run || { - eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' - eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - case $host in - *cygwin* | *mingw* | *cegcc* ) - eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' - ;; - esac - } - fi - fi - - for dlprefile in $dlprefiles; do - func_verbose "extracting global C symbols from \`$dlprefile'" - func_basename "$dlprefile" - name="$func_basename_result" - case $host in - *cygwin* | *mingw* | *cegcc* ) - # if an import library, we need to obtain dlname - if func_win32_import_lib_p "$dlprefile"; then - func_tr_sh "$dlprefile" - eval "curr_lafile=\$libfile_$func_tr_sh_result" - dlprefile_dlbasename="" - if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then - # Use subshell, to avoid clobbering current variable values - dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` - if test -n "$dlprefile_dlname" ; then - func_basename "$dlprefile_dlname" - dlprefile_dlbasename="$func_basename_result" - else - # no lafile. user explicitly requested -dlpreopen . - $sharedlib_from_linklib_cmd "$dlprefile" - dlprefile_dlbasename=$sharedlib_from_linklib_result - fi - fi - $opt_dry_run || { - if test -n "$dlprefile_dlbasename" ; then - eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' - else - func_warning "Could not compute DLL name from $name" - eval '$ECHO ": $name " >> "$nlist"' - fi - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | - $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" - } - else # not an import lib - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } - fi - ;; - *) - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } - ;; - esac - done - - $opt_dry_run || { - # Make sure we have at least an empty file. - test -f "$nlist" || : > "$nlist" - - if test -n "$exclude_expsyms"; then - $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T - $MV "$nlist"T "$nlist" - fi - - # Try sorting and uniquifying the output. - if $GREP -v "^: " < "$nlist" | - if sort -k 3 /dev/null 2>&1; then - sort -k 3 - else - sort +2 - fi | - uniq > "$nlist"S; then - : - else - $GREP -v "^: " < "$nlist" > "$nlist"S - fi - - if test -f "$nlist"S; then - eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' - else - echo '/* NONE */' >> "$output_objdir/$my_dlsyms" - fi - - echo >> "$output_objdir/$my_dlsyms" "\ - -/* The mapping between symbol names and symbols. */ -typedef struct { - const char *name; - void *address; -} lt_dlsymlist; -extern LT_DLSYM_CONST lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[]; -LT_DLSYM_CONST lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[] = -{\ - { \"$my_originator\", (void *) 0 }," - - case $need_lib_prefix in - no) - eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" - ;; - *) - eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" - ;; - esac - echo >> "$output_objdir/$my_dlsyms" "\ - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt_${my_prefix}_LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif\ -" - } # !$opt_dry_run - - pic_flag_for_symtable= - case "$compile_command " in - *" -static "*) ;; - *) - case $host in - # compiling the symbol table file with pic_flag works around - # a FreeBSD bug that causes programs to crash when -lm is - # linked before any other PIC object. But we must not use - # pic_flag when linking with -static. The problem exists in - # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) - pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; - *-*-hpux*) - pic_flag_for_symtable=" $pic_flag" ;; - *) - if test "X$my_pic_p" != Xno; then - pic_flag_for_symtable=" $pic_flag" - fi - ;; - esac - ;; - esac - symtab_cflags= - for arg in $LTCFLAGS; do - case $arg in - -pie | -fpie | -fPIE) ;; - *) func_append symtab_cflags " $arg" ;; - esac - done - - # Now compile the dynamic symbol file. - func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' - - # Clean up the generated files. - func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' - - # Transform the symbol file into the correct name. - symfileobj="$output_objdir/${my_outputname}S.$objext" - case $host in - *cygwin* | *mingw* | *cegcc* ) - if test -f "$output_objdir/$my_outputname.def"; then - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - else - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` - fi - ;; - *) - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` - ;; - esac - ;; - *) - func_fatal_error "unknown suffix for \`$my_dlsyms'" - ;; - esac - else - # We keep going just in case the user didn't refer to - # lt_preloaded_symbols. The linker will fail if global_symbol_pipe - # really was required. - - # Nullify the symbol file. - compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` - fi -} - -# func_win32_libid arg -# return the library type of file 'arg' -# -# Need a lot of goo to handle *both* DLLs and import libs -# Has to be a shell function in order to 'eat' the argument -# that is supplied when $file_magic_command is called. -# Despite the name, also deal with 64 bit binaries. -func_win32_libid () -{ - $opt_debug - win32_libid_type="unknown" - win32_fileres=`file -L $1 2>/dev/null` - case $win32_fileres in - *ar\ archive\ import\ library*) # definitely import - win32_libid_type="x86 archive import" - ;; - *ar\ archive*) # could be an import, or static - # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. - if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | - $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then - func_to_tool_file "$1" func_convert_file_msys_to_w32 - win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | - $SED -n -e ' - 1,100{ - / I /{ - s,.*,import, - p - q - } - }'` - case $win32_nmres in - import*) win32_libid_type="x86 archive import";; - *) win32_libid_type="x86 archive static";; - esac - fi - ;; - *DLL*) - win32_libid_type="x86 DLL" - ;; - *executable*) # but shell scripts are "executable" too... - case $win32_fileres in - *MS\ Windows\ PE\ Intel*) - win32_libid_type="x86 DLL" - ;; - esac - ;; - esac - $ECHO "$win32_libid_type" -} - -# func_cygming_dll_for_implib ARG -# -# Platform-specific function to extract the -# name of the DLL associated with the specified -# import library ARG. -# Invoked by eval'ing the libtool variable -# $sharedlib_from_linklib_cmd -# Result is available in the variable -# $sharedlib_from_linklib_result -func_cygming_dll_for_implib () -{ - $opt_debug - sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` -} - -# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs -# -# The is the core of a fallback implementation of a -# platform-specific function to extract the name of the -# DLL associated with the specified import library LIBNAME. -# -# SECTION_NAME is either .idata$6 or .idata$7, depending -# on the platform and compiler that created the implib. -# -# Echos the name of the DLL associated with the -# specified import library. -func_cygming_dll_for_implib_fallback_core () -{ - $opt_debug - match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` - $OBJDUMP -s --section "$1" "$2" 2>/dev/null | - $SED '/^Contents of section '"$match_literal"':/{ - # Place marker at beginning of archive member dllname section - s/.*/====MARK====/ - p - d - } - # These lines can sometimes be longer than 43 characters, but - # are always uninteresting - /:[ ]*file format pe[i]\{,1\}-/d - /^In archive [^:]*:/d - # Ensure marker is printed - /^====MARK====/p - # Remove all lines with less than 43 characters - /^.\{43\}/!d - # From remaining lines, remove first 43 characters - s/^.\{43\}//' | - $SED -n ' - # Join marker and all lines until next marker into a single line - /^====MARK====/ b para - H - $ b para - b - :para - x - s/\n//g - # Remove the marker - s/^====MARK====// - # Remove trailing dots and whitespace - s/[\. \t]*$// - # Print - /./p' | - # we now have a list, one entry per line, of the stringified - # contents of the appropriate section of all members of the - # archive which possess that section. Heuristic: eliminate - # all those which have a first or second character that is - # a '.' (that is, objdump's representation of an unprintable - # character.) This should work for all archives with less than - # 0x302f exports -- but will fail for DLLs whose name actually - # begins with a literal '.' or a single character followed by - # a '.'. - # - # Of those that remain, print the first one. - $SED -e '/^\./d;/^.\./d;q' -} - -# func_cygming_gnu_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is a GNU/binutils-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_gnu_implib_p () -{ - $opt_debug - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` - test -n "$func_cygming_gnu_implib_tmp" -} - -# func_cygming_ms_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is an MS-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_ms_implib_p () -{ - $opt_debug - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` - test -n "$func_cygming_ms_implib_tmp" -} - -# func_cygming_dll_for_implib_fallback ARG -# Platform-specific function to extract the -# name of the DLL associated with the specified -# import library ARG. -# -# This fallback implementation is for use when $DLLTOOL -# does not support the --identify-strict option. -# Invoked by eval'ing the libtool variable -# $sharedlib_from_linklib_cmd -# Result is available in the variable -# $sharedlib_from_linklib_result -func_cygming_dll_for_implib_fallback () -{ - $opt_debug - if func_cygming_gnu_implib_p "$1" ; then - # binutils import library - sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` - elif func_cygming_ms_implib_p "$1" ; then - # ms-generated import library - sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` - else - # unknown - sharedlib_from_linklib_result="" - fi -} - - -# func_extract_an_archive dir oldlib -func_extract_an_archive () -{ - $opt_debug - f_ex_an_ar_dir="$1"; shift - f_ex_an_ar_oldlib="$1" - if test "$lock_old_archive_extraction" = yes; then - lockfile=$f_ex_an_ar_oldlib.lock - until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do - func_echo "Waiting for $lockfile to be removed" - sleep 2 - done - fi - func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ - 'stat=$?; rm -f "$lockfile"; exit $stat' - if test "$lock_old_archive_extraction" = yes; then - $opt_dry_run || rm -f "$lockfile" - fi - if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then - : - else - func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" - fi -} - - -# func_extract_archives gentop oldlib ... -func_extract_archives () -{ - $opt_debug - my_gentop="$1"; shift - my_oldlibs=${1+"$@"} - my_oldobjs="" - my_xlib="" - my_xabs="" - my_xdir="" - - for my_xlib in $my_oldlibs; do - # Extract the objects. - case $my_xlib in - [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; - *) my_xabs=`pwd`"/$my_xlib" ;; - esac - func_basename "$my_xlib" - my_xlib="$func_basename_result" - my_xlib_u=$my_xlib - while :; do - case " $extracted_archives " in - *" $my_xlib_u "*) - func_arith $extracted_serial + 1 - extracted_serial=$func_arith_result - my_xlib_u=lt$extracted_serial-$my_xlib ;; - *) break ;; - esac - done - extracted_archives="$extracted_archives $my_xlib_u" - my_xdir="$my_gentop/$my_xlib_u" - - func_mkdir_p "$my_xdir" - - case $host in - *-darwin*) - func_verbose "Extracting $my_xabs" - # Do not bother doing anything if just a dry run - $opt_dry_run || { - darwin_orig_dir=`pwd` - cd $my_xdir || exit $? - darwin_archive=$my_xabs - darwin_curdir=`pwd` - darwin_base_archive=`basename "$darwin_archive"` - darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` - if test -n "$darwin_arches"; then - darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` - darwin_arch= - func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" - for darwin_arch in $darwin_arches ; do - func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" - $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" - cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" - func_extract_an_archive "`pwd`" "${darwin_base_archive}" - cd "$darwin_curdir" - $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" - done # $darwin_arches - ## Okay now we've a bunch of thin objects, gotta fatten them up :) - darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` - darwin_file= - darwin_files= - for darwin_file in $darwin_filelist; do - darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` - $LIPO -create -output "$darwin_file" $darwin_files - done # $darwin_filelist - $RM -rf unfat-$$ - cd "$darwin_orig_dir" - else - cd $darwin_orig_dir - func_extract_an_archive "$my_xdir" "$my_xabs" - fi # $darwin_arches - } # !$opt_dry_run - ;; - *) - func_extract_an_archive "$my_xdir" "$my_xabs" - ;; - esac - my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` - done - - func_extract_archives_result="$my_oldobjs" -} - - -# func_emit_wrapper [arg=no] -# -# Emit a libtool wrapper script on stdout. -# Don't directly open a file because we may want to -# incorporate the script contents within a cygwin/mingw -# wrapper executable. Must ONLY be called from within -# func_mode_link because it depends on a number of variables -# set therein. -# -# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR -# variable will take. If 'yes', then the emitted script -# will assume that the directory in which it is stored is -# the $objdir directory. This is a cygwin/mingw-specific -# behavior. -func_emit_wrapper () -{ - func_emit_wrapper_arg1=${1-no} - - $ECHO "\ -#! $SHELL - -# $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION -# -# The $output program cannot be directly executed until all the libtool -# libraries that it depends on are installed. -# -# This wrapper script should never be moved out of the build directory. -# If it is, it will not operate correctly. - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='$sed_quote_subst' - -# Be Bourne compatible -if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -relink_command=\"$relink_command\" - -# This environment variable determines our operation mode. -if test \"\$libtool_install_magic\" = \"$magic\"; then - # install mode needs the following variables: - generated_by_libtool_version='$macro_version' - notinst_deplibs='$notinst_deplibs' -else - # When we are sourced in execute mode, \$file and \$ECHO are already set. - if test \"\$libtool_execute_magic\" != \"$magic\"; then - file=\"\$0\"" - - qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` - $ECHO "\ - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$1 -_LTECHO_EOF' -} - ECHO=\"$qECHO\" - fi - -# Very basic option parsing. These options are (a) specific to -# the libtool wrapper, (b) are identical between the wrapper -# /script/ and the wrapper /executable/ which is used only on -# windows platforms, and (c) all begin with the string "--lt-" -# (application programs are unlikely to have options which match -# this pattern). -# -# There are only two supported options: --lt-debug and -# --lt-dump-script. There is, deliberately, no --lt-help. -# -# The first argument to this parsing function should be the -# script's $0 value, followed by "$@". -lt_option_debug= -func_parse_lt_options () -{ - lt_script_arg0=\$0 - shift - for lt_opt - do - case \"\$lt_opt\" in - --lt-debug) lt_option_debug=1 ;; - --lt-dump-script) - lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` - test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. - lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` - cat \"\$lt_dump_D/\$lt_dump_F\" - exit 0 - ;; - --lt-*) - \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 - exit 1 - ;; - esac - done - - # Print the debug banner immediately: - if test -n \"\$lt_option_debug\"; then - echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 - fi -} - -# Used when --lt-debug. Prints its arguments to stdout -# (redirection is the responsibility of the caller) -func_lt_dump_args () -{ - lt_dump_args_N=1; - for lt_arg - do - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" - lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` - done -} - -# Core function for launching the target application -func_exec_program_core () -{ -" - case $host in - # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2* | *-cegcc*) - $ECHO "\ - if test -n \"\$lt_option_debug\"; then - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 - func_lt_dump_args \${1+\"\$@\"} 1>&2 - fi - exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -" - ;; - - *) - $ECHO "\ - if test -n \"\$lt_option_debug\"; then - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 - func_lt_dump_args \${1+\"\$@\"} 1>&2 - fi - exec \"\$progdir/\$program\" \${1+\"\$@\"} -" - ;; - esac - $ECHO "\ - \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 - exit 1 -} - -# A function to encapsulate launching the target application -# Strips options in the --lt-* namespace from \$@ and -# launches target application with the remaining arguments. -func_exec_program () -{ - case \" \$* \" in - *\\ --lt-*) - for lt_wr_arg - do - case \$lt_wr_arg in - --lt-*) ;; - *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; - esac - shift - done ;; - esac - func_exec_program_core \${1+\"\$@\"} -} - - # Parse options - func_parse_lt_options \"\$0\" \${1+\"\$@\"} - - # Find the directory that this script lives in. - thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` - test \"x\$thisdir\" = \"x\$file\" && thisdir=. - - # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` - while test -n \"\$file\"; do - destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` - - # If there was a directory component, then change thisdir. - if test \"x\$destdir\" != \"x\$file\"; then - case \"\$destdir\" in - [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; - *) thisdir=\"\$thisdir/\$destdir\" ;; - esac - fi - - file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` - done - - # Usually 'no', except on cygwin/mingw when embedded into - # the cwrapper. - WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 - if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then - # special case for '.' - if test \"\$thisdir\" = \".\"; then - thisdir=\`pwd\` - fi - # remove .libs from thisdir - case \"\$thisdir\" in - *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; - $objdir ) thisdir=. ;; - esac - fi - - # Try to get the absolute directory name. - absdir=\`cd \"\$thisdir\" && pwd\` - test -n \"\$absdir\" && thisdir=\"\$absdir\" -" - - if test "$fast_install" = yes; then - $ECHO "\ - program=lt-'$outputname'$exeext - progdir=\"\$thisdir/$objdir\" - - if test ! -f \"\$progdir/\$program\" || - { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ - test \"X\$file\" != \"X\$progdir/\$program\"; }; then - - file=\"\$\$-\$program\" - - if test ! -d \"\$progdir\"; then - $MKDIR \"\$progdir\" - else - $RM \"\$progdir/\$file\" - fi" - - $ECHO "\ - - # relink executable if necessary - if test -n \"\$relink_command\"; then - if relink_command_output=\`eval \$relink_command 2>&1\`; then : - else - $ECHO \"\$relink_command_output\" >&2 - $RM \"\$progdir/\$file\" - exit 1 - fi - fi - - $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || - { $RM \"\$progdir/\$program\"; - $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } - $RM \"\$progdir/\$file\" - fi" - else - $ECHO "\ - program='$outputname' - progdir=\"\$thisdir/$objdir\" -" - fi - - $ECHO "\ - - if test -f \"\$progdir/\$program\"; then" - - # fixup the dll searchpath if we need to. - # - # Fix the DLL searchpath if we need to. Do this before prepending - # to shlibpath, because on Windows, both are PATH and uninstalled - # libraries must come first. - if test -n "$dllsearchpath"; then - $ECHO "\ - # Add the dll search path components to the executable PATH - PATH=$dllsearchpath:\$PATH -" - fi - - # Export our shlibpath_var if we have one. - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $ECHO "\ - # Add our own library path to $shlibpath_var - $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" - - # Some systems cannot cope with colon-terminated $shlibpath_var - # The second colon is a workaround for a bug in BeOS R4 sed - $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` - - export $shlibpath_var -" - fi - - $ECHO "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. - func_exec_program \${1+\"\$@\"} - fi - else - # The program doesn't exist. - \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 - \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 - \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 - exit 1 - fi -fi\ -" -} - - -# func_emit_cwrapperexe_src -# emit the source code for a wrapper executable on stdout -# Must ONLY be called from within func_mode_link because -# it depends on a number of variable set therein. -func_emit_cwrapperexe_src () -{ - cat < -#include -#ifdef _MSC_VER -# include -# include -# include -#else -# include -# include -# ifdef __CYGWIN__ -# include -# endif -#endif -#include -#include -#include -#include -#include -#include -#include -#include - -/* declarations of non-ANSI functions */ -#if defined(__MINGW32__) -# ifdef __STRICT_ANSI__ -int _putenv (const char *); -# endif -#elif defined(__CYGWIN__) -# ifdef __STRICT_ANSI__ -char *realpath (const char *, char *); -int putenv (char *); -int setenv (const char *, const char *, int); -# endif -/* #elif defined (other platforms) ... */ -#endif - -/* portability defines, excluding path handling macros */ -#if defined(_MSC_VER) -# define setmode _setmode -# define stat _stat -# define chmod _chmod -# define getcwd _getcwd -# define putenv _putenv -# define S_IXUSR _S_IEXEC -# ifndef _INTPTR_T_DEFINED -# define _INTPTR_T_DEFINED -# define intptr_t int -# endif -#elif defined(__MINGW32__) -# define setmode _setmode -# define stat _stat -# define chmod _chmod -# define getcwd _getcwd -# define putenv _putenv -#elif defined(__CYGWIN__) -# define HAVE_SETENV -# define FOPEN_WB "wb" -/* #elif defined (other platforms) ... */ -#endif - -#if defined(PATH_MAX) -# define LT_PATHMAX PATH_MAX -#elif defined(MAXPATHLEN) -# define LT_PATHMAX MAXPATHLEN -#else -# define LT_PATHMAX 1024 -#endif - -#ifndef S_IXOTH -# define S_IXOTH 0 -#endif -#ifndef S_IXGRP -# define S_IXGRP 0 -#endif - -/* path handling portability macros */ -#ifndef DIR_SEPARATOR -# define DIR_SEPARATOR '/' -# define PATH_SEPARATOR ':' -#endif - -#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ - defined (__OS2__) -# define HAVE_DOS_BASED_FILE_SYSTEM -# define FOPEN_WB "wb" -# ifndef DIR_SEPARATOR_2 -# define DIR_SEPARATOR_2 '\\' -# endif -# ifndef PATH_SEPARATOR_2 -# define PATH_SEPARATOR_2 ';' -# endif -#endif - -#ifndef DIR_SEPARATOR_2 -# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) -#else /* DIR_SEPARATOR_2 */ -# define IS_DIR_SEPARATOR(ch) \ - (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) -#endif /* DIR_SEPARATOR_2 */ - -#ifndef PATH_SEPARATOR_2 -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) -#else /* PATH_SEPARATOR_2 */ -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) -#endif /* PATH_SEPARATOR_2 */ - -#ifndef FOPEN_WB -# define FOPEN_WB "w" -#endif -#ifndef _O_BINARY -# define _O_BINARY 0 -#endif - -#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) -#define XFREE(stale) do { \ - if (stale) { free ((void *) stale); stale = 0; } \ -} while (0) - -#if defined(LT_DEBUGWRAPPER) -static int lt_debug = 1; -#else -static int lt_debug = 0; -#endif - -const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ - -void *xmalloc (size_t num); -char *xstrdup (const char *string); -const char *base_name (const char *name); -char *find_executable (const char *wrapper); -char *chase_symlinks (const char *pathspec); -int make_executable (const char *path); -int check_executable (const char *path); -char *strendzap (char *str, const char *pat); -void lt_debugprintf (const char *file, int line, const char *fmt, ...); -void lt_fatal (const char *file, int line, const char *message, ...); -static const char *nonnull (const char *s); -static const char *nonempty (const char *s); -void lt_setenv (const char *name, const char *value); -char *lt_extend_str (const char *orig_value, const char *add, int to_end); -void lt_update_exe_path (const char *name, const char *value); -void lt_update_lib_path (const char *name, const char *value); -char **prepare_spawn (char **argv); -void lt_dump_script (FILE *f); -EOF - - cat <= 0) - && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) - return 1; - else - return 0; -} - -int -make_executable (const char *path) -{ - int rval = 0; - struct stat st; - - lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", - nonempty (path)); - if ((!path) || (!*path)) - return 0; - - if (stat (path, &st) >= 0) - { - rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); - } - return rval; -} - -/* Searches for the full path of the wrapper. Returns - newly allocated full path name if found, NULL otherwise - Does not chase symlinks, even on platforms that support them. -*/ -char * -find_executable (const char *wrapper) -{ - int has_slash = 0; - const char *p; - const char *p_next; - /* static buffer for getcwd */ - char tmp[LT_PATHMAX + 1]; - int tmp_len; - char *concat_name; - - lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", - nonempty (wrapper)); - - if ((wrapper == NULL) || (*wrapper == '\0')) - return NULL; - - /* Absolute path? */ -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') - { - concat_name = xstrdup (wrapper); - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } - else - { -#endif - if (IS_DIR_SEPARATOR (wrapper[0])) - { - concat_name = xstrdup (wrapper); - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - } -#endif - - for (p = wrapper; *p; p++) - if (*p == '/') - { - has_slash = 1; - break; - } - if (!has_slash) - { - /* no slashes; search PATH */ - const char *path = getenv ("PATH"); - if (path != NULL) - { - for (p = path; *p; p = p_next) - { - const char *q; - size_t p_len; - for (q = p; *q; q++) - if (IS_PATH_SEPARATOR (*q)) - break; - p_len = q - p; - p_next = (*q == '\0' ? q : q + 1); - if (p_len == 0) - { - /* empty path: current directory */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", - nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = - XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - } - else - { - concat_name = - XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, p, p_len); - concat_name[p_len] = '/'; - strcpy (concat_name + p_len + 1, wrapper); - } - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } - } - /* not found in PATH; assume curdir */ - } - /* Relative path | not found in path: prepend cwd */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", - nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - return NULL; -} - -char * -chase_symlinks (const char *pathspec) -{ -#ifndef S_ISLNK - return xstrdup (pathspec); -#else - char buf[LT_PATHMAX]; - struct stat s; - char *tmp_pathspec = xstrdup (pathspec); - char *p; - int has_symlinks = 0; - while (strlen (tmp_pathspec) && !has_symlinks) - { - lt_debugprintf (__FILE__, __LINE__, - "checking path component for symlinks: %s\n", - tmp_pathspec); - if (lstat (tmp_pathspec, &s) == 0) - { - if (S_ISLNK (s.st_mode) != 0) - { - has_symlinks = 1; - break; - } - - /* search backwards for last DIR_SEPARATOR */ - p = tmp_pathspec + strlen (tmp_pathspec) - 1; - while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) - p--; - if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) - { - /* no more DIR_SEPARATORS left */ - break; - } - *p = '\0'; - } - else - { - lt_fatal (__FILE__, __LINE__, - "error accessing file \"%s\": %s", - tmp_pathspec, nonnull (strerror (errno))); - } - } - XFREE (tmp_pathspec); - - if (!has_symlinks) - { - return xstrdup (pathspec); - } - - tmp_pathspec = realpath (pathspec, buf); - if (tmp_pathspec == 0) - { - lt_fatal (__FILE__, __LINE__, - "could not follow symlinks for %s", pathspec); - } - return xstrdup (tmp_pathspec); -#endif -} - -char * -strendzap (char *str, const char *pat) -{ - size_t len, patlen; - - assert (str != NULL); - assert (pat != NULL); - - len = strlen (str); - patlen = strlen (pat); - - if (patlen <= len) - { - str += len - patlen; - if (strcmp (str, pat) == 0) - *str = '\0'; - } - return str; -} - -void -lt_debugprintf (const char *file, int line, const char *fmt, ...) -{ - va_list args; - if (lt_debug) - { - (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); - va_start (args, fmt); - (void) vfprintf (stderr, fmt, args); - va_end (args); - } -} - -static void -lt_error_core (int exit_status, const char *file, - int line, const char *mode, - const char *message, va_list ap) -{ - fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); - vfprintf (stderr, message, ap); - fprintf (stderr, ".\n"); - - if (exit_status >= 0) - exit (exit_status); -} - -void -lt_fatal (const char *file, int line, const char *message, ...) -{ - va_list ap; - va_start (ap, message); - lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); - va_end (ap); -} - -static const char * -nonnull (const char *s) -{ - return s ? s : "(null)"; -} - -static const char * -nonempty (const char *s) -{ - return (s && !*s) ? "(empty)" : nonnull (s); -} - -void -lt_setenv (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_setenv) setting '%s' to '%s'\n", - nonnull (name), nonnull (value)); - { -#ifdef HAVE_SETENV - /* always make a copy, for consistency with !HAVE_SETENV */ - char *str = xstrdup (value); - setenv (name, str, 1); -#else - int len = strlen (name) + 1 + strlen (value) + 1; - char *str = XMALLOC (char, len); - sprintf (str, "%s=%s", name, value); - if (putenv (str) != EXIT_SUCCESS) - { - XFREE (str); - } -#endif - } -} - -char * -lt_extend_str (const char *orig_value, const char *add, int to_end) -{ - char *new_value; - if (orig_value && *orig_value) - { - int orig_value_len = strlen (orig_value); - int add_len = strlen (add); - new_value = XMALLOC (char, add_len + orig_value_len + 1); - if (to_end) - { - strcpy (new_value, orig_value); - strcpy (new_value + orig_value_len, add); - } - else - { - strcpy (new_value, add); - strcpy (new_value + add_len, orig_value); - } - } - else - { - new_value = xstrdup (add); - } - return new_value; -} - -void -lt_update_exe_path (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", - nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { - char *new_value = lt_extend_str (getenv (name), value, 0); - /* some systems can't cope with a ':'-terminated path #' */ - int len = strlen (new_value); - while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) - { - new_value[len-1] = '\0'; - } - lt_setenv (name, new_value); - XFREE (new_value); - } -} - -void -lt_update_lib_path (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", - nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { - char *new_value = lt_extend_str (getenv (name), value, 0); - lt_setenv (name, new_value); - XFREE (new_value); - } -} - -EOF - case $host_os in - mingw*) - cat <<"EOF" - -/* Prepares an argument vector before calling spawn(). - Note that spawn() does not by itself call the command interpreter - (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : - ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&v); - v.dwPlatformId == VER_PLATFORM_WIN32_NT; - }) ? "cmd.exe" : "command.com"). - Instead it simply concatenates the arguments, separated by ' ', and calls - CreateProcess(). We must quote the arguments since Win32 CreateProcess() - interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a - special way: - - Space and tab are interpreted as delimiters. They are not treated as - delimiters if they are surrounded by double quotes: "...". - - Unescaped double quotes are removed from the input. Their only effect is - that within double quotes, space and tab are treated like normal - characters. - - Backslashes not followed by double quotes are not special. - - But 2*n+1 backslashes followed by a double quote become - n backslashes followed by a double quote (n >= 0): - \" -> " - \\\" -> \" - \\\\\" -> \\" - */ -#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" -#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" -char ** -prepare_spawn (char **argv) -{ - size_t argc; - char **new_argv; - size_t i; - - /* Count number of arguments. */ - for (argc = 0; argv[argc] != NULL; argc++) - ; - - /* Allocate new argument vector. */ - new_argv = XMALLOC (char *, argc + 1); - - /* Put quoted arguments into the new argument vector. */ - for (i = 0; i < argc; i++) - { - const char *string = argv[i]; - - if (string[0] == '\0') - new_argv[i] = xstrdup ("\"\""); - else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) - { - int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); - size_t length; - unsigned int backslashes; - const char *s; - char *quoted_string; - char *p; - - length = 0; - backslashes = 0; - if (quote_around) - length++; - for (s = string; *s != '\0'; s++) - { - char c = *s; - if (c == '"') - length += backslashes + 1; - length++; - if (c == '\\') - backslashes++; - else - backslashes = 0; - } - if (quote_around) - length += backslashes + 1; - - quoted_string = XMALLOC (char, length + 1); - - p = quoted_string; - backslashes = 0; - if (quote_around) - *p++ = '"'; - for (s = string; *s != '\0'; s++) - { - char c = *s; - if (c == '"') - { - unsigned int j; - for (j = backslashes + 1; j > 0; j--) - *p++ = '\\'; - } - *p++ = c; - if (c == '\\') - backslashes++; - else - backslashes = 0; - } - if (quote_around) - { - unsigned int j; - for (j = backslashes; j > 0; j--) - *p++ = '\\'; - *p++ = '"'; - } - *p = '\0'; - - new_argv[i] = quoted_string; - } - else - new_argv[i] = (char *) string; - } - new_argv[argc] = NULL; - - return new_argv; -} -EOF - ;; - esac - - cat <<"EOF" -void lt_dump_script (FILE* f) -{ -EOF - func_emit_wrapper yes | - $SED -n -e ' -s/^\(.\{79\}\)\(..*\)/\1\ -\2/ -h -s/\([\\"]\)/\\\1/g -s/$/\\n/ -s/\([^\n]*\).*/ fputs ("\1", f);/p -g -D' - cat <<"EOF" -} -EOF -} -# end: func_emit_cwrapperexe_src - -# func_win32_import_lib_p ARG -# True if ARG is an import lib, as indicated by $file_magic_cmd -func_win32_import_lib_p () -{ - $opt_debug - case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in - *import*) : ;; - *) false ;; - esac -} - -# func_mode_link arg... -func_mode_link () -{ - $opt_debug - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - # It is impossible to link a dll without this setting, and - # we shouldn't force the makefile maintainer to figure out - # which system we are compiling for in order to pass an extra - # flag for every libtool invocation. - # allow_undefined=no - - # FIXME: Unfortunately, there are problems with the above when trying - # to make a dll which has undefined symbols, in which case not - # even a static library is built. For now, we need to specify - # -no-undefined on the libtool link line when we can be certain - # that all symbols are satisfied, otherwise we get a static library. - allow_undefined=yes - ;; - *) - allow_undefined=yes - ;; - esac - libtool_args=$nonopt - base_compile="$nonopt $@" - compile_command=$nonopt - finalize_command=$nonopt - - compile_rpath= - finalize_rpath= - compile_shlibpath= - finalize_shlibpath= - convenience= - old_convenience= - deplibs= - old_deplibs= - compiler_flags= - linker_flags= - dllsearchpath= - lib_search_path=`pwd` - inst_prefix_dir= - new_inherited_linker_flags= - - avoid_version=no - bindir= - dlfiles= - dlprefiles= - dlself=no - export_dynamic=no - export_symbols= - export_symbols_regex= - generated= - libobjs= - ltlibs= - module=no - no_install=no - objs= - non_pic_objects= - precious_files_regex= - prefer_static_libs=no - preload=no - prev= - prevarg= - release= - rpath= - xrpath= - perm_rpath= - temp_rpath= - thread_safe=no - vinfo= - vinfo_number=no - weak_libs= - single_module="${wl}-single_module" - func_infer_tag $base_compile - - # We need to know -static, to get the right output filenames. - for arg - do - case $arg in - -shared) - test "$build_libtool_libs" != yes && \ - func_fatal_configuration "can not build a shared library" - build_old_libs=no - break - ;; - -all-static | -static | -static-libtool-libs) - case $arg in - -all-static) - if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then - func_warning "complete static linking is impossible in this configuration" - fi - if test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - -static) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=built - ;; - -static-libtool-libs) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - esac - build_libtool_libs=no - build_old_libs=yes - break - ;; - esac - done - - # See if our shared archives depend on static archives. - test -n "$old_archive_from_new_cmds" && build_old_libs=yes - - # Go through the arguments, transforming them on the way. - while test "$#" -gt 0; do - arg="$1" - shift - func_quote_for_eval "$arg" - qarg=$func_quote_for_eval_unquoted_result - func_append libtool_args " $func_quote_for_eval_result" - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - output) - func_append compile_command " @OUTPUT@" - func_append finalize_command " @OUTPUT@" - ;; - esac - - case $prev in - bindir) - bindir="$arg" - prev= - continue - ;; - dlfiles|dlprefiles) - if test "$preload" = no; then - # Add the symbol object into the linking commands. - func_append compile_command " @SYMFILE@" - func_append finalize_command " @SYMFILE@" - preload=yes - fi - case $arg in - *.la | *.lo) ;; # We handle these cases below. - force) - if test "$dlself" = no; then - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - self) - if test "$prev" = dlprefiles; then - dlself=yes - elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then - dlself=yes - else - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - *) - if test "$prev" = dlfiles; then - func_append dlfiles " $arg" - else - func_append dlprefiles " $arg" - fi - prev= - continue - ;; - esac - ;; - expsyms) - export_symbols="$arg" - test -f "$arg" \ - || func_fatal_error "symbol file \`$arg' does not exist" - prev= - continue - ;; - expsyms_regex) - export_symbols_regex="$arg" - prev= - continue - ;; - framework) - case $host in - *-*-darwin*) - case "$deplibs " in - *" $qarg.ltframework "*) ;; - *) func_append deplibs " $qarg.ltframework" # this is fixed later - ;; - esac - ;; - esac - prev= - continue - ;; - inst_prefix) - inst_prefix_dir="$arg" - prev= - continue - ;; - objectlist) - if test -f "$arg"; then - save_arg=$arg - moreargs= - for fil in `cat "$save_arg"` - do -# func_append moreargs " $fil" - arg=$fil - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if func_lalib_unsafe_p "$arg"; then - pic_object= - non_pic_object= - - # Read the .lo file - func_source "$arg" - - if test -z "$pic_object" || - test -z "$non_pic_object" || - test "$pic_object" = none && - test "$non_pic_object" = none; then - func_fatal_error "cannot find name of object for \`$arg'" - fi - - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - func_append dlfiles " $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. - func_append dlprefiles " $pic_object" - prev= - fi - - # A PIC object. - func_append libobjs " $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" - func_append non_pic_objects " $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if $opt_dry_run; then - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - func_lo2o "$arg" - pic_object=$xdir$objdir/$func_lo2o_result - non_pic_object=$xdir$func_lo2o_result - func_append libobjs " $pic_object" - func_append non_pic_objects " $non_pic_object" - else - func_fatal_error "\`$arg' is not a valid libtool object" - fi - fi - done - else - func_fatal_error "link input file \`$arg' does not exist" - fi - arg=$save_arg - prev= - continue - ;; - precious_regex) - precious_files_regex="$arg" - prev= - continue - ;; - release) - release="-$arg" - prev= - continue - ;; - rpath | xrpath) - # We need an absolute path. - case $arg in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - func_fatal_error "only absolute run-paths are allowed" - ;; - esac - if test "$prev" = rpath; then - case "$rpath " in - *" $arg "*) ;; - *) func_append rpath " $arg" ;; - esac - else - case "$xrpath " in - *" $arg "*) ;; - *) func_append xrpath " $arg" ;; - esac - fi - prev= - continue - ;; - shrext) - shrext_cmds="$arg" - prev= - continue - ;; - weak) - func_append weak_libs " $arg" - prev= - continue - ;; - xcclinker) - func_append linker_flags " $qarg" - func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xcompiler) - func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xlinker) - func_append linker_flags " $qarg" - func_append compiler_flags " $wl$qarg" - prev= - func_append compile_command " $wl$qarg" - func_append finalize_command " $wl$qarg" - continue - ;; - *) - eval "$prev=\"\$arg\"" - prev= - continue - ;; - esac - fi # test -n "$prev" - - prevarg="$arg" - - case $arg in - -all-static) - if test -n "$link_static_flag"; then - # See comment for -static flag below, for more details. - func_append compile_command " $link_static_flag" - func_append finalize_command " $link_static_flag" - fi - continue - ;; - - -allow-undefined) - # FIXME: remove this flag sometime in the future. - func_fatal_error "\`-allow-undefined' must not be used because it is the default" - ;; - - -avoid-version) - avoid_version=yes - continue - ;; - - -bindir) - prev=bindir - continue - ;; - - -dlopen) - prev=dlfiles - continue - ;; - - -dlpreopen) - prev=dlprefiles - continue - ;; - - -export-dynamic) - export_dynamic=yes - continue - ;; - - -export-symbols | -export-symbols-regex) - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - func_fatal_error "more than one -exported-symbols argument is not allowed" - fi - if test "X$arg" = "X-export-symbols"; then - prev=expsyms - else - prev=expsyms_regex - fi - continue - ;; - - -framework) - prev=framework - continue - ;; - - -inst-prefix-dir) - prev=inst_prefix - continue - ;; - - # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* - # so, if we see these flags be careful not to treat them like -L - -L[A-Z][A-Z]*:*) - case $with_gcc/$host in - no/*-*-irix* | /*-*-irix*) - func_append compile_command " $arg" - func_append finalize_command " $arg" - ;; - esac - continue - ;; - - -L*) - func_stripname "-L" '' "$arg" - if test -z "$func_stripname_result"; then - if test "$#" -gt 0; then - func_fatal_error "require no space between \`-L' and \`$1'" - else - func_fatal_error "need path for \`-L' option" - fi - fi - func_resolve_sysroot "$func_stripname_result" - dir=$func_resolve_sysroot_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - absdir=`cd "$dir" && pwd` - test -z "$absdir" && \ - func_fatal_error "cannot determine absolute directory name of \`$dir'" - dir="$absdir" - ;; - esac - case "$deplibs " in - *" -L$dir "* | *" $arg "*) - # Will only happen for absolute or sysroot arguments - ;; - *) - # Preserve sysroot, but never include relative directories - case $dir in - [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; - *) func_append deplibs " -L$dir" ;; - esac - func_append lib_search_path " $dir" - ;; - esac - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$dir:"*) ;; - ::) dllsearchpath=$dir;; - *) func_append dllsearchpath ":$dir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; - *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac - continue - ;; - - -l*) - if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) - # These systems don't actually have a C or math library (as such) - continue - ;; - *-*-os2*) - # These systems don't actually have a C library (as such) - test "X$arg" = "X-lc" && continue - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc due to us having libc/libc_r. - test "X$arg" = "X-lc" && continue - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C and math libraries are in the System framework - func_append deplibs " System.ltframework" - continue - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - test "X$arg" = "X-lc" && continue - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - test "X$arg" = "X-lc" && continue - ;; - esac - elif test "X$arg" = "X-lc_r"; then - case $host in - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc_r directly, use -pthread flag. - continue - ;; - esac - fi - func_append deplibs " $arg" - continue - ;; - - -module) - module=yes - continue - ;; - - # Tru64 UNIX uses -model [arg] to determine the layout of C++ - # classes, name mangling, and exception handling. - # Darwin uses the -arch flag to determine output architecture. - -model|-arch|-isysroot|--sysroot) - func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - prev=xcompiler - continue - ;; - - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ - |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) - func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - case "$new_inherited_linker_flags " in - *" $arg "*) ;; - * ) func_append new_inherited_linker_flags " $arg" ;; - esac - continue - ;; - - -multi_module) - single_module="${wl}-multi_module" - continue - ;; - - -no-fast-install) - fast_install=no - continue - ;; - - -no-install) - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) - # The PATH hackery in wrapper scripts is required on Windows - # and Darwin in order for the loader to find any dlls it needs. - func_warning "\`-no-install' is ignored for $host" - func_warning "assuming \`-no-fast-install' instead" - fast_install=no - ;; - *) no_install=yes ;; - esac - continue - ;; - - -no-undefined) - allow_undefined=no - continue - ;; - - -objectlist) - prev=objectlist - continue - ;; - - -o) prev=output ;; - - -precious-files-regex) - prev=precious_regex - continue - ;; - - -release) - prev=release - continue - ;; - - -rpath) - prev=rpath - continue - ;; - - -R) - prev=xrpath - continue - ;; - - -R*) - func_stripname '-R' '' "$arg" - dir=$func_stripname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - =*) - func_stripname '=' '' "$dir" - dir=$lt_sysroot$func_stripname_result - ;; - *) - func_fatal_error "only absolute run-paths are allowed" - ;; - esac - case "$xrpath " in - *" $dir "*) ;; - *) func_append xrpath " $dir" ;; - esac - continue - ;; - - -shared) - # The effects of -shared are defined in a previous loop. - continue - ;; - - -shrext) - prev=shrext - continue - ;; - - -static | -static-libtool-libs) - # The effects of -static are defined in a previous loop. - # We used to do the same as -all-static on platforms that - # didn't have a PIC flag, but the assumption that the effects - # would be equivalent was wrong. It would break on at least - # Digital Unix and AIX. - continue - ;; - - -thread-safe) - thread_safe=yes - continue - ;; - - -version-info) - prev=vinfo - continue - ;; - - -version-number) - prev=vinfo - vinfo_number=yes - continue - ;; - - -weak) - prev=weak - continue - ;; - - -Wc,*) - func_stripname '-Wc,' '' "$arg" - args=$func_stripname_result - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - func_quote_for_eval "$flag" - func_append arg " $func_quote_for_eval_result" - func_append compiler_flags " $func_quote_for_eval_result" - done - IFS="$save_ifs" - func_stripname ' ' '' "$arg" - arg=$func_stripname_result - ;; - - -Wl,*) - func_stripname '-Wl,' '' "$arg" - args=$func_stripname_result - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - func_quote_for_eval "$flag" - func_append arg " $wl$func_quote_for_eval_result" - func_append compiler_flags " $wl$func_quote_for_eval_result" - func_append linker_flags " $func_quote_for_eval_result" - done - IFS="$save_ifs" - func_stripname ' ' '' "$arg" - arg=$func_stripname_result - ;; - - -Xcompiler) - prev=xcompiler - continue - ;; - - -Xlinker) - prev=xlinker - continue - ;; - - -XCClinker) - prev=xcclinker - continue - ;; - - # -msg_* for osf cc - -msg_*) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - ;; - - # Flags to be passed through unchanged, with rationale: - # -64, -mips[0-9] enable 64-bit mode for the SGI compiler - # -r[0-9][0-9]* specify processor for the SGI compiler - # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler - # +DA*, +DD* enable 64-bit mode for the HP compiler - # -q* compiler args for the IBM compiler - # -m*, -t[45]*, -txscale* architecture-specific flags for GCC - # -F/path path to uninstalled frameworks, gcc on darwin - # -p, -pg, --coverage, -fprofile-* profiling flags for GCC - # @file GCC response files - # -tp=* Portland pgcc target processor selection - # --sysroot=* for sysroot support - # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization - -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ - -O*|-flto*|-fwhopr*|-fuse-linker-plugin) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - func_append compile_command " $arg" - func_append finalize_command " $arg" - func_append compiler_flags " $arg" - continue - ;; - - # Some other compiler flag. - -* | +*) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - ;; - - *.$objext) - # A standard object. - func_append objs " $arg" - ;; - - *.lo) - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if func_lalib_unsafe_p "$arg"; then - pic_object= - non_pic_object= - - # Read the .lo file - func_source "$arg" - - if test -z "$pic_object" || - test -z "$non_pic_object" || - test "$pic_object" = none && - test "$non_pic_object" = none; then - func_fatal_error "cannot find name of object for \`$arg'" - fi - - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - func_append dlfiles " $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. - func_append dlprefiles " $pic_object" - prev= - fi - - # A PIC object. - func_append libobjs " $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" - func_append non_pic_objects " $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if $opt_dry_run; then - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - func_lo2o "$arg" - pic_object=$xdir$objdir/$func_lo2o_result - non_pic_object=$xdir$func_lo2o_result - func_append libobjs " $pic_object" - func_append non_pic_objects " $non_pic_object" - else - func_fatal_error "\`$arg' is not a valid libtool object" - fi - fi - ;; - - *.$libext) - # An archive. - func_append deplibs " $arg" - func_append old_deplibs " $arg" - continue - ;; - - *.la) - # A libtool-controlled library. - - func_resolve_sysroot "$arg" - if test "$prev" = dlfiles; then - # This library was specified with -dlopen. - func_append dlfiles " $func_resolve_sysroot_result" - prev= - elif test "$prev" = dlprefiles; then - # The library was specified with -dlpreopen. - func_append dlprefiles " $func_resolve_sysroot_result" - prev= - else - func_append deplibs " $func_resolve_sysroot_result" - fi - continue - ;; - - # Some other compiler argument. - *) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - ;; - esac # arg - - # Now actually substitute the argument into the commands. - if test -n "$arg"; then - func_append compile_command " $arg" - func_append finalize_command " $arg" - fi - done # argument parsing loop - - test -n "$prev" && \ - func_fatal_help "the \`$prevarg' option requires an argument" - - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then - eval arg=\"$export_dynamic_flag_spec\" - func_append compile_command " $arg" - func_append finalize_command " $arg" - fi - - oldlibs= - # calculate the name of the file, without its directory - func_basename "$output" - outputname="$func_basename_result" - libobjs_save="$libobjs" - - if test -n "$shlibpath_var"; then - # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` - else - shlib_search_path= - fi - eval sys_lib_search_path=\"$sys_lib_search_path_spec\" - eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" - - func_dirname "$output" "/" "" - output_objdir="$func_dirname_result$objdir" - func_to_tool_file "$output_objdir/" - tool_output_objdir=$func_to_tool_file_result - # Create the object directory. - func_mkdir_p "$output_objdir" - - # Determine the type of output - case $output in - "") - func_fatal_help "you must specify an output file" - ;; - *.$libext) linkmode=oldlib ;; - *.lo | *.$objext) linkmode=obj ;; - *.la) linkmode=lib ;; - *) linkmode=prog ;; # Anything else should be a program. - esac - - specialdeplibs= - - libs= - # Find all interdependent deplibs by searching for libraries - # that are linked more than once (e.g. -la -lb -la) - for deplib in $deplibs; do - if $opt_preserve_dup_deps ; then - case "$libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append libs " $deplib" - done - - if test "$linkmode" = lib; then - libs="$predeps $libs $compiler_lib_search_path $postdeps" - - # Compute libraries that are listed more than once in $predeps - # $postdeps and mark them as special (i.e., whose duplicates are - # not to be eliminated). - pre_post_deps= - if $opt_duplicate_compiler_generated_deps; then - for pre_post_dep in $predeps $postdeps; do - case "$pre_post_deps " in - *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; - esac - func_append pre_post_deps " $pre_post_dep" - done - fi - pre_post_deps= - fi - - deplibs= - newdependency_libs= - newlib_search_path= - need_relink=no # whether we're linking any uninstalled libtool libraries - notinst_deplibs= # not-installed libtool libraries - notinst_path= # paths that contain not-installed libtool libraries - - case $linkmode in - lib) - passes="conv dlpreopen link" - for file in $dlfiles $dlprefiles; do - case $file in - *.la) ;; - *) - func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" - ;; - esac - done - ;; - prog) - compile_deplibs= - finalize_deplibs= - alldeplibs=no - newdlfiles= - newdlprefiles= - passes="conv scan dlopen dlpreopen link" - ;; - *) passes="conv" - ;; - esac - - for pass in $passes; do - # The preopen pass in lib mode reverses $deplibs; put it back here - # so that -L comes before libs that need it for instance... - if test "$linkmode,$pass" = "lib,link"; then - ## FIXME: Find the place where the list is rebuilt in the wrong - ## order, and fix it there properly - tmp_deplibs= - for deplib in $deplibs; do - tmp_deplibs="$deplib $tmp_deplibs" - done - deplibs="$tmp_deplibs" - fi - - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan"; then - libs="$deplibs" - deplibs= - fi - if test "$linkmode" = prog; then - case $pass in - dlopen) libs="$dlfiles" ;; - dlpreopen) libs="$dlprefiles" ;; - link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; - esac - fi - if test "$linkmode,$pass" = "lib,dlpreopen"; then - # Collect and forward deplibs of preopened libtool libs - for lib in $dlprefiles; do - # Ignore non-libtool-libs - dependency_libs= - func_resolve_sysroot "$lib" - case $lib in - *.la) func_source "$func_resolve_sysroot_result" ;; - esac - - # Collect preopened libtool deplibs, except any this library - # has declared as weak libs - for deplib in $dependency_libs; do - func_basename "$deplib" - deplib_base=$func_basename_result - case " $weak_libs " in - *" $deplib_base "*) ;; - *) func_append deplibs " $deplib" ;; - esac - done - done - libs="$dlprefiles" - fi - if test "$pass" = dlopen; then - # Collect dlpreopened libraries - save_deplibs="$deplibs" - deplibs= - fi - - for deplib in $libs; do - lib= - found=no - case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ - |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - func_append compiler_flags " $deplib" - if test "$linkmode" = lib ; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; - * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi - continue - ;; - -l*) - if test "$linkmode" != lib && test "$linkmode" != prog; then - func_warning "\`-l' is ignored for archives/objects" - continue - fi - func_stripname '-l' '' "$deplib" - name=$func_stripname_result - if test "$linkmode" = lib; then - searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" - else - searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" - fi - for searchdir in $searchdirs; do - for search_ext in .la $std_shrext .so .a; do - # Search the libtool library - lib="$searchdir/lib${name}${search_ext}" - if test -f "$lib"; then - if test "$search_ext" = ".la"; then - found=yes - else - found=no - fi - break 2 - fi - done - done - if test "$found" != yes; then - # deplib doesn't seem to be a libtool library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - else # deplib is a libtool library - # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, - # We need to do some special things here, and not later. - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $deplib "*) - if func_lalib_p "$lib"; then - library_names= - old_library= - func_source "$lib" - for l in $old_library $library_names; do - ll="$l" - done - if test "X$ll" = "X$old_library" ; then # only static version available - found=no - func_dirname "$lib" "" "." - ladir="$func_dirname_result" - lib=$ladir/$old_library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - fi - fi - ;; - *) ;; - esac - fi - fi - ;; # -l - *.ltframework) - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - if test "$linkmode" = lib ; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; - * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi - continue - ;; - -L*) - case $linkmode in - lib) - deplibs="$deplib $deplibs" - test "$pass" = conv && continue - newdependency_libs="$deplib $newdependency_libs" - func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - prog) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - if test "$pass" = scan; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - *) - func_warning "\`-L' is ignored for archives/objects" - ;; - esac # linkmode - continue - ;; # -L - -R*) - if test "$pass" = link; then - func_stripname '-R' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - dir=$func_resolve_sysroot_result - # Make sure the xrpath contains only unique directories. - case "$xrpath " in - *" $dir "*) ;; - *) func_append xrpath " $dir" ;; - esac - fi - deplibs="$deplib $deplibs" - continue - ;; - *.la) - func_resolve_sysroot "$deplib" - lib=$func_resolve_sysroot_result - ;; - *.$libext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - case $linkmode in - lib) - # Linking convenience modules into shared libraries is allowed, - # but linking other static libraries is non-portable. - case " $dlpreconveniencelibs " in - *" $deplib "*) ;; - *) - valid_a_lib=no - case $deplibs_check_method in - match_pattern*) - set dummy $deplibs_check_method; shift - match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ - | $EGREP "$match_pattern_regex" > /dev/null; then - valid_a_lib=yes - fi - ;; - pass_all) - valid_a_lib=yes - ;; - esac - if test "$valid_a_lib" != yes; then - echo - $ECHO "*** Warning: Trying to link with static lib archive $deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because the file extensions .$libext of this argument makes me believe" - echo "*** that it is just a static archive that I should not use here." - else - echo - $ECHO "*** Warning: Linking the shared library $output against the" - $ECHO "*** static library $deplib is not portable!" - deplibs="$deplib $deplibs" - fi - ;; - esac - continue - ;; - prog) - if test "$pass" != link; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - continue - ;; - esac # linkmode - ;; # *.$libext - *.lo | *.$objext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - elif test "$linkmode" = prog; then - if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlopen support or we're linking statically, - # we need to preload. - func_append newdlprefiles " $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - func_append newdlfiles " $deplib" - fi - fi - continue - ;; - %DEPLIBS%) - alldeplibs=yes - continue - ;; - esac # case $deplib - - if test "$found" = yes || test -f "$lib"; then : - else - func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" - fi - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$lib" \ - || func_fatal_error "\`$lib' is not a valid libtool archive" - - func_dirname "$lib" "" "." - ladir="$func_dirname_result" - - dlname= - dlopen= - dlpreopen= - libdir= - library_names= - old_library= - inherited_linker_flags= - # If the library was installed with an old release of libtool, - # it will not redefine variables installed, or shouldnotlink - installed=yes - shouldnotlink=no - avoidtemprpath= - - - # Read the .la file - func_source "$lib" - - # Convert "-framework foo" to "foo.ltframework" - if test -n "$inherited_linker_flags"; then - tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` - for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do - case " $new_inherited_linker_flags " in - *" $tmp_inherited_linker_flag "*) ;; - *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; - esac - done - fi - dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" != prog && test "$linkmode" != lib; }; then - test -n "$dlopen" && func_append dlfiles " $dlopen" - test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" - fi - - if test "$pass" = conv; then - # Only check for convenience libraries - deplibs="$lib $deplibs" - if test -z "$libdir"; then - if test -z "$old_library"; then - func_fatal_error "cannot find name of link library for \`$lib'" - fi - # It is a libtool convenience library, so add in its objects. - func_append convenience " $ladir/$objdir/$old_library" - func_append old_convenience " $ladir/$objdir/$old_library" - elif test "$linkmode" != prog && test "$linkmode" != lib; then - func_fatal_error "\`$lib' is not a convenience library" - fi - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done - continue - fi # $pass = conv - - - # Get the name of the library we link against. - linklib= - if test -n "$old_library" && - { test "$prefer_static_libs" = yes || - test "$prefer_static_libs,$installed" = "built,no"; }; then - linklib=$old_library - else - for l in $old_library $library_names; do - linklib="$l" - done - fi - if test -z "$linklib"; then - func_fatal_error "cannot find name of link library for \`$lib'" - fi - - # This library was specified with -dlopen. - if test "$pass" = dlopen; then - if test -z "$libdir"; then - func_fatal_error "cannot -dlopen a convenience library: \`$lib'" - fi - if test -z "$dlname" || - test "$dlopen_support" != yes || - test "$build_libtool_libs" = no; then - # If there is no dlname, no dlopen support or we're linking - # statically, we need to preload. We also need to preload any - # dependent libraries so libltdl's deplib preloader doesn't - # bomb out in the load deplibs phase. - func_append dlprefiles " $lib $dependency_libs" - else - func_append newdlfiles " $lib" - fi - continue - fi # $pass = dlopen - - # We need an absolute path. - case $ladir in - [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; - *) - abs_ladir=`cd "$ladir" && pwd` - if test -z "$abs_ladir"; then - func_warning "cannot determine absolute directory name of \`$ladir'" - func_warning "passing it literally to the linker, although it might fail" - abs_ladir="$ladir" - fi - ;; - esac - func_basename "$lib" - laname="$func_basename_result" - - # Find the relevant object directory and library name. - if test "X$installed" = Xyes; then - if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - func_warning "library \`$lib' was moved." - dir="$ladir" - absdir="$abs_ladir" - libdir="$abs_ladir" - else - dir="$lt_sysroot$libdir" - absdir="$lt_sysroot$libdir" - fi - test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes - else - if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then - dir="$ladir" - absdir="$abs_ladir" - # Remove this search path later - func_append notinst_path " $abs_ladir" - else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later - func_append notinst_path " $abs_ladir" - fi - fi # $installed = yes - func_stripname 'lib' '.la' "$laname" - name=$func_stripname_result - - # This library was specified with -dlpreopen. - if test "$pass" = dlpreopen; then - if test -z "$libdir" && test "$linkmode" = prog; then - func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" - fi - case "$host" in - # special handling for platforms with PE-DLLs. - *cygwin* | *mingw* | *cegcc* ) - # Linker will automatically link against shared library if both - # static and shared are present. Therefore, ensure we extract - # symbols from the import library if a shared library is present - # (otherwise, the dlopen module name will be incorrect). We do - # this by putting the import library name into $newdlprefiles. - # We recover the dlopen module name by 'saving' the la file - # name in a special purpose variable, and (later) extracting the - # dlname from the la file. - if test -n "$dlname"; then - func_tr_sh "$dir/$linklib" - eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" - func_append newdlprefiles " $dir/$linklib" - else - func_append newdlprefiles " $dir/$old_library" - # Keep a list of preopened convenience libraries to check - # that they are being used correctly in the link pass. - test -z "$libdir" && \ - func_append dlpreconveniencelibs " $dir/$old_library" - fi - ;; - * ) - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - func_append newdlprefiles " $dir/$old_library" - # Keep a list of preopened convenience libraries to check - # that they are being used correctly in the link pass. - test -z "$libdir" && \ - func_append dlpreconveniencelibs " $dir/$old_library" - # Otherwise, use the dlname, so that lt_dlopen finds it. - elif test -n "$dlname"; then - func_append newdlprefiles " $dir/$dlname" - else - func_append newdlprefiles " $dir/$linklib" - fi - ;; - esac - fi # $pass = dlpreopen - - if test -z "$libdir"; then - # Link the convenience library - if test "$linkmode" = lib; then - deplibs="$dir/$old_library $deplibs" - elif test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$dir/$old_library $compile_deplibs" - finalize_deplibs="$dir/$old_library $finalize_deplibs" - else - deplibs="$lib $deplibs" # used for prog,scan pass - fi - continue - fi - - - if test "$linkmode" = prog && test "$pass" != link; then - func_append newlib_search_path " $ladir" - deplibs="$lib $deplibs" - - linkalldeplibs=no - if test "$link_all_deplibs" != no || test -z "$library_names" || - test "$build_libtool_libs" = no; then - linkalldeplibs=yes - fi - - tmp_libs= - for deplib in $dependency_libs; do - case $deplib in - -L*) func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - esac - # Need to link against all dependency_libs? - if test "$linkalldeplibs" = yes; then - deplibs="$deplib $deplibs" - else - # Need to hardcode shared library paths - # or/and link against static libraries - newdependency_libs="$deplib $newdependency_libs" - fi - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done # for deplib - continue - fi # $linkmode = prog... - - if test "$linkmode,$pass" = "prog,link"; then - if test -n "$library_names" && - { { test "$prefer_static_libs" = no || - test "$prefer_static_libs,$installed" = "built,yes"; } || - test -z "$old_library"; }; then - # We need to hardcode the library path - if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then - # Make sure the rpath contains only unique directories. - case "$temp_rpath:" in - *"$absdir:"*) ;; - *) func_append temp_rpath "$absdir:" ;; - esac - fi - - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac - fi # $linkmode,$pass = prog,link... - - if test "$alldeplibs" = yes && - { test "$deplibs_check_method" = pass_all || - { test "$build_libtool_libs" = yes && - test -n "$library_names"; }; }; then - # We only need to search for static libraries - continue - fi - fi - - link_static=no # Whether the deplib will be linked statically - use_static_libs=$prefer_static_libs - if test "$use_static_libs" = built && test "$installed" = yes; then - use_static_libs=no - fi - if test -n "$library_names" && - { test "$use_static_libs" = no || test -z "$old_library"; }; then - case $host in - *cygwin* | *mingw* | *cegcc*) - # No point in relinking DLLs because paths are not encoded - func_append notinst_deplibs " $lib" - need_relink=no - ;; - *) - if test "$installed" = no; then - func_append notinst_deplibs " $lib" - need_relink=yes - fi - ;; - esac - # This is a shared library - - # Warn about portability, can't link against -module's on some - # systems (darwin). Don't bleat about dlopened modules though! - dlopenmodule="" - for dlpremoduletest in $dlprefiles; do - if test "X$dlpremoduletest" = "X$lib"; then - dlopenmodule="$dlpremoduletest" - break - fi - done - if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then - echo - if test "$linkmode" = prog; then - $ECHO "*** Warning: Linking the executable $output against the loadable module" - else - $ECHO "*** Warning: Linking the shared library $output against the loadable module" - fi - $ECHO "*** $linklib is not portable!" - fi - if test "$linkmode" = lib && - test "$hardcode_into_libs" = yes; then - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac - fi - - if test -n "$old_archive_from_expsyms_cmds"; then - # figure out the soname - set dummy $library_names - shift - realname="$1" - shift - libname=`eval "\\$ECHO \"$libname_spec\""` - # use dlname if we got it. it's perfectly good, no? - if test -n "$dlname"; then - soname="$dlname" - elif test -n "$soname_spec"; then - # bleh windows - case $host in - *cygwin* | mingw* | *cegcc*) - func_arith $current - $age - major=$func_arith_result - versuffix="-$major" - ;; - esac - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - - # Make a new name for the extract_expsyms_cmds to use - soroot="$soname" - func_basename "$soroot" - soname="$func_basename_result" - func_stripname 'lib' '.dll' "$soname" - newlib=libimp-$func_stripname_result.a - - # If the library has no export list, then create one now - if test -f "$output_objdir/$soname-def"; then : - else - func_verbose "extracting exported symbol list from \`$soname'" - func_execute_cmds "$extract_expsyms_cmds" 'exit $?' - fi - - # Create $newlib - if test -f "$output_objdir/$newlib"; then :; else - func_verbose "generating import library for \`$soname'" - func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' - fi - # make sure the library variables are pointing to the new library - dir=$output_objdir - linklib=$newlib - fi # test -n "$old_archive_from_expsyms_cmds" - - if test "$linkmode" = prog || test "$opt_mode" != relink; then - add_shlibpath= - add_dir= - add= - lib_linked=yes - case $hardcode_action in - immediate | unsupported) - if test "$hardcode_direct" = no; then - add="$dir/$linklib" - case $host in - *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; - *-*-sysv4*uw2*) add_dir="-L$dir" ;; - *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ - *-*-unixware7*) add_dir="-L$dir" ;; - *-*-darwin* ) - # if the lib is a (non-dlopened) module then we can not - # link against it, someone is ignoring the earlier warnings - if /usr/bin/file -L $add 2> /dev/null | - $GREP ": [^:]* bundle" >/dev/null ; then - if test "X$dlopenmodule" != "X$lib"; then - $ECHO "*** Warning: lib $linklib is a module, not a shared library" - if test -z "$old_library" ; then - echo - echo "*** And there doesn't seem to be a static archive available" - echo "*** The link will probably fail, sorry" - else - add="$dir/$old_library" - fi - elif test -n "$old_library"; then - add="$dir/$old_library" - fi - fi - esac - elif test "$hardcode_minus_L" = no; then - case $host in - *-*-sunos*) add_shlibpath="$dir" ;; - esac - add_dir="-L$dir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = no; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - relink) - if test "$hardcode_direct" = yes && - test "$hardcode_direct_absolute" = no; then - add="$dir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$absdir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - *) lib_linked=no ;; - esac - - if test "$lib_linked" != yes; then - func_fatal_configuration "unsupported hardcode properties" - fi - - if test -n "$add_shlibpath"; then - case :$compile_shlibpath: in - *":$add_shlibpath:"*) ;; - *) func_append compile_shlibpath "$add_shlibpath:" ;; - esac - fi - if test "$linkmode" = prog; then - test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" - test -n "$add" && compile_deplibs="$add $compile_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - if test "$hardcode_direct" != yes && - test "$hardcode_minus_L" != yes && - test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) func_append finalize_shlibpath "$libdir:" ;; - esac - fi - fi - fi - - if test "$linkmode" = prog || test "$opt_mode" = relink; then - add_shlibpath= - add_dir= - add= - # Finalize command for both is simple: just hardcode it. - if test "$hardcode_direct" = yes && - test "$hardcode_direct_absolute" = no; then - if test -f "$inst_prefix_dir$libdir/$linklib"; then - add="$inst_prefix_dir$libdir/$linklib" - else - add="$libdir/$linklib" - fi - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$libdir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) func_append finalize_shlibpath "$libdir:" ;; - esac - add="-l$name" - elif test "$hardcode_automatic" = yes; then - if test -n "$inst_prefix_dir" && - test -f "$inst_prefix_dir$libdir/$linklib" ; then - add="$inst_prefix_dir$libdir/$linklib" - else - add="$libdir/$linklib" - fi - else - # We cannot seem to hardcode it, guess we'll fake it. - add_dir="-L$libdir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - fi - - if test "$linkmode" = prog; then - test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" - test -n "$add" && finalize_deplibs="$add $finalize_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - fi - fi - elif test "$linkmode" = prog; then - # Here we assume that one of hardcode_direct or hardcode_minus_L - # is not unsupported. This is valid on all known static and - # shared platforms. - if test "$hardcode_direct" != unsupported; then - test -n "$old_library" && linklib="$old_library" - compile_deplibs="$dir/$linklib $compile_deplibs" - finalize_deplibs="$dir/$linklib $finalize_deplibs" - else - compile_deplibs="-l$name -L$dir $compile_deplibs" - finalize_deplibs="-l$name -L$dir $finalize_deplibs" - fi - elif test "$build_libtool_libs" = yes; then - # Not a shared library - if test "$deplibs_check_method" != pass_all; then - # We're trying link a shared library against a static one - # but the system doesn't support it. - - # Just print a warning and add the library to dependency_libs so - # that the program can be linked against the static library. - echo - $ECHO "*** Warning: This system can not link to static lib archive $lib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." - if test "$module" = yes; then - echo "*** But as you try to build a module library, libtool will still create " - echo "*** a static module, that should work as long as the dlopening application" - echo "*** is linked with the -dlopen flag to resolve symbols at runtime." - if test -z "$global_symbol_pipe"; then - echo - echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - echo "*** not find such a program. So, this module is probably useless." - echo "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - else - deplibs="$dir/$old_library $deplibs" - link_static=yes - fi - fi # link shared/static library? - - if test "$linkmode" = lib; then - if test -n "$dependency_libs" && - { test "$hardcode_into_libs" != yes || - test "$build_old_libs" = yes || - test "$link_static" = yes; }; then - # Extract -R from dependency_libs - temp_deplibs= - for libdir in $dependency_libs; do - case $libdir in - -R*) func_stripname '-R' '' "$libdir" - temp_xrpath=$func_stripname_result - case " $xrpath " in - *" $temp_xrpath "*) ;; - *) func_append xrpath " $temp_xrpath";; - esac;; - *) func_append temp_deplibs " $libdir";; - esac - done - dependency_libs="$temp_deplibs" - fi - - func_append newlib_search_path " $absdir" - # Link against this library - test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" - # ... and its dependency_libs - tmp_libs= - for deplib in $dependency_libs; do - newdependency_libs="$deplib $newdependency_libs" - case $deplib in - -L*) func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result";; - *) func_resolve_sysroot "$deplib" ;; - esac - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $func_resolve_sysroot_result "*) - func_append specialdeplibs " $func_resolve_sysroot_result" ;; - esac - fi - func_append tmp_libs " $func_resolve_sysroot_result" - done - - if test "$link_all_deplibs" != no; then - # Add the search paths of all dependency libraries - for deplib in $dependency_libs; do - path= - case $deplib in - -L*) path="$deplib" ;; - *.la) - func_resolve_sysroot "$deplib" - deplib=$func_resolve_sysroot_result - func_dirname "$deplib" "" "." - dir=$func_dirname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - func_warning "cannot determine absolute directory name of \`$dir'" - absdir="$dir" - fi - ;; - esac - if $GREP "^installed=no" $deplib > /dev/null; then - case $host in - *-*-darwin*) - depdepl= - eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names" ; then - for tmp in $deplibrary_names ; do - depdepl=$tmp - done - if test -f "$absdir/$objdir/$depdepl" ; then - depdepl="$absdir/$objdir/$depdepl" - darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` - if test -z "$darwin_install_name"; then - darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` - fi - func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" - func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" - path= - fi - fi - ;; - *) - path="-L$absdir/$objdir" - ;; - esac - else - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" - test "$absdir" != "$libdir" && \ - func_warning "\`$deplib' seems to be moved" - - path="-L$absdir" - fi - ;; - esac - case " $deplibs " in - *" $path "*) ;; - *) deplibs="$path $deplibs" ;; - esac - done - fi # link_all_deplibs != no - fi # linkmode = lib - done # for deplib in $libs - if test "$pass" = link; then - if test "$linkmode" = "prog"; then - compile_deplibs="$new_inherited_linker_flags $compile_deplibs" - finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" - else - compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - fi - fi - dependency_libs="$newdependency_libs" - if test "$pass" = dlpreopen; then - # Link the dlpreopened libraries before other libraries - for deplib in $save_deplibs; do - deplibs="$deplib $deplibs" - done - fi - if test "$pass" != dlopen; then - if test "$pass" != conv; then - # Make sure lib_search_path contains only unique directories. - lib_search_path= - for dir in $newlib_search_path; do - case "$lib_search_path " in - *" $dir "*) ;; - *) func_append lib_search_path " $dir" ;; - esac - done - newlib_search_path= - fi - - if test "$linkmode,$pass" != "prog,link"; then - vars="deplibs" - else - vars="compile_deplibs finalize_deplibs" - fi - for var in $vars dependency_libs; do - # Add libraries to $var in reverse order - eval tmp_libs=\"\$$var\" - new_libs= - for deplib in $tmp_libs; do - # FIXME: Pedantically, this is the right thing to do, so - # that some nasty dependency loop isn't accidentally - # broken: - #new_libs="$deplib $new_libs" - # Pragmatically, this seems to cause very few problems in - # practice: - case $deplib in - -L*) new_libs="$deplib $new_libs" ;; - -R*) ;; - *) - # And here is the reason: when a library appears more - # than once as an explicit dependence of a library, or - # is implicitly linked in more than once by the - # compiler, it is considered special, and multiple - # occurrences thereof are not removed. Compare this - # with having the same library being listed as a - # dependency of multiple other libraries: in this case, - # we know (pedantically, we assume) the library does not - # need to be listed more than once, so we keep only the - # last copy. This is not always right, but it is rare - # enough that we require users that really mean to play - # such unportable linking tricks to link the library - # using -Wl,-lname, so that libtool does not consider it - # for duplicate removal. - case " $specialdeplibs " in - *" $deplib "*) new_libs="$deplib $new_libs" ;; - *) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$deplib $new_libs" ;; - esac - ;; - esac - ;; - esac - done - tmp_libs= - for deplib in $new_libs; do - case $deplib in - -L*) - case " $tmp_libs " in - *" $deplib "*) ;; - *) func_append tmp_libs " $deplib" ;; - esac - ;; - *) func_append tmp_libs " $deplib" ;; - esac - done - eval $var=\"$tmp_libs\" - done # for var - fi - # Last step: remove runtime libs from dependency_libs - # (they stay in deplibs) - tmp_libs= - for i in $dependency_libs ; do - case " $predeps $postdeps $compiler_lib_search_path " in - *" $i "*) - i="" - ;; - esac - if test -n "$i" ; then - func_append tmp_libs " $i" - fi - done - dependency_libs=$tmp_libs - done # for pass - if test "$linkmode" = prog; then - dlfiles="$newdlfiles" - fi - if test "$linkmode" = prog || test "$linkmode" = lib; then - dlprefiles="$newdlprefiles" - fi - - case $linkmode in - oldlib) - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - func_warning "\`-dlopen' is ignored for archives" - fi - - case " $deplibs" in - *\ -l* | *\ -L*) - func_warning "\`-l' and \`-L' are ignored for archives" ;; - esac - - test -n "$rpath" && \ - func_warning "\`-rpath' is ignored for archives" - - test -n "$xrpath" && \ - func_warning "\`-R' is ignored for archives" - - test -n "$vinfo" && \ - func_warning "\`-version-info/-version-number' is ignored for archives" - - test -n "$release" && \ - func_warning "\`-release' is ignored for archives" - - test -n "$export_symbols$export_symbols_regex" && \ - func_warning "\`-export-symbols' is ignored for archives" - - # Now set the variables for building old libraries. - build_libtool_libs=no - oldlibs="$output" - func_append objs "$old_deplibs" - ;; - - lib) - # Make sure we only generate libraries of the form `libNAME.la'. - case $outputname in - lib*) - func_stripname 'lib' '.la' "$outputname" - name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - ;; - *) - test "$module" = no && \ - func_fatal_help "libtool library \`$output' must begin with \`lib'" - - if test "$need_lib_prefix" != no; then - # Add the "lib" prefix for modules if required - func_stripname '' '.la' "$outputname" - name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - else - func_stripname '' '.la' "$outputname" - libname=$func_stripname_result - fi - ;; - esac - - if test -n "$objs"; then - if test "$deplibs_check_method" != pass_all; then - func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" - else - echo - $ECHO "*** Warning: Linking the shared library $output against the non-libtool" - $ECHO "*** objects $objs is not portable!" - func_append libobjs " $objs" - fi - fi - - test "$dlself" != no && \ - func_warning "\`-dlopen self' is ignored for libtool libraries" - - set dummy $rpath - shift - test "$#" -gt 1 && \ - func_warning "ignoring multiple \`-rpath's for a libtool library" - - install_libdir="$1" - - oldlibs= - if test -z "$rpath"; then - if test "$build_libtool_libs" = yes; then - # Building a libtool convenience library. - # Some compilers have problems with a `.al' extension so - # convenience libraries should have the same extension an - # archive normally would. - oldlibs="$output_objdir/$libname.$libext $oldlibs" - build_libtool_libs=convenience - build_old_libs=yes - fi - - test -n "$vinfo" && \ - func_warning "\`-version-info/-version-number' is ignored for convenience libraries" - - test -n "$release" && \ - func_warning "\`-release' is ignored for convenience libraries" - else - - # Parse the version information argument. - save_ifs="$IFS"; IFS=':' - set dummy $vinfo 0 0 0 - shift - IFS="$save_ifs" - - test -n "$7" && \ - func_fatal_help "too many parameters to \`-version-info'" - - # convert absolute version numbers to libtool ages - # this retains compatibility with .la files and attempts - # to make the code below a bit more comprehensible - - case $vinfo_number in - yes) - number_major="$1" - number_minor="$2" - number_revision="$3" - # - # There are really only two kinds -- those that - # use the current revision as the major version - # and those that subtract age and use age as - # a minor version. But, then there is irix - # which has an extra 1 added just for fun - # - case $version_type in - # correct linux to gnu/linux during the next big refactor - darwin|linux|osf|windows|none) - func_arith $number_major + $number_minor - current=$func_arith_result - age="$number_minor" - revision="$number_revision" - ;; - freebsd-aout|freebsd-elf|qnx|sunos) - current="$number_major" - revision="$number_minor" - age="0" - ;; - irix|nonstopux) - func_arith $number_major + $number_minor - current=$func_arith_result - age="$number_minor" - revision="$number_minor" - lt_irix_increment=no - ;; - esac - ;; - no) - current="$1" - revision="$2" - age="$3" - ;; - esac - - # Check that each of the things are valid numbers. - case $current in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "CURRENT \`$current' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" - ;; - esac - - case $revision in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "REVISION \`$revision' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" - ;; - esac - - case $age in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "AGE \`$age' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" - ;; - esac - - if test "$age" -gt "$current"; then - func_error "AGE \`$age' is greater than the current interface number \`$current'" - func_fatal_error "\`$vinfo' is not valid version information" - fi - - # Calculate the version variables. - major= - versuffix= - versuffix2= - verstring= - case $version_type in - none) ;; - - darwin) - # Like Linux, but with the current version available in - # verstring for coding it into the library header - func_arith $current - $age - major=.$func_arith_result - versuffix="$major.$age.$revision" - # Darwin ld doesn't like 0 for these options... - func_arith $current + 1 - minor_current=$func_arith_result - xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" - ;; - - freebsd-aout) - major=".$current" - versuffix=".$current.$revision"; - ;; - - freebsd-elf) - major=".$current" - versuffix=".$current" - ;; - - irix | nonstopux) - if test "X$lt_irix_increment" = "Xno"; then - func_arith $current - $age - else - func_arith $current - $age + 1 - fi - major=$func_arith_result - - case $version_type in - nonstopux) verstring_prefix=nonstopux ;; - *) verstring_prefix=sgi ;; - esac - verstring="$verstring_prefix$major.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$revision - while test "$loop" -ne 0; do - func_arith $revision - $loop - iface=$func_arith_result - func_arith $loop - 1 - loop=$func_arith_result - verstring="$verstring_prefix$major.$iface:$verstring" - done - - # Before this point, $major must not contain `.'. - major=.$major - versuffix="$major.$revision" - ;; - - linux) # correct to gnu/linux during the next big refactor - func_arith $current - $age - major=.$func_arith_result - versuffix="$major.$age.$revision" - versuffix2="$major.$age" - ;; - - osf) - func_arith $current - $age - major=.$func_arith_result - versuffix=".$current.$age.$revision" - verstring="$current.$age.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$age - while test "$loop" -ne 0; do - func_arith $current - $loop - iface=$func_arith_result - func_arith $loop - 1 - loop=$func_arith_result - verstring="$verstring:${iface}.0" - done - - # Make executables depend on our current version. - func_append verstring ":${current}.0" - ;; - - qnx) - major=".$current" - versuffix=".$current" - ;; - - sunos) - major=".$current" - versuffix=".$current.$revision" - ;; - - windows) - # Use '-' rather than '.', since we only want one - # extension on DOS 8.3 filesystems. - func_arith $current - $age - major=$func_arith_result - versuffix="-$major" - ;; - - *) - func_fatal_configuration "unknown library version type \`$version_type'" - ;; - esac - - # Clear the version info if we defaulted, and they specified a release. - if test -z "$vinfo" && test -n "$release"; then - major= - case $version_type in - darwin) - # we can't check for "0.0" in archive_cmds due to quoting - # problems, so we reset it completely - verstring= - ;; - *) - verstring="0.0" - ;; - esac - if test "$need_version" = no; then - versuffix= - versuffix2= - else - versuffix=".0.0" - versuffix2=".0.0" - fi - fi - - # Remove version info from name if versioning should be avoided - if test "$avoid_version" = yes && test "$need_version" = no; then - major= - versuffix= - versuffix2= - verstring="" - fi - - # Check to see if the archive will have undefined symbols. - if test "$allow_undefined" = yes; then - if test "$allow_undefined_flag" = unsupported; then - func_warning "undefined symbols not allowed in $host shared libraries" - build_libtool_libs=no - build_old_libs=yes - fi - else - # Don't allow undefined symbols. - allow_undefined_flag="$no_undefined_flag" - fi - - fi - - func_generate_dlsyms "$libname" "$libname" "yes" - func_append libobjs " $symfileobj" - test "X$libobjs" = "X " && libobjs= - - if test "$opt_mode" != relink; then - # Remove our outputs, but don't remove object files since they - # may have been created when compiling PIC objects. - removelist= - tempremovelist=`$ECHO "$output_objdir/*"` - for p in $tempremovelist; do - case $p in - *.$objext | *.gcno) - ;; - $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) - if test "X$precious_files_regex" != "X"; then - if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 - then - continue - fi - fi - func_append removelist " $p" - ;; - *) ;; - esac - done - test -n "$removelist" && \ - func_show_eval "${RM}r \$removelist" - fi - - # Now set the variables for building old libraries. - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then - func_append oldlibs " $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` - fi - - # Eliminate all temporary directories. - #for path in $notinst_path; do - # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` - # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` - # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` - #done - - if test -n "$xrpath"; then - # If the user specified any rpath flags, then add them. - temp_xrpath= - for libdir in $xrpath; do - func_replace_sysroot "$libdir" - func_append temp_xrpath " -R$func_replace_sysroot_result" - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - done - if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then - dependency_libs="$temp_xrpath $dependency_libs" - fi - fi - - # Make sure dlfiles contains only unique files that won't be dlpreopened - old_dlfiles="$dlfiles" - dlfiles= - for lib in $old_dlfiles; do - case " $dlprefiles $dlfiles " in - *" $lib "*) ;; - *) func_append dlfiles " $lib" ;; - esac - done - - # Make sure dlprefiles contains only unique files - old_dlprefiles="$dlprefiles" - dlprefiles= - for lib in $old_dlprefiles; do - case "$dlprefiles " in - *" $lib "*) ;; - *) func_append dlprefiles " $lib" ;; - esac - done - - if test "$build_libtool_libs" = yes; then - if test -n "$rpath"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) - # these systems don't actually have a c library (as such)! - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework - func_append deplibs " System.ltframework" - ;; - *-*-netbsd*) - # Don't link with libc until the a.out ld.so is fixed. - ;; - *-*-openbsd* | *-*-mirbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc due to us having libc/libc_r. - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - ;; - *) - # Add libc to deplibs on all other systems if necessary. - if test "$build_libtool_need_lc" = "yes"; then - func_append deplibs " -lc" - fi - ;; - esac - fi - - # Transform deplibs into only deplibs that can be linked in shared. - name_save=$name - libname_save=$libname - release_save=$release - versuffix_save=$versuffix - versuffix2_save=$versuffix2 - major_save=$major - # I'm not sure if I'm treating the release correctly. I think - # release should show up in the -l (ie -lgmp5) so we don't want to - # add it in twice. Is that correct? - release="" - versuffix="" - versuffix2="" - major="" - newdeplibs= - droppeddeps=no - case $deplibs_check_method in - pass_all) - # Don't check for shared/static. Everything works. - # This might be a little naive. We might want to check - # whether the library exists or not. But this is on - # osf3 & osf4 and I'm not really sure... Just - # implementing what was already the behavior. - newdeplibs=$deplibs - ;; - test_compile) - # This code stresses the "libraries are programs" paradigm to its - # limits. Maybe even breaks it. We compile a program, linking it - # against the deplibs as a proxy for the library. Then we can check - # whether they linked in statically or dynamically with ldd. - $opt_dry_run || $RM conftest.c - cat > conftest.c </dev/null` - $nocaseglob - else - potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` - fi - for potent_lib in $potential_libs; do - # Follow soft links. - if ls -lLd "$potent_lib" 2>/dev/null | - $GREP " -> " >/dev/null; then - continue - fi - # The statement above tries to avoid entering an - # endless loop below, in case of cyclic links. - # We might still enter an endless loop, since a link - # loop can be closed while we follow links, - # but so what? - potlib="$potent_lib" - while test -h "$potlib" 2>/dev/null; do - potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` - case $potliblink in - [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; - *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; - esac - done - if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | - $SED -e 10q | - $EGREP "$file_magic_regex" > /dev/null; then - func_append newdeplibs " $a_deplib" - a_deplib="" - break 2 - fi - done - done - fi - if test -n "$a_deplib" ; then - droppeddeps=yes - echo - $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then - $ECHO "*** with $libname but no candidates were found. (...for file magic test)" - else - $ECHO "*** with $libname and none of the candidates passed a file format test" - $ECHO "*** using a file magic. Last file checked: $potlib" - fi - fi - ;; - *) - # Add a -L argument. - func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. - ;; - match_pattern*) - set dummy $deplibs_check_method; shift - match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - for a_deplib in $deplibs; do - case $a_deplib in - -l*) - func_stripname -l '' "$a_deplib" - name=$func_stripname_result - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) - func_append newdeplibs " $a_deplib" - a_deplib="" - ;; - esac - fi - if test -n "$a_deplib" ; then - libname=`eval "\\$ECHO \"$libname_spec\""` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - potlib="$potent_lib" # see symlink-check above in file_magic test - if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ - $EGREP "$match_pattern_regex" > /dev/null; then - func_append newdeplibs " $a_deplib" - a_deplib="" - break 2 - fi - done - done - fi - if test -n "$a_deplib" ; then - droppeddeps=yes - echo - $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then - $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" - else - $ECHO "*** with $libname and none of the candidates passed a file format test" - $ECHO "*** using a regex pattern. Last file checked: $potlib" - fi - fi - ;; - *) - # Add a -L argument. - func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. - ;; - none | unknown | *) - newdeplibs="" - tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - for i in $predeps $postdeps ; do - # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` - done - fi - case $tmp_deplibs in - *[!\ \ ]*) - echo - if test "X$deplibs_check_method" = "Xnone"; then - echo "*** Warning: inter-library dependencies are not supported in this platform." - else - echo "*** Warning: inter-library dependencies are not known to be supported." - fi - echo "*** All declared inter-library dependencies are being dropped." - droppeddeps=yes - ;; - esac - ;; - esac - versuffix=$versuffix_save - versuffix2=$versuffix2_save - major=$major_save - release=$release_save - libname=$libname_save - name=$name_save - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library with the System framework - newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` - ;; - esac - - if test "$droppeddeps" = yes; then - if test "$module" = yes; then - echo - echo "*** Warning: libtool could not satisfy all declared inter-library" - $ECHO "*** dependencies of module $libname. Therefore, libtool will create" - echo "*** a static module, that should work as long as the dlopening" - echo "*** application is linked with the -dlopen flag." - if test -z "$global_symbol_pipe"; then - echo - echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - echo "*** not find such a program. So, this module is probably useless." - echo "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - else - echo "*** The inter-library dependencies that have been dropped here will be" - echo "*** automatically added whenever a program is linked with this library" - echo "*** or is declared to -dlopen it." - - if test "$allow_undefined" = no; then - echo - echo "*** Since this library must not contain undefined symbols," - echo "*** because either the platform does not support them or" - echo "*** it was explicitly requested with -no-undefined," - echo "*** libtool will only create a static version of it." - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - fi - fi - # Done checking deplibs! - deplibs=$newdeplibs - fi - # Time to change all our "foo.ltframework" stuff back to "-framework foo" - case $host in - *-*-darwin*) - newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - ;; - esac - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $deplibs " in - *" -L$path/$objdir "*) - func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) func_append new_libs " $deplib" ;; - esac - ;; - *) func_append new_libs " $deplib" ;; - esac - done - deplibs="$new_libs" - - # All the library-specific variables (install_libdir is set above). - library_names= - old_library= - dlname= - - # Test again, we may have decided not to build it any more - if test "$build_libtool_libs" = yes; then - # Remove ${wl} instances when linking with ld. - # FIXME: should test the right _cmds variable. - case $archive_cmds in - *\$LD\ *) wl= ;; - esac - if test "$hardcode_into_libs" = yes; then - # Hardcode the library paths - hardcode_libdirs= - dep_rpath= - rpath="$finalize_rpath" - test "$opt_mode" != relink && rpath="$compile_rpath$rpath" - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - func_replace_sysroot "$libdir" - libdir=$func_replace_sysroot_result - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append dep_rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) func_append perm_rpath " $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" - fi - if test -n "$runpath_var" && test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - func_append rpath "$dir:" - done - eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" - fi - test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" - fi - - shlibpath="$finalize_shlibpath" - test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" - if test -n "$shlibpath"; then - eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" - fi - - # Get the real and link names of the library. - eval shared_ext=\"$shrext_cmds\" - eval library_names=\"$library_names_spec\" - set dummy $library_names - shift - realname="$1" - shift - - if test -n "$soname_spec"; then - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - if test -z "$dlname"; then - dlname=$soname - fi - - lib="$output_objdir/$realname" - linknames= - for link - do - func_append linknames " $link" - done - - # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` - test "X$libobjs" = "X " && libobjs= - - delfiles= - if test -n "$export_symbols" && test -n "$include_expsyms"; then - $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" - export_symbols="$output_objdir/$libname.uexp" - func_append delfiles " $export_symbols" - fi - - orig_export_symbols= - case $host_os in - cygwin* | mingw* | cegcc*) - if test -n "$export_symbols" && test -z "$export_symbols_regex"; then - # exporting using user supplied symfile - if test "x`$SED 1q $export_symbols`" != xEXPORTS; then - # and it's NOT already a .def file. Must figure out - # which of the given symbols are data symbols and tag - # them as such. So, trigger use of export_symbols_cmds. - # export_symbols gets reassigned inside the "prepare - # the list of exported symbols" if statement, so the - # include_expsyms logic still works. - orig_export_symbols="$export_symbols" - export_symbols= - always_export_symbols=yes - fi - fi - ;; - esac - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then - func_verbose "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $opt_dry_run || $RM $export_symbols - cmds=$export_symbols_cmds - save_ifs="$IFS"; IFS='~' - for cmd1 in $cmds; do - IFS="$save_ifs" - # Take the normal branch if the nm_file_list_spec branch - # doesn't work or if tool conversion is not needed. - case $nm_file_list_spec~$to_tool_file_cmd in - *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) - try_normal_branch=yes - eval cmd=\"$cmd1\" - func_len " $cmd" - len=$func_len_result - ;; - *) - try_normal_branch=no - ;; - esac - if test "$try_normal_branch" = yes \ - && { test "$len" -lt "$max_cmd_len" \ - || test "$max_cmd_len" -le -1; } - then - func_show_eval "$cmd" 'exit $?' - skipped_export=false - elif test -n "$nm_file_list_spec"; then - func_basename "$output" - output_la=$func_basename_result - save_libobjs=$libobjs - save_output=$output - output=${output_objdir}/${output_la}.nm - func_to_tool_file "$output" - libobjs=$nm_file_list_spec$func_to_tool_file_result - func_append delfiles " $output" - func_verbose "creating $NM input file list: $output" - for obj in $save_libobjs; do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" - done > "$output" - eval cmd=\"$cmd1\" - func_show_eval "$cmd" 'exit $?' - output=$save_output - libobjs=$save_libobjs - skipped_export=false - else - # The command line is too long to execute in one step. - func_verbose "using reloadable object file for export list..." - skipped_export=: - # Break out early, otherwise skipped_export may be - # set to false by a later but shorter cmd. - break - fi - done - IFS="$save_ifs" - if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then - func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - func_show_eval '$MV "${export_symbols}T" "$export_symbols"' - fi - fi - fi - - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" - $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then - # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" - # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands which not all seds can handle. GNU sed should be fine - # though. Also, the filter scales superlinearly with the number of - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi - - tmp_deplibs= - for test_deplib in $deplibs; do - case " $convenience " in - *" $test_deplib "*) ;; - *) - func_append tmp_deplibs " $test_deplib" - ;; - esac - done - deplibs="$tmp_deplibs" - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec" && - test "$compiler_needs_object" = yes && - test -z "$libobjs"; then - # extract the archives, so we have objects to list. - # TODO: could optimize this to just extract one archive. - whole_archive_flag_spec= - fi - if test -n "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - else - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $convenience - func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - fi - - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" - func_append linker_flags " $flag" - fi - - # Make a backup of the uninstalled library when relinking - if test "$opt_mode" = relink; then - $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? - fi - - # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - eval test_cmds=\"$module_expsym_cmds\" - cmds=$module_expsym_cmds - else - eval test_cmds=\"$module_cmds\" - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval test_cmds=\"$archive_expsym_cmds\" - cmds=$archive_expsym_cmds - else - eval test_cmds=\"$archive_cmds\" - cmds=$archive_cmds - fi - fi - - if test "X$skipped_export" != "X:" && - func_len " $test_cmds" && - len=$func_len_result && - test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - : - else - # The command line is too long to link in one step, link piecewise - # or, if using GNU ld and skipped_export is not :, use a linker - # script. - - # Save the value of $output and $libobjs because we want to - # use them later. If we have whole_archive_flag_spec, we - # want to use save_libobjs as it was before - # whole_archive_flag_spec was expanded, because we can't - # assume the linker understands whole_archive_flag_spec. - # This may have to be revisited, in case too many - # convenience libraries get linked in and end up exceeding - # the spec. - if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - fi - save_output=$output - func_basename "$output" - output_la=$func_basename_result - - # Clear the reloadable object creation command queue and - # initialize k to one. - test_cmds= - concat_cmds= - objlist= - last_robj= - k=1 - - if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then - output=${output_objdir}/${output_la}.lnkscript - func_verbose "creating GNU ld script: $output" - echo 'INPUT (' > $output - for obj in $save_libobjs - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" >> $output - done - echo ')' >> $output - func_append delfiles " $output" - func_to_tool_file "$output" - output=$func_to_tool_file_result - elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then - output=${output_objdir}/${output_la}.lnk - func_verbose "creating linker input file list: $output" - : > $output - set x $save_libobjs - shift - firstobj= - if test "$compiler_needs_object" = yes; then - firstobj="$1 " - shift - fi - for obj - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" >> $output - done - func_append delfiles " $output" - func_to_tool_file "$output" - output=$firstobj\"$file_list_spec$func_to_tool_file_result\" - else - if test -n "$save_libobjs"; then - func_verbose "creating reloadable object files..." - output=$output_objdir/$output_la-${k}.$objext - eval test_cmds=\"$reload_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 - - # Loop over the list of objects to be linked. - for obj in $save_libobjs - do - func_len " $obj" - func_arith $len + $func_len_result - len=$func_arith_result - if test "X$objlist" = X || - test "$len" -lt "$max_cmd_len"; then - func_append objlist " $obj" - else - # The command $test_cmds is almost too long, add a - # command to the queue. - if test "$k" -eq 1 ; then - # The first file doesn't have a previous command to add. - reload_objs=$objlist - eval concat_cmds=\"$reload_cmds\" - else - # All subsequent reloadable object files will link in - # the last one created. - reload_objs="$objlist $last_robj" - eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" - fi - last_robj=$output_objdir/$output_la-${k}.$objext - func_arith $k + 1 - k=$func_arith_result - output=$output_objdir/$output_la-${k}.$objext - objlist=" $obj" - func_len " $last_robj" - func_arith $len0 + $func_len_result - len=$func_arith_result - fi - done - # Handle the remaining objects by creating one last - # reloadable object file. All subsequent reloadable object - # files will link in the last one created. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - reload_objs="$objlist $last_robj" - eval concat_cmds=\"\${concat_cmds}$reload_cmds\" - if test -n "$last_robj"; then - eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" - fi - func_append delfiles " $output" - - else - output= - fi - - if ${skipped_export-false}; then - func_verbose "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $opt_dry_run || $RM $export_symbols - libobjs=$output - # Append the command to create the export file. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" - if test -n "$last_robj"; then - eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" - fi - fi - - test -n "$save_libobjs" && - func_verbose "creating a temporary reloadable object file: $output" - - # Loop through the commands generated above and execute them. - save_ifs="$IFS"; IFS='~' - for cmd in $concat_cmds; do - IFS="$save_ifs" - $opt_silent || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" - } - $opt_dry_run || eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) - fi - - exit $lt_exit - } - done - IFS="$save_ifs" - - if test -n "$export_symbols_regex" && ${skipped_export-false}; then - func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - func_show_eval '$MV "${export_symbols}T" "$export_symbols"' - fi - fi - - if ${skipped_export-false}; then - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" - $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test -n "$orig_export_symbols"; then - # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" - # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands which not all seds can handle. GNU sed should be fine - # though. Also, the filter scales superlinearly with the number of - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi - fi - - libobjs=$output - # Restore the value of output. - output=$save_output - - if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - fi - # Expand the library linking commands again to reset the - # value of $libobjs for piecewise linking. - - # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - cmds=$module_expsym_cmds - else - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - cmds=$archive_expsym_cmds - else - cmds=$archive_cmds - fi - fi - fi - - if test -n "$delfiles"; then - # Append the command to remove temporary files to $cmds. - eval cmds=\"\$cmds~\$RM $delfiles\" - fi - - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles - func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $opt_silent || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" - } - $opt_dry_run || eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) - fi - - exit $lt_exit - } - done - IFS="$save_ifs" - - # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then - $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? - - if test -n "$convenience"; then - if test -z "$whole_archive_flag_spec"; then - func_show_eval '${RM}r "$gentop"' - fi - fi - - exit $EXIT_SUCCESS - fi - - # Create links to the real library. - for linkname in $linknames; do - if test "$realname" != "$linkname"; then - func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' - fi - done - - # If -module or -export-dynamic was specified, set the dlname. - if test "$module" = yes || test "$export_dynamic" = yes; then - # On all known operating systems, these are identical. - dlname="$soname" - fi - fi - ;; - - obj) - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - func_warning "\`-dlopen' is ignored for objects" - fi - - case " $deplibs" in - *\ -l* | *\ -L*) - func_warning "\`-l' and \`-L' are ignored for objects" ;; - esac - - test -n "$rpath" && \ - func_warning "\`-rpath' is ignored for objects" - - test -n "$xrpath" && \ - func_warning "\`-R' is ignored for objects" - - test -n "$vinfo" && \ - func_warning "\`-version-info' is ignored for objects" - - test -n "$release" && \ - func_warning "\`-release' is ignored for objects" - - case $output in - *.lo) - test -n "$objs$old_deplibs" && \ - func_fatal_error "cannot build library object \`$output' from non-libtool objects" - - libobj=$output - func_lo2o "$libobj" - obj=$func_lo2o_result - ;; - *) - libobj= - obj="$output" - ;; - esac - - # Delete the old objects. - $opt_dry_run || $RM $obj $libobj - - # Objects from convenience libraries. This assumes - # single-version convenience libraries. Whenever we create - # different ones for PIC/non-PIC, this we'll have to duplicate - # the extraction. - reload_conv_objs= - gentop= - # reload_cmds runs $LD directly, so let us get rid of - # -Wl from whole_archive_flag_spec and hope we can get by with - # turning comma into space.. - wl= - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` - else - gentop="$output_objdir/${obj}x" - func_append generated " $gentop" - - func_extract_archives $gentop $convenience - reload_conv_objs="$reload_objs $func_extract_archives_result" - fi - fi - - # If we're not building shared, we need to use non_pic_objs - test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" - - # Create the old-style object. - reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test - - output="$obj" - func_execute_cmds "$reload_cmds" 'exit $?' - - # Exit if we aren't doing a library object file. - if test -z "$libobj"; then - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - exit $EXIT_SUCCESS - fi - - if test "$build_libtool_libs" != yes; then - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - # Create an invalid libtool object if no PIC, so that we don't - # accidentally link it into a program. - # $show "echo timestamp > $libobj" - # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? - exit $EXIT_SUCCESS - fi - - if test -n "$pic_flag" || test "$pic_mode" != default; then - # Only do commands if we really have different PIC objects. - reload_objs="$libobjs $reload_conv_objs" - output="$libobj" - func_execute_cmds "$reload_cmds" 'exit $?' - fi - - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - exit $EXIT_SUCCESS - ;; - - prog) - case $host in - *cygwin*) func_stripname '' '.exe' "$output" - output=$func_stripname_result.exe;; - esac - test -n "$vinfo" && \ - func_warning "\`-version-info' is ignored for programs" - - test -n "$release" && \ - func_warning "\`-release' is ignored for programs" - - test "$preload" = yes \ - && test "$dlopen_support" = unknown \ - && test "$dlopen_self" = unknown \ - && test "$dlopen_self_static" = unknown && \ - func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework - compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` - finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` - ;; - esac - - case $host in - *-*-darwin*) - # Don't allow lazy linking, it breaks C++ global constructors - # But is supposedly fixed on 10.4 or later (yay!). - if test "$tagname" = CXX ; then - case ${MACOSX_DEPLOYMENT_TARGET-10.0} in - 10.[0123]) - func_append compile_command " ${wl}-bind_at_load" - func_append finalize_command " ${wl}-bind_at_load" - ;; - esac - fi - # Time to change all our "foo.ltframework" stuff back to "-framework foo" - compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - ;; - esac - - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $compile_deplibs " in - *" -L$path/$objdir "*) - func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $compile_deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) func_append new_libs " $deplib" ;; - esac - ;; - *) func_append new_libs " $deplib" ;; - esac - done - compile_deplibs="$new_libs" - - - func_append compile_command " $compile_deplibs" - func_append finalize_command " $finalize_deplibs" - - if test -n "$rpath$xrpath"; then - # If the user specified any rpath flags, then add them. - for libdir in $rpath $xrpath; do - # This is the magic to use -rpath. - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - done - fi - - # Now hardcode the library paths - rpath= - hardcode_libdirs= - for libdir in $compile_rpath $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) func_append perm_rpath " $libdir" ;; - esac - fi - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$libdir:"*) ;; - ::) dllsearchpath=$libdir;; - *) func_append dllsearchpath ":$libdir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; - *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - compile_rpath="$rpath" - - rpath= - hardcode_libdirs= - for libdir in $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$finalize_perm_rpath " in - *" $libdir "*) ;; - *) func_append finalize_perm_rpath " $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - finalize_rpath="$rpath" - - if test -n "$libobjs" && test "$build_old_libs" = yes; then - # Transform all the library objects into standard objects. - compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` - finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` - fi - - func_generate_dlsyms "$outputname" "@PROGRAM@" "no" - - # template prelinking step - if test -n "$prelink_cmds"; then - func_execute_cmds "$prelink_cmds" 'exit $?' - fi - - wrappers_required=yes - case $host in - *cegcc* | *mingw32ce*) - # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. - wrappers_required=no - ;; - *cygwin* | *mingw* ) - if test "$build_libtool_libs" != yes; then - wrappers_required=no - fi - ;; - *) - if test "$need_relink" = no || test "$build_libtool_libs" != yes; then - wrappers_required=no - fi - ;; - esac - if test "$wrappers_required" = no; then - # Replace the output file specification. - compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` - link_command="$compile_command$compile_rpath" - - # We have no uninstalled library dependencies, so finalize right now. - exit_status=0 - func_show_eval "$link_command" 'exit_status=$?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - # Delete the generated files. - if test -f "$output_objdir/${outputname}S.${objext}"; then - func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' - fi - - exit $exit_status - fi - - if test -n "$compile_shlibpath$finalize_shlibpath"; then - compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" - fi - if test -n "$finalize_shlibpath"; then - finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" - fi - - compile_var= - finalize_var= - if test -n "$runpath_var"; then - if test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - func_append rpath "$dir:" - done - compile_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - if test -n "$finalize_perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $finalize_perm_rpath; do - func_append rpath "$dir:" - done - finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - fi - - if test "$no_install" = yes; then - # We don't need to create a wrapper script. - link_command="$compile_var$compile_command$compile_rpath" - # Replace the output file specification. - link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` - # Delete the old output file. - $opt_dry_run || $RM $output - # Link the executable and exit - func_show_eval "$link_command" 'exit $?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - exit $EXIT_SUCCESS - fi - - if test "$hardcode_action" = relink; then - # Fast installation is not supported - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - - func_warning "this platform does not like uninstalled shared libraries" - func_warning "\`$output' will be relinked during installation" - else - if test "$fast_install" != no; then - link_command="$finalize_var$compile_command$finalize_rpath" - if test "$fast_install" = yes; then - relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` - else - # fast_install is set to needless - relink_command= - fi - else - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - fi - fi - - # Replace the output file specification. - link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` - - # Delete the old output files. - $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname - - func_show_eval "$link_command" 'exit $?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output_objdir/$outputname" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - # Now create the wrapper script. - func_verbose "creating $output" - - # Quote the relink command for shipping. - if test -n "$relink_command"; then - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi - done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` - fi - - # Only actually do things if not in dry run mode. - $opt_dry_run || { - # win32 will think the script is a binary if it has - # a .exe suffix, so we strip it off here. - case $output in - *.exe) func_stripname '' '.exe' "$output" - output=$func_stripname_result ;; - esac - # test for cygwin because mv fails w/o .exe extensions - case $host in - *cygwin*) - exeext=.exe - func_stripname '' '.exe' "$outputname" - outputname=$func_stripname_result ;; - *) exeext= ;; - esac - case $host in - *cygwin* | *mingw* ) - func_dirname_and_basename "$output" "" "." - output_name=$func_basename_result - output_path=$func_dirname_result - cwrappersource="$output_path/$objdir/lt-$output_name.c" - cwrapper="$output_path/$output_name.exe" - $RM $cwrappersource $cwrapper - trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 - - func_emit_cwrapperexe_src > $cwrappersource - - # The wrapper executable is built using the $host compiler, - # because it contains $host paths and files. If cross- - # compiling, it, like the target executable, must be - # executed on the $host or under an emulation environment. - $opt_dry_run || { - $LTCC $LTCFLAGS -o $cwrapper $cwrappersource - $STRIP $cwrapper - } - - # Now, create the wrapper script for func_source use: - func_ltwrapper_scriptname $cwrapper - $RM $func_ltwrapper_scriptname_result - trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 - $opt_dry_run || { - # note: this script will not be executed, so do not chmod. - if test "x$build" = "x$host" ; then - $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result - else - func_emit_wrapper no > $func_ltwrapper_scriptname_result - fi - } - ;; - * ) - $RM $output - trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 - - func_emit_wrapper no > $output - chmod +x $output - ;; - esac - } - exit $EXIT_SUCCESS - ;; - esac - - # See if we need to build an old-fashioned archive. - for oldlib in $oldlibs; do - - if test "$build_libtool_libs" = convenience; then - oldobjs="$libobjs_save $symfileobj" - addlibs="$convenience" - build_libtool_libs=no - else - if test "$build_libtool_libs" = module; then - oldobjs="$libobjs_save" - build_libtool_libs=no - else - oldobjs="$old_deplibs $non_pic_objects" - if test "$preload" = yes && test -f "$symfileobj"; then - func_append oldobjs " $symfileobj" - fi - fi - addlibs="$old_convenience" - fi - - if test -n "$addlibs"; then - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $addlibs - func_append oldobjs " $func_extract_archives_result" - fi - - # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then - cmds=$old_archive_from_new_cmds - else - - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles - func_append oldobjs " $func_extract_archives_result" - fi - - # POSIX demands no paths to be encoded in archives. We have - # to avoid creating archives with duplicate basenames if we - # might have to extract them afterwards, e.g., when creating a - # static archive out of a convenience library, or when linking - # the entirety of a libtool archive into another (currently - # not supported by libtool). - if (for obj in $oldobjs - do - func_basename "$obj" - $ECHO "$func_basename_result" - done | sort | sort -uc >/dev/null 2>&1); then - : - else - echo "copying selected object files to avoid basename conflicts..." - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - func_mkdir_p "$gentop" - save_oldobjs=$oldobjs - oldobjs= - counter=1 - for obj in $save_oldobjs - do - func_basename "$obj" - objbase="$func_basename_result" - case " $oldobjs " in - " ") oldobjs=$obj ;; - *[\ /]"$objbase "*) - while :; do - # Make sure we don't pick an alternate name that also - # overlaps. - newobj=lt$counter-$objbase - func_arith $counter + 1 - counter=$func_arith_result - case " $oldobjs " in - *[\ /]"$newobj "*) ;; - *) if test ! -f "$gentop/$newobj"; then break; fi ;; - esac - done - func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" - func_append oldobjs " $gentop/$newobj" - ;; - *) func_append oldobjs " $obj" ;; - esac - done - fi - func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 - tool_oldlib=$func_to_tool_file_result - eval cmds=\"$old_archive_cmds\" - - func_len " $cmds" - len=$func_len_result - if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - cmds=$old_archive_cmds - elif test -n "$archiver_list_spec"; then - func_verbose "using command file archive linking..." - for obj in $oldobjs - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" - done > $output_objdir/$libname.libcmd - func_to_tool_file "$output_objdir/$libname.libcmd" - oldobjs=" $archiver_list_spec$func_to_tool_file_result" - cmds=$old_archive_cmds - else - # the command line is too long to link in one step, link in parts - func_verbose "using piecewise archive linking..." - save_RANLIB=$RANLIB - RANLIB=: - objlist= - concat_cmds= - save_oldobjs=$oldobjs - oldobjs= - # Is there a better way of finding the last object in the list? - for obj in $save_oldobjs - do - last_oldobj=$obj - done - eval test_cmds=\"$old_archive_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 - for obj in $save_oldobjs - do - func_len " $obj" - func_arith $len + $func_len_result - len=$func_arith_result - func_append objlist " $obj" - if test "$len" -lt "$max_cmd_len"; then - : - else - # the above command should be used before it gets too long - oldobjs=$objlist - if test "$obj" = "$last_oldobj" ; then - RANLIB=$save_RANLIB - fi - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" - objlist= - len=$len0 - fi - done - RANLIB=$save_RANLIB - oldobjs=$objlist - if test "X$oldobjs" = "X" ; then - eval cmds=\"\$concat_cmds\" - else - eval cmds=\"\$concat_cmds~\$old_archive_cmds\" - fi - fi - fi - func_execute_cmds "$cmds" 'exit $?' - done - - test -n "$generated" && \ - func_show_eval "${RM}r$generated" - - # Now create the libtool archive. - case $output in - *.la) - old_library= - test "$build_old_libs" = yes && old_library="$libname.$libext" - func_verbose "creating $output" - - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi - done - # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` - if test "$hardcode_automatic" = yes ; then - relink_command= - fi - - # Only create the output if not a dry run. - $opt_dry_run || { - for installed in no yes; do - if test "$installed" = yes; then - if test -z "$install_libdir"; then - break - fi - output="$output_objdir/$outputname"i - # Replace all uninstalled libtool libraries with the installed ones - newdependency_libs= - for deplib in $dependency_libs; do - case $deplib in - *.la) - func_basename "$deplib" - name="$func_basename_result" - func_resolve_sysroot "$deplib" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` - test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" - func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" - ;; - -L*) - func_stripname -L '' "$deplib" - func_replace_sysroot "$func_stripname_result" - func_append newdependency_libs " -L$func_replace_sysroot_result" - ;; - -R*) - func_stripname -R '' "$deplib" - func_replace_sysroot "$func_stripname_result" - func_append newdependency_libs " -R$func_replace_sysroot_result" - ;; - *) func_append newdependency_libs " $deplib" ;; - esac - done - dependency_libs="$newdependency_libs" - newdlfiles= - - for lib in $dlfiles; do - case $lib in - *.la) - func_basename "$lib" - name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" - func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" - ;; - *) func_append newdlfiles " $lib" ;; - esac - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - *.la) - # Only pass preopened files to the pseudo-archive (for - # eventual linking with the app. that links it) if we - # didn't already link the preopened objects directly into - # the library: - func_basename "$lib" - name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" - func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" - ;; - esac - done - dlprefiles="$newdlprefiles" - else - newdlfiles= - for lib in $dlfiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac - func_append newdlfiles " $abs" - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac - func_append newdlprefiles " $abs" - done - dlprefiles="$newdlprefiles" - fi - $RM $output - # place dlname in correct position for cygwin - # In fact, it would be nice if we could use this code for all target - # systems that can't hard-code library paths into their executables - # and that have no shared library path variable independent of PATH, - # but it turns out we can't easily determine that from inspecting - # libtool variables, so we have to hard-code the OSs to which it - # applies here; at the moment, that means platforms that use the PE - # object format with DLL files. See the long comment at the top of - # tests/bindir.at for full details. - tdlname=$dlname - case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) - # If a -bindir argument was supplied, place the dll there. - if test "x$bindir" != x ; - then - func_relative_path "$install_libdir" "$bindir" - tdlname=$func_relative_path_result$dlname - else - # Otherwise fall back on heuristic. - tdlname=../bin/$dlname - fi - ;; - esac - $ECHO > $output "\ -# $outputname - a libtool library file -# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# The name that we can dlopen(3). -dlname='$tdlname' - -# Names of this library. -library_names='$library_names' - -# The name of the static archive. -old_library='$old_library' - -# Linker flags that can not go in dependency_libs. -inherited_linker_flags='$new_inherited_linker_flags' - -# Libraries that this one depends upon. -dependency_libs='$dependency_libs' - -# Names of additional weak libraries provided by this library -weak_library_names='$weak_libs' - -# Version information for $libname. -current=$current -age=$age -revision=$revision - -# Is this an already installed library? -installed=$installed - -# Should we warn about portability when linking against -modules? -shouldnotlink=$module - -# Files to dlopen/dlpreopen -dlopen='$dlfiles' -dlpreopen='$dlprefiles' - -# Directory that this library needs to be installed in: -libdir='$install_libdir'" - if test "$installed" = no && test "$need_relink" = yes && \ - test -n "$relink_command"; then - $ECHO >> $output "\ -relink_command=\"$relink_command\"" - fi - done - } - - # Do a symbolic link so that the libtool archive can be found in - # LD_LIBRARY_PATH before the program is installed. - func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' - ;; - esac - exit $EXIT_SUCCESS -} - -{ test "$opt_mode" = link || test "$opt_mode" = relink; } && - func_mode_link ${1+"$@"} - - -# func_mode_uninstall arg... -func_mode_uninstall () -{ - $opt_debug - RM="$nonopt" - files= - rmforce= - exit_status=0 - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - for arg - do - case $arg in - -f) func_append RM " $arg"; rmforce=yes ;; - -*) func_append RM " $arg" ;; - *) func_append files " $arg" ;; - esac - done - - test -z "$RM" && \ - func_fatal_help "you must specify an RM program" - - rmdirs= - - for file in $files; do - func_dirname "$file" "" "." - dir="$func_dirname_result" - if test "X$dir" = X.; then - odir="$objdir" - else - odir="$dir/$objdir" - fi - func_basename "$file" - name="$func_basename_result" - test "$opt_mode" = uninstall && odir="$dir" - - # Remember odir for removal later, being careful to avoid duplicates - if test "$opt_mode" = clean; then - case " $rmdirs " in - *" $odir "*) ;; - *) func_append rmdirs " $odir" ;; - esac - fi - - # Don't error if the file doesn't exist and rm -f was used. - if { test -L "$file"; } >/dev/null 2>&1 || - { test -h "$file"; } >/dev/null 2>&1 || - test -f "$file"; then - : - elif test -d "$file"; then - exit_status=1 - continue - elif test "$rmforce" = yes; then - continue - fi - - rmfiles="$file" - - case $name in - *.la) - # Possibly a libtool archive, so verify it. - if func_lalib_p "$file"; then - func_source $dir/$name - - # Delete the libtool libraries and symlinks. - for n in $library_names; do - func_append rmfiles " $odir/$n" - done - test -n "$old_library" && func_append rmfiles " $odir/$old_library" - - case "$opt_mode" in - clean) - case " $library_names " in - *" $dlname "*) ;; - *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; - esac - test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" - ;; - uninstall) - if test -n "$library_names"; then - # Do each command in the postuninstall commands. - func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. - func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' - fi - # FIXME: should reinstall the best remaining shared library. - ;; - esac - fi - ;; - - *.lo) - # Possibly a libtool object, so verify it. - if func_lalib_p "$file"; then - - # Read the .lo file - func_source $dir/$name - - # Add PIC object to the list of files to remove. - if test -n "$pic_object" && - test "$pic_object" != none; then - func_append rmfiles " $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" && - test "$non_pic_object" != none; then - func_append rmfiles " $dir/$non_pic_object" - fi - fi - ;; - - *) - if test "$opt_mode" = clean ; then - noexename=$name - case $file in - *.exe) - func_stripname '' '.exe' "$file" - file=$func_stripname_result - func_stripname '' '.exe' "$name" - noexename=$func_stripname_result - # $file with .exe has already been added to rmfiles, - # add $file without .exe - func_append rmfiles " $file" - ;; - esac - # Do a test to see if this is a libtool program. - if func_ltwrapper_p "$file"; then - if func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - relink_command= - func_source $func_ltwrapper_scriptname_result - func_append rmfiles " $func_ltwrapper_scriptname_result" - else - relink_command= - func_source $dir/$noexename - fi - - # note $name still contains .exe if it was in $file originally - # as does the version of $file that was added into $rmfiles - func_append rmfiles " $odir/$name $odir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then - func_append rmfiles " $odir/lt-$name" - fi - if test "X$noexename" != "X$name" ; then - func_append rmfiles " $odir/lt-${noexename}.c" - fi - fi - fi - ;; - esac - func_show_eval "$RM $rmfiles" 'exit_status=1' - done - - # Try to remove the ${objdir}s in the directories where we deleted files - for dir in $rmdirs; do - if test -d "$dir"; then - func_show_eval "rmdir $dir >/dev/null 2>&1" - fi - done - - exit $exit_status -} - -{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && - func_mode_uninstall ${1+"$@"} - -test -z "$opt_mode" && { - help="$generic_help" - func_fatal_help "you must specify a MODE" -} - -test -z "$exec_cmd" && \ - func_fatal_help "invalid operation mode \`$opt_mode'" - -if test -n "$exec_cmd"; then - eval exec "$exec_cmd" - exit $EXIT_FAILURE -fi - -exit $exit_status - - -# The TAGs below are defined such that we never get into a situation -# in which we disable both kinds of libraries. Given conflicting -# choices, we go for a static library, that is the most portable, -# since we can't tell whether shared libraries were disabled because -# the user asked for that or because the platform doesn't support -# them. This is particularly important on AIX, because we don't -# support having both static and shared libraries enabled at the same -# time on that platform, so we default to a shared-only configuration. -# If a disable-shared tag is given, we'll fallback to a static-only -# configuration. But we'll never go from static-only to shared-only. - -# ### BEGIN LIBTOOL TAG CONFIG: disable-shared -build_libtool_libs=no -build_old_libs=yes -# ### END LIBTOOL TAG CONFIG: disable-shared - -# ### BEGIN LIBTOOL TAG CONFIG: disable-static -build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` -# ### END LIBTOOL TAG CONFIG: disable-static - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: -# vi:sw=2 - diff --git a/libzip-1.2.0/m4/.empty b/libzip-1.2.0/m4/.empty deleted file mode 100644 index 8381f5a80..000000000 --- a/libzip-1.2.0/m4/.empty +++ /dev/null @@ -1 +0,0 @@ -Directory needed by autoconf, but hg doesn't track empty dirs. diff --git a/libzip-1.2.0/m4/libtool.m4 b/libzip-1.2.0/m4/libtool.m4 deleted file mode 100644 index 44e0ecff1..000000000 --- a/libzip-1.2.0/m4/libtool.m4 +++ /dev/null @@ -1,7982 +0,0 @@ -# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -m4_define([_LT_COPYING], [dnl -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -]) - -# serial 57 LT_INIT - - -# LT_PREREQ(VERSION) -# ------------------ -# Complain and exit if this libtool version is less that VERSION. -m4_defun([LT_PREREQ], -[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, - [m4_default([$3], - [m4_fatal([Libtool version $1 or higher is required], - 63)])], - [$2])]) - - -# _LT_CHECK_BUILDDIR -# ------------------ -# Complain if the absolute build directory name contains unusual characters -m4_defun([_LT_CHECK_BUILDDIR], -[case `pwd` in - *\ * | *\ *) - AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; -esac -]) - - -# LT_INIT([OPTIONS]) -# ------------------ -AC_DEFUN([LT_INIT], -[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT -AC_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_CC_BASENAME(CC) -# ------------------- -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -m4_defun([_LT_CC_BASENAME], -[for cc_temp in $1""; do - case $cc_temp in - compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; - distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` -]) - - -# _LT_FILEUTILS_DEFAULTS -# ---------------------- -# It is okay to use these file commands and assume they have been set -# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. -m4_defun([_LT_FILEUTILS_DEFAULTS], -[: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} -])# _LT_FILEUTILS_DEFAULTS - - -# _LT_SETUP -# --------- -m4_defun([_LT_SETUP], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -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 - -_LT_CONFIG_LIBTOOL_INIT([ -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi -]) -if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - -_LT_CHECK_OBJDIR - -m4_require([_LT_TAG_COMPILER])dnl - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a - -with_gnu_ld="$lt_cv_prog_gnu_ld" - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -_LT_CC_BASENAME([$compiler]) - -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - _LT_PATH_MAGIC - fi - ;; -esac - -# Use C for the default configuration in the libtool script -LT_SUPPORTED_TAG([CC]) -_LT_LANG_C_CONFIG -_LT_LANG_DEFAULT_CONFIG -_LT_CONFIG_COMMANDS -])# _LT_SETUP - - -# _LT_PREPARE_SED_QUOTE_VARS -# -------------------------- -# Define a few sed substitution that help us do robust quoting. -m4_defun([_LT_PREPARE_SED_QUOTE_VARS], -[# Backslashify metacharacters that are still active within -# double-quoted strings. -sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([["`\\]]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' -]) - -# _LT_PROG_LTMAIN -# --------------- -# Note that this code is called both from `configure', and `config.status' -# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, -# `config.status' has no value for ac_aux_dir unless we are using Automake, -# so we pass a copy along to make sure it has a sensible value anyway. -m4_defun([_LT_PROG_LTMAIN], -[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl -_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) -ltmain="$ac_aux_dir/ltmain.sh" -])# _LT_PROG_LTMAIN - - -## ------------------------------------- ## -## Accumulate code for creating libtool. ## -## ------------------------------------- ## - -# So that we can recreate a full libtool script including additional -# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS -# in macros and then make a single call at the end using the `libtool' -# label. - - -# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) -# ---------------------------------------- -# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL_INIT], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_INIT], - [$1 -])])]) - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_INIT]) - - -# _LT_CONFIG_LIBTOOL([COMMANDS]) -# ------------------------------ -# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], - [$1 -])])]) - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) - - -# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) -# ----------------------------------------------------- -m4_defun([_LT_CONFIG_SAVE_COMMANDS], -[_LT_CONFIG_LIBTOOL([$1]) -_LT_CONFIG_LIBTOOL_INIT([$2]) -]) - - -# _LT_FORMAT_COMMENT([COMMENT]) -# ----------------------------- -# Add leading comment marks to the start of each line, and a trailing -# full-stop to the whole comment if one is not present already. -m4_define([_LT_FORMAT_COMMENT], -[m4_ifval([$1], [ -m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], - [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) -)]) - - - -## ------------------------ ## -## FIXME: Eliminate VARNAME ## -## ------------------------ ## - - -# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) -# ------------------------------------------------------------------- -# CONFIGNAME is the name given to the value in the libtool script. -# VARNAME is the (base) name used in the configure script. -# VALUE may be 0, 1 or 2 for a computed quote escaped value based on -# VARNAME. Any other value will be used directly. -m4_define([_LT_DECL], -[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], - [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], - [m4_ifval([$1], [$1], [$2])]) - lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) - m4_ifval([$4], - [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) - lt_dict_add_subkey([lt_decl_dict], [$2], - [tagged?], [m4_ifval([$5], [yes], [no])])]) -]) - - -# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) -# -------------------------------------------------------- -m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) - - -# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_tag_varnames], -[_lt_decl_filter([tagged?], [yes], $@)]) - - -# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) -# --------------------------------------------------------- -m4_define([_lt_decl_filter], -[m4_case([$#], - [0], [m4_fatal([$0: too few arguments: $#])], - [1], [m4_fatal([$0: too few arguments: $#: $1])], - [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], - [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], - [lt_dict_filter([lt_decl_dict], $@)])[]dnl -]) - - -# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) -# -------------------------------------------------- -m4_define([lt_decl_quote_varnames], -[_lt_decl_filter([value], [1], $@)]) - - -# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_dquote_varnames], -[_lt_decl_filter([value], [2], $@)]) - - -# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_varnames_tagged], -[m4_assert([$# <= 2])dnl -_$0(m4_quote(m4_default([$1], [[, ]])), - m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), - m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) -m4_define([_lt_decl_varnames_tagged], -[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) - - -# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_all_varnames], -[_$0(m4_quote(m4_default([$1], [[, ]])), - m4_if([$2], [], - m4_quote(lt_decl_varnames), - m4_quote(m4_shift($@))))[]dnl -]) -m4_define([_lt_decl_all_varnames], -[lt_join($@, lt_decl_varnames_tagged([$1], - lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl -]) - - -# _LT_CONFIG_STATUS_DECLARE([VARNAME]) -# ------------------------------------ -# Quote a variable value, and forward it to `config.status' so that its -# declaration there will have the same value as in `configure'. VARNAME -# must have a single quote delimited value for this to work. -m4_define([_LT_CONFIG_STATUS_DECLARE], -[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) - - -# _LT_CONFIG_STATUS_DECLARATIONS -# ------------------------------ -# We delimit libtool config variables with single quotes, so when -# we write them to config.status, we have to be sure to quote all -# embedded single quotes properly. In configure, this macro expands -# each variable declared with _LT_DECL (and _LT_TAGDECL) into: -# -# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' -m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], -[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), - [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) - - -# _LT_LIBTOOL_TAGS -# ---------------- -# Output comment and list of tags supported by the script -m4_defun([_LT_LIBTOOL_TAGS], -[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl -available_tags="_LT_TAGS"dnl -]) - - -# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) -# ----------------------------------- -# Extract the dictionary values for VARNAME (optionally with TAG) and -# expand to a commented shell variable setting: -# -# # Some comment about what VAR is for. -# visible_name=$lt_internal_name -m4_define([_LT_LIBTOOL_DECLARE], -[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], - [description])))[]dnl -m4_pushdef([_libtool_name], - m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl -m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), - [0], [_libtool_name=[$]$1], - [1], [_libtool_name=$lt_[]$1], - [2], [_libtool_name=$lt_[]$1], - [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl -m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl -]) - - -# _LT_LIBTOOL_CONFIG_VARS -# ----------------------- -# Produce commented declarations of non-tagged libtool config variables -# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' -# script. Tagged libtool config variables (even for the LIBTOOL CONFIG -# section) are produced by _LT_LIBTOOL_TAG_VARS. -m4_defun([_LT_LIBTOOL_CONFIG_VARS], -[m4_foreach([_lt_var], - m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) - - -# _LT_LIBTOOL_TAG_VARS(TAG) -# ------------------------- -m4_define([_LT_LIBTOOL_TAG_VARS], -[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) - - -# _LT_TAGVAR(VARNAME, [TAGNAME]) -# ------------------------------ -m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) - - -# _LT_CONFIG_COMMANDS -# ------------------- -# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of -# variables for single and double quote escaping we saved from calls -# to _LT_DECL, we can put quote escaped variables declarations -# into `config.status', and then the shell code to quote escape them in -# for loops in `config.status'. Finally, any additional code accumulated -# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. -m4_defun([_LT_CONFIG_COMMANDS], -[AC_PROVIDE_IFELSE([LT_OUTPUT], - dnl If the libtool generation code has been placed in $CONFIG_LT, - dnl instead of duplicating it all over again into config.status, - dnl then we will have config.status run $CONFIG_LT later, so it - dnl needs to know what name is stored there: - [AC_CONFIG_COMMANDS([libtool], - [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], - dnl If the libtool generation code is destined for config.status, - dnl expand the accumulated commands and init code now: - [AC_CONFIG_COMMANDS([libtool], - [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) -])#_LT_CONFIG_COMMANDS - - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], -[ - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -_LT_CONFIG_STATUS_DECLARATIONS -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$[]1 -_LTECHO_EOF' -} - -# Quote evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_quote_varnames); do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" - ;; - *) - 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\\"\\\`\\\\\\"" - ;; - *) - 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 $lt_write_fail = 0 && chmod +x $1[]dnl -m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT - -# LT_OUTPUT -# --------- -# This macro allows early generation of the libtool script (before -# AC_OUTPUT is called), incase it is used in configure for compilation -# tests. -AC_DEFUN([LT_OUTPUT], -[: ${CONFIG_LT=./config.lt} -AC_MSG_NOTICE([creating $CONFIG_LT]) -_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], -[# Run this file to recreate a libtool stub with the current configuration.]) - -cat >>"$CONFIG_LT" <<\_LTEOF -lt_cl_silent=false -exec AS_MESSAGE_LOG_FD>>config.log -{ - echo - AS_BOX([Running $as_me.]) -} >&AS_MESSAGE_LOG_FD - -lt_cl_help="\ -\`$as_me' creates a local libtool stub from the current configuration, -for use in further configure time tests before the real libtool is -generated. - -Usage: $[0] [[OPTIONS]] - - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - -Report bugs to ." - -lt_cl_version="\ -m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl -m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) -configured by $[0], generated by m4_PACKAGE_STRING. - -Copyright (C) 2011 Free Software Foundation, Inc. -This config.lt script is free software; the Free Software Foundation -gives unlimited permision to copy, distribute and modify it." - -while test $[#] != 0 -do - case $[1] in - --version | --v* | -V ) - echo "$lt_cl_version"; exit 0 ;; - --help | --h* | -h ) - echo "$lt_cl_help"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --quiet | --q* | --silent | --s* | -q ) - lt_cl_silent=: ;; - - -*) AC_MSG_ERROR([unrecognized option: $[1] -Try \`$[0] --help' for more information.]) ;; - - *) AC_MSG_ERROR([unrecognized argument: $[1] -Try \`$[0] --help' for more information.]) ;; - esac - shift -done - -if $lt_cl_silent; then - exec AS_MESSAGE_FD>/dev/null -fi -_LTEOF - -cat >>"$CONFIG_LT" <<_LTEOF -_LT_OUTPUT_LIBTOOL_COMMANDS_INIT -_LTEOF - -cat >>"$CONFIG_LT" <<\_LTEOF -AC_MSG_NOTICE([creating $ofile]) -_LT_OUTPUT_LIBTOOL_COMMANDS -AS_EXIT(0) -_LTEOF -chmod +x "$CONFIG_LT" - -# configure is writing to config.log, but config.lt does its own redirection, -# appending to config.log, which fails on DOS, as config.log is still kept -# open by configure. Here we exec the FD to /dev/null, effectively closing -# config.log, so it can be properly (re)opened and appended to by config.lt. -lt_cl_success=: -test "$silent" = yes && - lt_config_lt_args="$lt_config_lt_args --quiet" -exec AS_MESSAGE_LOG_FD>/dev/null -$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false -exec AS_MESSAGE_LOG_FD>>config.log -$lt_cl_success || AS_EXIT(1) -])# LT_OUTPUT - - -# _LT_CONFIG(TAG) -# --------------- -# If TAG is the built-in tag, create an initial libtool script with a -# default configuration from the untagged config vars. Otherwise add code -# to config.status for appending the configuration named by TAG from the -# matching tagged config vars. -m4_defun([_LT_CONFIG], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -_LT_CONFIG_SAVE_COMMANDS([ - m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl - m4_if(_LT_TAG, [C], [ - # See if we are running on zsh, and set the options which allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - - cfgfile="${ofile}T" - trap "$RM \"$cfgfile\"; exit 1" 1 2 15 - $RM "$cfgfile" - - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL - -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -_LT_COPYING -_LT_LIBTOOL_TAGS - -# ### BEGIN LIBTOOL CONFIG -_LT_LIBTOOL_CONFIG_VARS -_LT_LIBTOOL_TAG_VARS -# ### END LIBTOOL CONFIG - -_LT_EOF - - case $host_os in - aix3*) - cat <<\_LT_EOF >> "$cfgfile" -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -_LT_EOF - ;; - esac - - _LT_PROG_LTMAIN - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - _LT_PROG_REPLACE_SHELLFNS - - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" -], -[cat <<_LT_EOF >> "$ofile" - -dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded -dnl in a comment (ie after a #). -# ### BEGIN LIBTOOL TAG CONFIG: $1 -_LT_LIBTOOL_TAG_VARS(_LT_TAG) -# ### END LIBTOOL TAG CONFIG: $1 -_LT_EOF -])dnl /m4_if -], -[m4_if([$1], [], [ - PACKAGE='$PACKAGE' - VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' - RM='$RM' - ofile='$ofile'], []) -])dnl /_LT_CONFIG_SAVE_COMMANDS -])# _LT_CONFIG - - -# LT_SUPPORTED_TAG(TAG) -# --------------------- -# Trace this macro to discover what tags are supported by the libtool -# --tag option, using: -# autoconf --trace 'LT_SUPPORTED_TAG:$1' -AC_DEFUN([LT_SUPPORTED_TAG], []) - - -# C support is built-in for now -m4_define([_LT_LANG_C_enabled], []) -m4_define([_LT_TAGS], []) - - -# LT_LANG(LANG) -# ------------- -# Enable libtool support for the given language if not already enabled. -AC_DEFUN([LT_LANG], -[AC_BEFORE([$0], [LT_OUTPUT])dnl -m4_case([$1], - [C], [_LT_LANG(C)], - [C++], [_LT_LANG(CXX)], - [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 $_lt_result -eq 0; then - lt_cv_apple_cc_single_mod=yes - else - cat conftest.err >&AS_MESSAGE_LOG_FD - fi - rm -rf libconftest.dylib* - rm -f conftest.* - fi]) - - AC_CACHE_CHECK([for -exported_symbols_list linker flag], - [lt_cv_ld_exported_symbols_list], - [lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [lt_cv_ld_exported_symbols_list=yes], - [lt_cv_ld_exported_symbols_list=no]) - LDFLAGS="$save_LDFLAGS" - ]) - - 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 $_lt_result -eq 0 && $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 "$lt_cv_apple_cc_single_mod" = "yes"; then - _lt_dar_single_mod='$single_module' - fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' - else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; 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 "$lt_cv_ld_force_load" = "yes"; 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*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test "$_lt_dar_can_shared" = "yes"; 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 "$lt_cv_apple_cc_single_mod" != "yes"; then - _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" - fi -],[]) - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi -]) - -# _LT_SYS_MODULE_PATH_AIX([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 "${lt_cv_aix_libpath+set}" = 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 which will find a shell with a builtin -# printf (which 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], -[ --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 "$GCC" = yes; 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 in which 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 "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|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 x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -*-*solaris*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) - case $host in - i?86-*-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 "$ac_status" -eq 0; then - # Ensure the archiver fails upon bogus file names. - rm -f conftest.$ac_objext libconftest.a - AC_TRY_EVAL([lt_ar_try]) - if test "$ac_status" -ne 0; then - lt_cv_ar_at_file=@ - fi - fi - rm -f conftest.* libconftest.a - ]) - ]) - -if test "x$lt_cv_ar_at_file" = xno; 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 - 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" - # 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 x"[$]$2" = xyes; then - m4_if([$5], , :, [$5]) -else - m4_if([$6], , :, [$6]) -fi -])# _LT_COMPILER_OPTION - -# Old name: -AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) - - -# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------- -# Check whether the given linker option works -AC_DEFUN([_LT_LINKER_OPTION], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_SED])dnl -AC_CACHE_CHECK([$1], [$2], - [$2=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $3" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&AS_MESSAGE_LOG_FD - $ECHO "$_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 x"[$]$2" = xyes; then - m4_if([$4], , :, [$4]) -else - m4_if([$5], , :, [$5]) -fi -])# _LT_LINKER_OPTION - -# Old name: -AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) - - -# LT_CMD_MAX_LEN -#--------------- -AC_DEFUN([LT_CMD_MAX_LEN], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -# find the maximum length of command line arguments -AC_MSG_CHECKING([the maximum length of command line arguments]) -AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl - i=0 - teststring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw* | cegcc*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - 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; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - 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"; 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 $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on - # massive amounts of additional arguments before passing them to the - # linker. It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac -]) -if test -n $lt_cv_sys_max_cmd_len ; then - AC_MSG_RESULT($lt_cv_sys_max_cmd_len) -else - AC_MSG_RESULT(none) -fi -max_cmd_len=$lt_cv_sys_max_cmd_len -_LT_DECL([], [max_cmd_len], [0], - [What is the maximum length of a command?]) -])# LT_CMD_MAX_LEN - -# Old name: -AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) - - -# _LT_HEADER_DLFCN -# ---------------- -m4_defun([_LT_HEADER_DLFCN], -[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl -])# _LT_HEADER_DLFCN - - -# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, -# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) -# ---------------------------------------------------------------- -m4_defun([_LT_TRY_DLOPEN_SELF], -[m4_require([_LT_HEADER_DLFCN])dnl -if test "$cross_compiling" = yes; then : - [$4] -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -[#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisbility=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 "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32* | cegcc*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ]) - ;; - - *) - AC_CHECK_FUNC([shl_load], - [lt_cv_dlopen="shl_load"], - [AC_CHECK_LIB([dld], [shl_load], - [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], - [AC_CHECK_FUNC([dlopen], - [lt_cv_dlopen="dlopen"], - [AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], - [AC_CHECK_LIB([svld], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], - [AC_CHECK_LIB([dld], [dld_link], - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) - ]) - ]) - ]) - ]) - ]) - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - AC_CACHE_CHECK([whether a program can dlopen itself], - lt_cv_dlopen_self, [dnl - _LT_TRY_DLOPEN_SELF( - lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, - lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) - ]) - - if test "x$lt_cv_dlopen_self" = xyes; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - AC_CACHE_CHECK([whether a statically linked program can dlopen itself], - lt_cv_dlopen_self_static, [dnl - _LT_TRY_DLOPEN_SELF( - lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, - lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) - ]) - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi -_LT_DECL([dlopen_support], [enable_dlopen], [0], - [Whether dlopen is supported]) -_LT_DECL([dlopen_self], [enable_dlopen_self], [0], - [Whether dlopen of programs is supported]) -_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], - [Whether dlopen of statically linked programs is supported]) -])# LT_SYS_DLOPEN_SELF - -# Old name: -AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) - - -# _LT_COMPILER_C_O([TAGNAME]) -# --------------------------- -# Check to see if options -c and -o are simultaneously supported by compiler. -# This macro does not hard code the compiler like AC_PROG_CC_C_O. -m4_defun([_LT_COMPILER_C_O], -[m4_require([_LT_DECL_SED])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_TAG_COMPILER])dnl -AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], - [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], - [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$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 "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - AC_MSG_CHECKING([if we can lock with hard links]) - hard_links=yes - $RM conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - AC_MSG_RESULT([$hard_links]) - if test "$hard_links" = no; then - AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) - need_locks=warn - fi -else - need_locks=no -fi -_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) -])# _LT_COMPILER_FILE_LOCKS - - -# _LT_CHECK_OBJDIR -# ---------------- -m4_defun([_LT_CHECK_OBJDIR], -[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], -[rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null]) -objdir=$lt_cv_objdir -_LT_DECL([], [objdir], [0], - [The name of the directory that contains temporary libtool files])dnl -m4_pattern_allow([LT_OBJDIR])dnl -AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", - [Define to the sub-directory in which libtool stores uninstalled libraries.]) -])# _LT_CHECK_OBJDIR - - -# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) -# -------------------------------------- -# Check hardcoding attributes. -m4_defun([_LT_LINKER_HARDCODE_LIBPATH], -[AC_MSG_CHECKING([how to hardcode library paths into programs]) -_LT_TAGVAR(hardcode_action, $1)= -if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || - test -n "$_LT_TAGVAR(runpath_var, $1)" || - test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then - - # We can hardcode non-existent directories. - if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && - test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then - # Linking always hardcodes the temporary library directory. - _LT_TAGVAR(hardcode_action, $1)=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - _LT_TAGVAR(hardcode_action, $1)=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - _LT_TAGVAR(hardcode_action, $1)=unsupported -fi -AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) - -if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || - test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi -_LT_TAGDECL([], [hardcode_action], [0], - [How to hardcode a shared library path into an executable]) -])# _LT_LINKER_HARDCODE_LIBPATH - - -# _LT_CMD_STRIPLIB -# ---------------- -m4_defun([_LT_CMD_STRIPLIB], -[m4_require([_LT_DECL_EGREP]) -striplib= -old_striplib= -AC_MSG_CHECKING([whether stripping libraries is possible]) -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - fi - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac -fi -_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) -_LT_DECL([], [striplib], [1]) -])# _LT_CMD_STRIPLIB - - -# _LT_SYS_DYNAMIC_LINKER([TAG]) -# ----------------------------- -# PORTME Fill in your ld.so characteristics -m4_defun([_LT_SYS_DYNAMIC_LINKER], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_OBJDUMP])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_CHECK_SHELL_FEATURES])dnl -AC_MSG_CHECKING([dynamic linker characteristics]) -m4_if([$1], - [], [ -if test "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - 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` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[[lt_foo]]++; } - if (lt_freq[[lt_foo]] == 1) { print lt_foo; } -}'` - # 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 "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[[01]] | aix4.[[01]].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - case $host_cpu in - powerpc) - # Since July 2007 AmigaOS4 officially supports .so libraries. - # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - ;; - m68k) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - esac - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[[45]]*) - version_type=linux # 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} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2.*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[[01]]* | freebsdelf3.[[01]]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ - freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux # 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=no - hardcode_into_libs=yes - ;; - -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=yes - 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 "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555, ... - postinstall_cmds='chmod 555 $lib' - # 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 "$lt_cv_prog_gnu_ld" = yes; 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 - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-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 - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;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*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[[89]] | openbsd2.[[89]].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux # 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 "$with_gnu_ld" = yes; 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=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -tpf*) - # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux # 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 "$dynamic_linker" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -fi - -_LT_DECL([], [variables_saved_for_relink], [1], - [Variables whose values should be saved in libtool wrapper scripts and - restored at link time]) -_LT_DECL([], [need_lib_prefix], [0], - [Do we need the "lib" prefix for modules?]) -_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) -_LT_DECL([], [version_type], [0], [Library versioning type]) -_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) -_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) -_LT_DECL([], [shlibpath_overrides_runpath], [0], - [Is shlibpath searched before the hard-coded library search path?]) -_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) -_LT_DECL([], [library_names_spec], [1], - [[List of archive names. First name is the real one, the rest are links. - The last name is the one that the linker finds with -lNAME]]) -_LT_DECL([], [soname_spec], [1], - [[The coded name of the library, if different from the real name]]) -_LT_DECL([], [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], [2], - [Run-time system search path for libraries]) -])# _LT_SYS_DYNAMIC_LINKER - - -# _LT_PATH_TOOL_PREFIX(TOOL) -# -------------------------- -# find a file program which can recognize shared library -AC_DEFUN([_LT_PATH_TOOL_PREFIX], -[m4_require([_LT_DECL_EGREP])dnl -AC_MSG_CHECKING([for $1]) -AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, -[case $MAGIC_CMD in -[[\\/*] | ?:[\\/]*]) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -dnl $ac_dummy forces splitting on constant user-supplied paths. -dnl POSIX.2 word splitting is done only on the output of word expansions, -dnl not every word. This closes a longstanding sh security hole. - ac_dummy="m4_if([$2], , $PATH, [$2])" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$1; then - lt_cv_path_MAGIC_CMD="$ac_dir/$1" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac]) -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - AC_MSG_RESULT($MAGIC_CMD) -else - AC_MSG_RESULT(no) -fi -_LT_DECL([], [MAGIC_CMD], [0], - [Used to examine libraries when file_magic_cmd begins with "file"])dnl -])# _LT_PATH_TOOL_PREFIX - -# Old name: -AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) - - -# _LT_PATH_MAGIC -# -------------- -# find a file program which can recognize a shared library -m4_defun([_LT_PATH_MAGIC], -[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) - else - MAGIC_CMD=: - fi -fi -])# _LT_PATH_MAGIC - - -# LT_PATH_LD -# ---------- -# find the pathname to the GNU or non-GNU linker -AC_DEFUN([LT_PATH_LD], -[AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_DECL_EGREP])dnl -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 "$withval" = no || with_gnu_ld=yes], - [with_gnu_ld=no])dnl - -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by $CC]) - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [[\\/]]* | ?:[[\\/]]*) - re_direlt='/[[^/]][[^/]]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` - while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do - ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL(lt_cv_path_LD, -[if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - # 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 - ;; - -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -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) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; - -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -tpf*) - lt_cv_deplibs_check_method=pass_all - ;; -esac -]) - -file_magic_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 - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS="$lt_save_ifs" - done - : ${lt_cv_path_NM=no} -fi]) -if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" -else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$DUMPBIN"; then : - # Let the user override the test. - else - AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) - case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in - *COFF*) - DUMPBIN="$DUMPBIN -symbols" - ;; - *) - 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 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 "x$lt_cv_path_mainfest_tool" != xyes; then - MANIFEST_TOOL=: -fi -_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl -])# _LT_PATH_MANIFEST_TOOL - - -# 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 "$GCC" = yes; 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 "$host_cpu" = ia64; then - symcode='[[ABCDEGRST]]' - fi - ;; -irix* | nonstopux*) - symcode='[[BCDEGRST]]' - ;; -osf*) - symcode='[[BCDEGQRST]]' - ;; -solaris*) - symcode='[[BDRT]]' - ;; -sco3.2v5*) - symcode='[[DT]]' - ;; -sysv4.2uw2*) - symcode='[[DT]]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[[ABDT]]' - ;; -sysv4) - symcode='[[DFNSTU]]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[[ABCDGIRSTW]]' ;; -esac - -# Transform an extracted symbol line into a proper C declaration. -# Some systems (esp. on ia64) link data and code symbols differently, -# so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# Try without a prefix underscore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function - # and D for any global variable. - # Also find C++ and __fastcall symbols from MSVC++, - # which start with @ or ?. - lt_cv_sys_global_symbol_pipe="$AWK ['"\ -" {last_section=section; section=\$ 3};"\ -" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ -" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -" \$ 0!~/External *\|/{next};"\ -" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -" {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ -" ' prfx=^$ac_symprfx]" - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi - 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 con'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* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext - cat <<\_LT_EOF >> conftest.$ac_ext - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt__PROGRAM__LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif -_LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_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 "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done -]) -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - AC_MSG_RESULT(failed) -else - AC_MSG_RESULT(ok) -fi - -# 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_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_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 "$GXX" = yes; then - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | cygwin* | os2* | pw32* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - 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 "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - chorus*) - case $cc_basename in - cxch68*) - # Green Hills C++ Compiler - # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" - ;; - esac - ;; - 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 "$host_cpu" != ia64; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - fi - ;; - aCC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - interix*) - # This is c89, which is MS Visual C++ (no shared libs) - # Anyone wants to do a port? - ;; - irix5* | irix6* | nonstopux*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - # CC pic flag -KPIC is the default. - ;; - *) - ;; - esac - ;; - linux* | k*bsd*-gnu | kopensolaris*-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 "$GCC" = yes; then - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - - 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 "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - - hpux9* | hpux10* | hpux11*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC (with -KPIC) is the default. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - linux* | k*bsd*-gnu | kopensolaris*-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' - ;; - 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 which do not support PIC, -DPIC is meaningless: - *djgpp*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" - ;; -esac - -AC_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 AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global defined - # symbols, whereas GNU nm marks them as "W". - 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) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" - ;; - cygwin* | mingw* | cegcc*) - 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 "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - _LT_TAGVAR(ld_shlibs, $1)=yes - - # 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 "$with_gnu_ld" = yes; 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 "$lt_use_gnu_ld_interface" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - supports_anon_versioning=no - case `$LD -v 2>&1` in - *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 "$host_cpu" != ia64; then - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.19, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to install binutils -*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. -*** You will then need to restart the configuration process. - -_LT_EOF - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='' - ;; - m68k) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - 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 - ;; - - 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 "$host_os" = linux-dietlibc; then - case $cc_basename in - diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) - esac - fi - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then - tmp_addflag=' $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' ;; - 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 "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - - case $cc_basename in - xlf* | 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 "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $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 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - sunos4*) - _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $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 "$_LT_TAGVAR(ld_shlibs, $1)" = no; then - runpath_var= - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - _LT_TAGVAR(hardcode_direct, $1)=unsupported - fi - ;; - - aix[[4-9]]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global - # defined symbols, whereas GNU nm marks them as "W". - 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) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_TAGVAR(archive_cmds, $1)='' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' - - if test "$GCC" = yes; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - _LT_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$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 "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$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 "$with_gnu_ld" = yes; 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 - # This is similar to how AIX traditionally builds its shared libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='' - ;; - m68k) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - ;; - - bsdi[[45]]*) - _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - 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~linknames=' - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $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 "$GCC" = yes; 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 $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_direct, $1)=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; 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 "$with_gnu_ld" = no; 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 "$GCC" = yes && test "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $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 "$with_gnu_ld" = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - case $host_cpu in - hppa*64*|ia64*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $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 "$lt_cv_irix_exported_symbol" = yes; 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 - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - newsos6) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *nto* | *qnx*) - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - else - case $host_os in - openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - ;; - esac - fi - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - os2*) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && 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 "$GCC" = yes; 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 "$GCC" = yes; 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 "$GCC" = yes; then - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - fi - ;; - esac - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4) - case $host_vendor in - sni) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' - _LT_TAGVAR(hardcode_direct, $1)=no - ;; - motorola) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4.3*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - _LT_TAGVAR(ld_shlibs, $1)=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *) - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - - if test x$host_vendor = xsni; then - case $host in - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' - ;; - esac - fi - fi -]) -AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) -test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - -_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld - -_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl -_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl -_LT_DECL([], [extract_expsyms_cmds], [2], - [The commands to extract the exported symbol list from a shared archive]) - -# -# Do we need to explicitly link libc? -# -case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in -x|xyes) - # Assume -lc should be added - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $_LT_TAGVAR(archive_cmds, $1) in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - AC_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 which library types will actually be built - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) - - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_CONFIG($1) -fi -AC_LANG_POP -CC="$lt_save_CC" -])# _LT_LANG_C_CONFIG - - -# _LT_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 "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - AC_PROG_CXXCPP -else - _lt_caught_CXX_error=yes -fi - -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 "$_lt_caught_CXX_error" != yes; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="int some_variable = 0;" - - # Code to be used in simple link tests - lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_COMPILER - - # save warnings/boilerplate of simple test code - _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. - lt_save_CC=$CC - lt_save_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 "$GXX" = yes; then - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' - else - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - fi - - if test "$GXX" = yes; then - # Set up default GNU C++ configuration - - LT_PATH_LD - - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC $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 "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) - for ld_flag in $LDFLAGS; do - case $ld_flag in - *-brtl*) - aix_use_runtimelinking=yes - break - ;; - esac - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_TAGVAR(archive_cmds, $1)='' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' - - if test "$GXX" = yes; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)= - fi - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to - # export. - _LT_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an empty - # executable. - _LT_SYS_MODULE_PATH_AIX([$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 "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$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 "$with_gnu_ld" = yes; 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 - # This is similar to how AIX traditionally builds its shared - # libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - chorus*) - case $cc_basename in - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - cygwin* | mingw* | pw32* | cegcc*) - 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~linknames=' - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $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 (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - darwin* | rhapsody*) - _LT_DARWIN_LINKER_FEATURES($1) - ;; - - dgux*) - case $cc_basename in - ec++*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - ghcx*) - # Green Hills C++ Compiler - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - 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 - ;; - - gnu*) - ;; - - 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 $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes; 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 $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - hpux10*|hpux11*) - if test $with_gnu_ld = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - case $host_cpu in - hppa*64*|ia64*) - ;; - *) - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - esac - fi - case $host_cpu in - hppa*64*|ia64*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - esac - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aCC*) - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; then - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $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 "$GXX" = yes; then - if test "$with_gnu_ld" = no; 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) - 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 "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; 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 - ;; - - openbsd2*) - # C++ shared libraries are fairly broken - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - fi - output_verbose_link_cmd=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 "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - case $host in - osf3*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && 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 "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' - if $CC --version | $GREP -v '^2\.7' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -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 $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -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 can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(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 "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - - _LT_TAGVAR(GCC, $1)="$GXX" - _LT_TAGVAR(LD, $1)="$LD" - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_SYS_HIDDEN_LIBDEPS($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) - fi # test -n "$compiler" - - CC=$lt_save_CC - 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 "$_lt_caught_CXX_error" != yes - -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 ${2} in - .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; 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 $p = "-L" || - test $p = "-R"; 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 "$pre_test_object_deps_done" = no; 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 "$pre_test_object_deps_done" = no; then - if test -z "$_LT_TAGVAR(predep_objects, $1)"; then - _LT_TAGVAR(predep_objects, $1)="$p" - else - _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" - fi - else - if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then - _LT_TAGVAR(postdep_objects, $1)="$p" - else - _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" - fi - fi - ;; - - *) ;; # Ignore the rest. - - esac - done - - # Clean up. - rm -f a.out a.exe -else - echo "libtool.m4: error: problem compiling $1 test program" -fi - -$RM -f confest.$objext -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)= - ;; - -linux*) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - if test "$solaris_use_stlport4" != yes; then - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; - -solaris*) - case $cc_basename in - CC* | sunCC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - # Adding this requires a known-good setup of shared libraries for - # Sun compiler versions before 5.6, else PIC objects from an old - # archive will be linked into the output, leading to subtle bugs. - if test "$solaris_use_stlport4" != yes; then - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; -esac -]) - -case " $_LT_TAGVAR(postdeps, $1) " in -*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; -esac - _LT_TAGVAR(compiler_lib_search_dirs, $1)= -if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then - _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` -fi -_LT_TAGDECL([], [compiler_lib_search_dirs], [1], - [The directories searched by this compiler when creating a shared library]) -_LT_TAGDECL([], [predep_objects], [1], - [Dependencies to place before and after the objects being linked to - create a shared library]) -_LT_TAGDECL([], [postdep_objects], [1]) -_LT_TAGDECL([], [predeps], [1]) -_LT_TAGDECL([], [postdeps], [1]) -_LT_TAGDECL([], [compiler_lib_search_path], [1], - [The library search path used internally by the compiler when linking - a shared library]) -])# _LT_SYS_HIDDEN_LIBDEPS - - -# _LT_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 "X$F77" = "Xno"; 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 "$_lt_disable_F77" != yes; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="\ - subroutine t - return - end -" - - # Code to be used in simple link tests - lt_simple_link_test_code="\ - program t - end -" - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_COMPILER - - # save warnings/boilerplate of simple test code - _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC - 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 "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_TAGVAR(GCC, $1)="$G77" - _LT_TAGVAR(LD, $1)="$LD" - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) - fi # test -n "$compiler" - - GCC=$lt_save_GCC - CC="$lt_save_CC" - CFLAGS="$lt_save_CFLAGS" -fi # test "$_lt_disable_F77" != yes - -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 "X$FC" = "Xno"; 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 "$_lt_disable_FC" != yes; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="\ - subroutine t - return - end -" - - # Code to be used in simple link tests - lt_simple_link_test_code="\ - program t - end -" - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_COMPILER - - # save warnings/boilerplate of simple test code - _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC - 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 "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" - _LT_TAGVAR(LD, $1)="$LD" - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_SYS_HIDDEN_LIBDEPS($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) - fi # test -n "$compiler" - - GCC=$lt_save_GCC - CC=$lt_save_CC - CFLAGS=$lt_save_CFLAGS -fi # test "$_lt_disable_FC" != yes - -AC_LANG_POP -])# _LT_LANG_FC_CONFIG - - -# _LT_LANG_GCJ_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for the GNU Java Compiler compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_GCJ_CONFIG], -[AC_REQUIRE([LT_PROG_GCJ])dnl -AC_LANG_SAVE - -# Source file extension for Java test sources. -ac_ext=java - -# Object file extension for compiled Java test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="class foo {}" - -# Code to be used in simple link tests -lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -lt_save_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 "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" - AC_SUBST(GCJFLAGS)])])[]dnl -]) - -# Old name: -AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_GCJ], []) - - -# LT_PROG_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 $lt_ac_count -gt 10 && break - lt_ac_count=`expr $lt_ac_count + 1` - if test $lt_ac_count -gt $lt_ac_max; then - lt_ac_max=$lt_ac_count - lt_cv_path_SED=$lt_ac_sed - fi - done -done -]) -SED=$lt_cv_path_SED -AC_SUBST([SED]) -AC_MSG_RESULT([$SED]) -])#AC_PROG_SED -])#m4_ifndef - -# Old name: -AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_SED], []) - - -# _LT_CHECK_SHELL_FEATURES -# ------------------------ -# Find out whether the shell is Bourne or XSI compatible, -# or has some other useful features. -m4_defun([_LT_CHECK_SHELL_FEATURES], -[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -AC_MSG_RESULT([$xsi_shell]) -_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) - -AC_MSG_CHECKING([whether the shell understands "+="]) -lt_shell_append=no -( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -AC_MSG_RESULT([$lt_shell_append]) -_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) - -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset -else - lt_unset=false -fi -_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl - -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - lt_SP2NL='tr \040 \012' - lt_NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - lt_SP2NL='tr \100 \n' - lt_NL2SP='tr \r\n \100\100' - ;; -esac -_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl -_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl -])# _LT_CHECK_SHELL_FEATURES - - -# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) -# ------------------------------------------------------ -# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and -# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. -m4_defun([_LT_PROG_FUNCTION_REPLACE], -[dnl { -sed -e '/^$1 ()$/,/^} # $1 /c\ -$1 ()\ -{\ -m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) -} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: -]) - - -# _LT_PROG_REPLACE_SHELLFNS -# ------------------------- -# Replace existing portable implementations of several shell functions with -# equivalent extended shell implementations where those features are available.. -m4_defun([_LT_PROG_REPLACE_SHELLFNS], -[if test x"$xsi_shell" = xyes; then - _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac]) - - _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl - func_basename_result="${1##*/}"]) - - _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac - func_basename_result="${1##*/}"]) - - _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary parameter first. - func_stripname_result=${3} - func_stripname_result=${func_stripname_result#"${1}"} - func_stripname_result=${func_stripname_result%"${2}"}]) - - _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl - func_split_long_opt_name=${1%%=*} - func_split_long_opt_arg=${1#*=}]) - - _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl - func_split_short_opt_arg=${1#??} - func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) - - _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl - case ${1} in - *.lo) func_lo2o_result=${1%.lo}.${objext} ;; - *) func_lo2o_result=${1} ;; - esac]) - - _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) - - _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) - - _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) -fi - -if test x"$lt_shell_append" = xyes; then - _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) - - _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl - func_quote_for_eval "${2}" -dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ - eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) - - # Save a `func_append' function call where possible by direct use of '+=' - sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -else - # Save a `func_append' function call even when '+=' is not available - sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -fi - -if test x"$_lt_function_replace_fail" = x":"; then - AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) -fi -]) - -# _LT_PATH_CONVERSION_FUNCTIONS -# ----------------------------- -# Determine which 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/libzip-1.2.0/m4/ltoptions.m4 b/libzip-1.2.0/m4/ltoptions.m4 deleted file mode 100644 index 5d9acd8e2..000000000 --- a/libzip-1.2.0/m4/ltoptions.m4 +++ /dev/null @@ -1,384 +0,0 @@ -# Helper functions for option handling. -*- Autoconf -*- -# -# Copyright (C) 2004, 2005, 2007, 2008, 2009 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 7 ltoptions.m4 - -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) - - -# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) -# ------------------------------------------ -m4_define([_LT_MANGLE_OPTION], -[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) - - -# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) -# --------------------------------------- -# Set option OPTION-NAME for macro MACRO-NAME, and if there is a -# matching handler defined, dispatch to it. Other OPTION-NAMEs are -# saved as a flag. -m4_define([_LT_SET_OPTION], -[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl -m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), - _LT_MANGLE_DEFUN([$1], [$2]), - [m4_warning([Unknown $1 option `$2'])])[]dnl -]) - - -# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) -# ------------------------------------------------------------ -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -m4_define([_LT_IF_OPTION], -[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) - - -# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) -# ------------------------------------------------------- -# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME -# are set. -m4_define([_LT_UNLESS_OPTIONS], -[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), - [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), - [m4_define([$0_found])])])[]dnl -m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 -])[]dnl -]) - - -# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) -# ---------------------------------------- -# OPTION-LIST is a space-separated list of Libtool options associated -# with MACRO-NAME. If any OPTION has a matching handler declared with -# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about -# the unknown option and exit. -m4_defun([_LT_SET_OPTIONS], -[# Set options -m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), - [_LT_SET_OPTION([$1], _LT_Option)]) - -m4_if([$1],[LT_INIT],[ - dnl - dnl Simply set some default values (i.e off) if boolean options were not - dnl specified: - _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no - ]) - _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no - ]) - dnl - dnl If no reference was made to various pairs of opposing options, then - dnl we run the default mode handler for the pair. For example, if neither - dnl `shared' nor `disable-shared' was passed, we enable building of shared - dnl archives by default: - _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) - _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) - _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) - _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], - [_LT_ENABLE_FAST_INSTALL]) - ]) -])# _LT_SET_OPTIONS - - -## --------------------------------- ## -## Macros to handle LT_INIT options. ## -## --------------------------------- ## - -# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) -# ----------------------------------------- -m4_define([_LT_MANGLE_DEFUN], -[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) - - -# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) -# ----------------------------------------------- -m4_define([LT_OPTION_DEFINE], -[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl -])# LT_OPTION_DEFINE - - -# dlopen -# ------ -LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes -]) - -AU_DEFUN([AC_LIBTOOL_DLOPEN], -[_LT_SET_OPTION([LT_INIT], [dlopen]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `dlopen' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) - - -# win32-dll -# --------- -# Declare package support for building win32 dll's. -LT_OPTION_DEFINE([LT_INIT], [win32-dll], -[enable_win32_dll=yes - -case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) - AC_CHECK_TOOL(AS, as, false) - AC_CHECK_TOOL(DLLTOOL, dlltool, false) - AC_CHECK_TOOL(OBJDUMP, objdump, false) - ;; -esac - -test -z "$AS" && AS=as -_LT_DECL([], [AS], [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_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=default]) - -test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) - -_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl -])# _LT_WITH_PIC - -LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) -LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) - -# Old name: -AU_DEFUN([AC_LIBTOOL_PICMODE], -[_LT_SET_OPTION([LT_INIT], [pic-only]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `pic-only' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) - -## ----------------- ## -## LTDL_INIT Options ## -## ----------------- ## - -m4_define([_LTDL_MODE], []) -LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], - [m4_define([_LTDL_MODE], [nonrecursive])]) -LT_OPTION_DEFINE([LTDL_INIT], [recursive], - [m4_define([_LTDL_MODE], [recursive])]) -LT_OPTION_DEFINE([LTDL_INIT], [subproject], - [m4_define([_LTDL_MODE], [subproject])]) - -m4_define([_LTDL_TYPE], []) -LT_OPTION_DEFINE([LTDL_INIT], [installable], - [m4_define([_LTDL_TYPE], [installable])]) -LT_OPTION_DEFINE([LTDL_INIT], [convenience], - [m4_define([_LTDL_TYPE], [convenience])]) diff --git a/libzip-1.2.0/m4/ltsugar.m4 b/libzip-1.2.0/m4/ltsugar.m4 deleted file mode 100644 index 9000a057d..000000000 --- a/libzip-1.2.0/m4/ltsugar.m4 +++ /dev/null @@ -1,123 +0,0 @@ -# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- -# -# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. -# Written by Gary V. Vaughan, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# serial 6 ltsugar.m4 - -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) - - -# lt_join(SEP, ARG1, [ARG2...]) -# ----------------------------- -# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their -# associated separator. -# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier -# versions in m4sugar had bugs. -m4_define([lt_join], -[m4_if([$#], [1], [], - [$#], [2], [[$2]], - [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) -m4_define([_lt_join], -[m4_if([$#$2], [2], [], - [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) - - -# lt_car(LIST) -# lt_cdr(LIST) -# ------------ -# Manipulate m4 lists. -# These macros are necessary as long as will still need to support -# Autoconf-2.59 which quotes differently. -m4_define([lt_car], [[$1]]) -m4_define([lt_cdr], -[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], - [$#], 1, [], - [m4_dquote(m4_shift($@))])]) -m4_define([lt_unquote], $1) - - -# lt_append(MACRO-NAME, STRING, [SEPARATOR]) -# ------------------------------------------ -# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. -# Note that neither SEPARATOR nor STRING are expanded; they are appended -# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). -# No SEPARATOR is output if MACRO-NAME was previously undefined (different -# than defined and empty). -# -# This macro is needed until we can rely on Autoconf 2.62, since earlier -# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. -m4_define([lt_append], -[m4_define([$1], - m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) - - - -# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) -# ---------------------------------------------------------- -# Produce a SEP delimited list of all paired combinations of elements of -# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list -# has the form PREFIXmINFIXSUFFIXn. -# Needed until we can rely on m4_combine added in Autoconf 2.62. -m4_define([lt_combine], -[m4_if(m4_eval([$# > 3]), [1], - [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl -[[m4_foreach([_Lt_prefix], [$2], - [m4_foreach([_Lt_suffix], - ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, - [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) - - -# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) -# ----------------------------------------------------------------------- -# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited -# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. -m4_define([lt_if_append_uniq], -[m4_ifdef([$1], - [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], - [lt_append([$1], [$2], [$3])$4], - [$5])], - [lt_append([$1], [$2], [$3])$4])]) - - -# lt_dict_add(DICT, KEY, VALUE) -# ----------------------------- -m4_define([lt_dict_add], -[m4_define([$1($2)], [$3])]) - - -# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) -# -------------------------------------------- -m4_define([lt_dict_add_subkey], -[m4_define([$1($2:$3)], [$4])]) - - -# lt_dict_fetch(DICT, KEY, [SUBKEY]) -# ---------------------------------- -m4_define([lt_dict_fetch], -[m4_ifval([$3], - m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), - m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) - - -# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) -# ----------------------------------------------------------------- -m4_define([lt_if_dict_fetch], -[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], - [$5], - [$6])]) - - -# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) -# -------------------------------------------------------------- -m4_define([lt_dict_filter], -[m4_if([$5], [], [], - [lt_join(m4_quote(m4_default([$4], [[, ]])), - lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), - [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl -]) diff --git a/libzip-1.2.0/m4/ltversion.m4 b/libzip-1.2.0/m4/ltversion.m4 deleted file mode 100644 index 07a8602d4..000000000 --- a/libzip-1.2.0/m4/ltversion.m4 +++ /dev/null @@ -1,23 +0,0 @@ -# ltversion.m4 -- version numbers -*- Autoconf -*- -# -# Copyright (C) 2004 Free Software Foundation, Inc. -# Written by Scott James Remnant, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# @configure_input@ - -# serial 3337 ltversion.m4 -# This file is part of GNU Libtool - -m4_define([LT_PACKAGE_VERSION], [2.4.2]) -m4_define([LT_PACKAGE_REVISION], [1.3337]) - -AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4.2' -macro_revision='1.3337' -_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) -_LT_DECL(, macro_revision, 0) -]) diff --git a/libzip-1.2.0/m4/lt~obsolete.m4 b/libzip-1.2.0/m4/lt~obsolete.m4 deleted file mode 100644 index c573da90c..000000000 --- a/libzip-1.2.0/m4/lt~obsolete.m4 +++ /dev/null @@ -1,98 +0,0 @@ -# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- -# -# Copyright (C) 2004, 2005, 2007, 2009 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/libzip-1.2.0/m4/visibility.m4 b/libzip-1.2.0/m4/visibility.m4 deleted file mode 100644 index 2ff6330aa..000000000 --- a/libzip-1.2.0/m4/visibility.m4 +++ /dev/null @@ -1,52 +0,0 @@ -# visibility.m4 serial 1 (gettext-0.15) -dnl Copyright (C) 2005 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. - -dnl Tests whether the compiler supports the command-line option -dnl -fvisibility=hidden and the function and variable attributes -dnl __attribute__((__visibility__("hidden"))) and -dnl __attribute__((__visibility__("default"))). -dnl Does *not* test for __visibility__("protected") - which has tricky -dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on -dnl MacOS X. -dnl Does *not* test for __visibility__("internal") - which has processor -dnl dependent semantics. -dnl Does *not* test for #pragma GCC visibility push(hidden) - which is -dnl "really only recommended for legacy code". -dnl Set the variable CFLAG_VISIBILITY. -dnl Defines and sets the variable HAVE_VISIBILITY. - -AC_DEFUN([gl_VISIBILITY], -[ - AC_REQUIRE([AC_PROG_CC]) - CFLAG_VISIBILITY= - HAVE_VISIBILITY=0 - if test -n "$GCC"; then - AC_MSG_CHECKING([for simple visibility declarations]) - AC_CACHE_VAL(gl_cv_cc_visibility, [ - gl_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fvisibility=hidden" - AC_TRY_COMPILE( - [extern __attribute__((__visibility__("hidden"))) int hiddenvar; - extern __attribute__((__visibility__("default"))) int exportedvar; - extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); - extern __attribute__((__visibility__("default"))) int exportedfunc (void);], - [], - gl_cv_cc_visibility=yes, - gl_cv_cc_visibility=no) - CFLAGS="$gl_save_CFLAGS"]) - AC_MSG_RESULT([$gl_cv_cc_visibility]) - if test $gl_cv_cc_visibility = yes; then - CFLAG_VISIBILITY="-fvisibility=hidden" - HAVE_VISIBILITY=1 - fi - fi - AC_SUBST([CFLAG_VISIBILITY]) - AC_SUBST([HAVE_VISIBILITY]) - AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], - [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) -]) diff --git a/libzip-1.2.0/man/CMakeLists.txt b/libzip-1.2.0/man/CMakeLists.txt deleted file mode 100644 index 4934f8b91..000000000 --- a/libzip-1.2.0/man/CMakeLists.txt +++ /dev/null @@ -1,180 +0,0 @@ -SET(MDOC3_PAGES - ZIP_SOURCE_GET_ARGS.mdoc - libzip.mdoc - zip_add.mdoc - zip_add_dir.mdoc - zip_close.mdoc - zip_delete.mdoc - zip_dir_add.mdoc - zip_discard.mdoc - zip_error_clear.mdoc - zip_error_code_system.mdoc - zip_error_code_zip.mdoc - zip_error_fini.mdoc - zip_error_get.mdoc - zip_error_get_sys_type.mdoc - zip_error_init.mdoc - zip_error_set.mdoc - zip_error_strerror.mdoc - zip_error_system_type.mdoc - zip_error_to_data.mdoc - zip_error_to_str.mdoc - zip_errors.mdoc - zip_fclose.mdoc - zip_fdopen.mdoc - zip_file_add.mdoc - zip_file_extra_field_delete.mdoc - zip_file_extra_field_get.mdoc - zip_file_extra_field_set.mdoc - zip_file_extra_fields_count.mdoc - zip_file_get_comment.mdoc - zip_file_get_error.mdoc - zip_file_rename.mdoc - zip_file_set_comment.mdoc - zip_file_set_encryption.mdoc - zip_file_set_external_attributes.mdoc - zip_file_set_mtime.mdoc - zip_file_strerror.mdoc - zip_fopen.mdoc - zip_fopen_encrypted.mdoc - zip_fread.mdoc - zip_fseek.mdoc - zip_get_archive_comment.mdoc - zip_get_archive_flag.mdoc - zip_get_error.mdoc - zip_get_file_comment.mdoc - zip_get_name.mdoc - zip_get_num_entries.mdoc - zip_get_num_files.mdoc - zip_name_locate.mdoc - zip_open.mdoc - zip_register_progress_callback.mdoc - zip_rename.mdoc - zip_set_archive_comment.mdoc - zip_set_archive_flag.mdoc - zip_set_default_password.mdoc - zip_set_file_comment.mdoc - zip_set_file_compression.mdoc - zip_source_begin_write.mdoc - zip_source_buffer.mdoc - zip_source_close.mdoc - zip_source_commit_write.mdoc - zip_source_error.mdoc - zip_source_file.mdoc - zip_source_filep.mdoc - zip_source_free.mdoc - zip_source_function.mdoc - zip_source_is_deleted.mdoc - zip_source_keep.mdoc - zip_source_make_command_bitmap.mdoc - zip_source_open.mdoc - zip_source_read.mdoc - zip_source_rollback_write.mdoc - zip_source_seek.mdoc - zip_source_seek_compute_offset.mdoc - zip_source_seek_write.mdoc - zip_source_stat.mdoc - zip_source_tell.mdoc - zip_source_tell_write.mdoc - zip_source_win32a.mdoc - zip_source_win32handle.mdoc - zip_source_win32w.mdoc - zip_source_write.mdoc - zip_source_zip.mdoc - zip_stat.mdoc - zip_stat_init.mdoc - zip_unchange.mdoc - zip_unchange_all.mdoc - zip_unchange_archive.mdoc -) -SET(MDOC1_PAGES - zipcmp.mdoc - zipmerge.mdoc - ziptool.mdoc -) -SET(MDOC_PAGES ${MDOC1_PAGES} ${MDOC3_PAGES}) -STRING(REGEX REPLACE .mdoc "" MAN1_PAGES "${MDOC1_PAGES}") -STRING(REGEX REPLACE .mdoc "" MAN3_PAGES "${MDOC3_PAGES}") -SET(MAN_PAGES ${MAN1_PAGES} ${MAN3_PAGES}) - -IF(CMAKE_SYSTEM_NAME MATCHES BSD) - SET(MANFMT mdoc) -ELSE(CMAKE_SYSTEM_NAME MATCHES BSD) - SET(MANFMT man) -ENDif(CMAKE_SYSTEM_NAME MATCHES BSD) - -# installation - -SET(MAN_PATH man) - -FOREACH(MAN_PAGE ${MAN1_PAGES}) - INSTALL(FILES ${MAN_PAGE}.${MANFMT} DESTINATION ${MAN_PATH}/man1 - RENAME ${MAN_PAGE}.1) -ENDFOREACH(MAN_PAGE ${PROGRAMS}) -FOREACH(MAN_PAGE ${MAN3_PAGES}) - INSTALL(FILES ${MAN_PAGE}.${MANFMT} DESTINATION ${MAN_PATH}/man3 - RENAME ${MAN_PAGE}.3) -ENDFOREACH(MAN_PAGE ${PROGRAMS}) -# TODO: usually symlinks, but I only know how to do this way -INSTALL(FILES zip_error_clear.${MANFMT} DESTINATION ${MAN_PATH}/man3 - RENAME zip_file_error_clear.3) -INSTALL(FILES zip_error_get.${MANFMT} DESTINATION ${MAN_PATH}/man3 - RENAME zip_file_error_get.3) -INSTALL(FILES zip_error_init.${MANFMT} DESTINATION ${MAN_PATH}/man3 - RENAME zip_error_init_with_code.3) -INSTALL(FILES zip_file_extra_field_delete.${MANFMT} DESTINATION ${MAN_PATH}/man3 - RENAME zip_file_extra_field_delete_by_id.3) -INSTALL(FILES zip_file_extra_field_get.${MANFMT} DESTINATION ${MAN_PATH}/man3 - RENAME zip_file_extra_field_get_by_id.3) -INSTALL(FILES zip_file_extra_fields_count.${MANFMT} DESTINATION ${MAN_PATH}/man3 - RENAME zip_file_extra_fields_count_by_id.3) -INSTALL(FILES zip_file_add.${MANFMT} DESTINATION ${MAN_PATH}/man3 - RENAME zip_file_replace.3) -INSTALL(FILES zip_fopen.${MANFMT} DESTINATION ${MAN_PATH}/man3 - RENAME zip_fopen_index.3) -INSTALL(FILES zip_fopen_encrypted.${MANFMT} DESTINATION ${MAN_PATH}/man3 - RENAME zip_fopen_index_encrypted.3) -INSTALL(FILES zip_open.${MANFMT} DESTINATION ${MAN_PATH}/man3 - RENAME zip_open_from_source.3) -INSTALL(FILES zip_add.${MANFMT} DESTINATION ${MAN_PATH}/man3 - RENAME zip_replace.3) -INSTALL(FILES zip_source_function.${MANFMT} DESTINATION ${MAN_PATH}/man3 - RENAME zip_source_function_create.3) -INSTALL(FILES zip_stat.${MANFMT} DESTINATION ${MAN_PATH}/man3 - RENAME zip_stat_index.3) -INSTALL(FILES zip_file_strerror.${MANFMT} DESTINATION ${MAN_PATH}/man3 - RENAME zip_strerror.3) - -# custom maintainer targets - -#FOREACH(MAN ${MAN_PAGES}) -# ADD_CUSTOM_TARGET(${MAN}.man -# DEPENDS ${MAN}.mdoc -# COMMAND mandoc -T man ${CMAKE_CURRENT_SOURCE_DIR}/${MAN}.mdoc | sed '/TH/s,"NetBSD [^"]*","NiH",' > ${MAN}.new -# COMMAND diff -I NiH ${MAN}.new ${CMAKE_CURRENT_SOURCE_DIR}/${MAN}.man || mv ${MAN}.new ${CMAKE_CURRENT_SOURCE_DIR}/${MAN}.man -# COMMAND rm -f ${MAN}.new -# COMMENT Updating man page ${MAN}.man -# ) -# ADD_CUSTOM_TARGET(${MAN}.html -# DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${MAN}.mdoc -# COMMAND mandoc -Thtml -Oman="%N.html",style=../nih-man.css ${CMAKE_CURRENT_SOURCE_DIR}/${MAN}.mdoc > ${MAN}.html -# COMMENT Updating HTML page ${MAN}.html -# ) -#ENDFOREACH(MAN) - -#STRING(REGEX REPLACE .mdoc .man MANDEPEND "${MDOC_PAGES}") -#ADD_CUSTOM_TARGET(update-man -# DEPENDS ${MANDEPEND}) - -#STRING(REGEX REPLACE .mdoc .html HTMLDEPEND "${MDOC_PAGES}") -#ADD_CUSTOM_TARGET(update-html -# DEPENDS ${HTMLDEPEND}) - -# TODO: strange error: -#[ 94%] zipcmp.html -#[ 97%] Built target zipcmp.html -#[ 97%] zipmerge.html -#[100%] Built target zipmerge.html -#make: don't know how to make zipcmp.html. Stop - -# TODO: why are all the man pages rebuilt on a second 'make update-html'? diff --git a/libzip-1.2.0/man/Makefile.am b/libzip-1.2.0/man/Makefile.am deleted file mode 100644 index 96d3ae652..000000000 --- a/libzip-1.2.0/man/Makefile.am +++ /dev/null @@ -1,136 +0,0 @@ -MANFMT=@MANFMT@ -man1_MANS=${MAN1:.mdoc=.${MANFMT}} -man3_MANS=${MAN3:.mdoc=.${MANFMT}} - -DISTCLEANFILES=${HTML} -EXTRA_DIST=${MANDOC} ${MAN} CMakeLists.txt handle_links links - -MAN1= zipcmp.mdoc zipmerge.mdoc ziptool.mdoc -MAN3= \ - ZIP_SOURCE_GET_ARGS.mdoc \ - libzip.mdoc \ - zip_add.mdoc \ - zip_add_dir.mdoc \ - zip_close.mdoc \ - zip_delete.mdoc \ - zip_dir_add.mdoc \ - zip_discard.mdoc \ - zip_error_clear.mdoc \ - zip_error_code_system.mdoc \ - zip_error_code_zip.mdoc \ - zip_error_fini.mdoc \ - zip_error_get.mdoc \ - zip_error_get_sys_type.mdoc \ - zip_error_init.mdoc \ - zip_error_set.mdoc \ - zip_error_strerror.mdoc \ - zip_error_system_type.mdoc \ - zip_error_to_data.mdoc \ - zip_error_to_str.mdoc \ - zip_errors.mdoc \ - zip_fclose.mdoc \ - zip_fdopen.mdoc \ - zip_file_add.mdoc \ - zip_file_extra_field_delete.mdoc \ - zip_file_extra_field_get.mdoc \ - zip_file_extra_field_set.mdoc \ - zip_file_extra_fields_count.mdoc \ - zip_file_get_comment.mdoc \ - zip_file_get_error.mdoc \ - zip_file_get_external_attributes.mdoc \ - zip_file_rename.mdoc \ - zip_file_set_comment.mdoc \ - zip_file_set_encryption.mdoc \ - zip_file_set_external_attributes.mdoc \ - zip_file_set_mtime.mdoc \ - zip_file_strerror.mdoc \ - zip_fopen.mdoc \ - zip_fopen_encrypted.mdoc \ - zip_fread.mdoc \ - zip_fseek.mdoc \ - zip_ftell.mdoc \ - zip_get_archive_comment.mdoc \ - zip_get_archive_flag.mdoc \ - zip_get_error.mdoc \ - zip_get_file_comment.mdoc \ - zip_get_name.mdoc \ - zip_get_num_entries.mdoc \ - zip_get_num_files.mdoc \ - zip_name_locate.mdoc \ - zip_open.mdoc \ - zip_rename.mdoc \ - zip_register_progress_callback.mdoc \ - zip_set_archive_comment.mdoc \ - zip_set_archive_flag.mdoc \ - zip_set_default_password.mdoc \ - zip_set_file_comment.mdoc \ - zip_set_file_compression.mdoc \ - zip_source.mdoc \ - zip_source_begin_write.mdoc \ - zip_source_buffer.mdoc \ - zip_source_close.mdoc \ - zip_source_commit_write.mdoc \ - zip_source_error.mdoc \ - zip_source_file.mdoc \ - zip_source_filep.mdoc \ - zip_source_free.mdoc \ - zip_source_function.mdoc \ - zip_source_is_deleted.mdoc \ - zip_source_keep.mdoc \ - zip_source_make_command_bitmap.mdoc \ - zip_source_open.mdoc \ - zip_source_read.mdoc \ - zip_source_rollback_write.mdoc \ - zip_source_seek.mdoc \ - zip_source_seek_compute_offset.mdoc \ - zip_source_seek_write.mdoc \ - zip_source_stat.mdoc \ - zip_source_tell.mdoc \ - zip_source_tell_write.mdoc \ - zip_source_win32a.mdoc \ - zip_source_win32handle.mdoc \ - zip_source_win32w.mdoc \ - zip_source_write.mdoc \ - zip_source_zip.mdoc \ - zip_stat.mdoc \ - zip_stat_init.mdoc \ - zip_unchange.mdoc \ - zip_unchange_all.mdoc \ - zip_unchange_archive.mdoc - -install-data-hook: link-man3 - -LN=ln -f - -link-man3: install-man3 uninstall-hook - @${srcdir}/handle_links install directory=${DESTDIR}${man3dir} extension=3 command="${LN}" file=${srcdir}/links - -uninstall-hook: - @${srcdir}/handle_links uninstall directory=${DESTDIR}${man3dir} extension=3 command="rm -f" file=${srcdir}/links - -link-html: ${HTML} - @${srcdir}/handle_links uninstall directory=. extension=html command="rm -f" file=${srcdir}/links - @${srcdir}/handle_links install directory=. extension=html command="${LN}" file=${srcdir}/links - -MANDOC=${MAN1} ${MAN3} -HTML=${MANDOC:.mdoc=.html} -MAN=${MANDOC:.mdoc=.man} - -SUFFIXES=.man .mdoc .html - -.PHONY: mkman update-errors - -mkman: ${MAN} -mkhtml: ${HTML} link-html - -mkdocset: mkdocset.pl ${HTML} - SRCDIR=${srcdir} perl ${srcdir}/mkdocset.pl ${HTML} - -update-errors: - sh $(srcdir)/make_zip_errors.sh $(srcdir)/../lib/zip.h zip_errors.mdoc - -.mdoc.man: - mandoc -T man $< | sed '/TH/s,"NetBSD [^"]*","NiH",' > $@.$$$$ && mv $@.$$$$ $@ - -.mdoc.html: - mandoc -Thtml -Oman="%N.html",style=../nih-man.css $< | ${srcdir}/fix-man-links.sh > $@.$$$$ && mv $@.$$$$ $@ diff --git a/libzip-1.2.0/man/Makefile.in b/libzip-1.2.0/man/Makefile.in deleted file mode 100644 index 3841b6792..000000000 --- a/libzip-1.2.0/man/Makefile.in +++ /dev/null @@ -1,694 +0,0 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2014 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 = man -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(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/visibility.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -man1dir = $(mandir)/man1 -am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)" -man3dir = $(mandir)/man3 -NROFF = nroff -MANS = $(man1_MANS) $(man3_MANS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -am__DIST_COMMON = $(srcdir)/Makefile.in -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DLSYM_LIB = @DLSYM_LIB@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -HAVE_VISIBILITY = @HAVE_VISIBILITY@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MANFMT = @MANFMT@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -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@ -PKG_CONFIG_RPATH = @PKG_CONFIG_RPATH@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -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@ -man1_MANS = ${MAN1:.mdoc=.${MANFMT}} -man3_MANS = ${MAN3:.mdoc=.${MANFMT}} -DISTCLEANFILES = ${HTML} -EXTRA_DIST = ${MANDOC} ${MAN} CMakeLists.txt handle_links links -MAN1 = zipcmp.mdoc zipmerge.mdoc ziptool.mdoc -MAN3 = \ - ZIP_SOURCE_GET_ARGS.mdoc \ - libzip.mdoc \ - zip_add.mdoc \ - zip_add_dir.mdoc \ - zip_close.mdoc \ - zip_delete.mdoc \ - zip_dir_add.mdoc \ - zip_discard.mdoc \ - zip_error_clear.mdoc \ - zip_error_code_system.mdoc \ - zip_error_code_zip.mdoc \ - zip_error_fini.mdoc \ - zip_error_get.mdoc \ - zip_error_get_sys_type.mdoc \ - zip_error_init.mdoc \ - zip_error_set.mdoc \ - zip_error_strerror.mdoc \ - zip_error_system_type.mdoc \ - zip_error_to_data.mdoc \ - zip_error_to_str.mdoc \ - zip_errors.mdoc \ - zip_fclose.mdoc \ - zip_fdopen.mdoc \ - zip_file_add.mdoc \ - zip_file_extra_field_delete.mdoc \ - zip_file_extra_field_get.mdoc \ - zip_file_extra_field_set.mdoc \ - zip_file_extra_fields_count.mdoc \ - zip_file_get_comment.mdoc \ - zip_file_get_error.mdoc \ - zip_file_get_external_attributes.mdoc \ - zip_file_rename.mdoc \ - zip_file_set_comment.mdoc \ - zip_file_set_encryption.mdoc \ - zip_file_set_external_attributes.mdoc \ - zip_file_set_mtime.mdoc \ - zip_file_strerror.mdoc \ - zip_fopen.mdoc \ - zip_fopen_encrypted.mdoc \ - zip_fread.mdoc \ - zip_fseek.mdoc \ - zip_ftell.mdoc \ - zip_get_archive_comment.mdoc \ - zip_get_archive_flag.mdoc \ - zip_get_error.mdoc \ - zip_get_file_comment.mdoc \ - zip_get_name.mdoc \ - zip_get_num_entries.mdoc \ - zip_get_num_files.mdoc \ - zip_name_locate.mdoc \ - zip_open.mdoc \ - zip_rename.mdoc \ - zip_register_progress_callback.mdoc \ - zip_set_archive_comment.mdoc \ - zip_set_archive_flag.mdoc \ - zip_set_default_password.mdoc \ - zip_set_file_comment.mdoc \ - zip_set_file_compression.mdoc \ - zip_source.mdoc \ - zip_source_begin_write.mdoc \ - zip_source_buffer.mdoc \ - zip_source_close.mdoc \ - zip_source_commit_write.mdoc \ - zip_source_error.mdoc \ - zip_source_file.mdoc \ - zip_source_filep.mdoc \ - zip_source_free.mdoc \ - zip_source_function.mdoc \ - zip_source_is_deleted.mdoc \ - zip_source_keep.mdoc \ - zip_source_make_command_bitmap.mdoc \ - zip_source_open.mdoc \ - zip_source_read.mdoc \ - zip_source_rollback_write.mdoc \ - zip_source_seek.mdoc \ - zip_source_seek_compute_offset.mdoc \ - zip_source_seek_write.mdoc \ - zip_source_stat.mdoc \ - zip_source_tell.mdoc \ - zip_source_tell_write.mdoc \ - zip_source_win32a.mdoc \ - zip_source_win32handle.mdoc \ - zip_source_win32w.mdoc \ - zip_source_write.mdoc \ - zip_source_zip.mdoc \ - zip_stat.mdoc \ - zip_stat_init.mdoc \ - zip_unchange.mdoc \ - zip_unchange_all.mdoc \ - zip_unchange_archive.mdoc - -LN = ln -f -MANDOC = ${MAN1} ${MAN3} -HTML = ${MANDOC:.mdoc=.html} -MAN = ${MANDOC:.mdoc=.man} -SUFFIXES = .man .mdoc .html -all: all-am - -.SUFFIXES: -.SUFFIXES: .man .mdoc .html -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign man/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign man/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man1: $(man1_MANS) - @$(NORMAL_INSTALL) - @list1='$(man1_MANS)'; \ - list2=''; \ - test -n "$(man1dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.1[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ - done; } - -uninstall-man1: - @$(NORMAL_UNINSTALL) - @list='$(man1_MANS)'; test -n "$(man1dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) -install-man3: $(man3_MANS) - @$(NORMAL_INSTALL) - @list1='$(man3_MANS)'; \ - list2=''; \ - test -n "$(man3dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man3dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man3dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.3[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man3dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man3dir)" || exit $$?; }; \ - done; } - -uninstall-man3: - @$(NORMAL_UNINSTALL) - @list='$(man3_MANS)'; test -n "$(man3dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man3dir)'; $(am__uninstall_files_from_dir) -tags TAGS: - -ctags CTAGS: - -cscope cscopelist: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(MANS) -installdirs: - for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -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-man - @$(NORMAL_INSTALL) - $(MAKE) $(AM_MAKEFLAGS) install-data-hook -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man1 install-man3 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man - @$(NORMAL_INSTALL) - $(MAKE) $(AM_MAKEFLAGS) uninstall-hook -uninstall-man: uninstall-man1 uninstall-man3 - -.MAKE: install-am install-data-am install-strip uninstall-am - -.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-hook install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man1 install-man3 \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags-am uninstall uninstall-am uninstall-hook uninstall-man \ - uninstall-man1 uninstall-man3 - -.PRECIOUS: Makefile - - -install-data-hook: link-man3 - -link-man3: install-man3 uninstall-hook - @${srcdir}/handle_links install directory=${DESTDIR}${man3dir} extension=3 command="${LN}" file=${srcdir}/links - -uninstall-hook: - @${srcdir}/handle_links uninstall directory=${DESTDIR}${man3dir} extension=3 command="rm -f" file=${srcdir}/links - -link-html: ${HTML} - @${srcdir}/handle_links uninstall directory=. extension=html command="rm -f" file=${srcdir}/links - @${srcdir}/handle_links install directory=. extension=html command="${LN}" file=${srcdir}/links - -.PHONY: mkman update-errors - -mkman: ${MAN} -mkhtml: ${HTML} link-html - -mkdocset: mkdocset.pl ${HTML} - SRCDIR=${srcdir} perl ${srcdir}/mkdocset.pl ${HTML} - -update-errors: - sh $(srcdir)/make_zip_errors.sh $(srcdir)/../lib/zip.h zip_errors.mdoc - -.mdoc.man: - mandoc -T man $< | sed '/TH/s,"NetBSD [^"]*","NiH",' > $@.$$$$ && mv $@.$$$$ $@ - -.mdoc.html: - mandoc -Thtml -Oman="%N.html",style=../nih-man.css $< | ${srcdir}/fix-man-links.sh > $@.$$$$ && mv $@.$$$$ $@ - -# 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/libzip-1.2.0/man/ZIP_SOURCE_GET_ARGS.man b/libzip-1.2.0/man/ZIP_SOURCE_GET_ARGS.man deleted file mode 100644 index 263dc1178..000000000 --- a/libzip-1.2.0/man/ZIP_SOURCE_GET_ARGS.man +++ /dev/null @@ -1,47 +0,0 @@ -.TH "ZIP_SOURCE_GET_ARGS" "3" "October 30, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBZIP_SOURCE_GET_ARGS\fR -\- validate and cast arguments to source callback -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fItype *\fR -.PD 0 -.HP 4n -\fBZIP_SOURCE_GET_ARGS\fR(\fItype\fR, \fIvoid\ *data\fR, \fIzip_uint64_t\ len\fR, \fIzip_error_t\ *error\fR); -.PD -.SH "DESCRIPTION" -The -\fBZIP_SOURCE_GET_ARGS\fR() -macro casts -\fIdata\fR -to a pointer to -\fItype\fR. -.SH "RETURN VALUES" -On success, -\fBZIP_SOURCE_GET_ARGS\fR() -returns -\fIdata\fR. -In case of error, it returns -\fRNULL\fR -and sets -\fIerror\fR. -.SH "ERRORS" -\fBZIP_SOURCE_GET_ARGS\fR() -fails if: -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIlen\fR -is less than the size of -\fItype\fR -.SH "SEE ALSO" -libzip(3), -zip_source_function(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/ZIP_SOURCE_GET_ARGS.mdoc b/libzip-1.2.0/man/ZIP_SOURCE_GET_ARGS.mdoc deleted file mode 100644 index bb29412e5..000000000 --- a/libzip-1.2.0/man/ZIP_SOURCE_GET_ARGS.mdoc +++ /dev/null @@ -1,76 +0,0 @@ -.\" ZIP_SOURCE_GET_ARGS -- validate and cast arguments to source callback -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd October 30, 2014 -.Dt ZIP_SOURCE_GET_ARGS 3 -.Os -.Sh NAME -.Nm ZIP_SOURCE_GET_ARGS -.Nd validate and cast arguments to source callback -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft type * -.Fn ZIP_SOURCE_GET_ARGS "type" "void *data" "zip_uint64_t len" "zip_error_t *error" -.Sh DESCRIPTION -The -.Fn ZIP_SOURCE_GET_ARGS -macro casts -.Ar data -to a pointer to -.Ar type . -.Sh RETURN VALUES -On success, -.Fn ZIP_SOURCE_GET_ARGS -returns -.Ar data . -In case of error, it returns -.Dv NULL -and sets -.Ar error . -.Sh ERRORS -.Fn ZIP_SOURCE_GET_ARGS -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_INVAL -.Ar len -is less than the size of -.Ar type -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source_function 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/handle_links b/libzip-1.2.0/man/handle_links deleted file mode 100644 index 7c2ed37d3..000000000 --- a/libzip-1.2.0/man/handle_links +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env perl - -use strict; - -my $operation = shift @ARGV; - -if ($operation !~ m/^(install|uninstall)$/) { - print STDERR "$0: unknown operation $operation\n"; - exit(1); -} - -my %options = (); - -for my $arg (@ARGV) { - if ($arg =~ m/([^=]*)=(.*)/) { - $options{$1} = $2; - } - else { - print STDERR "$0: can't parse option [$arg]\n"; - exit(1); - } -} - -for my $option (qw(command directory extension file)) { - unless (defined($options{$option})) { - print STDERR "$0: required variable $option not provided\n"; - exit(1); - } -} - -my $fh; -unless (open $fh, '<', $options{file}) { - print STDERR "$0: can't open links file '$options{file}': $!"; - exit(1); -} - -my @cmd = split /\s+/, $options{command}; - -while (my $line = <$fh>) { - chomp $line; - my @args = split /\s+/, $line; - - process(@args); -} - -sub process { - my ($source, @destinations) = @_; - - my @args = (@cmd); - - if ($operation eq 'install') { - push @args, "$options{directory}/$source.$options{extension}"; - } - - for my $destination (@destinations) { - push @args, "$options{directory}/$destination.$options{extension}"; - run_command(@args); - pop @args; - } -} - -sub run_command { - print (join ' ', @_); - print "\n"; - - my $ret = system(@_); - - if ($ret != 0) { - print STDERR "$0: command failed: $?\n"; - exit(1); - } - - return 1; -} diff --git a/libzip-1.2.0/man/libzip.man b/libzip-1.2.0/man/libzip.man deleted file mode 100644 index c14952d54..000000000 --- a/libzip-1.2.0/man/libzip.man +++ /dev/null @@ -1,117 +0,0 @@ -.TH "LIBZIP" "3" "December 18, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBlibzip\fR -\- library for manipulating zip archives -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.SH "DESCRIPTION" -\fBlibzip\fR -is a library for reading, creating, and modifying zip archives. -.PP -The main design criteria for -\fBlibzip\fR -were: -.PD 0 -.TP 4n -\fB\(bu\fR -Do not create corrupt files, even in case of errors. -.TP 4n -\fB\(bu\fR -Do not delete data. -.TP 4n -\fB\(bu\fR -Be efficient. -.PD -.PP -For this reason, when modifying zip archives, -\fBlibzip\fR -writes to a temporary file and replaces the original -zip archive atomically. -.PP -Below there are two sections listing functions: one for how to read -from zip archives and one for how to create/modify them. -.SH "READING ZIP ARCHIVES" -.SS "open archive" -zip_open(3) -zip_fdopen(3) -.SS "find files" -zip_name_locate(3) -.SS "read files" -zip_fopen(3) -zip_fopen_encrypted(3) -zip_fopen_index(3) -zip_fopen_index_encrypted(3) -zip_fread(3) -zip_fseek(3) -(uncompressed files only) -zip_ftell(3) -(uncompressed files only) -zip_fclose(3) -.SS "close archive" -zip_close(3) -zip_discard(3) -.SS "miscellaneous" -zip_stat(3) -zip_file_get_comment(3) -zip_file_get_external_attributes(3) -zip_get_archive_comment(3) -zip_get_archive_flag(3) -zip_get_name(3) -zip_get_num_entries(3) -zip_set_default_password(3) -.SH "CREATING/MODIFYING ZIP ARCHIVES" -.SS "create/open archive" -zip_open(3) -.SS "add/change files and directories" -zip_dir_add(3) -zip_file_add(3) -zip_file_replace(3) -zip_file_set_comment(3) -zip_file_set_external_attributes(3) -zip_file_set_encryption(3) -zip_file_set_mtime(3) -zip_set_file_compression(3) -zip_source_buffer(3) -zip_source_file(3) -zip_source_filep(3) -zip_source_free(3) -zip_source_function(3) -zip_source_zip(3) -.SS "rename files" -zip_rename(3) -.SS "delete files" -zip_delete(3) -.SS "revert changes" -zip_unchange(3) -zip_unchange_all(3) -zip_unchange_archive(3) -.SS "read/modify extra fields" -zip_file_extra_field_by_id(3) -zip_file_extra_field_delete(3) -zip_file_extra_field_delete_by_id(3) -zip_file_extra_field_get(3) -zip_file_extra_field_set(3) -zip_file_extra_fields_count(3) -zip_file_extra_fields_count_by_id(3) -.SS "close archive" -zip_close(3) -.SS "miscellaneous" -zip_register_progress_callback(3) -zip_set_archive_comment(3) -zip_set_archive_flag(3) -zip_source(3) -.SH "ERROR HANDLING" -zip_error_to_str(3) -zip_strerror(3) -zip_file_strerror(3) -zip_error_get(3) -zip_error_get_sys_type(3) -zip_errors(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/libzip.mdoc b/libzip-1.2.0/man/libzip.mdoc deleted file mode 100644 index db9d206d6..000000000 --- a/libzip-1.2.0/man/libzip.mdoc +++ /dev/null @@ -1,146 +0,0 @@ -.\" libzip.mdoc -- general overview of available functions -.\" Copyright (C) 2005-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 18, 2016 -.Dt LIBZIP 3 -.Os -.Sh NAME -.Nm libzip -.Nd library for manipulating zip archives -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Sh DESCRIPTION -.Nm -is a library for reading, creating, and modifying zip archives. -.Pp -The main design criteria for -.Nm -were: -.Bl -bullet -compact -.It -Do not create corrupt files, even in case of errors. -.It -Do not delete data. -.It -Be efficient. -.El -.Pp -For this reason, when modifying zip archives, -.Nm -writes to a temporary file and replaces the original -zip archive atomically. -.Pp -Below there are two sections listing functions: one for how to read -from zip archives and one for how to create/modify them. -.Sh READING ZIP ARCHIVES -.Ss open archive -.Xr zip_open 3 -.Xr zip_fdopen 3 -.Ss find files -.Xr zip_name_locate 3 -.Ss read files -.Xr zip_fopen 3 -.Xr zip_fopen_encrypted 3 -.Xr zip_fopen_index 3 -.Xr zip_fopen_index_encrypted 3 -.Xr zip_fread 3 -.Xr zip_fseek 3 -(uncompressed files only) -.Xr zip_ftell 3 -(uncompressed files only) -.Xr zip_fclose 3 -.Ss close archive -.Xr zip_close 3 -.Xr zip_discard 3 -.Ss miscellaneous -.Xr zip_stat 3 -.Xr zip_file_get_comment 3 -.Xr zip_file_get_external_attributes 3 -.Xr zip_get_archive_comment 3 -.Xr zip_get_archive_flag 3 -.Xr zip_get_name 3 -.Xr zip_get_num_entries 3 -.Xr zip_set_default_password 3 -.Sh CREATING/MODIFYING ZIP ARCHIVES -.Ss create/open archive -.Xr zip_open 3 -.Ss add/change files and directories -.Xr zip_dir_add 3 -.Xr zip_file_add 3 -.Xr zip_file_replace 3 -.Xr zip_file_set_comment 3 -.Xr zip_file_set_external_attributes 3 -.Xr zip_file_set_encryption 3 -.Xr zip_file_set_mtime 3 -.Xr zip_set_file_compression 3 -.Xr zip_source_buffer 3 -.Xr zip_source_file 3 -.Xr zip_source_filep 3 -.Xr zip_source_free 3 -.Xr zip_source_function 3 -.Xr zip_source_zip 3 -.Ss rename files -.Xr zip_rename 3 -.Ss delete files -.Xr zip_delete 3 -.Ss revert changes -.Xr zip_unchange 3 -.Xr zip_unchange_all 3 -.Xr zip_unchange_archive 3 -.Ss read/modify extra fields -.Xr zip_file_extra_field_by_id 3 -.Xr zip_file_extra_field_delete 3 -.Xr zip_file_extra_field_delete_by_id 3 -.Xr zip_file_extra_field_get 3 -.Xr zip_file_extra_field_set 3 -.Xr zip_file_extra_fields_count 3 -.Xr zip_file_extra_fields_count_by_id 3 -.Ss close archive -.Xr zip_close 3 -.Ss miscellaneous -.Xr zip_register_progress_callback 3 -.Xr zip_set_archive_comment 3 -.Xr zip_set_archive_flag 3 -.Xr zip_source 3 -.Sh ERROR HANDLING -.Xr zip_error_to_str 3 -.Xr zip_strerror 3 -.Xr zip_file_strerror 3 -.Xr zip_error_get 3 -.Xr zip_error_get_sys_type 3 -.Xr zip_errors 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/links b/libzip-1.2.0/man/links deleted file mode 100644 index b2a0280c3..000000000 --- a/libzip-1.2.0/man/links +++ /dev/null @@ -1,17 +0,0 @@ -zip_error_clear zip_file_error_clear -zip_error_get zip_file_error_get -zip_error_init zip_error_init_with_code -zip_file_add zip_file_replace -zip_file_extra_field_delete zip_file_extra_field_delete_by_id -zip_file_extra_field_get zip_file_extra_field_get_by_id -zip_file_extra_fields_count zip_file_extra_fields_count_by_id -zip_fopen zip_fopen_index -zip_fopen_encrypted zip_fopen_index_encrypted -zip_add zip_replace -zip_open zip_open_from_source -zip_stat zip_stat_index -zip_source_function zip_source_function_create -zip_file_strerror zip_strerror -zip_source_win32a zip_source_win32a_create -zip_source_win32handle zip_source_win32handle_create -zip_source_win32w zip_source_win32w_create diff --git a/libzip-1.2.0/man/zip_add.man b/libzip-1.2.0/man/zip_add.man deleted file mode 100644 index ec56b7444..000000000 --- a/libzip-1.2.0/man/zip_add.man +++ /dev/null @@ -1,50 +0,0 @@ -.TH "ZIP_ADD" "3" "October 6, 2012" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_add\fR, -\fBzip_replace\fR -\- add file to zip archive or replace file in zip archive -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_int64_t\fR -.PD 0 -.HP 4n -\fBzip_add\fR(\fIzip_t\ *archive\fR, \fIconst\ char\ *name\fR, \fIzip_source_t\ *source\fR); -.PD -.PP -\fIint\fR -.PD 0 -.HP 4n -\fBzip_replace\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_source_t\ *source\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_add\fR() -is the obsolete version of -zip_file_add(3). -It is the same as calling -zip_file_add(3) -with an empty -\fIflags\fR -argument. -Similarly, the -\fBzip_replace\fR() -function is the obsolete version of -zip_file_replace(3). -It is the same as calling -zip_file_replace(3) -with an empty -\fIflags\fR -argument. -.SH "SEE ALSO" -libzip(3), -zip_file_add(3), -zip_file_replace(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_add.mdoc b/libzip-1.2.0/man/zip_add.mdoc deleted file mode 100644 index 8f18a0532..000000000 --- a/libzip-1.2.0/man/zip_add.mdoc +++ /dev/null @@ -1,74 +0,0 @@ -.\" zip_add.mdoc -- add files to zip archive -.\" Copyright (C) 2004-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd October 6, 2012 -.Dt ZIP_ADD 3 -.Os -.Sh NAME -.Nm zip_add , -.Nm zip_replace -.Nd add file to zip archive or replace file in zip archive -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_int64_t -.Fn zip_add "zip_t *archive" "const char *name" "zip_source_t *source" -.Ft int -.Fn zip_replace "zip_t *archive" "zip_uint64_t index" "zip_source_t *source" -.Sh DESCRIPTION -The function -.Fn zip_add -is the obsolete version of -.Xr zip_file_add 3 . -It is the same as calling -.Xr zip_file_add 3 -with an empty -.Ar flags -argument. -Similarly, the -.Fn zip_replace -function is the obsolete version of -.Xr zip_file_replace 3 . -It is the same as calling -.Xr zip_file_replace 3 -with an empty -.Ar flags -argument. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_file_add 3 , -.Xr zip_file_replace 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_add_dir.man b/libzip-1.2.0/man/zip_add_dir.man deleted file mode 100644 index 9990208ab..000000000 --- a/libzip-1.2.0/man/zip_add_dir.man +++ /dev/null @@ -1,31 +0,0 @@ -.TH "ZIP_ADD_DIR" "3" "June 23, 2012" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_add_dir\fR -\- add directory to zip archive -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_int64_t\fR -.PD 0 -.HP 4n -\fBzip_add_dir\fR(\fIzip_t\ *archive\fR, \fIconst\ char\ *name\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_add_dir\fR() -is the obsolete version of -zip_dir_add(3). -It is the same as calling -zip_dir_add(3) -with an empty flags argument. -.SH "SEE ALSO" -libzip(3), -zip_dir_add(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_add_dir.mdoc b/libzip-1.2.0/man/zip_add_dir.mdoc deleted file mode 100644 index 08039b400..000000000 --- a/libzip-1.2.0/man/zip_add_dir.mdoc +++ /dev/null @@ -1,59 +0,0 @@ -.\" zip_add_dir.mdoc -- add directory to zip archive -.\" Copyright (C) 2006-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd June 23, 2012 -.Dt ZIP_ADD_DIR 3 -.Os -.Sh NAME -.Nm zip_add_dir -.Nd add directory to zip archive -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_int64_t -.Fn zip_add_dir "zip_t *archive" "const char *name" -.Sh DESCRIPTION -The function -.Fn zip_add_dir -is the obsolete version of -.Xr zip_dir_add 3 . -It is the same as calling -.Xr zip_dir_add 3 -with an empty flags argument. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_dir_add 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_close.man b/libzip-1.2.0/man/zip_close.man deleted file mode 100644 index 718032609..000000000 --- a/libzip-1.2.0/man/zip_close.man +++ /dev/null @@ -1,99 +0,0 @@ -.TH "ZIP_CLOSE" "3" "December 18, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_close\fR -\- close zip archive -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_close\fR(\fIzip_t\ *archive\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_close\fR() -function closes -\fIarchive\fR -and frees the memory allocated for it. -If any files within were changed, those changes are written to disk -first. -If writing changes fails, -\fBzip_close\fR() -fails and -\fIarchive\fR -is left unchanged. -If -\fIarchive\fR -contains no files, the file is completely removed (no empty archive is -written). -.PP -To close a zip file without saving changes, use -zip_discard(3). -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error code in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_close\fR() -will fail if: -.TP 19n -[\fRZIP_ER_EOF\fR] -Unexpected end-of-file found while reading from a file. -.TP 19n -[\fRZIP_ER_INTERNAL\fR] -The callback function of an added or replaced file returned an -error but failed to report which. -.TP 19n -[\fRZIP_ER_INVAL\fR] -The -\fIpath\fR -argument is -\fRNULL\fR. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.TP 19n -[\fRZIP_ER_NOZIP\fR] -File is not a zip archive. -.TP 19n -[\fRZIP_ER_READ\fR] -A file read failed. -.TP 19n -[\fRZIP_ER_RENAME\fR] -A temporary file could not be renamed to its final name. -.TP 19n -[\fRZIP_ER_SEEK\fR] -A file seek failed. -.TP 19n -[\fRZIP_ER_TMPOPEN\fR] -A temporary file could not be created. -.TP 19n -[\fRZIP_ER_WRITE\fR] -A file write failed. -.TP 19n -[\fRZIP_ER_ZLIB\fR] -An error occurred while (de)compressing a stream with -zlib(3). -.PD 0 -.PP -Additionally, any errors returned by the callback function -for added or replaced files will be passed back. -.PD -.SH "SEE ALSO" -libzip(3), -zip_discard(3), -zip_error_get(3), -zip_fdopen(3), -zip_open(3), -zip_register_progress_callback(3), -zip_strerror(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_close.mdoc b/libzip-1.2.0/man/zip_close.mdoc deleted file mode 100644 index 0e106ef05..000000000 --- a/libzip-1.2.0/man/zip_close.mdoc +++ /dev/null @@ -1,115 +0,0 @@ -.\" zip_close.mdoc -- close zip archive -.\" Copyright (C) 2003-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 18, 2016 -.Dt ZIP_CLOSE 3 -.Os -.Sh NAME -.Nm zip_close -.Nd close zip archive -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_close "zip_t *archive" -.Sh DESCRIPTION -The -.Fn zip_close -function closes -.Ar archive -and frees the memory allocated for it. -If any files within were changed, those changes are written to disk -first. -If writing changes fails, -.Fn zip_close -fails and -.Ar archive -is left unchanged. -If -.Ar archive -contains no files, the file is completely removed (no empty archive is -written). -.Pp -To close a zip file without saving changes, use -.Xr zip_discard 3 . -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error code in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Fn zip_close -will fail if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_EOF -Unexpected end-of-file found while reading from a file. -.It Bq Er ZIP_ER_INTERNAL -The callback function of an added or replaced file returned an -error but failed to report which. -.It Bq Er ZIP_ER_INVAL -The -.Ar path -argument is -.Dv NULL . -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.It Bq Er ZIP_ER_NOZIP -File is not a zip archive. -.It Bq Er ZIP_ER_READ -A file read failed. -.It Bq Er ZIP_ER_RENAME -A temporary file could not be renamed to its final name. -.It Bq Er ZIP_ER_SEEK -A file seek failed. -.It Bq Er ZIP_ER_TMPOPEN -A temporary file could not be created. -.It Bq Er ZIP_ER_WRITE -A file write failed. -.It Bq Er ZIP_ER_ZLIB -An error occurred while (de)compressing a stream with -.Xr zlib 3 . -.El -Additionally, any errors returned by the callback function -for added or replaced files will be passed back. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_discard 3 , -.Xr zip_error_get 3 , -.Xr zip_fdopen 3 , -.Xr zip_open 3 , -.Xr zip_register_progress_callback 3 , -.Xr zip_strerror 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_delete.man b/libzip-1.2.0/man/zip_delete.man deleted file mode 100644 index a4bc2cf1e..000000000 --- a/libzip-1.2.0/man/zip_delete.man +++ /dev/null @@ -1,42 +0,0 @@ -.TH "ZIP_DELETE" "3" "March 10, 2009" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_delete\fR -\- delete file from zip archive -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_delete\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR); -.PD -.SH "DESCRIPTION" -The file at position -\fIindex\fR -in the zip archive -\fIarchive\fR -is marked as deleted. -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error code in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_delete\fR() -fails if: -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIindex\fR -is not a valid file index in -\fIarchive\fR. -.SH "SEE ALSO" -libzip(3), -zip_unchange(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_delete.mdoc b/libzip-1.2.0/man/zip_delete.mdoc deleted file mode 100644 index 0c9a62b7a..000000000 --- a/libzip-1.2.0/man/zip_delete.mdoc +++ /dev/null @@ -1,71 +0,0 @@ -.\" zip_delete.mdoc -- delete files from zip archive -.\" Copyright (C) 2003-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd March 10, 2009 -.Dt ZIP_DELETE 3 -.Os -.Sh NAME -.Nm zip_delete -.Nd delete file from zip archive -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_delete "zip_t *archive" "zip_uint64_t index" -.Sh DESCRIPTION -The file at position -.Ar index -in the zip archive -.Ar archive -is marked as deleted. -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error code in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Fn zip_delete -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_INVAL -.Ar index -is not a valid file index in -.Ar archive . -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_unchange 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_dir_add.man b/libzip-1.2.0/man/zip_dir_add.man deleted file mode 100644 index 73654a1b0..000000000 --- a/libzip-1.2.0/man/zip_dir_add.man +++ /dev/null @@ -1,79 +0,0 @@ -.TH "ZIP_DIR_ADD" "3" "December 4, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_dir_add\fR -\- add directory to zip archive -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_int64_t\fR -.PD 0 -.HP 4n -\fBzip_dir_add\fR(\fIzip_t\ *archive\fR, \fIconst\ char\ *name\fR, \fIzip_flags_t\ flags\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_dir_add\fR() -adds a directory to a zip archive. -The argument -\fIarchive\fR -specifies the zip archive to which the directory should be added. -\fIname\fR -is the directory's name in the zip archive. -The -\fIflags\fR -argument can be any of: -.TP 22n -\fRZIP_FL_ENC_GUESS\fR -Guess encoding of -\fIname\fR -(default). -.TP 22n -\fRZIP_FL_ENC_UTF_8\fR -Interpret -\fIname\fR -as UTF-8. -.TP 22n -\fRZIP_FL_ENC_CP437\fR -Interpret -\fIname\fR -as code page 437 (CP-437). -.SH "RETURN VALUES" -Upon successful completion, the index of the new entry in the archive -is returned. -Otherwise, \-1 is returned and the error code in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_dir_add\fR() -fails if: -.TP 19n -[\fRZIP_ER_EXISTS\fR] -There is already an entry called -\fIname\fR -in the archive. -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIarchive\fR -or -\fIname\fR -are -\fRNULL\fR, -or invalid UTF-8 encoded file names. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.SH "SEE ALSO" -libzip(3), -zip_add(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> -.SH "CAVEATS" -\fBzip_dir_add\fR() -does not look in the file system, it just creates one entry in the -archive for the provided name. diff --git a/libzip-1.2.0/man/zip_dir_add.mdoc b/libzip-1.2.0/man/zip_dir_add.mdoc deleted file mode 100644 index d881bf5d0..000000000 --- a/libzip-1.2.0/man/zip_dir_add.mdoc +++ /dev/null @@ -1,105 +0,0 @@ -.\" zip_dir_add.mdoc -- add directory to zip archive -.\" Copyright (C) 2006-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 4, 2014 -.Dt ZIP_DIR_ADD 3 -.Os -.Sh NAME -.Nm zip_dir_add -.Nd add directory to zip archive -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_int64_t -.Fn zip_dir_add "zip_t *archive" "const char *name" "zip_flags_t flags" -.Sh DESCRIPTION -The function -.Fn zip_dir_add -adds a directory to a zip archive. -The argument -.Ar archive -specifies the zip archive to which the directory should be added. -.Ar name -is the directory's name in the zip archive. -The -.Ar flags -argument can be any of: -.Bl -tag -width XZIPXFLXENCXSTRICTXX -.It Dv ZIP_FL_ENC_GUESS -Guess encoding of -.Ar name -(default). -.It Dv ZIP_FL_ENC_UTF_8 -Interpret -.Ar name -as UTF-8. -.It Dv ZIP_FL_ENC_CP437 -Interpret -.Ar name -as code page 437 (CP-437). -.El -.Sh RETURN VALUES -Upon successful completion, the index of the new entry in the archive -is returned. -Otherwise, \-1 is returned and the error code in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Fn zip_dir_add -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_EXISTS -There is already an entry called -.Ar name -in the archive. -.It Bq Er ZIP_ER_INVAL -.Ar archive -or -.Ar name -are -.Dv NULL , -or invalid UTF-8 encoded file names. -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_add 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at -.Sh CAVEATS -.Fn zip_dir_add -does not look in the file system, it just creates one entry in the -archive for the provided name. diff --git a/libzip-1.2.0/man/zip_discard.man b/libzip-1.2.0/man/zip_discard.man deleted file mode 100644 index 3a3fae143..000000000 --- a/libzip-1.2.0/man/zip_discard.man +++ /dev/null @@ -1,30 +0,0 @@ -.TH "ZIP_DISCARD" "3" "February 13, 2012" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_discard\fR -\- close zip archive and discard changes -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIvoid\fR -.PD 0 -.HP 4n -\fBzip_discard\fR(\fIzip_t\ *archive\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_discard\fR() -function closes -\fIarchive\fR -and frees the memory allocated for it. -Any changes to the archive are not written to disk and discarded. -.SH "SEE ALSO" -libzip(3), -zip_close(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_discard.mdoc b/libzip-1.2.0/man/zip_discard.mdoc deleted file mode 100644 index b63b7bfd2..000000000 --- a/libzip-1.2.0/man/zip_discard.mdoc +++ /dev/null @@ -1,58 +0,0 @@ -.\" zip_discard.mdoc -- close zip archive and discard changes -.\" Copyright (C) 2012-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd February 13, 2012 -.Dt ZIP_DISCARD 3 -.Os -.Sh NAME -.Nm zip_discard -.Nd close zip archive and discard changes -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft void -.Fn zip_discard "zip_t *archive" -.Sh DESCRIPTION -The -.Fn zip_discard -function closes -.Ar archive -and frees the memory allocated for it. -Any changes to the archive are not written to disk and discarded. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_close 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_error_clear.man b/libzip-1.2.0/man/zip_error_clear.man deleted file mode 100644 index 2cf0431a2..000000000 --- a/libzip-1.2.0/man/zip_error_clear.man +++ /dev/null @@ -1,40 +0,0 @@ -.TH "ZIP_ERROR_CLEAR" "3" "October 30, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_error_clear\fR, -\fBzip_file_error_clear\fR -\- clear error state for archive or file -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIvoid\fR -.PD 0 -.HP 4n -\fBzip_error_clear\fR(\fIzip_t\ *archive\fR); -.PD -.PP -\fIvoid\fR -.PD 0 -.HP 4n -\fBzip_file_error_clear\fR(\fIzip_file_t\ *file\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_error_clear\fR() -function clears the error state for the zip archive -\fIarchive\fR. -.PP -The -\fBzip_file_error_clear\fR() -function does the same for the zip file -\fIfile\fR. -.SH "SEE ALSO" -libzip(3), -zip_error_get(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_error_clear.mdoc b/libzip-1.2.0/man/zip_error_clear.mdoc deleted file mode 100644 index fe1d79cbe..000000000 --- a/libzip-1.2.0/man/zip_error_clear.mdoc +++ /dev/null @@ -1,64 +0,0 @@ -.\" zip_error_clear.mdoc -- clear error state for archive or file -.\" Copyright (C) 2006-2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd October 30, 2014 -.Dt ZIP_ERROR_CLEAR 3 -.Os -.Sh NAME -.Nm zip_error_clear , -.Nm zip_file_error_clear -.Nd clear error state for archive or file -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft void -.Fn zip_error_clear "zip_t *archive" -.Ft void -.Fn zip_file_error_clear "zip_file_t *file" -.Sh DESCRIPTION -The -.Fn zip_error_clear -function clears the error state for the zip archive -.Ar archive . -.Pp -The -.Fn zip_file_error_clear -function does the same for the zip file -.Ar file . -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_error_get 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_error_code_system.man b/libzip-1.2.0/man/zip_error_code_system.man deleted file mode 100644 index bc839e2d5..000000000 --- a/libzip-1.2.0/man/zip_error_code_system.man +++ /dev/null @@ -1,32 +0,0 @@ -.TH "ZIP_ERROR_CODE_SYSTEM" "3" "October 30, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_error_code_system\fR -\- get operating system error part of zip_error -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_error_code_system\fR(\fIconst\ zip_error_t\ *ze\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_error_code_system\fR() -function returns the system specific part of the error from the -zip_error error -\fIze\fR. -For finding out what system reported the error, use -zip_error_system_type(3). -.SH "SEE ALSO" -libzip(3), -zip_error_code_zip(3), -zip_error_system_type(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_error_code_system.mdoc b/libzip-1.2.0/man/zip_error_code_system.mdoc deleted file mode 100644 index 6b9b3a4ea..000000000 --- a/libzip-1.2.0/man/zip_error_code_system.mdoc +++ /dev/null @@ -1,60 +0,0 @@ -.\" zip_error_code_system.mdoc -- get system error part of zip_error -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd October 30, 2014 -.Dt ZIP_ERROR_CODE_SYSTEM 3 -.Os -.Sh NAME -.Nm zip_error_code_system -.Nd get operating system error part of zip_error -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_error_code_system "const zip_error_t *ze" -.Sh DESCRIPTION -The -.Fn zip_error_code_system -function returns the system specific part of the error from the -zip_error error -.Ar ze . -For finding out what system reported the error, use -.Xr zip_error_system_type 3 . -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_error_code_zip 3 , -.Xr zip_error_system_type 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_error_code_zip.man b/libzip-1.2.0/man/zip_error_code_zip.man deleted file mode 100644 index 627413ad8..000000000 --- a/libzip-1.2.0/man/zip_error_code_zip.man +++ /dev/null @@ -1,29 +0,0 @@ -.TH "ZIP_ERROR_CODE_ZIP" "3" "October 30, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_error_code_zip\fR -\- get libzip error part of zip_error -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_error_code_zip\fR(\fIconst\ zip_error_t\ *ze\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_error_code_zip\fR() -function returns the libzip specific part of the error from the -zip_error error -\fIze\fR. -.SH "SEE ALSO" -libzip(3), -zip_error_code_system(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_error_code_zip.mdoc b/libzip-1.2.0/man/zip_error_code_zip.mdoc deleted file mode 100644 index 2875d64ed..000000000 --- a/libzip-1.2.0/man/zip_error_code_zip.mdoc +++ /dev/null @@ -1,57 +0,0 @@ -.\" zip_error_code_zip.mdoc -- get libzip error part of zip_error -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd October 30, 2014 -.Dt ZIP_ERROR_CODE_ZIP 3 -.Os -.Sh NAME -.Nm zip_error_code_zip -.Nd get libzip error part of zip_error -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_error_code_zip "const zip_error_t *ze" -.Sh DESCRIPTION -The -.Fn zip_error_code_zip -function returns the libzip specific part of the error from the -zip_error error -.Ar ze . -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_error_code_system 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_error_fini.man b/libzip-1.2.0/man/zip_error_fini.man deleted file mode 100644 index f715aefed..000000000 --- a/libzip-1.2.0/man/zip_error_fini.man +++ /dev/null @@ -1,29 +0,0 @@ -.TH "ZIP_ERROR_FINI" "3" "October 30, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_error_fini\fR -\- clean up zip_error structure -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIvoid\fR -.PD 0 -.HP 4n -\fBzip_error_fini\fR(\fIzip_error_t\ *ze\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_error_fini\fR() -function cleans up and frees internally allocated memory of the -zip_error pointed to by -\fIze\fR. -.SH "SEE ALSO" -libzip(3), -zip_error_init(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_error_fini.mdoc b/libzip-1.2.0/man/zip_error_fini.mdoc deleted file mode 100644 index 6f7dffa0d..000000000 --- a/libzip-1.2.0/man/zip_error_fini.mdoc +++ /dev/null @@ -1,57 +0,0 @@ -.\" zip_error_fini.mdoc -- clean up zip_error -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd October 30, 2014 -.Dt ZIP_ERROR_FINI 3 -.Os -.Sh NAME -.Nm zip_error_fini -.Nd clean up zip_error structure -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft void -.Fn zip_error_fini "zip_error_t *ze" -.Sh DESCRIPTION -The -.Fn zip_error_fini -function cleans up and frees internally allocated memory of the -zip_error pointed to by -.Ar ze . -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_error_init 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_error_get.man b/libzip-1.2.0/man/zip_error_get.man deleted file mode 100644 index 491621c89..000000000 --- a/libzip-1.2.0/man/zip_error_get.man +++ /dev/null @@ -1,87 +0,0 @@ -.TH "ZIP_ERROR_GET" "3" "December 2, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_error_get\fR, -\fBzip_file_error_get\fR -\- get error codes for archive or file -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIvoid\fR -.PD 0 -.HP 4n -\fBzip_error_get\fR(\fIzip_t\ *archive\fR, \fIint\ *zep\fR, \fIint\ *sep\fR); -.PD -.PP -\fIvoid\fR -.PD 0 -.HP 4n -\fBzip_file_error_get\fR(\fIzip_file_t\ *file\fR, \fIint\ *zep\fR, \fIint\ *sep\fR); -.PD -.SH "DESCRIPTION" -The functions -\fBzip_error_get\fR() -and -\fBzip_file_error_get\fR() -are deprecated. -Use -zip_error_code_system(3), -zip_error_code_zip(3), -zip_file_get_error(3), -and -zip_get_error(3) -instead. -.PP -For -\fBzip_error_get\fR(), -replace -.nf -.sp -.RS 6n -int ze, se; -zip_error_get(za, &ze, &se); -.RE -.fi -with -.nf -.sp -.RS 6n -int ze, se; -zip_error_t *error = zip_get_error(za); -ze = zip_error_code_zip(error); -se = zip_error_code_system(error); -.RE -.fi -For -\fBzip_file_error_get\fR(), -replace -.nf -.sp -.RS 6n -int ze, se; -zip_file_error_get(zf, &ze, &se); -.RE -.fi -with -.nf -.sp -.RS 6n -int ze, se; -zip_error_t *error = zip_file_get_error(zf); -ze = zip_error_code_zip(error); -se = zip_error_code_system(error); -.RE -.fi -.SH "SEE ALSO" -libzip(3), -zip_error_code_system(3), -zip_error_code_zip(3), -zip_file_get_error(3), -zip_get_error(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_error_get.mdoc b/libzip-1.2.0/man/zip_error_get.mdoc deleted file mode 100644 index 26a8bed33..000000000 --- a/libzip-1.2.0/man/zip_error_get.mdoc +++ /dev/null @@ -1,99 +0,0 @@ -.\" zip_error_get.mdoc -- get error codes for archive or file -.\" Copyright (C) 2004-2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 2, 2014 -.Dt ZIP_ERROR_GET 3 -.Os -.Sh NAME -.Nm zip_error_get , -.Nm zip_file_error_get -.Nd get error codes for archive or file -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft void -.Fn zip_error_get "zip_t *archive" "int *zep" "int *sep" -.Ft void -.Fn zip_file_error_get "zip_file_t *file" "int *zep" "int *sep" -.Sh DESCRIPTION -The functions -.Fn zip_error_get -and -.Fn zip_file_error_get -are deprecated. -Use -.Xr zip_error_code_system 3 , -.Xr zip_error_code_zip 3 , -.Xr zip_file_get_error 3 , -and -.Xr zip_get_error 3 -instead. -.Pp -For -.Fn zip_error_get , -replace -.Bd -literal -offset indent -int ze, se; -zip_error_get(za, &ze, &se); -.Ed -with -.Bd -literal -offset indent -int ze, se; -zip_error_t *error = zip_get_error(za); -ze = zip_error_code_zip(error); -se = zip_error_code_system(error); -.Ed -For -.Fn zip_file_error_get , -replace -.Bd -literal -offset indent -int ze, se; -zip_file_error_get(zf, &ze, &se); -.Ed -with -.Bd -literal -offset indent -int ze, se; -zip_error_t *error = zip_file_get_error(zf); -ze = zip_error_code_zip(error); -se = zip_error_code_system(error); -.Ed -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_error_code_system 3 , -.Xr zip_error_code_zip 3 , -.Xr zip_file_get_error 3 , -.Xr zip_get_error 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_error_get_sys_type.man b/libzip-1.2.0/man/zip_error_get_sys_type.man deleted file mode 100644 index 2bbf912bd..000000000 --- a/libzip-1.2.0/man/zip_error_get_sys_type.man +++ /dev/null @@ -1,49 +0,0 @@ -.TH "ZIP_ERROR_GET_SYS_TYPE" "3" "December 2, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_error_get_sys_type\fR -\- get type of system error code -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_error_get_sys_type\fR(\fIint\ ze\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_error_get_sys_type\fR() -is deprecated; use -zip_error_init_with_code(3) -and -zip_error_system_type(3) -instead. -.PP -Replace -.nf -.sp -.RS 6n -int i = zip_error_get_sys_type(ze); -.RE -.fi -with -.nf -.sp -.RS 6n -zip_error_t error; -zip_error_init_with_code(&error, ze); -int i = zip_error_system_type(&error); -.RE -.fi -.SH "SEE ALSO" -libzip(3), -zip_error_init_with_code(3), -zip_error_system_type(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_error_get_sys_type.mdoc b/libzip-1.2.0/man/zip_error_get_sys_type.mdoc deleted file mode 100644 index 0e656e3dd..000000000 --- a/libzip-1.2.0/man/zip_error_get_sys_type.mdoc +++ /dev/null @@ -1,71 +0,0 @@ -.\" zip_error_get_sys_type.mdoc -- get type of error -.\" Copyright (C) 2004-2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 2, 2014 -.Dt ZIP_ERROR_GET_SYS_TYPE 3 -.Os -.Sh NAME -.Nm zip_error_get_sys_type -.Nd get type of system error code -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_error_get_sys_type "int ze" -.Sh DESCRIPTION -The function -.Fn zip_error_get_sys_type -is deprecated; use -.Xr zip_error_init_with_code 3 -and -.Xr zip_error_system_type 3 -instead. -.Pp -Replace -.Bd -literal -offset indent -int i = zip_error_get_sys_type(ze); -.Ed -with -.Bd -literal -offset indent -zip_error_t error; -zip_error_init_with_code(&error, ze); -int i = zip_error_system_type(&error); -.Ed -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_error_init_with_code 3 , -.Xr zip_error_system_type 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_error_init.man b/libzip-1.2.0/man/zip_error_init.man deleted file mode 100644 index d8b996fcd..000000000 --- a/libzip-1.2.0/man/zip_error_init.man +++ /dev/null @@ -1,46 +0,0 @@ -.TH "ZIP_ERROR_INIT" "3" "December 2, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_error_init\fR, -\fBzip_error_init_with_code\fR -\- initialize zip_error structure -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIvoid\fR -.PD 0 -.HP 4n -\fBzip_error_init\fR(\fIzip_error_t\ *error\fR); -.PD -.PP -\fIvoid\fR -.PD 0 -.HP 4n -\fBzip_error_init_with_code\fR(\fIzip_error_t\ *error\fR, \fIint\ ze\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_error_init\fR() -function initializes the zip_error pointed to by -\fIerror\fR. -\fI*error\fR -must be allocated before calling -\fBzip_error_init\fR(). -.PP -The -\fBzip_error_init_with_code\fR() -function does the same, but additionally sets the zip error code to -\fIze\fR -and sets the system error code to the current -errno(3) -value, if appropriate. -.SH "SEE ALSO" -libzip(3), -zip_error_fini(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_error_init.mdoc b/libzip-1.2.0/man/zip_error_init.mdoc deleted file mode 100644 index 3f6cbf7dd..000000000 --- a/libzip-1.2.0/man/zip_error_init.mdoc +++ /dev/null @@ -1,71 +0,0 @@ -.\" zip_error_init.mdoc -- initialize zip_error -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 2, 2014 -.Dt ZIP_ERROR_INIT 3 -.Os -.Sh NAME -.Nm zip_error_init , -.Nm zip_error_init_with_code -.Nd initialize zip_error structure -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft void -.Fn zip_error_init "zip_error_t *error" -.Ft void -.Fn zip_error_init_with_code "zip_error_t *error" "int ze" -.Sh DESCRIPTION -The -.Fn zip_error_init -function initializes the zip_error pointed to by -.Ar error . -.Ar *error -must be allocated before calling -.Fn zip_error_init . -.Pp -The -.Fn zip_error_init_with_code -function does the same, but additionally sets the zip error code to -.Ar ze -and sets the system error code to the current -.Xr errno 3 -value, if appropriate. -.\" TODO: describe when you would need to call this at all -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_error_fini 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_error_set.man b/libzip-1.2.0/man/zip_error_set.man deleted file mode 100644 index 02e2f01e3..000000000 --- a/libzip-1.2.0/man/zip_error_set.man +++ /dev/null @@ -1,38 +0,0 @@ -.TH "ZIP_ERROR_SET" "3" "October 30, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_error_set\fR -\- fill in zip_error structure -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIvoid\fR -.PD 0 -.HP 4n -\fBzip_error_set\fR(\fIzip_error_t\ *ze\fR, \fIint\ le\fR, \fIint\ se\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_error_set\fR() -function sets the zip_error pointed to by -\fIze\fR -to the libzip error code -\fIle\fR -and the system error code -\fIse\fR. -.PP -\fIze\fR -must be allocated and initialized with -zip_error_fini(3) -before calling -\fBzip_error\fR(\fIset\fR). -.SH "SEE ALSO" -libzip(3), -zip_error_init(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_error_set.mdoc b/libzip-1.2.0/man/zip_error_set.mdoc deleted file mode 100644 index 4cb82ffea..000000000 --- a/libzip-1.2.0/man/zip_error_set.mdoc +++ /dev/null @@ -1,66 +0,0 @@ -.\" zip_error_set.mdoc -- set zip_error -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd October 30, 2014 -.Dt ZIP_ERROR_SET 3 -.Os -.Sh NAME -.Nm zip_error_set -.Nd fill in zip_error structure -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft void -.Fn zip_error_set "zip_error_t *ze" "int le" "int se" -.Sh DESCRIPTION -The -.Fn zip_error_set -function sets the zip_error pointed to by -.Ar ze -to the libzip error code -.Ar le -and the system error code -.Ar se . -.Pp -.Ar ze -must be allocated and initialized with -.Xr zip_error_fini 3 -before calling -.Fn zip_error set . -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_error_init 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_error_strerror.man b/libzip-1.2.0/man/zip_error_strerror.man deleted file mode 100644 index b69d5a285..000000000 --- a/libzip-1.2.0/man/zip_error_strerror.man +++ /dev/null @@ -1,36 +0,0 @@ -.TH "ZIP_ERROR_STRERROR" "3" "October 30, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_error_strerror\fR -\- create human-readable string for zip_error -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIconst char *\fR -.PD 0 -.HP 4n -\fBzip_error_strerror\fR(\fIzip_error_t\ *ze\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_error_strerror\fR() -function returns an error message string corresponding to -\fIze\fR -like -strerror(3). -This string will stay valid until the next call to -\fBzip_error_strerror\fR() -or until -zip_error_fini(3) -is called. -.SH "SEE ALSO" -libzip(3), -strerror(3), -zip_error_fini(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_error_strerror.mdoc b/libzip-1.2.0/man/zip_error_strerror.mdoc deleted file mode 100644 index 6e8b27b21..000000000 --- a/libzip-1.2.0/man/zip_error_strerror.mdoc +++ /dev/null @@ -1,64 +0,0 @@ -.\" zip_error_strerror.mdoc -- create human-readable version of zip_error -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd October 30, 2014 -.Dt ZIP_ERROR_STRERROR 3 -.Os -.Sh NAME -.Nm zip_error_strerror -.Nd create human-readable string for zip_error -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft const char * -.Fn zip_error_strerror "zip_error_t *ze" -.Sh DESCRIPTION -The -.Fn zip_error_strerror -function returns an error message string corresponding to -.Ar ze -like -.Xr strerror 3 . -This string will stay valid until the next call to -.Fn zip_error_strerror -or until -.Xr zip_error_fini 3 -is called. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr strerror 3 , -.Xr zip_error_fini 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_error_system_type.man b/libzip-1.2.0/man/zip_error_system_type.man deleted file mode 100644 index 8187c3053..000000000 --- a/libzip-1.2.0/man/zip_error_system_type.man +++ /dev/null @@ -1,46 +0,0 @@ -.TH "ZIP_ERROR_SYSTEM_TYPE" "3" "October 30, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_error_system_type\fR -\- return type of system error -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_error_system_type\fR(\fIconst\ zip_error_t\ *ze\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_error_system_type\fR() -function returns the type of the system specific part for the zip_error -\fIze\fR. -Currently, the following system types are defined: -.TP 13n -\fRZIP_ET_NONE\fR -System specific part of -\fIze\fR -is unused. -.TP 13n -\fRZIP_ET_SYS\fR -System specific part of -\fIze\fR -is an -errno(2). -.TP 13n -\fRZIP_ET_ZLIB\fR -\fIze\fR -is a -zlib(3) -error. -.SH "SEE ALSO" -libzip(3), -zip_error_code_system(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_error_system_type.mdoc b/libzip-1.2.0/man/zip_error_system_type.mdoc deleted file mode 100644 index cdab136d7..000000000 --- a/libzip-1.2.0/man/zip_error_system_type.mdoc +++ /dev/null @@ -1,74 +0,0 @@ -.\" zip_error_system_type.mdoc -- return system type for error -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd October 30, 2014 -.Dt ZIP_ERROR_SYSTEM_TYPE 3 -.Os -.Sh NAME -.Nm zip_error_system_type -.Nd return type of system error -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_error_system_type "const zip_error_t *ze" -.Sh DESCRIPTION -The -.Fn zip_error_system_type -function returns the type of the system specific part for the zip_error -.Ar ze . -Currently, the following system types are defined: -.Bl -tag -width ZIP_ET_NONE -.It Dv ZIP_ET_NONE -System specific part of -.Ar ze -is unused. -.It Dv ZIP_ET_SYS -System specific part of -.Ar ze -is an -.Xr errno 2 . -.It Dv ZIP_ET_ZLIB -.System specific part of -.Ar ze -is a -.Xr zlib 3 -error. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_error_code_system 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_error_to_data.man b/libzip-1.2.0/man/zip_error_to_data.man deleted file mode 100644 index b90a49c2b..000000000 --- a/libzip-1.2.0/man/zip_error_to_data.man +++ /dev/null @@ -1,38 +0,0 @@ -.TH "ZIP_ERROR_TO_DATA" "3" "November 2, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_error_to_data\fR -\- convert zip_error to return value suitable for ZIP_SOURCE_ERROR -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_int64_t\fR -.PD 0 -.HP 4n -\fBzip_error_to_data\fR(\fIconst\ zip_error_t\ *ze\fR, \fIvoid\ *data\fR, \fIzip_uint64_t\ len\fR); -.PD -.SH "DESCRIPTION" -\fBzip_error_to_data\fR() -function converts the zip_error -\fIze\fR -into data suitable as return value for -\fRZIP_SOURCE_ERROR\fR. -The data is written into the buffer -\fIdata\fR -of size -\fIlen\fR. -If the buffer is not large enough to hold 2 ints, an error is -returned. -.SH "RETURN VALUES" -\fBzip_error_to_data\fR() -returns 2*(sizeof int) on success, and \-1 on error. -.SH "SEE ALSO" -libzip(3), -zip_source_function(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_error_to_data.mdoc b/libzip-1.2.0/man/zip_error_to_data.mdoc deleted file mode 100644 index d2cbf8e22..000000000 --- a/libzip-1.2.0/man/zip_error_to_data.mdoc +++ /dev/null @@ -1,66 +0,0 @@ -.\" zip_error_to_data.mdoc -- create error data for ZIP_SOURCE_ERROR -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd November 2, 2014 -.Dt ZIP_ERROR_TO_DATA 3 -.Os -.Sh NAME -.Nm zip_error_to_data -.Nd convert zip_error to return value suitable for ZIP_SOURCE_ERROR -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_int64_t -.Fn zip_error_to_data "const zip_error_t *ze" "void *data" "zip_uint64_t len" -.Sh DESCRIPTION -.Fn zip_error_to_data -function converts the zip_error -.Ar ze -into data suitable as return value for -.Dv ZIP_SOURCE_ERROR . -The data is written into the buffer -.Ar data -of size -.Ar len . -If the buffer is not large enough to hold 2 ints, an error is -returned. -.Sh RETURN VALUES -.Fn zip_error_to_data -returns 2*(sizeof int) on success, and \-1 on error. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source_function 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_error_to_str.man b/libzip-1.2.0/man/zip_error_to_str.man deleted file mode 100644 index aac3d8b1b..000000000 --- a/libzip-1.2.0/man/zip_error_to_str.man +++ /dev/null @@ -1,52 +0,0 @@ -.TH "ZIP_ERROR_TO_STR" "3" "December 2, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_error_to_str\fR -\- get string representation of zip error -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_error_to_str\fR(\fIchar\ *buf\fR, \fIzip_uint64_t\ len\fR, \fIint\ ze\fR, \fIint\ se\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_error_to_str\fR() -is deprecated; use -zip_error_init_with_code(3) -and -zip_error_strerror(3) -instead. -.PP -Replace -.nf -.sp -.RS 6n -char buf[BUFSIZE]; -zip_error_to_str(buf, sizeof(buf), ze, se); -printf("%s", buf); -.RE -.fi -with -.nf -.sp -.RS 6n -zip_error_t error; -zip_error_init_with_code(&error, ze); -printf("%s", zip_error_strerror(&error)); -zip_error_fini(&error); -.RE -.fi -.SH "SEE ALSO" -libzip(3), -zip_error_init_with_code(3), -zip_error_strerror(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_error_to_str.mdoc b/libzip-1.2.0/man/zip_error_to_str.mdoc deleted file mode 100644 index 1ff2846b8..000000000 --- a/libzip-1.2.0/man/zip_error_to_str.mdoc +++ /dev/null @@ -1,74 +0,0 @@ -.\" zip_error_to_str.mdoc -- get string representation of zip error code -.\" Copyright (C) 2003-2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 2, 2014 -.Dt ZIP_ERROR_TO_STR 3 -.Os -.Sh NAME -.Nm zip_error_to_str -.Nd get string representation of zip error -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_error_to_str "char *buf" "zip_uint64_t len" "int ze" "int se" -.Sh DESCRIPTION -The function -.Fn zip_error_to_str -is deprecated; use -.Xr zip_error_init_with_code 3 -and -.Xr zip_error_strerror 3 -instead. -.Pp -Replace -.Bd -literal -offset indent -char buf[BUFSIZE]; -zip_error_to_str(buf, sizeof(buf), ze, se); -printf("%s", buf); -.Ed -with -.Bd -literal -offset indent -zip_error_t error; -zip_error_init_with_code(&error, ze); -printf("%s", zip_error_strerror(&error)); -zip_error_fini(&error); -.Ed -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_error_init_with_code 3 , -.Xr zip_error_strerror 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_errors.man b/libzip-1.2.0/man/zip_errors.man deleted file mode 100644 index 45917434f..000000000 --- a/libzip-1.2.0/man/zip_errors.man +++ /dev/null @@ -1,100 +0,0 @@ -.TH "ZIP_ERRORS" "3" "March 10, 2009" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_errors\fR -\- list of all libzip error codes -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.SH "DESCRIPTION" -The following error codes are used by libzip: -.TP 23n -[\fRZIP_ER_OK\fR] -No error. -.TP 23n -[\fRZIP_ER_MULTIDISK\fR] -Multi-disk zip archives not supported. -.TP 23n -[\fRZIP_ER_RENAME\fR] -Renaming temporary file failed. -.TP 23n -[\fRZIP_ER_CLOSE\fR] -Closing zip archive failed. -.TP 23n -[\fRZIP_ER_SEEK\fR] -Seek error. -.TP 23n -[\fRZIP_ER_READ\fR] -Read error. -.TP 23n -[\fRZIP_ER_WRITE\fR] -Write error. -.TP 23n -[\fRZIP_ER_CRC\fR] -CRC error. -.TP 23n -[\fRZIP_ER_ZIPCLOSED\fR] -Containing zip archive was closed. -.TP 23n -[\fRZIP_ER_NOENT\fR] -No such file. -.TP 23n -[\fRZIP_ER_EXISTS\fR] -File already exists. -.TP 23n -[\fRZIP_ER_OPEN\fR] -Can't open file. -.TP 23n -[\fRZIP_ER_TMPOPEN\fR] -Failure to create temporary file. -.TP 23n -[\fRZIP_ER_ZLIB\fR] -Zlib error. -.TP 23n -[\fRZIP_ER_MEMORY\fR] -Malloc failure. -.TP 23n -[\fRZIP_ER_CHANGED\fR] -Entry has been changed. -.TP 23n -[\fRZIP_ER_COMPNOTSUPP\fR] -Compression method not supported. -.TP 23n -[\fRZIP_ER_EOF\fR] -Premature EOF. -.TP 23n -[\fRZIP_ER_INVAL\fR] -Invalid argument. -.TP 23n -[\fRZIP_ER_NOZIP\fR] -Not a zip archive. -.TP 23n -[\fRZIP_ER_INTERNAL\fR] -Internal error. -.TP 23n -[\fRZIP_ER_INCONS\fR] -Zip archive inconsistent. -.TP 23n -[\fRZIP_ER_REMOVE\fR] -Can't remove file. -.TP 23n -[\fRZIP_ER_DELETED\fR] -Entry has been deleted. -.TP 23n -[\fRZIP_ER_ENCRNOTSUPP\fR] -Encryption method not supported. -.TP 23n -[\fRZIP_ER_RDONLY\fR] -Read-only archive. -.TP 23n -[\fRZIP_ER_NOPASSWD\fR] -No password provided. -.TP 23n -[\fRZIP_ER_WRONGPASSWD\fR] -Wrong password provided. -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_errors.mdoc b/libzip-1.2.0/man/zip_errors.mdoc deleted file mode 100644 index 721b59ea0..000000000 --- a/libzip-1.2.0/man/zip_errors.mdoc +++ /dev/null @@ -1,109 +0,0 @@ -.\" zip_errors.mdoc -- list of all libzip error codes -.\" Copyright (C) 2004-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.\" This file was generated automatically by ./make_zip_errors.sh -.\" from ./../lib/zip.h; make changes there. -.\" -.Dd March 10, 2009 -.Dt ZIP_ERRORS 3 -.Os -.Sh NAME -.Nm zip_errors -.Nd list of all libzip error codes -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Sh DESCRIPTION -The following error codes are used by libzip: -.Bl -tag -width XZIPXERXCOMPNOTSUPPXX -.It Bq Er ZIP_ER_OK -No error. -.It Bq Er ZIP_ER_MULTIDISK -Multi-disk zip archives not supported. -.It Bq Er ZIP_ER_RENAME -Renaming temporary file failed. -.It Bq Er ZIP_ER_CLOSE -Closing zip archive failed. -.It Bq Er ZIP_ER_SEEK -Seek error. -.It Bq Er ZIP_ER_READ -Read error. -.It Bq Er ZIP_ER_WRITE -Write error. -.It Bq Er ZIP_ER_CRC -CRC error. -.It Bq Er ZIP_ER_ZIPCLOSED -Containing zip archive was closed. -.It Bq Er ZIP_ER_NOENT -No such file. -.It Bq Er ZIP_ER_EXISTS -File already exists. -.It Bq Er ZIP_ER_OPEN -Can't open file. -.It Bq Er ZIP_ER_TMPOPEN -Failure to create temporary file. -.It Bq Er ZIP_ER_ZLIB -Zlib error. -.It Bq Er ZIP_ER_MEMORY -Malloc failure. -.It Bq Er ZIP_ER_CHANGED -Entry has been changed. -.It Bq Er ZIP_ER_COMPNOTSUPP -Compression method not supported. -.It Bq Er ZIP_ER_EOF -Premature EOF. -.It Bq Er ZIP_ER_INVAL -Invalid argument. -.It Bq Er ZIP_ER_NOZIP -Not a zip archive. -.It Bq Er ZIP_ER_INTERNAL -Internal error. -.It Bq Er ZIP_ER_INCONS -Zip archive inconsistent. -.It Bq Er ZIP_ER_REMOVE -Can't remove file. -.It Bq Er ZIP_ER_DELETED -Entry has been deleted. -.It Bq Er ZIP_ER_ENCRNOTSUPP -Encryption method not supported. -.It Bq Er ZIP_ER_RDONLY -Read-only archive. -.It Bq Er ZIP_ER_NOPASSWD -No password provided. -.It Bq Er ZIP_ER_WRONGPASSWD -Wrong password provided. -.El -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_fclose.man b/libzip-1.2.0/man/zip_fclose.man deleted file mode 100644 index 0f6eb5654..000000000 --- a/libzip-1.2.0/man/zip_fclose.man +++ /dev/null @@ -1,34 +0,0 @@ -.TH "ZIP_FCLOSE" "3" "September 12, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_fclose\fR -\- close file in zip archive -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_fclose\fR(\fIzip_file_t\ *file\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_fclose\fR() -function closes -\fIfile\fR -and frees the memory allocated for it. -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, the error code is returned. -.SH "SEE ALSO" -libzip(3), -zip_fopen(3), -zip_fread(3), -zip_fseek(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_fclose.mdoc b/libzip-1.2.0/man/zip_fclose.mdoc deleted file mode 100644 index e43cdf55c..000000000 --- a/libzip-1.2.0/man/zip_fclose.mdoc +++ /dev/null @@ -1,62 +0,0 @@ -.\" zip_fclose.mdoc -- close file in zip archive -.\" Copyright (C) 2003-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd September 12, 2016 -.Dt ZIP_FCLOSE 3 -.Os -.Sh NAME -.Nm zip_fclose -.Nd close file in zip archive -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_fclose "zip_file_t *file" -.Sh DESCRIPTION -The -.Fn zip_fclose -function closes -.Ar file -and frees the memory allocated for it. -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, the error code is returned. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_fopen 3 , -.Xr zip_fread 3 , -.Xr zip_fseek 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_fdopen.man b/libzip-1.2.0/man/zip_fdopen.man deleted file mode 100644 index 6a4661ef2..000000000 --- a/libzip-1.2.0/man/zip_fdopen.man +++ /dev/null @@ -1,122 +0,0 @@ -.TH "ZIP_FDOPEN" "3" "February 13, 2012" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_fdopen\fR -\- open zip archive using open file descriptor -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_t *\fR -.PD 0 -.HP 4n -\fBzip_fdopen\fR(\fIint\ fd\fR, \fIint\ flags\fR, \fIint\ *errorp\fR); -.PD -.SH "DESCRIPTION" -The zip archive specified by the open file descriptor -\fIfd\fR -is opened and a pointer to a -\fIstruct zip\fR, -used to manipulate the archive, is returned. -In contrast to -zip_open(3), -using -\fBzip_fdopen\fR -the archive can only be opened in read-only mode. -The -\fIfd\fR -argument may not be used any longer after calling -\fBzip_fdopen\fR. -The -\fIflags\fR -are specified by -\fIor\fR'ing -the following values, or 0 for none of them. -.RS 6n -.TP 15n -\fRZIP_CHECKCONS\fR -Perform additional stricter consistency checks on the archive, and -error if they fail. -.RE -.PP -If an error occurs and -\fIerrorp\fR -is -non-\fRNULL\fR, -it will be set to the corresponding error code. -.SH "RETURN VALUES" -Upon successful completion -\fBzip_fdopen\fR() -returns a -\fIstruct zip\fR -pointer, and -\fIfd\fR -should not be used any longer, nor passed to -close(2). -Otherwise, -\fRNULL\fR -is returned and -\fI*errorp\fR -is set to indicate the error. -In the error case, -\fIfd\fR -remains unchanged. -.SH "ERRORS" -The file specified by -\fIfd\fR -is prepared for use by -libzip(3) -unless: -.TP 19n -[\fRZIP_ER_INCONS\fR] -Inconsistencies were found in the file specified by -\fIpath\fR. -This error is often caused by specifying -\fRZIP_CHECKCONS\fR -but can also happen without it. -.TP 19n -[\fRZIP_ER_INVAL\fR] -The -\fIflags\fR -argument is invalid. -Not all -zip_open(3) -flags are allowed for -\fBzip_fdopen\fR, -see -\fIDESCRIPTION\fR. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.TP 19n -[\fRZIP_ER_NOZIP\fR] -The file specified by -\fIfd\fR -is not a zip archive. -.TP 19n -[\fRZIP_ER_OPEN\fR] -The file specified by -\fIfd\fR -could not be prepared for use by -libzip(3). -.TP 19n -[\fRZIP_ER_READ\fR] -A read error occurred; see -\fIerrno\fR -for details. -.TP 19n -[\fRZIP_ER_SEEK\fR] -The file specified by -\fIfd\fR -does not allow seeks. -.SH "SEE ALSO" -libzip(3), -zip_close(3), -zip_error_to_str(3), -zip_open(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_fdopen.mdoc b/libzip-1.2.0/man/zip_fdopen.mdoc deleted file mode 100644 index 2c177a35f..000000000 --- a/libzip-1.2.0/man/zip_fdopen.mdoc +++ /dev/null @@ -1,144 +0,0 @@ -.\" zip_fdopen.mdoc -- open zip archive using existing file descriptor -.\" Copyright (C) 2009-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd February 13, 2012 -.Dt ZIP_FDOPEN 3 -.Os -.Sh NAME -.Nm zip_fdopen -.Nd open zip archive using open file descriptor -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_t * -.Fn zip_fdopen "int fd" "int flags" "int *errorp" -.Sh DESCRIPTION -The zip archive specified by the open file descriptor -.Ar fd -is opened and a pointer to a -.Ft struct zip , -used to manipulate the archive, is returned. -In contrast to -.Xr zip_open 3 , -using -.Nm zip_fdopen -the archive can only be opened in read-only mode. -The -.Ar fd -argument may not be used any longer after calling -.Nm zip_fdopen . -The -.Fa flags -are specified by -.Em or Ns No 'ing -the following values, or 0 for none of them. -.Bl -tag -offset indent -width ZIP_CHECKCONS -.It Dv ZIP_CHECKCONS -Perform additional stricter consistency checks on the archive, and -error if they fail. -.El -.Pp -If an error occurs and -.Ar errorp -is -.No non- Ns Dv NULL , -it will be set to the corresponding error code. -.Sh RETURN VALUES -Upon successful completion -.Fn zip_fdopen -returns a -.Ft struct zip -pointer, and -.Ar fd -should not be used any longer, nor passed to -.Xr close 2 . -Otherwise, -.Dv NULL -is returned and -.Ar *errorp -is set to indicate the error. -In the error case, -.Ar fd -remains unchanged. -.Sh ERRORS -The file specified by -.Ar fd -is prepared for use by -.Xr libzip 3 -unless: -.Bl -tag -width Er -.It Bq Er ZIP_ER_INCONS -Inconsistencies were found in the file specified by -.Ar path . -This error is often caused by specifying -.Dv ZIP_CHECKCONS -but can also happen without it. -.It Bq Er ZIP_ER_INVAL -The -.Ar flags -argument is invalid. -Not all -.Xr zip_open 3 -flags are allowed for -.Nm zip_fdopen , -see -.Sx DESCRIPTION . -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.It Bq Er ZIP_ER_NOZIP -The file specified by -.Ar fd -is not a zip archive. -.It Bq Er ZIP_ER_OPEN -The file specified by -.Ar fd -could not be prepared for use by -.Xr libzip 3 . -.It Bq Er ZIP_ER_READ -A read error occurred; see -.Va errno -for details. -.It Bq Er ZIP_ER_SEEK -The file specified by -.Ar fd -does not allow seeks. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_close 3 , -.Xr zip_error_to_str 3 , -.Xr zip_open 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_file_add.man b/libzip-1.2.0/man/zip_file_add.man deleted file mode 100644 index 66da783fd..000000000 --- a/libzip-1.2.0/man/zip_file_add.man +++ /dev/null @@ -1,133 +0,0 @@ -.TH "ZIP_FILE_ADD" "3" "August 2, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_file_add\fR, -\fBzip_file_replace\fR -\- add file to zip archive or replace file in zip archive -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_int64_t\fR -.PD 0 -.HP 4n -\fBzip_file_add\fR(\fIzip_t\ *archive\fR, \fIconst\ char\ *name\fR, \fIzip_source_t\ *source\fR, \fIzip_flags_t\ flags\fR); -.PD -.PP -\fIint\fR -.PD 0 -.HP 4n -\fBzip_file_replace\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_source_t\ *source\fR, \fIzip_flags_t\ flags\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_file_add\fR() -adds a file to a zip archive, while -\fBzip_file_replace\fR() -replaces an existing file in a zip archive. -The argument -\fIarchive\fR -specifies the zip archive to which the file should be added. -\fIname\fR -is the file's name in the zip archive (for -\fBzip_file_add\fR()), -while -\fIindex\fR -specifies which file should be replaced (for -\fBzip_file_replace\fR()). -The -\fIflags\fR -argument can be any combination of -\fRZIP_FL_OVERWRITE\fR -with one of -\fRZIP_FL_ENC_*\fR: -.TP 22n -\fRZIP_FL_OVERWRITE\fR -Overwrite any existing file of the same name. -For -\fBzip_file_add\fR -only. -.TP 22n -\fRZIP_FL_ENC_GUESS\fR -Guess encoding of -\fIname\fR -(default). -.TP 22n -\fRZIP_FL_ENC_UTF_8\fR -Interpret -\fIname\fR -as UTF-8. -.TP 22n -\fRZIP_FL_ENC_CP437\fR -Interpret -\fIname\fR -as code page 437 (CP-437). -.PD 0 -.PP -The data is obtained from the -\fIsource\fR -argument, see -zip_source(3). -.PD -.SH "RETURN VALUES" -Upon successful completion, -\fBzip_file_add\fR() -returns the index of the new file in the archive, and -\fBzip_file_replace\fR() -returns 0. -Otherwise, \-1 is returned and the error code in -\fIarchive\fR -is set to indicate the error. -.SH "EXAMPLES" -.nf -.RS 6n -zip_source_t *s; -const char buf="teststring"; - -if ((s=zip_source_buffer(archive, buffer, sizeof(buf), 0)) == NULL || - zip_file_add(archive, name, s, ZIP_FL_ENC_UTF_8) < 0) { - zip_source_free(s); - printf("error adding file: %s\en", zip_strerror(archive)); -} -.RE -.fi -.SH "ERRORS" -\fBzip_file_add\fR() -and -\fBzip_file_replace\fR() -fail if: -.TP 19n -[\fRZIP_ER_EXISTS\fR] -There is already a file called -\fIname\fR -in the archive. -(Only applies to -\fBzip_file_add\fR(), -and only if -\fRZIP_FL_OVERWRITE\fR -is not provided). -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIsource\fR -or -\fIname\fR -are -\fRNULL\fR, -or -\fIindex\fR -is invalid. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.TP 19n -[\fRZIP_ER_RDONLY\fR] -Archive was opened in read-only mode. -.SH "SEE ALSO" -libzip(3), -zip_source(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_file_add.mdoc b/libzip-1.2.0/man/zip_file_add.mdoc deleted file mode 100644 index 8be37b159..000000000 --- a/libzip-1.2.0/man/zip_file_add.mdoc +++ /dev/null @@ -1,148 +0,0 @@ -.\" zip_file_add.mdoc -- add files to zip archive -.\" Copyright (C) 2004-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd August 2, 2014 -.Dt ZIP_FILE_ADD 3 -.Os -.Sh NAME -.Nm zip_file_add , -.Nm zip_file_replace -.Nd add file to zip archive or replace file in zip archive -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_int64_t -.Fn zip_file_add "zip_t *archive" "const char *name" "zip_source_t *source" "zip_flags_t flags" -.Ft int -.Fn zip_file_replace "zip_t *archive" "zip_uint64_t index" "zip_source_t *source" "zip_flags_t flags" -.Sh DESCRIPTION -The function -.Fn zip_file_add -adds a file to a zip archive, while -.Fn zip_file_replace -replaces an existing file in a zip archive. -The argument -.Ar archive -specifies the zip archive to which the file should be added. -.Ar name -is the file's name in the zip archive (for -.Fn zip_file_add ) , -while -.Ar index -specifies which file should be replaced (for -.Fn zip_file_replace ) . -The -.Ar flags -argument can be any combination of -.Dv ZIP_FL_OVERWRITE -with one of -.Dv ZIP_FL_ENC_* : -.Bl -tag -width XZIPXFLXENCXSTRICTXX -.It Dv ZIP_FL_OVERWRITE -Overwrite any existing file of the same name. -For -.Nm zip_file_add -only. -.It Dv ZIP_FL_ENC_GUESS -Guess encoding of -.Ar name -(default). -.It Dv ZIP_FL_ENC_UTF_8 -Interpret -.Ar name -as UTF-8. -.It Dv ZIP_FL_ENC_CP437 -Interpret -.Ar name -as code page 437 (CP-437). -.El -The data is obtained from the -.Ar source -argument, see -.Xr zip_source 3 . -.Sh RETURN VALUES -Upon successful completion, -.Fn zip_file_add -returns the index of the new file in the archive, and -.Fn zip_file_replace -returns 0. -Otherwise, \-1 is returned and the error code in -.Ar archive -is set to indicate the error. -.Sh EXAMPLES -.Bd -literal -offset indent -zip_source_t *s; -const char buf="teststring"; - -if ((s=zip_source_buffer(archive, buffer, sizeof(buf), 0)) == NULL || - zip_file_add(archive, name, s, ZIP_FL_ENC_UTF_8) \*[Lt] 0) { - zip_source_free(s); - printf("error adding file: %s\en", zip_strerror(archive)); -} -.Ed -.Sh ERRORS -.Fn zip_file_add -and -.Fn zip_file_replace -fail if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_EXISTS -There is already a file called -.Ar name -in the archive. -(Only applies to -.Fn zip_file_add , -and only if -.Dv ZIP_FL_OVERWRITE -is not provided). -.It Bq Er ZIP_ER_INVAL -.Ar source -or -.Ar name -are -.Dv NULL , -or -.Ar index -is invalid. -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.It Bq Er ZIP_ER_RDONLY -Archive was opened in read-only mode. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_file_extra_field_delete.man b/libzip-1.2.0/man/zip_file_extra_field_delete.man deleted file mode 100644 index 717943419..000000000 --- a/libzip-1.2.0/man/zip_file_extra_field_delete.man +++ /dev/null @@ -1,102 +0,0 @@ -.TH "ZIP_FILE_EXTRA_FIELD_DELETE" "3" "July 31, 2013" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_file_extra_field_delete\fR, -\fBzip_file_extra_field_delete_by_id\fR -\- delete extra field for file in zip -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_file_extra_field_delete\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_uint16_t\ extra_field_index\fR, \fIzip_flags_t\ flags\fR); -.PD -.PP -\fIint\fR -.PD 0 -.HP 4n -\fBzip_file_extra_field_delete_by_id\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_uint16_t\ extra_field_id\fR, \fIzip_uint16_t\ extra_field_index\fR, \fIzip_flags_t\ flags\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_file_extra_field_delete\fR() -function deletes the extra field with index -\fIextra_field_index\fR -for the file at position -\fIindex\fR -in the zip archive. -.PP -If -\fIextra_field_index\fR -is -\fRZIP_EXTRA_FIELD_ALL\fR, -then all extra fields will be deleted. -.PP -The following -\fIflags\fR -are supported: -.RS 6n -.TP 18n -\fRZIP_FL_CENTRAL\fR -Delete extra fields from the archive's central directory. -.TP 18n -\fRZIP_FL_LOCAL\fR -Delete extra fields from the local file headers. -.RE -.PP -The -\fBzip_file_extra_field_delete_by_id\fR() -function deletes the extra field with ID (two-byte signature) -\fIextra_field_id\fR -and index -\fIextra_field_index\fR -(in other words, the -\fIextra_field_index\fR'th -extra field with ID -\fIextra_field_id\fR) -The other arguments are the same as for -\fBzip_file_extra_field_delete\fR() -(\fRZIP_EXTRA_FIELD_ALL\fR -will delete all extra fields of the specified ID). -.PP -Please note that due to the library design, the index of an extra -field may be different between central directory and local file -headers. -For this reason, it is not allowed to specify both -\fRZIP_FL_CENTRAL\fR -and -\fRZIP_FL_LOCAL\fR -in -\fIflags\fR, -except when deleting all extra fields (i.e., -\fIextra_field_index\fR -being -\fRZIP_EXTRA_FIELD_ALL\fR). -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error code in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_file_extra_field_delete\fR() -and -\fBzip_file_extra_field_delete_by_id\fR() -fail if: -.TP 19n -[\fRZIP_ER_NOENT\fR] -\fIindex\fR -is not a valid file index in -\fIarchive\fR. -.SH "SEE ALSO" -libzip(3), -zip_file_extra_field_get(3), -zip_file_extra_field_set(3), -zip_file_extra_fields_count(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_file_extra_field_delete.mdoc b/libzip-1.2.0/man/zip_file_extra_field_delete.mdoc deleted file mode 100644 index 7fad9d40c..000000000 --- a/libzip-1.2.0/man/zip_file_extra_field_delete.mdoc +++ /dev/null @@ -1,125 +0,0 @@ -.\" zip_file_extra_field_delete.mdoc -- delete extra field for file in zip -.\" Copyright (C) 2012-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP files. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd July 31, 2013 -.Dt ZIP_FILE_EXTRA_FIELD_DELETE 3 -.Os -.Sh NAME -.Nm zip_file_extra_field_delete , -.Nm zip_file_extra_field_delete_by_id -.Nd delete extra field for file in zip -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_file_extra_field_delete "zip_t *archive" "zip_uint64_t index" "zip_uint16_t extra_field_index" "zip_flags_t flags" -.Ft int -.Fn zip_file_extra_field_delete_by_id "zip_t *archive" "zip_uint64_t index" "zip_uint16_t extra_field_id" "zip_uint16_t extra_field_index" "zip_flags_t flags" -.Sh DESCRIPTION -The -.Fn zip_file_extra_field_delete -function deletes the extra field with index -.Ar extra_field_index -for the file at position -.Ar index -in the zip archive. -.Pp -If -.Ar extra_field_index -is -.Dv ZIP_EXTRA_FIELD_ALL , -then all extra fields will be deleted. -.Pp -The following -.Ar flags -are supported: -.Bl -tag -width ZIP_FL_CENTRALXX -offset indent -.It Dv ZIP_FL_CENTRAL -Delete extra fields from the archive's central directory. -.It Dv ZIP_FL_LOCAL -Delete extra fields from the local file headers. -.El -.Pp -The -.Fn zip_file_extra_field_delete_by_id -function deletes the extra field with ID (two-byte signature) -.Ar extra_field_id -and index -.Ar extra_field_index -(in other words, the -.Ar extra_field_index Ns No 'th -extra field with ID -.Ar extra_field_id ) -The other arguments are the same as for -.Fn zip_file_extra_field_delete -.Dv ( ZIP_EXTRA_FIELD_ALL -will delete all extra fields of the specified ID). -.Pp -Please note that due to the library design, the index of an extra -field may be different between central directory and local file -headers. -For this reason, it is not allowed to specify both -.Dv ZIP_FL_CENTRAL -and -.Dv ZIP_FL_LOCAL -in -.Ar flags , -except when deleting all extra fields (i.e., -.Ar extra_field_index -being -.Dv ZIP_EXTRA_FIELD_ALL ) . -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error code in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Fn zip_file_extra_field_delete -and -.Fn zip_file_extra_field_delete_by_id -fail if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_NOENT -.Ar index -is not a valid file index in -.Ar archive . -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_file_extra_field_get 3 , -.Xr zip_file_extra_field_set 3 , -.Xr zip_file_extra_fields_count 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_file_extra_field_get.man b/libzip-1.2.0/man/zip_file_extra_field_get.man deleted file mode 100644 index 5c2c88390..000000000 --- a/libzip-1.2.0/man/zip_file_extra_field_get.man +++ /dev/null @@ -1,130 +0,0 @@ -.TH "ZIP_FILE_EXTRA_FIELD_GET" "3" "October 8, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_file_extra_field_get\fR, -\fBzip_file_extra_field_get_by_id\fR -\- get extra field for file in zip -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIconst zip_uint8_t *\fR -.PD 0 -.HP 4n -\fBzip_file_extra_field_get\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_uint16_t\ extra_field_index\fR, \fIzip_uint16_t\ *idp\fR, \fIzip_uint16_t\ *lenp\fR, \fIzip_flags_t\ flags\fR); -.PD -.PP -\fIconst zip_uint8_t *\fR -.PD 0 -.HP 4n -\fBzip_file_extra_field_get_by_id\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_uint16_t\ extra_field_id\fR, \fIzip_uint16_t\ extra_field_index\fR, \fIzip_uint16_t\ *lenp\fR, \fIzip_flags_t\ flags\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_file_extra_field_get\fR() -function returns the extra field with index -\fIextra_field_index\fR -for the file at position -\fIindex\fR -in the zip archive. -This pointer should not be modified or -free(3)'d, -and becomes invalid when -\fIarchive\fR -is closed. -If -\fIidp\fR -is not -\fRNULL\fR, -the integer to which it points will be set to the ID (two-byte -signature) of the selected extra field. -If -\fIlenp\fR -is not -\fRNULL\fR, -the integer to which it points will be set to the length of the -extra field. -Generally speaking, -\fIlenp\fR -and -\fIidp\fR -should be passed since only the extra field data is returned (i.e., -neither the ID nor the length, if the -\fIidp\fR -and -\fIlenp\fR -arguments are not provided). -.PP -The following -\fIflags\fR -are supported: -.RS 6n -.TP 20n -\fRZIP_FL_CENTRAL\fR -Return extra fields from the archive's central directory. -.TP 20n -\fRZIP_FL_LOCAL\fR -Return extra fields from the local file headers. -.TP 20n -\fRZIP_FL_UNCHANGED\fR -Return the original unchanged extra fields, ignoring any changes made. -.RE -.PP -The -\fBzip_file_extra_field_get_by_id\fR() -function returns the extra field with ID (two-byte signature) -\fIextra_field_id\fR -and index -\fIextra_field_index\fR -(in other words, the -\fIextra_field_index\fR'th -extra field with ID -\fIextra_field_id\fR) -The other arguments are the same as for -\fBzip_file_extra_field_get\fR(). -.SH "RETURN VALUES" -Upon successful completion, a pointer to an extra field is returned, -or -\fRNULL\fR -if there is no extra field with that -\fIextra_field_index\fR -for the file with index -\fIindex\fR. -In case of an error, -\fRNULL\fR -is returned and the error code in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_file_extra_field_get\fR() -and -\fBzip_file_extra_field_get_by_id\fR() -fail if: -.TP 19n -[\fRZIP_ER_NOENT\fR] -\fIindex\fR -is not a valid file index in -\fIarchive\fR, -or -\fIextra_field_index\fR -is not a valid extra file index (for ID -\fIextra_field_id\fR). -.SH "SEE ALSO" -libzip(3), -zip_file_extra_field_delete(3), -zip_file_extra_field_set(3), -zip_file_extra_fields_count(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> -.SH "CAVEATS" -Please note that the extra field IDs 0x0001 (ZIP64 extension), -0x6375 (Infozip UTF-8 comment), and -0x7075 (Infozip UTF-8 file name) can not be read using -\fBzip_file_extra_field_get\fR() -since they are used by -libzip(3) -internally. diff --git a/libzip-1.2.0/man/zip_file_extra_field_get.mdoc b/libzip-1.2.0/man/zip_file_extra_field_get.mdoc deleted file mode 100644 index 5a541197e..000000000 --- a/libzip-1.2.0/man/zip_file_extra_field_get.mdoc +++ /dev/null @@ -1,152 +0,0 @@ -.\" zip_file_extra_field_get.mdoc -- get extra field for file in zip -.\" Copyright (C) 2012-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP files. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd October 8, 2014 -.Dt ZIP_FILE_EXTRA_FIELD_GET 3 -.Os -.Sh NAME -.Nm zip_file_extra_field_get , -.Nm zip_file_extra_field_get_by_id -.Nd get extra field for file in zip -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft const zip_uint8_t * -.Fn zip_file_extra_field_get "zip_t *archive" "zip_uint64_t index" "zip_uint16_t extra_field_index" "zip_uint16_t *idp" "zip_uint16_t *lenp" "zip_flags_t flags" -.Ft const zip_uint8_t * -.Fn zip_file_extra_field_get_by_id "zip_t *archive" "zip_uint64_t index" "zip_uint16_t extra_field_id" "zip_uint16_t extra_field_index" "zip_uint16_t *lenp" "zip_flags_t flags" -.Sh DESCRIPTION -The -.Fn zip_file_extra_field_get -function returns the extra field with index -.Ar extra_field_index -for the file at position -.Ar index -in the zip archive. -This pointer should not be modified or -.Xr free 3 Ap d , -and becomes invalid when -.Ar archive -is closed. -If -.Ar idp -is not -.Dv NULL , -the integer to which it points will be set to the ID (two-byte -signature) of the selected extra field. -If -.Ar lenp -is not -.Dv NULL , -the integer to which it points will be set to the length of the -extra field. -Generally speaking, -.Ar lenp -and -.Ar idp -should be passed since only the extra field data is returned (i.e., -neither the ID nor the length, if the -.Ar idp -and -.Ar lenp -arguments are not provided). -.Pp -The following -.Ar flags -are supported: -.Bl -tag -width ZIP_FL_UNCHANGEDXX -offset indent -.It Dv ZIP_FL_CENTRAL -Return extra fields from the archive's central directory. -.It Dv ZIP_FL_LOCAL -Return extra fields from the local file headers. -.It Dv ZIP_FL_UNCHANGED -Return the original unchanged extra fields, ignoring any changes made. -.El -.Pp -The -.Fn zip_file_extra_field_get_by_id -function returns the extra field with ID (two-byte signature) -.Ar extra_field_id -and index -.Ar extra_field_index -(in other words, the -.Ar extra_field_index Ns No 'th -extra field with ID -.Ar extra_field_id ) -The other arguments are the same as for -.Fn zip_file_extra_field_get . -.Sh RETURN VALUES -Upon successful completion, a pointer to an extra field is returned, -or -.Dv NULL -if there is no extra field with that -.Ar extra_field_index -for the file with index -.Ar index . -In case of an error, -.Dv NULL -is returned and the error code in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Fn zip_file_extra_field_get -and -.Fn zip_file_extra_field_get_by_id -fail if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_NOENT -.Ar index -is not a valid file index in -.Ar archive , -or -.Ar extra_field_index -is not a valid extra file index (for ID -.Ar extra_field_id ) . -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_file_extra_field_delete 3 , -.Xr zip_file_extra_field_set 3 , -.Xr zip_file_extra_fields_count 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at -.Sh CAVEATS -Please note that the extra field IDs 0x0001 (ZIP64 extension), -0x6375 (Infozip UTF-8 comment), and -0x7075 (Infozip UTF-8 file name) can not be read using -.Fn zip_file_extra_field_get -since they are used by -.Xr libzip 3 -internally. diff --git a/libzip-1.2.0/man/zip_file_extra_field_set.man b/libzip-1.2.0/man/zip_file_extra_field_set.man deleted file mode 100644 index 0926ec037..000000000 --- a/libzip-1.2.0/man/zip_file_extra_field_set.man +++ /dev/null @@ -1,87 +0,0 @@ -.TH "ZIP_FILE_EXTRA_FIELD_SET" "3" "February 20, 2013" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_file_extra_field_set\fR -\- set extra field for file in zip -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_file_extra_field_set\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_uint16_t\ extra_field_id\fR, \fIzip_uint16_t\ extra_field_index\fR, \fIconst\ zip_uint8_t\ *extra_field_data\fR, \fIzip_uint16_t\ len\fR, \fIzip_flags_t\ flags\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_file_extra_field_set\fR() -function sets the extra field with ID (two-byte signature) -\fIextra_field_id\fR -and index -\fIextra_field_index\fR -for the file at position -\fIindex\fR -in the zip archive. -The extra field's data will be set to -\fIextra_field_data\fR -and length -\fIlen\fR. -If a new entry shall be appended, set -\fIextra_field_index\fR -to -\fRZIP_EXTRA_FIELD_NEW\fR. -.PP -At least one of the following -\fIflags\fR -must be set: -.RS 6n -.TP 18n -\fRZIP_FL_CENTRAL\fR -Set extra field in the archive's central directory. -.TP 18n -\fRZIP_FL_LOCAL\fR -Set extra field in the local file headers. -.RE -.PP -Please note that the extra field IDs 0x0001 (ZIP64 extension), -0x6375 (Infozip UTF-8 comment), and -0x7075 (Infozip UTF-8 file name) can not be set using -\fBzip_file_extra_field_set\fR() -since they are set by -libzip(3) -automatically when needed. -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error code in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_file_extra_field_set\fR() -fails if: -.TP 19n -[\fRZIP_ER_INVAL\fR] -The extra field size is too large (ID and length need 4 bytes; the -maximum length of all extra fields for one file combined is 65536 -bytes). -This error also occurs if -\fIextra_field_index\fR -is too large. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.TP 19n -[\fRZIP_ER_NOENT\fR] -\fIindex\fR -is not a valid file index in -\fIarchive\fR. -.SH "SEE ALSO" -libzip(3), -zip_file_extra_field_delete(3), -zip_file_extra_field_get(3), -zip_file_extra_fields_count(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_file_extra_field_set.mdoc b/libzip-1.2.0/man/zip_file_extra_field_set.mdoc deleted file mode 100644 index 9652c98b5..000000000 --- a/libzip-1.2.0/man/zip_file_extra_field_set.mdoc +++ /dev/null @@ -1,112 +0,0 @@ -.\" zip_file_extra_field_set.mdoc -- set extra field for file in zip -.\" Copyright (C) 2012-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP files. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd February 20, 2013 -.Dt ZIP_FILE_EXTRA_FIELD_SET 3 -.Os -.Sh NAME -.Nm zip_file_extra_field_set -.Nd set extra field for file in zip -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_file_extra_field_set "zip_t *archive" "zip_uint64_t index" "zip_uint16_t extra_field_id" "zip_uint16_t extra_field_index" "const zip_uint8_t *extra_field_data" "zip_uint16_t len" "zip_flags_t flags" -.Sh DESCRIPTION -The -.Fn zip_file_extra_field_set -function sets the extra field with ID (two-byte signature) -.Ar extra_field_id -and index -.Ar extra_field_index -for the file at position -.Ar index -in the zip archive. -The extra field's data will be set to -.Ar extra_field_data -and length -.Ar len . -If a new entry shall be appended, set -.Ar extra_field_index -to -.Dv ZIP_EXTRA_FIELD_NEW . -.Pp -At least one of the following -.Ar flags -must be set: -.Bl -tag -width ZIP_FL_CENTRALXX -offset indent -.It Dv ZIP_FL_CENTRAL -Set extra field in the archive's central directory. -.It Dv ZIP_FL_LOCAL -Set extra field in the local file headers. -.El -.Pp -Please note that the extra field IDs 0x0001 (ZIP64 extension), -0x6375 (Infozip UTF-8 comment), and -0x7075 (Infozip UTF-8 file name) can not be set using -.Fn zip_file_extra_field_set -since they are set by -.Xr libzip 3 -automatically when needed. -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error code in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Fn zip_file_extra_field_set -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_INVAL -The extra field size is too large (ID and length need 4 bytes; the -maximum length of all extra fields for one file combined is 65536 -bytes). -This error also occurs if -.Ar extra_field_index -is too large. -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.It Bq Er ZIP_ER_NOENT -.Ar index -is not a valid file index in -.Ar archive . -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_file_extra_field_delete 3 , -.Xr zip_file_extra_field_get 3 , -.Xr zip_file_extra_fields_count 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_file_extra_fields_count.man b/libzip-1.2.0/man/zip_file_extra_fields_count.man deleted file mode 100644 index 17d3f7e8c..000000000 --- a/libzip-1.2.0/man/zip_file_extra_fields_count.man +++ /dev/null @@ -1,85 +0,0 @@ -.TH "ZIP_FILE_EXTRA_FIELDS_COUNT" "3" "February 20, 2013" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_file_extra_fields_count\fR, -\fBzip_file_extra_fields_count_by_id\fR -\- count extra fields for file in zip -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_int16_t\fR -.PD 0 -.HP 4n -\fBzip_file_extra_fields_count\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_flags_t\ flags\fR); -.PD -.PP -\fIzip_int16_t\fR -.PD 0 -.HP 4n -\fBzip_file_extra_fields_count_by_id\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_uint16_t\ extra_field_id\fR, \fIzip_flags_t\ flags\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_file_extra_fields_count\fR() -function counts the extra fields for the file at position -\fIindex\fR -in the zip archive. -.PP -The following -\fIflags\fR -are supported: -.RS 6n -.TP 18n -\fRZIP_FL_CENTRAL\fR -Count extra fields from the archive's central directory. -.TP 18n -\fRZIP_FL_LOCAL\fR -Count extra fields from the local file headers. -.TP 18n -\fRZIP_FL_UNCHANGED\fR -Count the original unchanged extra fields, ignoring any changes made. -.RE -.PP -The -\fBzip_file_extra_fields_count_by_id\fR() -function counts the extra fields with ID (two-byte signature) -\fIextra_field_id\fR. -The other arguments are the same as for -\fBzip_file_extra_fields_count\fR(). -.PP -Extra fields that are the same in the central directory and the local file -header are merged into one. -Therefore, the counts with -\fRZIP_FL_CENTRAL\fR -and -\fRZIP_FL_LOCAL\fR -do not need to add up to the same value as when given -\fRZIP_FL_CENTRAL|ZIP_FL_LOCAL\fR -at the same time. -.SH "RETURN VALUES" -Upon successful completion, the requested number of extra fields is returned. -Otherwise, \-1 is returned and the error code in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_file_extra_fields_count\fR() -and -\fBzip_file_extra_fields_count_by_id\fR() -fail if: -.TP 19n -[\fRZIP_ER_NOENT\fR] -\fIindex\fR -is not a valid file index in -\fIarchive\fR. -.SH "SEE ALSO" -libzip(3), -zip_file_extra_field_delete(3), -zip_file_extra_field_get(3), -zip_file_extra_field_set(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_file_extra_fields_count.mdoc b/libzip-1.2.0/man/zip_file_extra_fields_count.mdoc deleted file mode 100644 index b7b7d7594..000000000 --- a/libzip-1.2.0/man/zip_file_extra_fields_count.mdoc +++ /dev/null @@ -1,108 +0,0 @@ -.\" zip_file_extra_fields_count.mdoc -- count extra field for file in zip -.\" Copyright (C) 2012-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP files. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd February 20, 2013 -.Dt ZIP_FILE_EXTRA_FIELDS_COUNT 3 -.Os -.Sh NAME -.Nm zip_file_extra_fields_count , -.Nm zip_file_extra_fields_count_by_id -.Nd count extra fields for file in zip -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_int16_t -.Fn zip_file_extra_fields_count "zip_t *archive" "zip_uint64_t index" "zip_flags_t flags" -.Ft zip_int16_t -.Fn zip_file_extra_fields_count_by_id "zip_t *archive" "zip_uint64_t index" "zip_uint16_t extra_field_id" "zip_flags_t flags" -.Sh DESCRIPTION -The -.Fn zip_file_extra_fields_count -function counts the extra fields for the file at position -.Ar index -in the zip archive. -.Pp -The following -.Ar flags -are supported: -.Bl -tag -width ZIP_FL_CENTRALXX -offset indent -.It Dv ZIP_FL_CENTRAL -Count extra fields from the archive's central directory. -.It Dv ZIP_FL_LOCAL -Count extra fields from the local file headers. -.It Dv ZIP_FL_UNCHANGED -Count the original unchanged extra fields, ignoring any changes made. -.El -.Pp -The -.Fn zip_file_extra_fields_count_by_id -function counts the extra fields with ID (two-byte signature) -.Ar extra_field_id . -The other arguments are the same as for -.Fn zip_file_extra_fields_count . -.Pp -Extra fields that are the same in the central directory and the local file -header are merged into one. -Therefore, the counts with -.Dv ZIP_FL_CENTRAL -and -.Dv ZIP_FL_LOCAL -do not need to add up to the same value as when given -.Dv ZIP_FL_CENTRAL|ZIP_FL_LOCAL -at the same time. -.Sh RETURN VALUES -Upon successful completion, the requested number of extra fields is returned. -Otherwise, \-1 is returned and the error code in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Fn zip_file_extra_fields_count -and -.Fn zip_file_extra_fields_count_by_id -fail if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_NOENT -.Ar index -is not a valid file index in -.Ar archive . -.\" TODO: _zip_read_local_ef errors -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_file_extra_field_delete 3 , -.Xr zip_file_extra_field_get 3 , -.Xr zip_file_extra_field_set 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_file_get_comment.man b/libzip-1.2.0/man/zip_file_get_comment.man deleted file mode 100644 index 94b5cb4fa..000000000 --- a/libzip-1.2.0/man/zip_file_get_comment.man +++ /dev/null @@ -1,89 +0,0 @@ -.TH "ZIP_FILE_GET_COMMENT" "3" "September 19, 2013" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_file_get_comment\fR -\- get comment for file in zip -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIconst char *\fR -.PD 0 -.HP 4n -\fBzip_file_get_comment\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_uint32_t\ *lenp\fR, \fIzip_flags_t\ flags\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_file_get_comment\fR() -function returns the comment for the file at position -\fIindex\fR -in the zip archive. -The name is in UTF-8 encoding unless -\fRZIP_FL_ENC_RAW\fR -was specified (see below). -This pointer should not be modified or -free(3)'d, -and becomes invalid when -\fIarchive\fR -is closed. -If -\fIlenp\fR -is not -\fRNULL\fR, -the integer to which it points will be set to the length of the -comment. -If -\fIflags\fR -is set to -\fRZIP_FL_UNCHANGED\fR, -the original unchanged comment is returned. -.PP -Additionally, the following -\fIflags\fR -are supported: -.RS 6n -.TP 21n -\fRZIP_FL_ENC_RAW\fR -Return the unmodified comment as it is in the ZIP archive. -.TP 21n -\fRZIP_FL_ENC_GUESS\fR -(Default.) -Guess the encoding of the comment in the ZIP archive and convert it -to UTF-8, if necessary. -.TP 21n -\fRZIP_FL_ENC_STRICT\fR -Follow the ZIP specification for file names and extend it to file -comments, expecting them to be encoded in CP-437 in the ZIP archive -(except if it is a UTF-8 comment from the special extra field). -Convert it to UTF-8. -.RE -\fINote\fR: -ASCII is a subset of both CP-437 and UTF-8. -.SH "RETURN VALUES" -Upon successful completion, a pointer to the comment is returned, -or -\fRNULL\fR -if there is no comment. -In case of an error, -\fRNULL\fR -is returned and the error code in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_file_get_comment\fR() -fails if: -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIindex\fR -is not a valid file index in -\fIarchive\fR. -.SH "SEE ALSO" -libzip(3), -zip_file_set_comment(3), -zip_get_archive_comment(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_file_get_comment.mdoc b/libzip-1.2.0/man/zip_file_get_comment.mdoc deleted file mode 100644 index e41514b71..000000000 --- a/libzip-1.2.0/man/zip_file_get_comment.mdoc +++ /dev/null @@ -1,115 +0,0 @@ -.\" zip_file_get_comment.mdoc -- get comment for file in zip -.\" Copyright (C) 2006-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP files. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd September 19, 2013 -.Dt ZIP_FILE_GET_COMMENT 3 -.Os -.Sh NAME -.Nm zip_file_get_comment -.Nd get comment for file in zip -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft const char * -.Fn zip_file_get_comment "zip_t *archive" "zip_uint64_t index" "zip_uint32_t *lenp" "zip_flags_t flags" -.Sh DESCRIPTION -The -.Fn zip_file_get_comment -function returns the comment for the file at position -.Ar index -in the zip archive. -The name is in UTF-8 encoding unless -.Dv ZIP_FL_ENC_RAW -was specified (see below). -This pointer should not be modified or -.Xr free 3 Ap d , -and becomes invalid when -.Ar archive -is closed. -If -.Ar lenp -is not -.Dv NULL , -the integer to which it points will be set to the length of the -comment. -If -.Ar flags -is set to -.Dv ZIP_FL_UNCHANGED , -the original unchanged comment is returned. -.Pp -Additionally, the following -.Ar flags -are supported: -.Bl -tag -width ZIP_FL_ENC_STRICTXX -offset indent -.It Dv ZIP_FL_ENC_RAW -Return the unmodified comment as it is in the ZIP archive. -.It Dv ZIP_FL_ENC_GUESS -(Default.) -Guess the encoding of the comment in the ZIP archive and convert it -to UTF-8, if necessary. -.It Dv ZIP_FL_ENC_STRICT -Follow the ZIP specification for file names and extend it to file -comments, expecting them to be encoded in CP-437 in the ZIP archive -(except if it is a UTF-8 comment from the special extra field). -Convert it to UTF-8. -.El -.Em Note : -ASCII is a subset of both CP-437 and UTF-8. -.Sh RETURN VALUES -Upon successful completion, a pointer to the comment is returned, -or -.Dv NULL -if there is no comment. -In case of an error, -.Dv NULL -is returned and the error code in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Fn zip_file_get_comment -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_INVAL -.Ar index -is not a valid file index in -.Ar archive . -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_file_set_comment 3 , -.Xr zip_get_archive_comment 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_file_get_error.man b/libzip-1.2.0/man/zip_file_get_error.man deleted file mode 100644 index c80dad5f0..000000000 --- a/libzip-1.2.0/man/zip_file_get_error.man +++ /dev/null @@ -1,26 +0,0 @@ -.TH "ZIP_FILE_GET_ERROR" "3" "November 9, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_file_get_error\fR -\- extract zip_error from zip_file -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_error_t *\fR -.PD 0 -.HP 4n -\fBzip_file_get_error\fR(\fIzip_file_t\ *zf\fR); -.PD -.SH "DESCRIPTION" -\fBzip_file_get_error\fR() -function returns the zip_error associated with the zip_file -\fIzf\fR. -.SH "SEE ALSO" -libzip(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_file_get_error.mdoc b/libzip-1.2.0/man/zip_file_get_error.mdoc deleted file mode 100644 index f56693f2b..000000000 --- a/libzip-1.2.0/man/zip_file_get_error.mdoc +++ /dev/null @@ -1,54 +0,0 @@ -.\" zip_file_get_error.mdoc -- extract zip_error from zip_file -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd November 9, 2014 -.Dt ZIP_FILE_GET_ERROR 3 -.Os -.Sh NAME -.Nm zip_file_get_error -.Nd extract zip_error from zip_file -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_error_t * -.Fn zip_file_get_error "zip_file_t *zf" -.Sh DESCRIPTION -.Fn zip_file_get_error -function returns the zip_error associated with the zip_file -.Ar zf . -.Sh SEE ALSO -.Xr libzip 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_file_get_external_attributes.man b/libzip-1.2.0/man/zip_file_get_external_attributes.man deleted file mode 100644 index b03fec279..000000000 --- a/libzip-1.2.0/man/zip_file_get_external_attributes.man +++ /dev/null @@ -1,138 +0,0 @@ -.TH "ZIP_FILE_GET_EXTERNAL_ATTRIBUTES" "3" "December 29, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_file_get_external_attributes\fR -\- get external attributes for file in zip -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_file_get_external_attributes\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_flags_t\ flags\fR, \fIzip_uint8_t\ *opsys\fR, \fIzip_uint32_t\ *attributes\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_file_get_external_attributes\fR() -function returns the operating system and external attributes for the -file at position -\fIindex\fR -in the zip archive. -The external attributes usually contain the operating system-specific -file permissions. -If -\fIflags\fR -is set to -\fRZIP_FL_UNCHANGED\fR, -the original unchanged values are returned. -If -\fIopsys\fR -or -\fIattributes\fR -are -\fRNULL\fR, -they are not filled in. -.PP -The following operating systems are defined by the zip specification: -.RS 6n -.PD 0 -.PP -\fRZIP_OPSYS_ACORN_RISC\fR -.PP -\fRZIP_OPSYS_ALTERNATE_MVS\fR -.PP -\fRZIP_OPSYS_AMIGA\fR -.PP -\fRZIP_OPSYS_ATARI_ST\fR -.PP -\fRZIP_OPSYS_BEOS\fR -.PP -\fRZIP_OPSYS_CPM\fR -.PP -\fRZIP_OPSYS_DOS\fR -.PP -\fRZIP_OPSYS_MACINTOSH\fR -.PP -\fRZIP_OPSYS_MVS\fR -.PP -\fRZIP_OPSYS_OPENVMS\fR -.PP -\fRZIP_OPSYS_OS_2\fR -.PP -\fRZIP_OPSYS_OS_400\fR -.PP -\fRZIP_OPSYS_OS_X\fR -.PP -\fRZIP_OPSYS_TANDEM\fR -.PP -\fRZIP_OPSYS_UNIX\fR -.PP -\fRZIP_OPSYS_VFAT\fR -.PP -\fRZIP_OPSYS_VM_CMS\fR -.PP -\fRZIP_OPSYS_VSE\fR -.PP -\fRZIP_OPSYS_WINDOWS_NTFS\fR -(uncommon, use -\fRZIP_OPSYS_DOS\fR -instead) -.PP -\fRZIP_OPSYS_Z_SYSTEM\fR -.RE -.PD -.PP -The defines above follow the PKWARE Inc. Appnote; please note that -the InfoZIP Appnote has a slightly different mapping. -.SH "RETURN VALUES" -Upon successful completion, 0 is returned. -In case of an error, -\fR\-1\fR -is returned and the error code in -\fIarchive\fR -is set to indicate the error. -.SH "EXAMPLES" -The following code can be used to expand -\fIattributes\fR -if the operating system is -\fRZIP_OPSYS_DOS\fR. -.nf -.sp -.RS 0n -#include - -#define FA_RDONLY 0x01 // FILE_ATTRIBUTE_READONLY -#define FA_DIREC 0x10 // FILE_ATTRIBUTE_DIRECTORY - -static mode_t -_zip_dos_attr2mode(zip_uint32_t attr) -{ - mode_t m = S_IRUSR | S_IRGRP | S_IROTH; - if (0 == (attr & FA_RDONLY)) - m |= S_IWUSR | S_IWGRP | S_IWOTH; - - if (attr & FA_DIREC) - m = (S_IFDIR | (m & ~S_IFMT)) | S_IXUSR | S_IXGRP | S_IXOTH; - - return m; -} -.RE -.fi -.SH "ERRORS" -\fBzip_file_get_external_attributes\fR() -fails if: -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIindex\fR -is not a valid file index in -\fIarchive\fR. -.SH "SEE ALSO" -libzip(3), -zip_file_set_external_attributes(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_file_get_external_attributes.mdoc b/libzip-1.2.0/man/zip_file_get_external_attributes.mdoc deleted file mode 100644 index bc5eb3742..000000000 --- a/libzip-1.2.0/man/zip_file_get_external_attributes.mdoc +++ /dev/null @@ -1,162 +0,0 @@ -.\" zip_file_get_external_attributes.mdoc -- get external attributes for file in zip -.\" Copyright (C) 2013-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP files. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 29, 2016 -.Dt ZIP_FILE_GET_EXTERNAL_ATTRIBUTES 3 -.Os -.Sh NAME -.Nm zip_file_get_external_attributes -.Nd get external attributes for file in zip -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_file_get_external_attributes "zip_t *archive" "zip_uint64_t index" "zip_flags_t flags" "zip_uint8_t *opsys" "zip_uint32_t *attributes" -.Sh DESCRIPTION -The -.Fn zip_file_get_external_attributes -function returns the operating system and external attributes for the -file at position -.Ar index -in the zip archive. -The external attributes usually contain the operating system-specific -file permissions. -If -.Ar flags -is set to -.Dv ZIP_FL_UNCHANGED , -the original unchanged values are returned. -If -.Ar opsys -or -.Ar attributes -are -.Dv NULL , -they are not filled in. -.Pp -The following operating systems are defined by the zip specification: -.Bl -item -compact -offset indent -.It -.Dv ZIP_OPSYS_ACORN_RISC -.It -.Dv ZIP_OPSYS_ALTERNATE_MVS -.It -.Dv ZIP_OPSYS_AMIGA -.It -.Dv ZIP_OPSYS_ATARI_ST -.It -.Dv ZIP_OPSYS_BEOS -.It -.Dv ZIP_OPSYS_CPM -.It -.Dv ZIP_OPSYS_DOS -.It -.Dv ZIP_OPSYS_MACINTOSH -.It -.Dv ZIP_OPSYS_MVS -.It -.Dv ZIP_OPSYS_OPENVMS -.It -.Dv ZIP_OPSYS_OS_2 -.It -.Dv ZIP_OPSYS_OS_400 -.It -.Dv ZIP_OPSYS_OS_X -.It -.Dv ZIP_OPSYS_TANDEM -.It -.Dv ZIP_OPSYS_UNIX -.It -.Dv ZIP_OPSYS_VFAT -.It -.Dv ZIP_OPSYS_VM_CMS -.It -.Dv ZIP_OPSYS_VSE -.It -.Dv ZIP_OPSYS_WINDOWS_NTFS -(uncommon, use -.Dv ZIP_OPSYS_DOS -instead) -.It -.Dv ZIP_OPSYS_Z_SYSTEM -.El -.Pp -The defines above follow the PKWARE Inc. Appnote; please note that -the InfoZIP Appnote has a slightly different mapping. -.Sh RETURN VALUES -Upon successful completion, 0 is returned. -In case of an error, -.Dv \-1 -is returned and the error code in -.Ar archive -is set to indicate the error. -.Sh EXAMPLES -The following code can be used to expand -.Ar attributes -if the operating system is -.Dv ZIP_OPSYS_DOS . -.Bd -literal -#include - -#define FA_RDONLY 0x01 // FILE_ATTRIBUTE_READONLY -#define FA_DIREC 0x10 // FILE_ATTRIBUTE_DIRECTORY - -static mode_t -_zip_dos_attr2mode(zip_uint32_t attr) -{ - mode_t m = S_IRUSR | S_IRGRP | S_IROTH; - if (0 == (attr & FA_RDONLY)) - m |= S_IWUSR | S_IWGRP | S_IWOTH; - - if (attr & FA_DIREC) - m = (S_IFDIR | (m & ~S_IFMT)) | S_IXUSR | S_IXGRP | S_IXOTH; - - return m; -} -.Ed -.Sh ERRORS -.Fn zip_file_get_external_attributes -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_INVAL -.Ar index -is not a valid file index in -.Ar archive . -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_file_set_external_attributes 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_file_rename.man b/libzip-1.2.0/man/zip_file_rename.man deleted file mode 100644 index ab2fa4120..000000000 --- a/libzip-1.2.0/man/zip_file_rename.man +++ /dev/null @@ -1,74 +0,0 @@ -.TH "ZIP_FILE_RENAME" "3" "June 23, 2012" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_file_rename\fR -\- rename file in zip archive -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_file_rename\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIconst\ char\ *name\fR, \fIzip_flags_t\ flags\fR); -.PD -.SH "DESCRIPTION" -The file at position -\fIindex\fR -in the zip archive -\fIarchive\fR -is renamed to -\fIname\fR. -The -\fIflags\fR -argument can be any of: -.TP 22n -\fRZIP_FL_ENC_GUESS\fR -Guess encoding of -\fIname\fR -(default). -.TP 22n -\fRZIP_FL_ENC_UTF_8\fR -Interpret -\fIname\fR -as UTF-8. -.TP 22n -\fRZIP_FL_ENC_CP437\fR -Interpret -\fIname\fR -as code page 437 (CP-437). -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error code in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_rename\fR() -fails if: -.TP 19n -[\fRZIP_ER_DELETED\fR] -The file to be renamed has been deleted from the archive. -.TP 19n -[\fRZIP_ER_EXISTS\fR] -There is already a file called -\fIname\fR -in the archive. -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIindex\fR -is not a valid file index in -\fIarchive\fR, -\fIname is\fR -\fRNULL\fR, -the empty string, or not a valid UTF-8 encoded string. -Also a file cannot be renamed to a directory or vice versa. -Directories are denoted by a trailing slash. -.SH "SEE ALSO" -libzip(3), -zip_unchange(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_file_rename.mdoc b/libzip-1.2.0/man/zip_file_rename.mdoc deleted file mode 100644 index 0f3defc34..000000000 --- a/libzip-1.2.0/man/zip_file_rename.mdoc +++ /dev/null @@ -1,100 +0,0 @@ -.\" zip_file_rename.mdoc -- rename file in zip archive -.\" Copyright (C) 2003-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd June 23, 2012 -.Dt ZIP_FILE_RENAME 3 -.Os -.Sh NAME -.Nm zip_file_rename -.Nd rename file in zip archive -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_file_rename "zip_t *archive" "zip_uint64_t index" "const char *name" "zip_flags_t flags" -.Sh DESCRIPTION -The file at position -.Ar index -in the zip archive -.Ar archive -is renamed to -.Ar name . -The -.Ar flags -argument can be any of: -.Bl -tag -width XZIPXFLXENCXSTRICTXX -.It Dv ZIP_FL_ENC_GUESS -Guess encoding of -.Ar name -(default). -.It Dv ZIP_FL_ENC_UTF_8 -Interpret -.Ar name -as UTF-8. -.It Dv ZIP_FL_ENC_CP437 -Interpret -.Ar name -as code page 437 (CP-437). -.El -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error code in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Fn zip_rename -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_DELETED -The file to be renamed has been deleted from the archive. -.It Bq Er ZIP_ER_EXISTS -There is already a file called -.Ar name -in the archive. -.It Bq Er ZIP_ER_INVAL -.Ar index -is not a valid file index in -.Ar archive , -.Ar name is -.Dv NULL , -the empty string, or not a valid UTF-8 encoded string. -Also a file cannot be renamed to a directory or vice versa. -Directories are denoted by a trailing slash. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_unchange 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_file_set_comment.man b/libzip-1.2.0/man/zip_file_set_comment.man deleted file mode 100644 index da9478911..000000000 --- a/libzip-1.2.0/man/zip_file_set_comment.man +++ /dev/null @@ -1,86 +0,0 @@ -.TH "ZIP_FILE_SET_COMMENT" "3" "September 19, 2013" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_file_set_comment\fR -\- set comment for file in zip -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_file_set_comment\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIconst\ char\ *comment\fR, \fIzip_uint16_t\ len\fR, \fIzip_flags_t\ flags\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_file_set_comment\fR() -function sets the comment for the file at position -\fIindex\fR -in the zip archive to -\fIcomment\fR -of length -\fIlen\fR. -If -\fIcomment\fR -is -\fRNULL\fR -and -\fIlen\fR -is 0, the file comment will be removed. -The -\fIflags\fR -argument can be any of: -.TP 22n -\fRZIP_FL_ENC_GUESS\fR -Guess encoding of -\fIcomment\fR -(default). -.TP 22n -\fRZIP_FL_ENC_UTF_8\fR -Interpret -\fIcomment\fR -as UTF-8. -.TP 22n -\fRZIP_FL_ENC_CP437\fR -Interpret -\fIcomment\fR -as code page 437 (CP-437). -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_file_set_comment\fR() -fails if: -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIindex\fR -is not a valid file index in -\fIarchive\fR, -or -\fIlen\fR -is less than 0 or longer than the maximum comment length in a zip file -(65535), or -\fIcomment\fR -is not a valid UTF-8 encoded string. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.TP 19n -[\fRZIP_ER_RDONLY\fR] -The -\fIarchive\fR -was opened in read-only mode. -.SH "SEE ALSO" -libzip(3), -zip_file_get_comment(3), -zip_get_archive_comment(3), -zip_set_archive_comment(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_file_set_comment.mdoc b/libzip-1.2.0/man/zip_file_set_comment.mdoc deleted file mode 100644 index f893f6258..000000000 --- a/libzip-1.2.0/man/zip_file_set_comment.mdoc +++ /dev/null @@ -1,112 +0,0 @@ -.\" zip_file_set_comment.mdoc -- set comment for file in zip -.\" Copyright (C) 2006-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP files. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd September 19, 2013 -.Dt ZIP_FILE_SET_COMMENT 3 -.Os -.Sh NAME -.Nm zip_file_set_comment -.Nd set comment for file in zip -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_file_set_comment "zip_t *archive" "zip_uint64_t index" "const char *comment" "zip_uint16_t len" "zip_flags_t flags" -.Sh DESCRIPTION -The -.Fn zip_file_set_comment -function sets the comment for the file at position -.Ar index -in the zip archive to -.Ar comment -of length -.Ar len . -If -.Ar comment -is -.Dv NULL -and -.Ar len -is 0, the file comment will be removed. -The -.Ar flags -argument can be any of: -.Bl -tag -width XZIPXFLXENCXSTRICTXX -.It Dv ZIP_FL_ENC_GUESS -Guess encoding of -.Ar comment -(default). -.It Dv ZIP_FL_ENC_UTF_8 -Interpret -.Ar comment -as UTF-8. -.It Dv ZIP_FL_ENC_CP437 -Interpret -.Ar comment -as code page 437 (CP-437). -.El -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Fn zip_file_set_comment -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_INVAL -.Ar index -is not a valid file index in -.Ar archive , -or -.Ar len -is less than 0 or longer than the maximum comment length in a zip file -(65535), or -.Ar comment -is not a valid UTF-8 encoded string. -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.It Bq Er ZIP_ER_RDONLY -The -.Ar archive -was opened in read-only mode. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_file_get_comment 3 , -.Xr zip_get_archive_comment 3 , -.Xr zip_set_archive_comment 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_file_set_encryption.man b/libzip-1.2.0/man/zip_file_set_encryption.man deleted file mode 100644 index 586703714..000000000 --- a/libzip-1.2.0/man/zip_file_set_encryption.man +++ /dev/null @@ -1,87 +0,0 @@ -.TH "ZIP_FILE_SET_ENCRYPTION" "3" "December 16, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_file_set_encryption\fR -\- set encryption method for file in zip -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_file_set_encryption\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_uint16_t\ method\fR, \fIconst\ char\ *password\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_file_set_encryption\fR() -function sets the encryption method for the file at position -\fIindex\fR -in the zip archive to -\fImethod\fR -using the password -\fIpassword\fR. -The -\fImethod\fR -is the same as returned by -zip_stat(3). -For the -\fImethod\fR -argument, currently only the following values are supported: -.TP 19n -\fRZIP_EM_NONE\fR -No encryption. -.TP 19n -\fRZIP_EM_AES_128\fR -Winzip AES-128 encryption. -.TP 19n -\fRZIP_EM_AES_192\fR -Winzip AES-192 encryption. -.TP 19n -\fRZIP_EM_AES_256\fR -Winzip AES-256 encryption. -.PP -If -\fIpassword\fR -is -\fRNULL\fR, -the default password provided by -zip_set_default_password(3) -is used. -.PP -The current encryption method for a file in a zip archive can be -determined using -zip_stat(3). -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_file_set_encryption\fR() -fails if: -.TP 19n -[\fRZIP_ER_ENCRNOTSUPP\fR] -Unsupported compression method requested. -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIindex\fR -is not a valid file index in -\fIarchive\fR, -or the argument combination is invalid. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.TP 19n -[\fRZIP_ER_RDONLY\fR] -Read-only zip file, no changes allowed. -.SH "SEE ALSO" -libzip(3), -zip_set_default_password(3), -zip_stat(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_file_set_encryption.mdoc b/libzip-1.2.0/man/zip_file_set_encryption.mdoc deleted file mode 100644 index 89dd35893..000000000 --- a/libzip-1.2.0/man/zip_file_set_encryption.mdoc +++ /dev/null @@ -1,111 +0,0 @@ -.\" zip_file_set_encryption.mdoc -- set encryption method for file -.\" Copyright (C) 2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP files. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 16, 2016 -.Dt ZIP_FILE_SET_ENCRYPTION 3 -.Os -.Sh NAME -.Nm zip_file_set_encryption -.Nd set encryption method for file in zip -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_file_set_encryption "zip_t *archive" "zip_uint64_t index" "zip_uint16_t method" "const char *password" -.Sh DESCRIPTION -The -.Fn zip_file_set_encryption -function sets the encryption method for the file at position -.Ar index -in the zip archive to -.Ar method -using the password -.Ar password . -The -.Ar method -is the same as returned by -.Xr zip_stat 3 . -For the -.Ar method -argument, currently only the following values are supported: -.Bl -tag -width ZIP_CM_DEFLATE_XX -.It Dv ZIP_EM_NONE -No encryption. -.It Dv ZIP_EM_AES_128 -Winzip AES-128 encryption. -.It Dv ZIP_EM_AES_192 -Winzip AES-192 encryption. -.It Dv ZIP_EM_AES_256 -Winzip AES-256 encryption. -.El -.Pp -If -.Ar password -is -.Dv NULL , -the default password provided by -.Xr zip_set_default_password 3 -is used. -.Pp -The current encryption method for a file in a zip archive can be -determined using -.Xr zip_stat 3 . -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Fn zip_file_set_encryption -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_ENCRNOTSUPP -Unsupported compression method requested. -.It Bq Er ZIP_ER_INVAL -.Ar index -is not a valid file index in -.Ar archive , -or the argument combination is invalid. -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.It Bq Er ZIP_ER_RDONLY -Read-only zip file, no changes allowed. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_set_default_password 3 , -.Xr zip_stat 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_file_set_external_attributes.man b/libzip-1.2.0/man/zip_file_set_external_attributes.man deleted file mode 100644 index 9bc472170..000000000 --- a/libzip-1.2.0/man/zip_file_set_external_attributes.man +++ /dev/null @@ -1,59 +0,0 @@ -.TH "ZIP_FILE_SET_EXTERNAL_ATTRIBUTES" "3" "December 29, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_file_set_external_attributes\fR -\- set external attributes for file in zip -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_file_set_external_attributes\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_flags_t\ flags\fR, \fIzip_uint8_t\ opsys\fR, \fIzip_uint32_t\ attributes\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_file_set_external_attributes\fR() -function sets the operating system and external attributes for the -file at position -\fIindex\fR -in the zip archive. -Currently, no -\fIflags\fR -are supported. -.PP -For a list of known -\fIopsys\fR -values, see -zip_file_get_external_attributes(3). -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_file_set_external_attributes\fR() -fails if: -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIindex\fR -is not a valid file index in -\fIarchive\fR. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.TP 19n -[\fRZIP_ER_RDONLY\fR] -The -\fIarchive\fR -was opened in read-only mode. -.SH "SEE ALSO" -libzip(3), -zip_file_get_external_attributes(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_file_set_external_attributes.mdoc b/libzip-1.2.0/man/zip_file_set_external_attributes.mdoc deleted file mode 100644 index c1a4788fa..000000000 --- a/libzip-1.2.0/man/zip_file_set_external_attributes.mdoc +++ /dev/null @@ -1,86 +0,0 @@ -.\" zip_file_set_external_attributes.mdoc -- set external attributes for file in zip -.\" Copyright (C) 2013-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP files. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 29, 2016 -.Dt ZIP_FILE_SET_EXTERNAL_ATTRIBUTES 3 -.Os -.Sh NAME -.Nm zip_file_set_external_attributes -.Nd set external attributes for file in zip -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_file_set_external_attributes "zip_t *archive" "zip_uint64_t index" "zip_flags_t flags" "zip_uint8_t opsys" "zip_uint32_t attributes" -.Sh DESCRIPTION -The -.Fn zip_file_set_external_attributes -function sets the operating system and external attributes for the -file at position -.Ar index -in the zip archive. -Currently, no -.Ar flags -are supported. -.Pp -For a list of known -.Ar opsys -values, see -.Xr zip_file_get_external_attributes 3 . -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Fn zip_file_set_external_attributes -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_INVAL -.Ar index -is not a valid file index in -.Ar archive . -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.It Bq Er ZIP_ER_RDONLY -The -.Ar archive -was opened in read-only mode. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_file_get_external_attributes 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_file_set_mtime.man b/libzip-1.2.0/man/zip_file_set_mtime.man deleted file mode 100644 index 475f98906..000000000 --- a/libzip-1.2.0/man/zip_file_set_mtime.man +++ /dev/null @@ -1,55 +0,0 @@ -.TH "ZIP_FILE_SET_MTIME" "3" "December 29, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_file_set_mtime\fR -\- set last modification time (mtime) for file in zip -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_file_set_mtime\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fItime_t\ mtime\fR, \fIzip_flags_t\ flags\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_file_set_mtime\fR() -function sets the last modification time (mtime) for the file at -position -\fIindex\fR -in the zip archive to -\fImtime\fR. -Currently, no support for any -\fIflags\fR -is implemented. -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_file_set_mtime\fR() -fails if: -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIindex\fR -is not a valid file index in -\fIarchive\fR. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.TP 19n -[\fRZIP_ER_RDONLY\fR] -The -\fIarchive\fR -was opened in read-only mode. -.SH "SEE ALSO" -libzip(3), -zip_stat(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_file_set_mtime.mdoc b/libzip-1.2.0/man/zip_file_set_mtime.mdoc deleted file mode 100644 index 4c7821762..000000000 --- a/libzip-1.2.0/man/zip_file_set_mtime.mdoc +++ /dev/null @@ -1,82 +0,0 @@ -.\" zip_file_set_mtime.mdoc -- set mtime for file in zip -.\" Copyright (C) 2014-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP files. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 29, 2016 -.Dt ZIP_FILE_SET_MTIME 3 -.Os -.Sh NAME -.Nm zip_file_set_mtime -.Nd set last modification time (mtime) for file in zip -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_file_set_mtime "zip_t *archive" "zip_uint64_t index" "time_t mtime" "zip_flags_t flags" -.Sh DESCRIPTION -The -.Fn zip_file_set_mtime -function sets the last modification time (mtime) for the file at -position -.Ar index -in the zip archive to -.Ar mtime . -Currently, no support for any -.Ar flags -is implemented. -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Fn zip_file_set_mtime -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_INVAL -.Ar index -is not a valid file index in -.Ar archive . -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.It Bq Er ZIP_ER_RDONLY -The -.Ar archive -was opened in read-only mode. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_stat 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_file_strerror.man b/libzip-1.2.0/man/zip_file_strerror.man deleted file mode 100644 index ae5ffdeac..000000000 --- a/libzip-1.2.0/man/zip_file_strerror.man +++ /dev/null @@ -1,56 +0,0 @@ -.TH "ZIP_FILE_STRERROR" "3" "December 27, 2004" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_file_strerror\fR, -\fBzip_strerror\fR -\- get string representation for a zip error -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIconst char *\fR -.PD 0 -.HP 4n -\fBzip_file_strerror\fR(\fIzip_file_t\ *file\fR); -.PD -.PP -\fIconst char *\fR -.PD 0 -.HP 4n -\fBzip_strerror\fR(\fIzip_t\ *archive\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_strerror\fR() -function returns a string describing the last error for the zip archive -\fIarchive\fR, -while the -\fBzip_file_strerror\fR() -function does the same for a zip file -\fIfile\fR -(one file in an archive). -The returned string must not be modified or freed, and becomes invalid when -\fIarchive\fR -or -\fIfile\fR, -respectively, -is closed or on the next call to -\fBzip_strerror\fR() -or -\fBzip_file_strerror\fR(), -respectively, -for the same archive. -.SH "RETURN VALUES" -\fBzip_file_strerror\fR() -and -\fBzip_strerror\fR() -return a pointer to the error string. -.SH "SEE ALSO" -libzip(3), -zip_error_to_str(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_file_strerror.mdoc b/libzip-1.2.0/man/zip_file_strerror.mdoc deleted file mode 100644 index e5d11bed7..000000000 --- a/libzip-1.2.0/man/zip_file_strerror.mdoc +++ /dev/null @@ -1,80 +0,0 @@ -.\" zip_file_strerror.mdoc -- get string representation for a zip error -.\" Copyright (C) 2003-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 27, 2004 -.Dt ZIP_FILE_STRERROR 3 -.Os -.Sh NAME -.Nm zip_file_strerror , -.Nm zip_strerror -.Nd get string representation for a zip error -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft const char * -.Fn zip_file_strerror "zip_file_t *file" -.Ft const char * -.Fn zip_strerror "zip_t *archive" -.Sh DESCRIPTION -The -.Fn zip_strerror -function returns a string describing the last error for the zip archive -.Ar archive , -while the -.Fn zip_file_strerror -function does the same for a zip file -.Ar file -(one file in an archive). -The returned string must not be modified or freed, and becomes invalid when -.Ar archive -or -.Ar file , -respectively, -is closed or on the next call to -.Fn zip_strerror -or -.Fn zip_file_strerror , -respectively, -for the same archive. -.Sh RETURN VALUES -.Fn zip_file_strerror -and -.Fn zip_strerror -return a pointer to the error string. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_error_to_str 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_fopen.man b/libzip-1.2.0/man/zip_fopen.man deleted file mode 100644 index 1b8af6830..000000000 --- a/libzip-1.2.0/man/zip_fopen.man +++ /dev/null @@ -1,127 +0,0 @@ -.TH "ZIP_FOPEN" "3" "September 12, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_fopen\fR, -\fBzip_fopen_index\fR -\- open file in zip archive for reading -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_file_t *\fR -.PD 0 -.HP 4n -\fBzip_fopen\fR(\fIzip_t\ *archive\fR, \fIconst\ char\ *fname\fR, \fIzip_flags_t\ flags\fR); -.PD -.PP -\fIzip_file_t *\fR -.PD 0 -.HP 4n -\fBzip_fopen_index\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_flags_t\ flags\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_fopen\fR() -function opens the file name -\fIfname\fR -in -\fIarchive\fR. -The -\fIflags\fR -argument specifies how the name lookup should be done, according to -the values are described in -zip_name_locate(3). -Also, the following values may be -\fIor\fR'ed -to it. -.RS 6n -.TP 19n -\fRZIP_FL_COMPRESSED\fR -Read the compressed data. -Otherwise the data is uncompressed by -\fBzip_fread\fR(). -.TP 19n -\fRZIP_FL_UNCHANGED\fR -Read the original data from the zip archive, ignoring any changes made -to the file. -.RE -.PP -The -\fBzip_fopen_index\fR() -function opens the file at position -\fIindex\fR. -.PP -If encrypted data is encountered, the functions call -zip_fopen_encrypted(3) -or -zip_fopen_index_encrypted(3) -respectively, using the default password set with -zip_set_default_password(3). -.SH "RETURN VALUES" -Upon successful completion, a -\fIstruct zip_file\fR -pointer is returned. -Otherwise, -\fRNULL\fR -is returned and the error code in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -.TP 19n -[\fRZIP_ER_CHANGED\fR] -The file data has been changed. -.TP 19n -[\fRZIP_ER_COMPNOTSUPP\fR] -The compression method used is not supported. -.TP 19n -[\fRZIP_ER_ENCRNOTSUPP\fR] -The encryption method used is not supported. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.TP 19n -[\fRZIP_ER_NOPASSWD\fR] -The file is encrypted, but no password has been provided. -.TP 19n -[\fRZIP_ER_READ\fR] -A file read error occurred. -.TP 19n -[\fRZIP_ER_SEEK\fR] -A file seek error occurred. -.TP 19n -[\fRZIP_ER_WRONGPASSWD\fR] -The provided password does not match the password used for encryption. -Note that some incorrect passwords are not detected by the check done by -\fBzip_fopen\fR(). -.TP 19n -[\fRZIP_ER_ZLIB\fR] -Initializing the zlib stream failed. -.PP -The function -\fBzip_fopen\fR() -may also fail and set -\fIzip_err\fR -for any of the errors specified for the routine -zip_name_locate(3). -.PP -The function -\fBzip_fopen_index\fR() -may also fail with -\fRZIP_ER_INVAL\fR -if -\fIindex\fR -is invalid. -.SH "SEE ALSO" -libzip(3), -zip_fclose(3), -zip_fread(3), -zip_fseek(3), -zip_get_num_entries(3), -zip_name_locate(3), -zip_set_default_password(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_fopen.mdoc b/libzip-1.2.0/man/zip_fopen.mdoc deleted file mode 100644 index 948acb323..000000000 --- a/libzip-1.2.0/man/zip_fopen.mdoc +++ /dev/null @@ -1,142 +0,0 @@ -.\" zip_fopen.mdoc -- open file in zip archive for reading -.\" Copyright (C) 2003-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd September 12, 2016 -.Dt ZIP_FOPEN 3 -.Os -.Sh NAME -.Nm zip_fopen , -.Nm zip_fopen_index -.Nd open file in zip archive for reading -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_file_t * -.Fn zip_fopen "zip_t *archive" "const char *fname" "zip_flags_t flags" -.Ft zip_file_t * -.Fn zip_fopen_index "zip_t *archive" "zip_uint64_t index" "zip_flags_t flags" -.Sh DESCRIPTION -The -.Fn zip_fopen -function opens the file name -.Ar fname -in -.Ar archive . -The -.Ar flags -argument specifies how the name lookup should be done, according to -the values are described in -.Xr zip_name_locate 3 . -Also, the following values may be -.Em or Ns No 'ed -to it. -.Bl -tag -offset indent -width ZIP_FL_COMPRESSED -.It Dv ZIP_FL_COMPRESSED -Read the compressed data. -Otherwise the data is uncompressed by -.Fn zip_fread . -.It Dv ZIP_FL_UNCHANGED -Read the original data from the zip archive, ignoring any changes made -to the file. -.El -.Pp -The -.Fn zip_fopen_index -function opens the file at position -.Ar index . -.Pp -If encrypted data is encountered, the functions call -.Xr zip_fopen_encrypted 3 -or -.Xr zip_fopen_index_encrypted 3 -respectively, using the default password set with -.Xr zip_set_default_password 3 . -.Sh RETURN VALUES -Upon successful completion, a -.Ft struct zip_file -pointer is returned. -Otherwise, -.Dv NULL -is returned and the error code in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Bl -tag -width Er -.It Bq Er ZIP_ER_CHANGED -The file data has been changed. -.It Bq Er ZIP_ER_COMPNOTSUPP -The compression method used is not supported. -.It Bq Er ZIP_ER_ENCRNOTSUPP -The encryption method used is not supported. -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.It Bq Er ZIP_ER_NOPASSWD -The file is encrypted, but no password has been provided. -.It Bq Er ZIP_ER_READ -A file read error occurred. -.It Bq Er ZIP_ER_SEEK -A file seek error occurred. -.It Bq Er ZIP_ER_WRONGPASSWD -The provided password does not match the password used for encryption. -Note that some incorrect passwords are not detected by the check done by -.Fn zip_fopen . -.It Bq Er ZIP_ER_ZLIB -Initializing the zlib stream failed. -.El -.Pp -The function -.Fn zip_fopen -may also fail and set -.Va zip_err -for any of the errors specified for the routine -.Xr zip_name_locate 3 . -.Pp -The function -.Fn zip_fopen_index -may also fail with -.Er ZIP_ER_INVAL -if -.Ar index -is invalid. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_fclose 3 , -.Xr zip_fread 3 , -.Xr zip_fseek 3 , -.Xr zip_get_num_entries 3 , -.Xr zip_name_locate 3 , -.Xr zip_set_default_password 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_fopen_encrypted.man b/libzip-1.2.0/man/zip_fopen_encrypted.man deleted file mode 100644 index 1acc6db62..000000000 --- a/libzip-1.2.0/man/zip_fopen_encrypted.man +++ /dev/null @@ -1,87 +0,0 @@ -.TH "ZIP_FOPEN_ENCRYPTED" "3" "July 22, 2012" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_fopen_encrypted\fR, -\fBzip_fopen_index_encrypted\fR -\- open encrypted file in zip archive for reading -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_file_t *\fR -.PD 0 -.HP 4n -\fBzip_fopen_encrypted\fR(\fIzip_t\ *archive\fR, \fIconst\ char\ *fname\fR, \fIzip_flags_t\ flags\fR, \fIconst\ char\ *password\fR); -.PD -.PP -\fIzip_file_t *\fR -.PD 0 -.HP 4n -\fBzip_fopen_index_encrypted\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_flags_t\ flags\fR, \fIconst\ char\ *password\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_fopen_encrypted\fR() -function opens the encrypted file name -\fIfname\fR -in -\fIarchive\fR -using the password given in the -\fIpassword\fR -argument. -The -\fIflags\fR -argument are the same as for -zip_fopen(3). -.PP -The -\fBzip_fopen_index_encrypted\fR() -function opens the file at position -\fIindex\fR, -see -zip_fopen_index(3). -These functions are called automatically by -zip_fopen(3); -you only need to call them if you want to specify a non-default password -(see -zip_set_default_password(3)). -.SH "RETURN VALUES" -Upon successful completion, a -\fIstruct zip_file\fR -pointer is returned. -Otherwise, -\fRNULL\fR -is returned and the error code in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -.TP 22n -[\fRZIP_ER_NOPASSWD\fR] -No password was provided. -.PP -The function -\fBzip_fopen_encrypted\fR() -may also fail and set -\fIzip_err\fR -for any of the errors specified for the routine -zip_fopen(3). -.PP -The function -\fBzip_fopen_index_encrypted\fR() -may also fail and set -\fIzip_err\fR -for any of the errors specified for the routine -zip_fopen_index(3). -.SH "SEE ALSO" -libzip(3), -zip_fclose(3), -zip_fopen(3), -zip_fread(3), -zip_get_num_entries(3), -zip_name_locate(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_fopen_encrypted.mdoc b/libzip-1.2.0/man/zip_fopen_encrypted.mdoc deleted file mode 100644 index 3a930c90c..000000000 --- a/libzip-1.2.0/man/zip_fopen_encrypted.mdoc +++ /dev/null @@ -1,112 +0,0 @@ -.\" zip_fopen_encrypted.mdoc -- open encrypted file in zip archive for reading -.\" Copyright (C) 2011-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd July 22, 2012 -.Dt ZIP_FOPEN_ENCRYPTED 3 -.Os -.Sh NAME -.Nm zip_fopen_encrypted , -.Nm zip_fopen_index_encrypted -.Nd open encrypted file in zip archive for reading -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_file_t * -.Fn zip_fopen_encrypted "zip_t *archive" "const char *fname" "zip_flags_t flags" "const char *password" -.Ft zip_file_t * -.Fn zip_fopen_index_encrypted "zip_t *archive" "zip_uint64_t index" "zip_flags_t flags" "const char *password" -.Sh DESCRIPTION -The -.Fn zip_fopen_encrypted -function opens the encrypted file name -.Ar fname -in -.Ar archive -using the password given in the -.Ar password -argument. -The -.Ar flags -argument are the same as for -.Xr zip_fopen 3 . -.Pp -The -.Fn zip_fopen_index_encrypted -function opens the file at position -.Ar index , -see -.Xr zip_fopen_index 3 . -These functions are called automatically by -.Xr zip_fopen 3 ; -you only need to call them if you want to specify a non-default password -(see -.Xr zip_set_default_password 3 ) . -.Sh RETURN VALUES -Upon successful completion, a -.Ft struct zip_file -pointer is returned. -Otherwise, -.Dv NULL -is returned and the error code in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Bl -tag -width ZIP_ER_ENCRNOTSUPPXX -.It Bq Er ZIP_ER_NOPASSWD -No password was provided. -.El -.Pp -The function -.Fn zip_fopen_encrypted -may also fail and set -.Va zip_err -for any of the errors specified for the routine -.Xr zip_fopen 3 . -.Pp -The function -.Fn zip_fopen_index_encrypted -may also fail and set -.Va zip_err -for any of the errors specified for the routine -.Xr zip_fopen_index 3 . -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_fclose 3 , -.Xr zip_fopen 3 , -.Xr zip_fread 3 , -.Xr zip_get_num_entries 3 , -.Xr zip_name_locate 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_fread.man b/libzip-1.2.0/man/zip_fread.man deleted file mode 100644 index 0ab5bba1a..000000000 --- a/libzip-1.2.0/man/zip_fread.man +++ /dev/null @@ -1,37 +0,0 @@ -.TH "ZIP_FREAD" "3" "September 12, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_fread\fR -\- read from file -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_int64_t\fR -.PD 0 -.HP 4n -\fBzip_fread\fR(\fIzip_file_t\ *file\fR, \fIvoid\ *buf\fR, \fIzip_uint64_t\ nbytes\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_fread\fR() -function reads at most -\fInbytes\fR -bytes from -\fIfile\fR -into -\fIbuf\fR. -.SH "RETURN VALUES" -If successful, the number of bytes actually read is returned. -Otherwise, \-1 is returned. -.SH "SEE ALSO" -libzip(3), -zip_fclose(3), -zip_fseek(3), -zip_fopen(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_fread.mdoc b/libzip-1.2.0/man/zip_fread.mdoc deleted file mode 100644 index f14e70303..000000000 --- a/libzip-1.2.0/man/zip_fread.mdoc +++ /dev/null @@ -1,65 +0,0 @@ -.\" zip_fread.mdoc -- read from file -.\" Copyright (C) 2003-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd September 12, 2016 -.Dt ZIP_FREAD 3 -.Os -.Sh NAME -.Nm zip_fread -.Nd read from file -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_int64_t -.Fn zip_fread "zip_file_t *file" "void *buf" "zip_uint64_t nbytes" -.Sh DESCRIPTION -The -.Fn zip_fread -function reads at most -.Ar nbytes -bytes from -.Ar file -into -.Ar buf . -.Sh RETURN VALUES -If successful, the number of bytes actually read is returned. -Otherwise, \-1 is returned. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_fclose 3 , -.Xr zip_fseek 3 , -.Xr zip_fopen 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_fseek.man b/libzip-1.2.0/man/zip_fseek.man deleted file mode 100644 index 503d1049a..000000000 --- a/libzip-1.2.0/man/zip_fseek.man +++ /dev/null @@ -1,44 +0,0 @@ -.TH "ZIP_FSEEK" "3" "October 1, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_fseek\fR -\- seek in file -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_int8_t\fR -.PD 0 -.HP 4n -\fBzip_fseek\fR(\fIzip_file_t\ *file\fR, \fIzip_int64_t\ offset\fR, \fIint\ whence\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_fseek\fR() -function seeks to the specified -\fIoffset\fR -relative to -\fIwhence\fR, -just like -fseek(3). -.PP -\fBzip_fseek\fR -only works on uncompressed (stored) data. -When called on compressed data it will return an error. -.SH "RETURN VALUES" -If successful, -\fBzip_fseek\fR -returns 0. -Otherwise, \-1 is returned. -.SH "SEE ALSO" -libzip(3), -zip_fclose(3), -zip_fopen(3), -zip_fread(3), -zip_ftell(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_fseek.mdoc b/libzip-1.2.0/man/zip_fseek.mdoc deleted file mode 100644 index 7bd371e88..000000000 --- a/libzip-1.2.0/man/zip_fseek.mdoc +++ /dev/null @@ -1,72 +0,0 @@ -.\" zip_fseek.mdoc -- seek in file -.\" Copyright (C) 2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd October 1, 2016 -.Dt ZIP_FSEEK 3 -.Os -.Sh NAME -.Nm zip_fseek -.Nd seek in file -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_int8_t -.Fn zip_fseek "zip_file_t *file" "zip_int64_t offset" "int whence" -.Sh DESCRIPTION -The -.Fn zip_fseek -function seeks to the specified -.Ar offset -relative to -.Ar whence , -just like -.Xr fseek 3 . -.Pp -.Nm -only works on uncompressed (stored) data. -When called on compressed data it will return an error. -.Sh RETURN VALUES -If successful, -.Nm -returns 0. -Otherwise, \-1 is returned. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_fclose 3 , -.Xr zip_fopen 3 , -.Xr zip_fread 3 , -.Xr zip_ftell 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_ftell.man b/libzip-1.2.0/man/zip_ftell.man deleted file mode 100644 index e48bc1bf6..000000000 --- a/libzip-1.2.0/man/zip_ftell.man +++ /dev/null @@ -1,39 +0,0 @@ -.TH "ZIP_FTELL" "3" "October 1, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_ftell\fR -\- tell position in file -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_int64_t\fR -.PD 0 -.HP 4n -\fBzip_ftell\fR(\fIzip_file_t\ *file\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_ftell\fR() -function reports the current offset in the file. -.PP -\fBzip_ftell\fR -only works on uncompressed (stored) data. -When called on compressed data it will return an error. -.SH "RETURN VALUES" -If successful, -\fBzip_ftell\fR -returns the current file position. -Otherwise, \-1 is returned. -.SH "SEE ALSO" -libzip(3), -zip_fclose(3), -zip_fopen(3), -zip_fread(3), -zip_fseek(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_ftell.mdoc b/libzip-1.2.0/man/zip_ftell.mdoc deleted file mode 100644 index 6aeeabf11..000000000 --- a/libzip-1.2.0/man/zip_ftell.mdoc +++ /dev/null @@ -1,67 +0,0 @@ -.\" zip_ftell.mdoc -- tell position in file -.\" Copyright (C) 2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd October 1, 2016 -.Dt ZIP_FTELL 3 -.Os -.Sh NAME -.Nm zip_ftell -.Nd tell position in file -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_int64_t -.Fn zip_ftell "zip_file_t *file" -.Sh DESCRIPTION -The -.Fn zip_ftell -function reports the current offset in the file. -.Pp -.Nm -only works on uncompressed (stored) data. -When called on compressed data it will return an error. -.Sh RETURN VALUES -If successful, -.Nm -returns the current file position. -Otherwise, \-1 is returned. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_fclose 3 , -.Xr zip_fopen 3 , -.Xr zip_fread 3 , -.Xr zip_fseek 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_get_archive_comment.man b/libzip-1.2.0/man/zip_get_archive_comment.man deleted file mode 100644 index d2decf7f1..000000000 --- a/libzip-1.2.0/man/zip_get_archive_comment.man +++ /dev/null @@ -1,72 +0,0 @@ -.TH "ZIP_GET_ARCHIVE_COMMENT" "3" "February 20, 2013" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_get_archive_comment\fR -\- get zip archive comment -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIconst char *\fR -.PD 0 -.HP 4n -\fBzip_get_archive_comment\fR(\fIzip_t\ *archive\fR, \fIint\ *lenp\fR, \fIzip_flags_t\ flags\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_get_archive_comment\fR() -function returns the comment for the entire zip archive. -The name is in UTF-8 encoding unless -\fRZIP_FL_ENC_RAW\fR -was specified (see below). -This pointer should not be modified or -free(3)'d, -and becomes invalid when -\fIarchive\fR -is closed. -If -\fIlenp\fR -is not -\fRNULL\fR, -the integer to which it points will be set to the length of the -comment. -If -\fIflags\fR -is set to -\fRZIP_FL_UNCHANGED\fR, -the original unchanged comment is returned. -.PP -Additionally, the following -\fIflags\fR -are supported: -.RS 6n -.TP 21n -\fRZIP_FL_ENC_RAW\fR -Return the unmodified archive comment as it is in the ZIP archive. -.TP 21n -\fRZIP_FL_ENC_GUESS\fR -(Default.) -Guess the encoding of the archive comment in the ZIP archive and convert it -to UTF-8, if necessary. -.TP 21n -\fRZIP_FL_ENC_STRICT\fR -Follow the ZIP specification for file names and extend it to the -archive comment, thus also expecting it in CP-437 encoding. -Convert it to UTF-8. -.RE -\fINote\fR: -ASCII is a subset of both CP-437 and UTF-8. -.SH "RETURN VALUES" -Upon successful completion, a pointer to the comment is returned, -or -\fRNULL\fR -if there is no comment. -.SH "SEE ALSO" -libzip(3), -zip_get_file_comment(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_get_archive_comment.mdoc b/libzip-1.2.0/man/zip_get_archive_comment.mdoc deleted file mode 100644 index 9050fb726..000000000 --- a/libzip-1.2.0/man/zip_get_archive_comment.mdoc +++ /dev/null @@ -1,102 +0,0 @@ -.\" zip_get_archive_comment.mdoc -- get zip archive comment -.\" Copyright (C) 2006-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd February 20, 2013 -.Dt ZIP_GET_ARCHIVE_COMMENT 3 -.Os -.Sh NAME -.Nm zip_get_archive_comment -.Nd get zip archive comment -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft const char * -.Fn zip_get_archive_comment "zip_t *archive" "int *lenp" "zip_flags_t flags" -.Sh DESCRIPTION -The -.Fn zip_get_archive_comment -function returns the comment for the entire zip archive. -The name is in UTF-8 encoding unless -.Dv ZIP_FL_ENC_RAW -was specified (see below). -This pointer should not be modified or -.Xr free 3 Ap d , -and becomes invalid when -.Ar archive -is closed. -If -.Ar lenp -is not -.Dv NULL , -the integer to which it points will be set to the length of the -comment. -If -.Ar flags -is set to -.Dv ZIP_FL_UNCHANGED , -the original unchanged comment is returned. -.Pp -Additionally, the following -.Ar flags -are supported: -.Bl -tag -width ZIP_FL_ENC_STRICTXX -offset indent -.It Dv ZIP_FL_ENC_RAW -Return the unmodified archive comment as it is in the ZIP archive. -.It Dv ZIP_FL_ENC_GUESS -(Default.) -Guess the encoding of the archive comment in the ZIP archive and convert it -to UTF-8, if necessary. -.It Dv ZIP_FL_ENC_STRICT -Follow the ZIP specification for file names and extend it to the -archive comment, thus also expecting it in CP-437 encoding. -Convert it to UTF-8. -.El -.Em Note : -ASCII is a subset of both CP-437 and UTF-8. -.Sh RETURN VALUES -Upon successful completion, a pointer to the comment is returned, -or -.Dv NULL -if there is no comment. -.\" In case of an error, -.\" .Dv NULL -.\" is returned and the error code in -.\" .Ar archive -.\" is set to indicate the error. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_get_file_comment 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_get_archive_flag.man b/libzip-1.2.0/man/zip_get_archive_flag.man deleted file mode 100644 index 61dfaa347..000000000 --- a/libzip-1.2.0/man/zip_get_archive_flag.man +++ /dev/null @@ -1,50 +0,0 @@ -.TH "ZIP_GET_ARCHIVE_FLAG" "3" "April 29, 2015" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_get_archive_flag\fR -\- get status flags for zip -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_get_archive_flag\fR(\fIzip_t\ *archive\fR, \fIzip_flags_t\ flag\fR, \fIzip_flags_t\ flags\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_get_archive_flag\fR() -function returns if the flag -\fIflag\fR -is set for the archive -\fIarchive\fR. -The archive flags might have been changed with -\fBzip_set_archive_flag\fR(); -if -\fIflags\fR -is set to -\fRZIP_FL_UNCHANGED\fR, -the original unchanged flags are tested. -.PP -Supported flags are: -.TP 20n -\fRZIP_AFL_RDONLY\fR -The archive is read-only. -.SH "RETURN VALUES" -\fBzip_get_archive_flag\fR() -returns 1 if -\fIflag\fR -is set for -\fIarchive\fR, -0 if not, -and \-1 if an error occurred. -.SH "SEE ALSO" -libzip(3), -zip_set_archive_flag(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_get_archive_flag.mdoc b/libzip-1.2.0/man/zip_get_archive_flag.mdoc deleted file mode 100644 index 01774022c..000000000 --- a/libzip-1.2.0/man/zip_get_archive_flag.mdoc +++ /dev/null @@ -1,79 +0,0 @@ -.\" zip_get_archive_flag.mdoc -- get comment for file in zip -.\" Copyright (C) 2008-2015 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP files. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd April 29, 2015 -.Dt ZIP_GET_ARCHIVE_FLAG 3 -.Os -.Sh NAME -.Nm zip_get_archive_flag -.Nd get status flags for zip -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_get_archive_flag "zip_t *archive" "zip_flags_t flag" "zip_flags_t flags" -.Sh DESCRIPTION -The -.Fn zip_get_archive_flag -function returns if the flag -.Ar flag -is set for the archive -.Ar archive . -The archive flags might have been changed with -.Fn zip_set_archive_flag ; -if -.Ar flags -is set to -.Dv ZIP_FL_UNCHANGED , -the original unchanged flags are tested. -.Pp -Supported flags are: -.Bl -tag -width XZIPXAFLXRDONLYXXX -.It Dv ZIP_AFL_RDONLY -The archive is read-only. -.El -.Sh RETURN VALUES -.Fn zip_get_archive_flag -returns 1 if -.Ar flag -is set for -.Ar archive , -0 if not, -and \-1 if an error occurred. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_set_archive_flag 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_get_error.man b/libzip-1.2.0/man/zip_get_error.man deleted file mode 100644 index ac315f1ec..000000000 --- a/libzip-1.2.0/man/zip_get_error.man +++ /dev/null @@ -1,29 +0,0 @@ -.TH "ZIP_GET_ERROR" "3" "October 30, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_get_error\fR -\- get zip error for archive -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_error_t *\fR -.PD 0 -.HP 4n -\fBzip_get_error\fR(\fIzip_t\ *archive\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_get_error\fR() -function returns the zip error for the zip archive -\fIarchive\fR. -.SH "SEE ALSO" -libzip(3), -zip_error_code_system(3), -zip_error_code_zip(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_get_error.mdoc b/libzip-1.2.0/man/zip_get_error.mdoc deleted file mode 100644 index 6dd56e395..000000000 --- a/libzip-1.2.0/man/zip_get_error.mdoc +++ /dev/null @@ -1,57 +0,0 @@ -.\" zip_get_error.mdoc -- get zip_error for archive -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd October 30, 2014 -.Dt ZIP_GET_ERROR 3 -.Os -.Sh NAME -.Nm zip_get_error -.Nd get zip error for archive -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_error_t * -.Fn zip_get_error "zip_t *archive" -.Sh DESCRIPTION -The -.Fn zip_get_error -function returns the zip error for the zip archive -.Ar archive . -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_error_code_system 3 , -.Xr zip_error_code_zip 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_get_file_comment.man b/libzip-1.2.0/man/zip_get_file_comment.man deleted file mode 100644 index 70f7a575f..000000000 --- a/libzip-1.2.0/man/zip_get_file_comment.man +++ /dev/null @@ -1,33 +0,0 @@ -.TH "ZIP_GET_FILE_COMMENT" "3" "June 23, 2012" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_get_file_comment\fR -\- get comment for file in zip -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIconst char *\fR -.PD 0 -.HP 4n -\fBzip_get_file_comment\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIint\ *lenp\fR, \fIint\ flags\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_get_file_comment\fR() -function is the obsolete version of -zip_file_get_comment(3). -The only differences are the types of the -\fIlenp\fR -and -\fIflags\fR -arguments. -.SH "SEE ALSO" -libzip(3), -zip_file_get_comment(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_get_file_comment.mdoc b/libzip-1.2.0/man/zip_get_file_comment.mdoc deleted file mode 100644 index 51fef9a16..000000000 --- a/libzip-1.2.0/man/zip_get_file_comment.mdoc +++ /dev/null @@ -1,61 +0,0 @@ -.\" zip_get_file_comment.mdoc -- get comment for file in zip -.\" Copyright (C) 2006-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP files. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd June 23, 2012 -.Dt ZIP_GET_FILE_COMMENT 3 -.Os -.Sh NAME -.Nm zip_get_file_comment -.Nd get comment for file in zip -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft const char * -.Fn zip_get_file_comment "zip_t *archive" "zip_uint64_t index" "int *lenp" "int flags" -.Sh DESCRIPTION -The -.Fn zip_get_file_comment -function is the obsolete version of -.Xr zip_file_get_comment 3 . -The only differences are the types of the -.Ar lenp -and -.Ar flags -arguments. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_file_get_comment 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_get_name.man b/libzip-1.2.0/man/zip_get_name.man deleted file mode 100644 index 8f9f99646..000000000 --- a/libzip-1.2.0/man/zip_get_name.man +++ /dev/null @@ -1,92 +0,0 @@ -.TH "ZIP_GET_NAME" "3" "February 20, 2013" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_get_name\fR -\- get name of file by index -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIconst char *\fR -.PD 0 -.HP 4n -\fBzip_get_name\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_flags_t\ flags\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_get_name\fR() -function returns the name of the file at position -\fIindex\fR -in -\fIarchive\fR. -The name is in UTF-8 encoding unless -\fRZIP_FL_ENC_RAW\fR -was specified (see below). -.PP -If -\fIflags\fR -is set to -\fRZIP_FL_UNCHANGED\fR, -the original unchanged filename is returned. -The returned string must not be modified or freed, and becomes invalid when -\fIarchive\fR -is closed. -.PP -Additionally, the following -\fIflags\fR -are supported: -.RS 6n -.TP 21n -\fRZIP_FL_ENC_RAW\fR -Return the unmodified names as it is in the ZIP archive. -.TP 21n -\fRZIP_FL_ENC_GUESS\fR -(Default.) -Guess the encoding of the name in the ZIP archive and convert it -to UTF-8, if necessary. -.TP 21n -\fRZIP_FL_ENC_STRICT\fR -Follow the ZIP specification and expect CP-437 encoded names in -the ZIP archive (except if they are explicitly marked as UTF-8). -Convert it to UTF-8. -.RE -\fINote\fR: -ASCII is a subset of both CP-437 and UTF-8. -.SH "RETURN VALUES" -Upon successful completion, a pointer to the name is returned. -Otherwise, -\fRNULL\fR -and the error code in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_get_name\fR() -fails if: -.TP 19n -[\fRZIP_ER_DELETED\fR] -\fIindex\fR -refers to a file that has been deleted -(see -zip_delete(3)). -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIindex\fR -is not a valid file index in -\fIarchive\fR, -or -\fIindex\fR -points to an added file and -\fRZIP_FL_UNCHANGED\fR -is set. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.SH "SEE ALSO" -libzip(3), -zip_name_locate(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_get_name.mdoc b/libzip-1.2.0/man/zip_get_name.mdoc deleted file mode 100644 index 229c4e617..000000000 --- a/libzip-1.2.0/man/zip_get_name.mdoc +++ /dev/null @@ -1,116 +0,0 @@ -.\" zip_get_name.mdoc -- get name of file by index -.\" Copyright (C) 2003-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd February 20, 2013 -.Dt ZIP_GET_NAME 3 -.Os -.Sh NAME -.Nm zip_get_name -.Nd get name of file by index -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft const char * -.Fn zip_get_name "zip_t *archive" "zip_uint64_t index" "zip_flags_t flags" -.Sh DESCRIPTION -The -.Fn zip_get_name -function returns the name of the file at position -.Ar index -in -.Ar archive . -The name is in UTF-8 encoding unless -.Dv ZIP_FL_ENC_RAW -was specified (see below). -.Pp -If -.Ar flags -is set to -.Dv ZIP_FL_UNCHANGED , -the original unchanged filename is returned. -The returned string must not be modified or freed, and becomes invalid when -.Ar archive -is closed. -.Pp -Additionally, the following -.Ar flags -are supported: -.Bl -tag -width ZIP_FL_ENC_STRICTXX -offset indent -.It Dv ZIP_FL_ENC_RAW -Return the unmodified names as it is in the ZIP archive. -.It Dv ZIP_FL_ENC_GUESS -(Default.) -Guess the encoding of the name in the ZIP archive and convert it -to UTF-8, if necessary. -.It Dv ZIP_FL_ENC_STRICT -Follow the ZIP specification and expect CP-437 encoded names in -the ZIP archive (except if they are explicitly marked as UTF-8). -Convert it to UTF-8. -.El -.Em Note : -ASCII is a subset of both CP-437 and UTF-8. -.Sh RETURN VALUES -Upon successful completion, a pointer to the name is returned. -Otherwise, -.Dv NULL -and the error code in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Fn zip_get_name -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_DELETED -.Ar index -refers to a file that has been deleted -(see -.Xr zip_delete 3 ) . -.It Bq Er ZIP_ER_INVAL -.Ar index -is not a valid file index in -.Ar archive , -or -.Ar index -points to an added file and -.Dv ZIP_FL_UNCHANGED -is set. -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_name_locate 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_get_num_entries.man b/libzip-1.2.0/man/zip_get_num_entries.man deleted file mode 100644 index 4965e981e..000000000 --- a/libzip-1.2.0/man/zip_get_num_entries.man +++ /dev/null @@ -1,41 +0,0 @@ -.TH "ZIP_GET_NUM_ENTRIES" "3" "August 1, 2012" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_get_num_entries\fR -\- get number of files in archive -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_int64_t\fR -.PD 0 -.HP 4n -\fBzip_get_num_entries\fR(\fIzip_t\ *archive\fR, \fIzip_flags_t\ flags\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_get_num_entries\fR() -function returns the number of files in -\fIarchive\fR. -If -\fIflags\fR -is set to -\fRZIP_FL_UNCHANGED\fR, -the original number of entries is returned. -.SH "RETURN VALUES" -\fBzip_get_num_entries\fR() -returns the number of files in the zip archive, -or \-1 if -\fIarchive\fR -is -\fRNULL\fR. -.SH "SEE ALSO" -libzip(3), -zip_fopen_index(3), -zip_stat_index(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_get_num_entries.mdoc b/libzip-1.2.0/man/zip_get_num_entries.mdoc deleted file mode 100644 index 45ffe9e23..000000000 --- a/libzip-1.2.0/man/zip_get_num_entries.mdoc +++ /dev/null @@ -1,69 +0,0 @@ -.\" zip_get_num_entries.mdoc -- get number of files in archive -.\" Copyright (C) 2011-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd August 1, 2012 -.Dt ZIP_GET_NUM_ENTRIES 3 -.Os -.Sh NAME -.Nm zip_get_num_entries -.Nd get number of files in archive -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_int64_t -.Fn zip_get_num_entries "zip_t *archive" "zip_flags_t flags" -.Sh DESCRIPTION -The -.Fn zip_get_num_entries -function returns the number of files in -.Ar archive . -If -.Ar flags -is set to -.Dv ZIP_FL_UNCHANGED , -the original number of entries is returned. -.Sh RETURN VALUES -.Fn zip_get_num_entries -returns the number of files in the zip archive, -or \-1 if -.Ar archive -is -.Dv NULL . -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_fopen_index 3 , -.Xr zip_stat_index 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_get_num_files.man b/libzip-1.2.0/man/zip_get_num_files.man deleted file mode 100644 index 5a688b22d..000000000 --- a/libzip-1.2.0/man/zip_get_num_files.man +++ /dev/null @@ -1,41 +0,0 @@ -.TH "ZIP_GET_NUM_FILES" "3" "February 14, 2011" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_get_num_files\fR -\- get number of files in archive -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_get_num_files\fR(\fIzip_t\ *archive\fR); -.PD -.SH "DESCRIPTION" -\fIThis function is deprecated\fR. -\fIUse\fR -zip_get_num_entries(3) -\fIinstead\fR. -.PP -The -\fBzip_get_num_files\fR() -function returns the number of files in -\fIarchive\fR. -.SH "RETURN VALUES" -\fBzip_get_num_files\fR() -returns the number of files in the zip archive, -or \-1 if -\fIarchive\fR -is -\fRNULL\fR. -.SH "SEE ALSO" -libzip(3), -zip_fopen_index(3), -zip_stat_index(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_get_num_files.mdoc b/libzip-1.2.0/man/zip_get_num_files.mdoc deleted file mode 100644 index 709e17506..000000000 --- a/libzip-1.2.0/man/zip_get_num_files.mdoc +++ /dev/null @@ -1,69 +0,0 @@ -.\" zip_get_num_files.mdoc -- get number of files in archive -.\" Copyright (C) 2003-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd February 14, 2011 -.Dt ZIP_GET_NUM_FILES 3 -.Os -.Sh NAME -.Nm zip_get_num_files -.Nd get number of files in archive -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_get_num_files "zip_t *archive" -.Sh DESCRIPTION -.Em This function is deprecated . -.Em Use -.Xr zip_get_num_entries 3 -.Em instead . -.Pp -The -.Fn zip_get_num_files -function returns the number of files in -.Ar archive . -.Sh RETURN VALUES -.Fn zip_get_num_files -returns the number of files in the zip archive, -or \-1 if -.Ar archive -is -.Dv NULL . -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_fopen_index 3 , -.Xr zip_stat_index 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_name_locate.man b/libzip-1.2.0/man/zip_name_locate.man deleted file mode 100644 index 533095644..000000000 --- a/libzip-1.2.0/man/zip_name_locate.man +++ /dev/null @@ -1,84 +0,0 @@ -.TH "ZIP_NAME_LOCATE" "3" "July 21, 2012" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_name_locate\fR -\- get index of file by name -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_int64_t\fR -.PD 0 -.HP 4n -\fBzip_name_locate\fR(\fIzip_t\ *archive\fR, \fIconst\ char\ *fname\fR, \fIzip_flags_t\ flags\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_name_locate\fR() -function returns the index of the file named -\fIfname\fR -in -\fIarchive\fR. -If -\fIarchive\fR -does not contain a file with that name, \-1 is returned. -The -\fIflags\fR -are specified by -\fIor\fR'ing -the following values, or 0 for none of them. -.RS 6n -.TP 15n -\fRZIP_FL_NOCASE\fR -Ignore case distinctions. -(Will only work well if the file names are ASCII.) -.TP 15n -\fRZIP_FL_NODIR\fR -Ignore directory part of file name in archive. -.TP 15n -\fRZIP_FL_ENC_RAW\fR -.br -Compare against the unmodified names as it is in the ZIP archive. -.TP 15n -\fRZIP_FL_ENC_GUESS\fR -(Default.) -Guess the encoding of the name in the ZIP archive and convert it -to UTF-8, if necessary, before comparing. -.TP 15n -\fRZIP_FL_ENC_STRICT\fR -Follow the ZIP specification and expect CP-437 encoded names in -the ZIP archive (except if they are explicitly marked as UTF-8). -Convert it to UTF-8 before comparing. -.RE -\fINote\fR: -ASCII is a subset of both CP-437 and UTF-8. -.SH "RETURN VALUES" -\fBzip_name_locate\fR() -returns the index of the file named -\fIfname\fR -or \-1, if -\fIarchive\fR -does not contain an entry of that name. -.SH "ERRORS" -\fBzip_name_locate\fR() -fails if: -.TP 19n -[\fRZIP_ER_NOENT\fR] -No entry of the name -\fIfname\fR -is found in the archive. -.TP 19n -[\fRZIP_ER_INVAL\fR] -One of the arguments is invalid. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.SH "SEE ALSO" -libzip(3), -zip_get_name(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_name_locate.mdoc b/libzip-1.2.0/man/zip_name_locate.mdoc deleted file mode 100644 index 4ce79ab48..000000000 --- a/libzip-1.2.0/man/zip_name_locate.mdoc +++ /dev/null @@ -1,105 +0,0 @@ -.\" zip_name_locate.mdoc -- get index of file by name -.\" Copyright (C) 2003-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd July 21, 2012 -.Dt ZIP_NAME_LOCATE 3 -.Os -.Sh NAME -.Nm zip_name_locate -.Nd get index of file by name -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_int64_t -.Fn zip_name_locate "zip_t *archive" "const char *fname" "zip_flags_t flags" -.Sh DESCRIPTION -The -.Fn zip_name_locate -function returns the index of the file named -.Ar fname -in -.Ar archive . -If -.Ar archive -does not contain a file with that name, \-1 is returned. -The -.Fa flags -are specified by -.Em or Ns No 'ing -the following values, or 0 for none of them. -.Bl -tag -offset indent -width ZIP_FL_NOCASE -.It Dv ZIP_FL_NOCASE -Ignore case distinctions. -(Will only work well if the file names are ASCII.) -.It Dv ZIP_FL_NODIR -Ignore directory part of file name in archive. -.It Dv ZIP_FL_ENC_RAW -Compare against the unmodified names as it is in the ZIP archive. -.It Dv ZIP_FL_ENC_GUESS -(Default.) -Guess the encoding of the name in the ZIP archive and convert it -to UTF-8, if necessary, before comparing. -.It Dv ZIP_FL_ENC_STRICT -Follow the ZIP specification and expect CP-437 encoded names in -the ZIP archive (except if they are explicitly marked as UTF-8). -Convert it to UTF-8 before comparing. -.El -.Em Note : -ASCII is a subset of both CP-437 and UTF-8. -.Sh RETURN VALUES -.Fn zip_name_locate -returns the index of the file named -.Ar fname -or \-1, if -.Ar archive -does not contain an entry of that name. -.Sh ERRORS -.Fn zip_name_locate -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_NOENT -No entry of the name -.Ar fname -is found in the archive. -.It Bq Er ZIP_ER_INVAL -One of the arguments is invalid. -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_get_name 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_open.man b/libzip-1.2.0/man/zip_open.man deleted file mode 100644 index 9027d07c4..000000000 --- a/libzip-1.2.0/man/zip_open.man +++ /dev/null @@ -1,153 +0,0 @@ -.TH "ZIP_OPEN" "3" "November 9, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_open\fR, -\fBzip_open_from_source\fR -\- open zip archive -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_t *\fR -.PD 0 -.HP 4n -\fBzip_open\fR(\fIconst\ char\ *path\fR, \fIint\ flags\fR, \fIint\ *errorp\fR); -.PD -.PP -\fIzip_t *\fR -.PD 0 -.HP 4n -\fBzip_open_from_source\fR(\fIzip_source_t\ *zs\fR, \fIint\ flags\fR, \fIzip_error_t\ *ze\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_open\fR() -function opens the zip archive specified by -\fIpath\fR -and returns a pointer to a -\fIstruct zip\fR, -used to manipulate the archive. -The -\fIflags\fR -are specified by -\fIor\fR'ing -the following values, or 0 for none of them. -.RS 6n -.TP 15n -\fRZIP_CHECKCONS\fR -Perform additional stricter consistency checks on the archive, and -error if they fail. -.TP 15n -\fRZIP_CREATE\fR -Create the archive if it does not exist. -.TP 15n -\fRZIP_EXCL\fR -Error if archive already exists. -.TP 15n -\fRZIP_TRUNCATE\fR -If archive exists, ignore its current contents. -In other words, handle it the same way as an empty archive. -.TP 15n -\fRZIP_RDONLY\fR -Open archive in read-only mode. -.RE -.PP -If an error occurs and -\fIerrorp\fR -is -non-\fRNULL\fR, -it will be set to the corresponding error code. -.PP -The -\fBzip_open_from_source\fR() -function opens a zip archive encapsulated by the zip_source -\fIzs\fR -using the provided -\fIflags\fR. -In case of error, the zip_error -\fIze\fR -is filled in. -.SH "RETURN VALUES" -Upon successful completion -\fBzip_open\fR() -and -\fBzip_open_from_source\fR() -return a -\fIstruct zip\fR -pointer. -Otherwise, -\fRNULL\fR -is returned and -\fBzip_open\fR() -sets -\fI*errorp\fR -to indicate the error, while -\fBzip_open_from\fR(\fIsource\fR) -sets -\fIze\fR -to indicate the error. -.SH "ERRORS" -The archive specified by -\fIpath\fR -is opened unless: -.TP 19n -[\fRZIP_ER_EXISTS\fR] -The file specified by -\fIpath\fR -exists and -\fRZIP_EXCL\fR -is set. -.TP 19n -[\fRZIP_ER_INCONS\fR] -Inconsistencies were found in the file specified by -\fIpath\fR. -This error is often caused by specifying -\fRZIP_CHECKCONS\fR -but can also happen without it. -.TP 19n -[\fRZIP_ER_INVAL\fR] -The -\fIpath\fR -argument is -\fRNULL\fR. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.TP 19n -[\fRZIP_ER_NOENT\fR] -The file specified by -\fIpath\fR -does not exist and -\fRZIP_CREATE\fR -is not set. -.TP 19n -[\fRZIP_ER_NOZIP\fR] -The file specified by -\fIpath\fR -is not a zip archive. -.TP 19n -[\fRZIP_ER_OPEN\fR] -The file specified by -\fIpath\fR -could not be opened. -.TP 19n -[\fRZIP_ER_READ\fR] -A read error occurred; see -\fIerrno\fR -for details. -.TP 19n -[\fRZIP_ER_SEEK\fR] -The file specified by -\fIpath\fR -does not allow seeks. -.SH "SEE ALSO" -libzip(3), -zip_close(3), -zip_error_to_str(3), -zip_fdopen(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_open.mdoc b/libzip-1.2.0/man/zip_open.mdoc deleted file mode 100644 index c7df3557c..000000000 --- a/libzip-1.2.0/man/zip_open.mdoc +++ /dev/null @@ -1,165 +0,0 @@ -.\" zip_open.mdoc -- open zip archive -.\" Copyright (C) 2003-2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd November 9, 2014 -.Dt ZIP_OPEN 3 -.Os -.Sh NAME -.Nm zip_open , -.Nm zip_open_from_source -.Nd open zip archive -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_t * -.Fn zip_open "const char *path" "int flags" "int *errorp" -.Ft zip_t * -.Fn zip_open_from_source "zip_source_t *zs" "int flags" "zip_error_t *ze" -.Sh DESCRIPTION -The -.Fn zip_open -function opens the zip archive specified by -.Ar path -and returns a pointer to a -.Ft struct zip , -used to manipulate the archive. -The -.Fa flags -are specified by -.Em or Ns No 'ing -the following values, or 0 for none of them. -.Bl -tag -offset indent -width ZIP_CHECKCONS -.It Dv ZIP_CHECKCONS -Perform additional stricter consistency checks on the archive, and -error if they fail. -.It Dv ZIP_CREATE -Create the archive if it does not exist. -.It Dv ZIP_EXCL -Error if archive already exists. -.It Dv ZIP_TRUNCATE -If archive exists, ignore its current contents. -In other words, handle it the same way as an empty archive. -.It Dv ZIP_RDONLY -Open archive in read-only mode. -.El -.Pp -If an error occurs and -.Ar errorp -is -.Pf non- Dv NULL , -it will be set to the corresponding error code. -.Pp -The -.Fn zip_open_from_source -function opens a zip archive encapsulated by the zip_source -.Fa zs -using the provided -.Fa flags . -In case of error, the zip_error -.Fa ze -is filled in. -.Sh RETURN VALUES -Upon successful completion -.Fn zip_open -and -.Fn zip_open_from_source -return a -.Ft struct zip -pointer. -Otherwise, -.Dv NULL -is returned and -.Fn zip_open -sets -.Ar *errorp -to indicate the error, while -.Fn zip_open_from source -sets -.Ar ze -to indicate the error. -.Sh ERRORS -The archive specified by -.Ar path -is opened unless: -.Bl -tag -width Er -.It Bq Er ZIP_ER_EXISTS -The file specified by -.Ar path -exists and -.Dv ZIP_EXCL -is set. -.It Bq Er ZIP_ER_INCONS -Inconsistencies were found in the file specified by -.Ar path . -This error is often caused by specifying -.Dv ZIP_CHECKCONS -but can also happen without it. -.It Bq Er ZIP_ER_INVAL -The -.Ar path -argument is -.Dv NULL . -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.It Bq Er ZIP_ER_NOENT -The file specified by -.Ar path -does not exist and -.Dv ZIP_CREATE -is not set. -.It Bq Er ZIP_ER_NOZIP -The file specified by -.Ar path -is not a zip archive. -.It Bq Er ZIP_ER_OPEN -The file specified by -.Ar path -could not be opened. -.It Bq Er ZIP_ER_READ -A read error occurred; see -.Va errno -for details. -.It Bq Er ZIP_ER_SEEK -The file specified by -.Ar path -does not allow seeks. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_close 3 , -.Xr zip_error_to_str 3 , -.Xr zip_fdopen 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_register_progress_callback.man b/libzip-1.2.0/man/zip_register_progress_callback.man deleted file mode 100644 index 219180d20..000000000 --- a/libzip-1.2.0/man/zip_register_progress_callback.man +++ /dev/null @@ -1,39 +0,0 @@ -.TH "ZIP_REGISTER_PROGRESS_CALLBACK" "3" "December 18, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_register_progress_callback\fR -\- provide updates during zip_close -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fItypedef void (*zip_progress_callback_t)(double);\fR -.sp -\fIvoid\fR -.PD 0 -.HP 4n -\fBzip_register_progress_callback\fR(\fIzip_t\ *archive\fR, \fIzip_progress_callback_t\ progress_callback\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_register_progress_callback\fR() -function registers a callback function -\fIprogress_callback\fR -for the zip archive -\fIarchive\fR. -This function is called during -zip_close(3) -after every zip archive entry that's completely written to disk. -The value is a -\fIdouble\fR -in the range from 0.0 to 1.0. -This can be used to provide progress indicators for user interfaces. -.SH "SEE ALSO" -libzip(3), -zip_close(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_register_progress_callback.mdoc b/libzip-1.2.0/man/zip_register_progress_callback.mdoc deleted file mode 100644 index 25da98866..000000000 --- a/libzip-1.2.0/man/zip_register_progress_callback.mdoc +++ /dev/null @@ -1,66 +0,0 @@ -.\" zip_register_progress_callback.mdoc -- provide updates during zip_close -.\" Copyright (C) 2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 18, 2016 -.Dt ZIP_REGISTER_PROGRESS_CALLBACK 3 -.Os -.Sh NAME -.Nm zip_register_progress_callback -.Nd provide updates during zip_close -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Vt typedef void (*zip_progress_callback_t)(double); -.Ft void -.Fn zip_register_progress_callback "zip_t *archive" "zip_progress_callback_t progress_callback" -.Sh DESCRIPTION -The -.Fn zip_register_progress_callback -function registers a callback function -.Ar progress_callback -for the zip archive -.Ar archive . -This function is called during -.Xr zip_close 3 -after every zip archive entry that's completely written to disk. -The value is a -.Vt double -in the range from 0.0 to 1.0. -This can be used to provide progress indicators for user interfaces. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_close 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_rename.man b/libzip-1.2.0/man/zip_rename.man deleted file mode 100644 index 43b0bd55f..000000000 --- a/libzip-1.2.0/man/zip_rename.man +++ /dev/null @@ -1,30 +0,0 @@ -.TH "ZIP_RENAME" "3" "June 23, 2012" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_rename\fR -\- rename file in zip archive -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_rename\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIconst\ char\ *name\fR); -.PD -.SH "DESCRIPTION" -\fBzip_rename\fR() -is the obsolete version of -zip_file_rename(3). -It is the same as calling -zip_file_rename(3) -with an empty flags argument. -.SH "SEE ALSO" -libzip(3), -zip_file_rename(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_rename.mdoc b/libzip-1.2.0/man/zip_rename.mdoc deleted file mode 100644 index d50cc7061..000000000 --- a/libzip-1.2.0/man/zip_rename.mdoc +++ /dev/null @@ -1,58 +0,0 @@ -.\" zip_rename.mdoc -- rename file in zip archive -.\" Copyright (C) 2003-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd June 23, 2012 -.Dt ZIP_RENAME 3 -.Os -.Sh NAME -.Nm zip_rename -.Nd rename file in zip archive -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_rename "zip_t *archive" "zip_uint64_t index" "const char *name" -.Sh DESCRIPTION -.Fn zip_rename -is the obsolete version of -.Xr zip_file_rename 3 . -It is the same as calling -.Xr zip_file_rename 3 -with an empty flags argument. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_file_rename 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_set_archive_comment.man b/libzip-1.2.0/man/zip_set_archive_comment.man deleted file mode 100644 index a0998bd6c..000000000 --- a/libzip-1.2.0/man/zip_set_archive_comment.man +++ /dev/null @@ -1,56 +0,0 @@ -.TH "ZIP_SET_ARCHIVE_COMMENT" "3" "July 22, 2012" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_set_archive_comment\fR -\- set zip archive comment -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_set_archive_comment\fR(\fIzip_t\ *archive\fR, \fIconst\ char\ *comment\fR, \fIzip_uint16_t\ len\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_set_archive_comment\fR() -function sets the comment for the entire zip archive. -If -\fIcomment\fR -is -\fRNULL\fR -and -\fIlen\fR -is 0, the archive comment will be removed. -\fIcomment\fR -must be encoded in ASCII or UTF-8. -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_set_archive_comment\fR() -fails if: -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIlen\fR -is less than 0 or longer than the maximum comment length in a zip file -(65535), or -\fIcomment\fR -is not a valid UTF-8 encoded string. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.SH "SEE ALSO" -libzip(3), -zip_get_archive_comment(3), -zip_get_file_comment(3), -zip_set_file_comment(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_set_archive_comment.mdoc b/libzip-1.2.0/man/zip_set_archive_comment.mdoc deleted file mode 100644 index fc4f6da74..000000000 --- a/libzip-1.2.0/man/zip_set_archive_comment.mdoc +++ /dev/null @@ -1,84 +0,0 @@ -.\" zip_set_archive_comment.mdoc -- set zip archive comment -.\" Copyright (C) 2006-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd July 22, 2012 -.Dt ZIP_SET_ARCHIVE_COMMENT 3 -.Os -.Sh NAME -.Nm zip_set_archive_comment -.Nd set zip archive comment -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_set_archive_comment "zip_t *archive" "const char *comment" "zip_uint16_t len" -.Sh DESCRIPTION -The -.Fn zip_set_archive_comment -function sets the comment for the entire zip archive. -If -.Ar comment -is -.Dv NULL -and -.Ar len -is 0, the archive comment will be removed. -.Ar comment -must be encoded in ASCII or UTF-8. -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Fn zip_set_archive_comment -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_INVAL -.Ar len -is less than 0 or longer than the maximum comment length in a zip file -(65535), or -.Ar comment -is not a valid UTF-8 encoded string. -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_get_archive_comment 3 , -.Xr zip_get_file_comment 3 , -.Xr zip_set_file_comment 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_set_archive_flag.man b/libzip-1.2.0/man/zip_set_archive_flag.man deleted file mode 100644 index adfb95b77..000000000 --- a/libzip-1.2.0/man/zip_set_archive_flag.man +++ /dev/null @@ -1,37 +0,0 @@ -.TH "ZIP_SET_ARCHIVE_FLAG" "3" "April 29, 2015" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_set_archive_flag\fR -\- set zip archive flag -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_set_archive_flag\fR(\fIzip_t\ *archive\fR, \fIzip_flags_t\ flag\fR, \fIint\ value\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_set_archive_flag\fR() -function sets the flag -\fIflag\fR -for the archive -\fIarchive\fR -to the value -\fIvalue\fR. -.PP -Currently there are no supported flags. -.SH "RETURN VALUES" -Upon successful completion 0 is returned, and \-1 if an error -occurred. -.SH "SEE ALSO" -libzip(3), -zip_get_archive_flag(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_set_archive_flag.mdoc b/libzip-1.2.0/man/zip_set_archive_flag.mdoc deleted file mode 100644 index 20c0cee77..000000000 --- a/libzip-1.2.0/man/zip_set_archive_flag.mdoc +++ /dev/null @@ -1,65 +0,0 @@ -.\" zip_set_archive_flag.mdoc -- set zip archive flag -.\" Copyright (C) 2008-2015 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd April 29, 2015 -.Dt ZIP_SET_ARCHIVE_FLAG 3 -.Os -.Sh NAME -.Nm zip_set_archive_flag -.Nd set zip archive flag -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_set_archive_flag "zip_t *archive" "zip_flags_t flag" "int value" -.Sh DESCRIPTION -The -.Fn zip_set_archive_flag -function sets the flag -.Ar flag -for the archive -.Ar archive -to the value -.Ar value . -.Pp -Currently there are no supported flags. -.Sh RETURN VALUES -Upon successful completion 0 is returned, and \-1 if an error -occurred. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_get_archive_flag 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_set_default_password.man b/libzip-1.2.0/man/zip_set_default_password.man deleted file mode 100644 index 2219e7176..000000000 --- a/libzip-1.2.0/man/zip_set_default_password.man +++ /dev/null @@ -1,51 +0,0 @@ -.TH "ZIP_SET_DEFAULT_PASSWORD" "3" "January 3, 2011" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_set_default_password\fR -\- set default password for encrypted files in zip -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_set_default_password\fR(\fIzip_t\ *archive\fR, \fIconst\ char\ *password\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_set_default_password\fR() -function sets the default password used when accessing encrypted files. -If -\fIpassword\fR -is -\fRNULL\fR, -the default password is unset. -.PP -If you prefer a different password for single files, use -zip_fopen_encrypted(3) -instead of -zip_fopen(3). -Usually, however, the same password is used for every file in an -zip archive. -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_set_default_password\fR() -fails if: -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.SH "SEE ALSO" -libzip(3), -zip_fopen(3), -zip_fopen_encrypted(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_set_default_password.mdoc b/libzip-1.2.0/man/zip_set_default_password.mdoc deleted file mode 100644 index c6c6b6711..000000000 --- a/libzip-1.2.0/man/zip_set_default_password.mdoc +++ /dev/null @@ -1,80 +0,0 @@ -.\" zip_set_default_password.mdoc -- set default password for zip -.\" Copyright (C) 2011-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP files. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd January 3, 2011 -.Dt ZIP_SET_DEFAULT_PASSWORD 3 -.Os -.Sh NAME -.Nm zip_set_default_password -.Nd set default password for encrypted files in zip -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_set_default_password "zip_t *archive" "const char *password" -.Sh DESCRIPTION -The -.Fn zip_set_default_password -function sets the default password used when accessing encrypted files. -If -.Ar password -is -.Dv NULL , -the default password is unset. -.Pp -If you prefer a different password for single files, use -.Xr zip_fopen_encrypted 3 -instead of -.Xr zip_fopen 3 . -Usually, however, the same password is used for every file in an -zip archive. -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Fn zip_set_default_password -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_fopen 3 , -.Xr zip_fopen_encrypted 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_set_file_comment.man b/libzip-1.2.0/man/zip_set_file_comment.man deleted file mode 100644 index 5a22dc4c7..000000000 --- a/libzip-1.2.0/man/zip_set_file_comment.man +++ /dev/null @@ -1,39 +0,0 @@ -.TH "ZIP_SET_FILE_COMMENT" "3" "June 23, 2012" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_set_file_comment\fR -\- set comment for file in zip -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_set_file_comment\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIconst\ char\ *comment\fR, \fIint\ len\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_set_file_comment\fR() -function is the obsolete version of -zip_file_set_comment(3). -The only differences are the type of the -\fIlen\fR -argument and the additional -\fIflags\fR -argument. -\fBzip_set_file_comment\fR() -is the same as calling -zip_file_set_comment(3) -with an empty -\fIflags\fR -argument. -.SH "SEE ALSO" -libzip(3), -zip_file_set_comment(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_set_file_comment.mdoc b/libzip-1.2.0/man/zip_set_file_comment.mdoc deleted file mode 100644 index d8c83c36f..000000000 --- a/libzip-1.2.0/man/zip_set_file_comment.mdoc +++ /dev/null @@ -1,67 +0,0 @@ -.\" zip_set_file_comment.mdoc -- set comment for file in zip -.\" Copyright (C) 2006-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP files. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd June 23, 2012 -.Dt ZIP_SET_FILE_COMMENT 3 -.Os -.Sh NAME -.Nm zip_set_file_comment -.Nd set comment for file in zip -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_set_file_comment "zip_t *archive" "zip_uint64_t index" "const char *comment" "int len" -.Sh DESCRIPTION -The -.Fn zip_set_file_comment -function is the obsolete version of -.Xr zip_file_set_comment 3 . -The only differences are the type of the -.Ar len -argument and the additional -.Ar flags -argument. -.Fn zip_set_file_comment -is the same as calling -.Xr zip_file_set_comment 3 -with an empty -.Ar flags -argument. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_file_set_comment 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_set_file_compression.man b/libzip-1.2.0/man/zip_set_file_compression.man deleted file mode 100644 index fd870f343..000000000 --- a/libzip-1.2.0/man/zip_set_file_compression.man +++ /dev/null @@ -1,79 +0,0 @@ -.TH "ZIP_SET_FILE_COMPRESSION" "3" "May 1, 2012" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_set_file_compression\fR -\- set compression method for file in zip -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_set_file_compression\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_int32_t\ comp\fR, \fIzip_uint32_t\ comp_flags\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_set_file_compression\fR() -function sets the compression method for the file at position -\fIindex\fR -in the zip archive to -\fIcomp\fR -with the compression method specific -\fIcomp_flags\fR. -The -\fIcomp\fR -is the same as returned by -zip_stat(3). -For the -\fIcomp\fR -argument, currently only the following values are supported: -.TP 19n -\fRZIP_CM_DEFAULT\fR -default compression; currently the same as -\fRZIP_CM_DEFLATE\fR. -.TP 19n -\fRZIP_CM_STORE\fR -Store the file uncompressed. -.TP 19n -\fRZIP_CM_DEFLATE\fR -Deflate the file with the -zlib(3) -algorithm and default options -.PP -The -\fIcomp_flags\fR -argument is currently ignored. -.PP -The current compression method for a file in a zip archive can be -determined using -zip_stat(3). -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_set_file_compression\fR() -fails if: -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIindex\fR -is not a valid file index in -\fIarchive\fR, -or the argument combination is invalid. -.TP 19n -[\fRZIP_ER_COMPNOTSUPP\fR] -Unsupported compression method requested. -.TP 19n -[\fRZIP_ER_RDONLY\fR] -Read-only zip file, no changes allowed. -.SH "SEE ALSO" -libzip(3), -zip_stat(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_set_file_compression.mdoc b/libzip-1.2.0/man/zip_set_file_compression.mdoc deleted file mode 100644 index 7924aeb1a..000000000 --- a/libzip-1.2.0/man/zip_set_file_compression.mdoc +++ /dev/null @@ -1,111 +0,0 @@ -.\" zip_set_file_compression.mdoc -- set compression method and its flags -.\" Copyright (C) 2012-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP files. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd May 1, 2012 -.Dt ZIP_SET_FILE_COMPRESSION 3 -.Os -.Sh NAME -.Nm zip_set_file_compression -.Nd set compression method for file in zip -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_set_file_compression "zip_t *archive" "zip_uint64_t index" "zip_int32_t comp" "zip_uint32_t comp_flags" -.Sh DESCRIPTION -The -.Fn zip_set_file_compression -function sets the compression method for the file at position -.Ar index -in the zip archive to -.Ar comp -with the compression method specific -.Ar comp_flags . -The -.Ar comp -is the same as returned by -.Xr zip_stat 3 . -For the -.Ar comp -argument, currently only the following values are supported: -.Bl -tag -width ZIP_CM_DEFLATE_XX -.It Dv ZIP_CM_DEFAULT -default compression; currently the same as -.Dv ZIP_CM_DEFLATE . -.It Dv ZIP_CM_STORE -Store the file uncompressed. -.It Dv ZIP_CM_DEFLATE -Deflate the file with the -.Xr zlib 3 -algorithm and default options -.El -.Pp -The -.Ar comp_flags -argument is currently ignored. -.\" For the comp_flags argument, the lower 4 bits define the compression -.\" level. -.\" 0 is fastest compression, 15 is highest compression -.\" .Dv ZIP_COMP_FL_DEFAULT -.\" can be used to specify that the default shall be used. -.\" Further compression method specific flags will be added over time. -.Pp -The current compression method for a file in a zip archive can be -determined using -.Xr zip_stat 3 . -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Fn zip_set_file_compression -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_INVAL -.Ar index -is not a valid file index in -.Ar archive , -or the argument combination is invalid. -.It Bq Er ZIP_ER_COMPNOTSUPP -Unsupported compression method requested. -.It Bq Er ZIP_ER_RDONLY -Read-only zip file, no changes allowed. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_stat 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source.man b/libzip-1.2.0/man/zip_source.man deleted file mode 100644 index c3e0406f3..000000000 --- a/libzip-1.2.0/man/zip_source.man +++ /dev/null @@ -1,57 +0,0 @@ -.TH "ZIP_SOURCE" "3" "October 24, 2015" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source\fR -\- zip data source structure -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_source_t *zs\fR; -.SH "DESCRIPTION" -A -\fIstruct zip_source\fR -is a data source used by -libzip(3) -for adding or replacing file contents for a file in a zip archive. -If the source supports seeking, it can also be used to open zip archives from. -It is created by calling one of -zip_source_buffer(3), -zip_source_buffer_create(3), -zip_source_file(3), -zip_source_file_create(3), -zip_source_filep(3), -zip_source_filep_create(3), -zip_source_function(3), -zip_source_function_create(3), -or -zip_source_zip(3). -\fIzip_source_t\fR -is reference counted, and created with a reference count of 1. -zip_open_from_source(3), -zip_file_add(3), -and -zip_file_replace(3) -will decrement the reference count of the -\fIzip_source_t\fR -when they are done using it, so -zip_source_free(3) -only needs to be called when these functions return an error. -Use -zip_source_keep(3) -to increase the reference count, for example if you need the source after -zip_close(3). -.SH "SEE ALSO" -libzip(3), -zip_source_buffer(3), -zip_source_file(3), -zip_source_filep(3), -zip_source_free(3), -zip_source_function(3), -zip_source_zip(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source.mdoc b/libzip-1.2.0/man/zip_source.mdoc deleted file mode 100644 index 6b3a34d2f..000000000 --- a/libzip-1.2.0/man/zip_source.mdoc +++ /dev/null @@ -1,88 +0,0 @@ -.\" zip_source.mdoc -- description of zip data source -.\" Copyright (C) 2014-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd October 24, 2015 -.Dt ZIP_SOURCE 3 -.Os -.Sh NAME -.Nm zip_source -.Nd zip data source structure -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Vt zip_source_t *zs ; -.Sh DESCRIPTION -A -.Vt struct zip_source -is a data source used by -.Xr libzip 3 -for adding or replacing file contents for a file in a zip archive. -If the source supports seeking, it can also be used to open zip archives from. -It is created by calling one of -.Xr zip_source_buffer 3 , -.Xr zip_source_buffer_create 3 , -.Xr zip_source_file 3 , -.Xr zip_source_file_create 3 , -.Xr zip_source_filep 3 , -.Xr zip_source_filep_create 3 , -.Xr zip_source_function 3 , -.Xr zip_source_function_create 3 , -or -.Xr zip_source_zip 3 . -.Vt zip_source_t -is reference counted, and created with a reference count of 1. -.Xr zip_open_from_source 3 , -.Xr zip_file_add 3 , -and -.Xr zip_file_replace 3 -will decrement the reference count of the -.Vt zip_source_t -when they are done using it, so -.Xr zip_source_free 3 -only needs to be called when these functions return an error. -Use -.Xr zip_source_keep 3 -to increase the reference count, for example if you need the source after -.Xr zip_close 3 . -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source_buffer 3 , -.Xr zip_source_file 3 , -.Xr zip_source_filep 3 , -.Xr zip_source_free 3 , -.Xr zip_source_function 3 , -.Xr zip_source_zip 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_begin_write.man b/libzip-1.2.0/man/zip_source_begin_write.man deleted file mode 100644 index 5ba499c21..000000000 --- a/libzip-1.2.0/man/zip_source_begin_write.man +++ /dev/null @@ -1,40 +0,0 @@ -.TH "ZIP_SOURCE_BEGIN_WRITE" "3" "November 18, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_begin_write\fR -\- prepare zip source for writing -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_source_begin_write\fR(\fIzip_source_t\ *source\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_source_begin_write\fR() -prepares -\fIsource\fR -for writing. -Usually this involves creating temporary files or allocating buffers. -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -\fIsource\fR -is set to indicate the error. -.SH "SEE ALSO" -libzip(3), -zip_source(3), -zip_source_commit_write(3), -zip_source_rollback_write(3), -zip_source_seek_write(3), -zip_source_tell_write(3), -zip_source_write(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_begin_write.mdoc b/libzip-1.2.0/man/zip_source_begin_write.mdoc deleted file mode 100644 index ba78e0da0..000000000 --- a/libzip-1.2.0/man/zip_source_begin_write.mdoc +++ /dev/null @@ -1,68 +0,0 @@ -.\" zip_source_begin_write.mdoc -- prepare zip source for writing -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd November 18, 2014 -.Dt ZIP_SOURCE_BEGIN_WRITE 3 -.Os -.Sh NAME -.Nm zip_source_begin_write -.Nd prepare zip source for writing -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_source_begin_write "zip_source_t *source" -.Sh DESCRIPTION -The function -.Fn zip_source_begin_write -prepares -.Fa source -for writing. -Usually this involves creating temporary files or allocating buffers. -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -.Ar source -is set to indicate the error. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source 3 , -.Xr zip_source_commit_write 3 , -.Xr zip_source_rollback_write 3 , -.Xr zip_source_seek_write 3 , -.Xr zip_source_tell_write 3 , -.Xr zip_source_write 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_buffer.man b/libzip-1.2.0/man/zip_source_buffer.man deleted file mode 100644 index 7e26c44d7..000000000 --- a/libzip-1.2.0/man/zip_source_buffer.man +++ /dev/null @@ -1,72 +0,0 @@ -.TH "ZIP_SOURCE_BUFFER" "3" "October 17, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_buffer\fR -\- create zip data source from buffer -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_source_t *\fR -.PD 0 -.HP 4n -\fBzip_source_buffer\fR(\fIzip_t\ *archive\fR, \fIconst\ void\ *data\fR, \fIzip_uint64_t\ len\fR, \fIint\ freep\fR); -.PD -.PP -\fIzip_source_t *\fR -.PD 0 -.HP 4n -\fBzip_source_buffer_create\fR(\fIconst\ void\ *data\fR, \fIzip_uint64_t\ len\fR, \fIint\ freep\fR, \fIzip_error_t\ *error\fR); -.PD -.SH "DESCRIPTION" -The functions -\fBzip_source_buffer\fR() -and -\fBzip_source_buffer_create\fR() -create a zip source from the buffer -\fIdata\fR -of size -\fIlen\fR. -If -\fIfreep\fR -is non-zero, the buffer will be freed when it is no longer needed. -\fIdata\fR -must remain valid for the lifetime of the created source. -.PP -The source can be used to open a zip archive from. -.SH "RETURN VALUES" -Upon successful completion, the created source is returned. -Otherwise, -\fRNULL\fR -is returned and the error code in -\fIarchive\fR -or -\fIerror\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_source_buffer\fR() -and -\fBzip_source_buffer_create\fR() -fail if: -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIlen\fR -is greater than zero and -\fIdata\fR -is -\fRNULL\fR. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.SH "SEE ALSO" -libzip(3), -zip_add(3), -zip_open_from_source(3), -zip_replace(3), -zip_source(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_buffer.mdoc b/libzip-1.2.0/man/zip_source_buffer.mdoc deleted file mode 100644 index cbda0ad43..000000000 --- a/libzip-1.2.0/man/zip_source_buffer.mdoc +++ /dev/null @@ -1,96 +0,0 @@ -.\" zip_source_buffer.mdoc -- create zip data source from buffer -.\" Copyright (C) 2004-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd October 17, 2014 -.Dt ZIP_SOURCE_BUFFER 3 -.Os -.Sh NAME -.Nm zip_source_buffer -.Nd create zip data source from buffer -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_source_t * -.Fn zip_source_buffer "zip_t *archive" "const void *data" "zip_uint64_t len" "int freep" -.Ft zip_source_t * -.Fn zip_source_buffer_create "const void *data" "zip_uint64_t len" "int freep" "zip_error_t *error" -.Sh DESCRIPTION -The functions -.Fn zip_source_buffer -and -.Fn zip_source_buffer_create -create a zip source from the buffer -.Ar data -of size -.Ar len . -If -.Ar freep -is non-zero, the buffer will be freed when it is no longer needed. -.Ar data -must remain valid for the lifetime of the created source. -.Pp -The source can be used to open a zip archive from. -.Sh RETURN VALUES -Upon successful completion, the created source is returned. -Otherwise, -.Dv NULL -is returned and the error code in -.Ar archive -or -.Ar error -is set to indicate the error. -.Sh ERRORS -.Fn zip_source_buffer -and -.Fn zip_source_buffer_create -fail if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_INVAL -.Ar len -is greater than zero and -.Ar data -is -.Dv NULL . -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_add 3 , -.Xr zip_open_from_source 3 , -.Xr zip_replace 3 , -.Xr zip_source 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_close.man b/libzip-1.2.0/man/zip_source_close.man deleted file mode 100644 index 8c0a87386..000000000 --- a/libzip-1.2.0/man/zip_source_close.man +++ /dev/null @@ -1,36 +0,0 @@ -.TH "ZIP_SOURCE_CLOSE" "3" "November 18, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_close\fR -\- open zip_source (which was open for reading) -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_source_close\fR(\fIzip_source_t\ *source\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_source_close\fR() -closes -\fIsource\fR, -indicating that no more data will be read. -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -\fIsource\fR -is set to indicate the error. -.SH "SEE ALSO" -libzip(3), -zip_source(3), -zip_source_free(3), -zip_source_open(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_close.mdoc b/libzip-1.2.0/man/zip_source_close.mdoc deleted file mode 100644 index 0355d3e99..000000000 --- a/libzip-1.2.0/man/zip_source_close.mdoc +++ /dev/null @@ -1,64 +0,0 @@ -.\" zip_source_close.mdoc -- close zip source (open for reading) -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd November 18, 2014 -.Dt ZIP_SOURCE_CLOSE 3 -.Os -.Sh NAME -.Nm zip_source_close -.Nd open zip_source (which was open for reading) -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_source_close "zip_source_t *source" -.Sh DESCRIPTION -The function -.Fn zip_source_close -closes -.Fa source , -indicating that no more data will be read. -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -.Ar source -is set to indicate the error. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source 3 , -.Xr zip_source_free 3 , -.Xr zip_source_open 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_commit_write.man b/libzip-1.2.0/man/zip_source_commit_write.man deleted file mode 100644 index 6bd026a58..000000000 --- a/libzip-1.2.0/man/zip_source_commit_write.man +++ /dev/null @@ -1,39 +0,0 @@ -.TH "ZIP_SOURCE_COMMIT_WRITE" "3" "November 18, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_commit_write\fR -\- finalize changes to zip source -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_source_commit_write\fR(\fIzip_source_t\ *source\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_source_commit_write\fR() -finishes writing data to -\fIsource\fR -and replaces the original with the newly written data. -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -\fIsource\fR -is set to indicate the error. -.SH "SEE ALSO" -libzip(3), -zip_source(3), -zip_source_begin_write(3), -zip_source_rollback_write(3), -zip_source_seek_write(3), -zip_source_tell_write(3), -zip_source_write(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_commit_write.mdoc b/libzip-1.2.0/man/zip_source_commit_write.mdoc deleted file mode 100644 index 0fe189a27..000000000 --- a/libzip-1.2.0/man/zip_source_commit_write.mdoc +++ /dev/null @@ -1,67 +0,0 @@ -.\" zip_source_commit_write.mdoc -- finalize changes to zip source -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd November 18, 2014 -.Dt ZIP_SOURCE_COMMIT_WRITE 3 -.Os -.Sh NAME -.Nm zip_source_commit_write -.Nd finalize changes to zip source -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_source_commit_write "zip_source_t *source" -.Sh DESCRIPTION -The function -.Fn zip_source_commit_write -finishes writing data to -.Fa source -and replaces the original with the newly written data. -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -.Ar source -is set to indicate the error. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source 3 , -.Xr zip_source_begin_write 3 , -.Xr zip_source_rollback_write 3 , -.Xr zip_source_seek_write 3 , -.Xr zip_source_tell_write 3 , -.Xr zip_source_write 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_error.man b/libzip-1.2.0/man/zip_source_error.man deleted file mode 100644 index 2860b32a2..000000000 --- a/libzip-1.2.0/man/zip_source_error.man +++ /dev/null @@ -1,29 +0,0 @@ -.TH "ZIP_SOURCE_ERROR" "3" "December 298, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_error\fR -\- get zip error for data source -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_error_t *\fR -.PD 0 -.HP 4n -\fBzip_source_error\fR(\fIzip_source_t\ *source\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_source_error\fR() -function returns the zip error for the data source -\fIsource\fR. -.SH "SEE ALSO" -libzip(3), -zip_error_code_system(3), -zip_error_code_zip(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_error.mdoc b/libzip-1.2.0/man/zip_source_error.mdoc deleted file mode 100644 index ffea10b84..000000000 --- a/libzip-1.2.0/man/zip_source_error.mdoc +++ /dev/null @@ -1,57 +0,0 @@ -.\" zip_source_error.mdoc -- get zip_error for data source -.\" Copyright (C) 2014-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 298, 2016 -.Dt ZIP_SOURCE_ERROR 3 -.Os -.Sh NAME -.Nm zip_source_error -.Nd get zip error for data source -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_error_t * -.Fn zip_source_error "zip_source_t *source" -.Sh DESCRIPTION -The -.Fn zip_source_error -function returns the zip error for the data source -.Ar source . -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_error_code_system 3 , -.Xr zip_error_code_zip 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_file.man b/libzip-1.2.0/man/zip_source_file.man deleted file mode 100644 index 8882e66a5..000000000 --- a/libzip-1.2.0/man/zip_source_file.man +++ /dev/null @@ -1,85 +0,0 @@ -.TH "ZIP_SOURCE_FILE" "3" "December 29, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_file\fR -\- create data source from a file -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_source_t *\fR -.PD 0 -.HP 4n -\fBzip_source_file\fR(\fIzip_t\ *archive\fR, \fIconst\ char\ *fname\fR, \fIzip_uint64_t\ start\fR, \fIzip_int64_t\ len\fR); -.PD -.PP -\fIzip_source_t *\fR -.PD 0 -.HP 4n -\fBzip_source_file_create\fR(\fIconst\ char\ *fname\fR, \fIzip_uint64_t\ start\fR, \fIzip_int64_t\ len\fR, \fIzip_error_t\ *error\fR); -.PD -.SH "DESCRIPTION" -The functions -\fBzip_source_file\fR() -and -\fBzip_source_file_create\fR() -create a zip source from a file. -They open -\fIfname\fR -and read -\fIlen\fR -bytes from offset -\fIstart\fR -from it. -If -\fIlen\fR -is 0 or \-1, the whole file (starting from -\fIstart\fR) -is used. -.PP -If the file supports seek, the source can be used to open a zip archive from. -.PP -The file is opened and read when the data from the source is used, usually by -\fBzip_close\fR() -or -\fBzip_open_from_source\fR(). -.SH "RETURN VALUES" -Upon successful completion, the created source is returned. -Otherwise, -\fRNULL\fR -is returned and the error code in -\fIarchive\fR -or -\fIerror\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_source_file\fR() -and -\fBzip_source_file_create\fR() -fail if: -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIfname\fR, -\fIstart\fR, -or -\fIlen\fR -are invalid. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.TP 19n -[\fRZIP_ER_OPEN\fR] -Opening -\fIfname\fR -failed. -.SH "SEE ALSO" -libzip(3), -zip_add(3), -zip_replace(3), -zip_source(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_file.mdoc b/libzip-1.2.0/man/zip_source_file.mdoc deleted file mode 100644 index 11da5d1cf..000000000 --- a/libzip-1.2.0/man/zip_source_file.mdoc +++ /dev/null @@ -1,108 +0,0 @@ -.\" zip_source_file.mdoc -- create data source from a file -.\" Copyright (C) 2004-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 29, 2016 -.Dt ZIP_SOURCE_FILE 3 -.Os -.Sh NAME -.Nm zip_source_file -.Nd create data source from a file -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_source_t * -.Fn zip_source_file "zip_t *archive" "const char *fname" "zip_uint64_t start" "zip_int64_t len" -.Ft zip_source_t * -.Fn zip_source_file_create "const char *fname" "zip_uint64_t start" "zip_int64_t len" "zip_error_t *error" -.Sh DESCRIPTION -The functions -.Fn zip_source_file -and -.Fn zip_source_file_create -create a zip source from a file. -They open -.Ar fname -and read -.Ar len -bytes from offset -.Ar start -from it. -If -.Ar len -is 0 or \-1, the whole file (starting from -.Ar start ) -is used. -.Pp -If the file supports seek, the source can be used to open a zip archive from. -.Pp -The file is opened and read when the data from the source is used, usually by -.Fn zip_close -or -.Fn zip_open_from_source . -.Sh RETURN VALUES -Upon successful completion, the created source is returned. -Otherwise, -.Dv NULL -is returned and the error code in -.Ar archive -or -.Ar error -is set to indicate the error. -.Sh ERRORS -.Fn zip_source_file -and -.Fn zip_source_file_create -fail if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_INVAL -.Ar fname , -.Ar start , -or -.Ar len -are invalid. -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.It Bq Er ZIP_ER_OPEN -Opening -.Ar fname -failed. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_add 3 , -.Xr zip_replace 3 , -.Xr zip_source 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_filep.man b/libzip-1.2.0/man/zip_source_filep.man deleted file mode 100644 index a94b4ca69..000000000 --- a/libzip-1.2.0/man/zip_source_filep.man +++ /dev/null @@ -1,77 +0,0 @@ -.TH "ZIP_SOURCE_FILEP" "3" "December 29, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_filep\fR -\- create data source from FILE * -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_source_t *\fR -.PD 0 -.HP 4n -\fBzip_source_filep\fR(\fIzip_t\ *archive\fR, \fIFILE\ *file\fR, \fIzip_uint64_t\ start\fR, \fIzip_int64_t\ len\fR); -.PD -.PP -\fIzip_source_t *\fR -.PD 0 -.HP 4n -\fBzip_source_filep_create\fR(\fIFILE\ *file\fR, \fIzip_uint64_t\ start\fR, \fIzip_int64_t\ len\fR, \fIzip_error_t\ *error\fR); -.PD -.SH "DESCRIPTION" -The functions -\fBzip_source_filep\fR() -and -\fBzip_source_filep_create\fR() -create a zip source from a file stream. -They read -\fIlen\fR -bytes from offset -\fIstart\fR -from the open file stream -\fIfile\fR. -If -\fIlen\fR -is 0 or \-1, the whole file (starting from -\fIstart\fR) -is used. -.PP -If the file stream supports seeking, the source can be used to open -a read-only zip archive from. -.PP -The file stream is closed when the source is being freed, usually -by -zip_close(3). -.SH "RETURN VALUES" -Upon successful completion, the created source is returned. -Otherwise, -\fRNULL\fR -is returned and the error code in -\fIarchive\fR -or -\fIerror\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_source_filep\fR() -fails if: -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIfile\fR, -\fIstart\fR, -or -\fIlen\fR -are invalid. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.SH "SEE ALSO" -libzip(3), -zip_add(3), -zip_replace(3), -zip_source(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_filep.mdoc b/libzip-1.2.0/man/zip_source_filep.mdoc deleted file mode 100644 index 6e4e4fbf6..000000000 --- a/libzip-1.2.0/man/zip_source_filep.mdoc +++ /dev/null @@ -1,101 +0,0 @@ -.\" zip_source_filep.mdoc -- create data source from a file stream -.\" Copyright (C) 2004-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 29, 2016 -.Dt ZIP_SOURCE_FILEP 3 -.Os -.Sh NAME -.Nm zip_source_filep -.Nd create data source from FILE * -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_source_t * -.Fn zip_source_filep "zip_t *archive" "FILE *file" "zip_uint64_t start" "zip_int64_t len" -.Ft zip_source_t * -.Fn zip_source_filep_create "FILE *file" "zip_uint64_t start" "zip_int64_t len" "zip_error_t *error" -.Sh DESCRIPTION -The functions -.Fn zip_source_filep -and -.Fn zip_source_filep_create -create a zip source from a file stream. -They read -.Ar len -bytes from offset -.Ar start -from the open file stream -.Ar file . -If -.Ar len -is 0 or \-1, the whole file (starting from -.Ar start ) -is used. -.Pp -If the file stream supports seeking, the source can be used to open -a read-only zip archive from. -.Pp -The file stream is closed when the source is being freed, usually -by -.Xr zip_close 3 . -.Sh RETURN VALUES -Upon successful completion, the created source is returned. -Otherwise, -.Dv NULL -is returned and the error code in -.Ar archive -or -.Ar error -is set to indicate the error. -.Sh ERRORS -.Fn zip_source_filep -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_INVAL -.Ar file , -.Ar start , -or -.Ar len -are invalid. -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_add 3 , -.Xr zip_replace 3 , -.Xr zip_source 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_free.man b/libzip-1.2.0/man/zip_source_free.man deleted file mode 100644 index 13541aef1..000000000 --- a/libzip-1.2.0/man/zip_source_free.man +++ /dev/null @@ -1,45 +0,0 @@ -.TH "ZIP_SOURCE_FREE" "3" "November 18, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_free\fR -\- free zip data source -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIvoid\fR -.PD 0 -.HP 4n -\fBzip_source_free\fR(\fIzip_source_t\ *source\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_source_free\fR() -decrements the reference count of -\fIsource\fR -and frees it if the reference count drops to 0. -If -\fIsource\fR -is -\fRNULL\fR, -it does nothing. -.PP -\fINOTE\fR: -This function should not be called on a -\fIsource\fR -after it was used successfully in a -zip_open_from_source(3), -zip_add(3), -or -zip_replace(3) -call. -.SH "SEE ALSO" -libzip(3), -zip_source(3), -zip_source_keep(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_free.mdoc b/libzip-1.2.0/man/zip_source_free.mdoc deleted file mode 100644 index b7ea99076..000000000 --- a/libzip-1.2.0/man/zip_source_free.mdoc +++ /dev/null @@ -1,73 +0,0 @@ -.\" zip_source_free.mdoc -- free zip data source -.\" Copyright (C) 2004-2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd November 18, 2014 -.Dt ZIP_SOURCE_FREE 3 -.Os -.Sh NAME -.Nm zip_source_free -.Nd free zip data source -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft void -.Fn zip_source_free "zip_source_t *source" -.Sh DESCRIPTION -The function -.Fn zip_source_free -decrements the reference count of -.Ar source -and frees it if the reference count drops to 0. -If -.Ar source -is -.Dv NULL , -it does nothing. -.Pp -.Em NOTE : -This function should not be called on a -.Ar source -after it was used successfully in a -.Xr zip_open_from_source 3 , -.Xr zip_add 3 , -or -.Xr zip_replace 3 -call. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source 3 , -.Xr zip_source_keep 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_function.man b/libzip-1.2.0/man/zip_source_function.man deleted file mode 100644 index 6078167ac..000000000 --- a/libzip-1.2.0/man/zip_source_function.man +++ /dev/null @@ -1,271 +0,0 @@ -.TH "ZIP_SOURCE_FUNCTION" "3" "December 16, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_function\fR -\- create data source from function -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_source_t *\fR -.PD 0 -.HP 4n -\fBzip_source_function\fR(\fIzip_t\ *archive\fR, \fIzip_source_callback\ fn\fR, \fIvoid\ *userdata\fR); -.PD -.PP -\fIzip_source_t *\fR -.PD 0 -.HP 4n -\fBzip_source_function_create\fR(\fIzip_source_callback\ fn\fR, \fIvoid\ *userdata\fR, \fIzip_error_t\ *error\fR); -.PD -.SH "DESCRIPTION" -The functions -\fBzip_source_function\fR() -and -\fBzip_source_function_create\fR() -creates a zip source from the user-provided function -\fIfn\fR, -which must be of the following type: -.PP -\fItypedef zip_int64_t\fR -\fB\fR(*\fPzip_source_callback\fR)\fP\fR(\fIvoid\ *userdata\fR, \fIvoid\ *data\fR, \fIzip_uint64_t\ len\fR, \fIzip_source_cmd_t\ cmd\fR) -.PP -\fIarchive\fR -or -\fIerror\fR -are used for reporting errors and can be -\fRNULL\fR. -.PP -When called by the library, the first argument is the -\fIuserdata\fR -argument supplied to the function. -The next two arguments are a buffer -\fIdata\fR -of size -\fIlen\fR -when data is passed in or expected to be returned, or else -\fRNULL\fR -and 0. -The last argument, -\fIcmd\fR, -specifies which action the function should perform. -.PP -Depending on the uses, there are three useful sets of commands to be supported by a -\fBzip_source_callback\fR(): -.TP 24n -read source -Providing streamed data (for file data added to archives). -Must support -\fRZIP_SOURCE_OPEN\fR, -\fRZIP_SOURCE_READ\fR, -\fRZIP_SOURCE_CLOSE\fR, -\fRZIP_SOURCE_STAT\fR, -and -\fRZIP_SOURCE_ERROR\fR. -.TP 24n -seekable read source -Same as previous, but from a source allowing reading from arbitrary -offsets (also for read-only zip archive). -Must additionally support -\fRZIP_SOURCE_SEEK\fR, -\fRZIP_SOURCE_TELL\fR, -and -\fRZIP_SOURCE_SUPPORTS\fR. -.TP 24n -read/write source -Same as previous, but additionally allowing writing (also for writable -zip archives). -Must additionally support -\fRZIP_SOURCE_BEGIN_WRITE\fR, -\fRZIP_SOURCE_COMMIT_WRITE\fR, -\fRZIP_SOURCE_ROLLBACK_WRITE\fR, -\fRZIP_SOURCE_SEEK_WRITE\fR, -\fRZIP_SOURCE_TELL_WRITE\fR, -and -\fRZIP_SOURCE_REMOVE\fR. -.SS "\fRZIP_SOURCE_BEGIN_WRITE\fR" -Prepare the source for writing. -Use this to create any temporary file(s). -.SS "\fRZIP_SOURCE_CLOSE\fR" -Reading is done. -.SS "\fRZIP_SOURCE_COMMIT_WRITE\fR" -Finish writing to the source. -Replace the original data with the newly written data. -Clean up temporary files or internal buffers. -Subsequently opening and reading from the source should return the -newly written data. -.SS "\fRZIP_SOURCE_ERROR\fR" -Get error information. -\fIdata\fR -points to an array of two ints, which should be filled with the libzip -error code and the corresponding system error code for the error that -occurred. -See -zip_errors(3) -for details on the error codes. -If the source stores error information in a zip_error_t, use -zip_error_to_data(3) -and return its return value. -Otherwise, return 2 * sizeof(int). -.SS "\fRZIP_SOURCE_FREE\fR" -Clean up and free all resources, including -\fIstate\fR. -The callback function will not be called again. -.SS "\fRZIP_SOURCE_OPEN\fR" -Prepare for reading. -.SS "\fRZIP_SOURCE_READ\fR" -Read data into the buffer -\fIdata\fR -of size -\fIlen\fR. -Return the number of bytes placed into -\fIdata\fR -on success, and zero for end-of-file. -.SS "\fRZIP_SOURCE_REMOVE\fR" -Remove the underlying file. -This is called if a zip archive is empty when closed. -.SS "\fRZIP_SOURCE_ROLLBACK_WRITE\fR" -Abort writing to the source. -Discard written data. -Clean up temporary files or internal buffers. -Subsequently opening and reading from the source should return the -original data. -.SS "\fRZIP_SOURCE_SEEK\fR" -Specify position to read next byte from, like -fseek(3). -Use -ZIP_SOURCE_GET_ARGS(3) -to decode the arguments into the following struct: -.nf -.sp -.RS 0n -struct zip_source_args_seek { - zip_int64_t offset; - int whence; -}; -.RE -.fi -.PP -If the size of the source's data is known, use -zip_source_seek_compute_offset(3) -to validate the arguments and compute the new offset. -.SS "\fRZIP_SOURCE_SEEK_WRITE\fR" -Specify position to write next byte to, like -fseek(3). -See -\fRZIP_SOURCE_SEEK\fR -for details. -.SS "\fRZIP_SOURCE_STAT\fR" -Get meta information for the input data. -\fIdata\fR -points to an allocated -\fIstruct zip_stat\fR, -which should be initialized using -zip_stat_init(3) -and then filled in. -Information only available after the source has been read (e.g. size) -can be omitted in an earlier call. -Return sizeof(struct zip_stat) on success. -\fINOTE\fR: -\fBzip_source_function\fR() -may be called with this argument even after being called with -\fRZIP_SOURCE_CLOSE\fR. -.SS "\fRZIP_SOURCE_SUPPORTS\fR" -Return bitmap specifying which commands are supported. -Use -zip_source_make_command_bitmap(3). -If this command is not implemented, the source is assumed to be a -read source without seek support. -.SS "\fRZIP_SOURCE_TELL\fR" -Return the current read offset in the source, like -ftell(3). -.SS "\fRZIP_SOURCE_TELL_WRITE\fR" -Return the current write offset in the source, like -ftell(3). -.SS "\fRZIP_SOURCE_WRITE\fR" -Write data to the source. -Return number of bytes written. -.SS "Return Values" -Commands should return \-1 on error. -\fRZIP_SOURCE_ERROR\fR -will be called to retrieve the error code. -On success, commands return 0, unless specified otherwise in the -description above. -.SS "Calling Conventions" -The library will always issue -\fRZIP_SOURCE_OPEN\fR -before issuing -\fRZIP_SOURCE_READ\fR, -\fRZIP_SOURCE_SEEK\fR, -or -\fRZIP_SOURCE_TELL\fR. -When it no longer wishes to read from this source, it will issue -\fRZIP_SOURCE_CLOSE\fR. -If the library wishes to read the data again, it will issue -\fRZIP_SOURCE_OPEN\fR -a second time. -If the function is unable to provide the data again, it should -return \-1. -.PP -\fRZIP_SOURCE_BEGIN_WRITE\fR -will be called before -\fRZIP_SOURCE_WRITE\fR, -\fRZIP_SOURCE_SEEK_WRITE\fR, -or -\fRZIP_SOURCE_TELL_WRITE\fR. -When writing is complete, either -\fRZIP_SOURCE_COMMIT_WRITE\fR -or -\fRZIP_SOURCE_ROLLBACK_WRITE\fR -will be called. -.PP -\fRZIP_SOURCE_STAT\fR -can be issued at any time. -.PP -\fRZIP_SOURCE_ERROR\fR -will only be issued in response to the function -returning \-1. -.PP -\fRZIP_SOURCE_FREE\fR -will be the last command issued; -if -\fRZIP_SOURCE_OPEN\fR -was called and succeeded, -\fRZIP_SOURCE_CLOSE\fR -will be called before -\fRZIP_SOURCE_FREE\fR, -and similarly for -\fRZIP_SOURCE_BEGIN_WRITE\fR -and -\fRZIP_SOURCE_COMMIT_WRITE\fR -or -\fRZIP_SOURCE_ROLLBACK_WRITE\fR. -.SH "RETURN VALUES" -Upon successful completion, the created source is returned. -Otherwise, -\fRNULL\fR -is returned and the error code in -\fIarchive\fR -or -\fIerror\fR -is set to indicate the error (unless -it is -\fRNULL\fR). -.SH "ERRORS" -\fBzip_source_function\fR() -fails if: -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.SH "SEE ALSO" -libzip(3), -zip_add(3), -zip_replace(3), -zip_source(3), -zip_stat_init(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_function.mdoc b/libzip-1.2.0/man/zip_source_function.mdoc deleted file mode 100644 index 4cdfd44b6..000000000 --- a/libzip-1.2.0/man/zip_source_function.mdoc +++ /dev/null @@ -1,295 +0,0 @@ -.\" zip_source_function.mdoc -- create data source from function -.\" Copyright (C) 2004-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 16, 2016 -.Dt ZIP_SOURCE_FUNCTION 3 -.Os -.Sh NAME -.Nm zip_source_function -.Nd create data source from function -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_source_t * -.Fn zip_source_function "zip_t *archive" "zip_source_callback fn" "void *userdata" -.Ft zip_source_t * -.Fn zip_source_function_create "zip_source_callback fn" "void *userdata" "zip_error_t *error" -.Sh DESCRIPTION -The functions -.Fn zip_source_function -and -.Fn zip_source_function_create -creates a zip source from the user-provided function -.Ar fn , -which must be of the following type: -.Pp -.Ft typedef zip_int64_t -.Fo \fR(*\fPzip_source_callback\fR)\fP -.Fa "void *userdata" "void *data" "zip_uint64_t len" "zip_source_cmd_t cmd" -.Fc -.Pp -.Ar archive -or -.Ar error -are used for reporting errors and can be -.Dv NULL . -.Pp -When called by the library, the first argument is the -.Ar userdata -argument supplied to the function. -The next two arguments are a buffer -.Ar data -of size -.Ar len -when data is passed in or expected to be returned, or else -.Dv NULL -and 0. -The last argument, -.Ar cmd , -specifies which action the function should perform. -.Pp -Depending on the uses, there are three useful sets of commands to be supported by a -.Fn zip_source_callback : -.Bl -tag -width seekable-read-sourceXX -.It read source -Providing streamed data (for file data added to archives). -Must support -.Dv ZIP_SOURCE_OPEN , -.Dv ZIP_SOURCE_READ , -.Dv ZIP_SOURCE_CLOSE , -.Dv ZIP_SOURCE_STAT , -and -.Dv ZIP_SOURCE_ERROR . -.It seekable read source -Same as previous, but from a source allowing reading from arbitrary -offsets (also for read-only zip archive). -Must additionally support -.Dv ZIP_SOURCE_SEEK , -.Dv ZIP_SOURCE_TELL , -and -.Dv ZIP_SOURCE_SUPPORTS . -.It read/write source -Same as previous, but additionally allowing writing (also for writable -zip archives). -Must additionally support -.Dv ZIP_SOURCE_BEGIN_WRITE , -.Dv ZIP_SOURCE_COMMIT_WRITE , -.Dv ZIP_SOURCE_ROLLBACK_WRITE , -.Dv ZIP_SOURCE_SEEK_WRITE , -.Dv ZIP_SOURCE_TELL_WRITE , -and -.Dv ZIP_SOURCE_REMOVE . -.El -.Ss Dv ZIP_SOURCE_BEGIN_WRITE -Prepare the source for writing. -Use this to create any temporary file(s). -.Ss Dv ZIP_SOURCE_CLOSE -Reading is done. -.Ss Dv ZIP_SOURCE_COMMIT_WRITE -Finish writing to the source. -Replace the original data with the newly written data. -Clean up temporary files or internal buffers. -Subsequently opening and reading from the source should return the -newly written data. -.Ss Dv ZIP_SOURCE_ERROR -Get error information. -.Ar data -points to an array of two ints, which should be filled with the libzip -error code and the corresponding system error code for the error that -occurred. -See -.Xr zip_errors 3 -for details on the error codes. -If the source stores error information in a zip_error_t, use -.Xr zip_error_to_data 3 -and return its return value. -Otherwise, return 2 * sizeof(int). -.Ss Dv ZIP_SOURCE_FREE -Clean up and free all resources, including -.Ar state . -The callback function will not be called again. -.Ss Dv ZIP_SOURCE_OPEN -Prepare for reading. -.Ss Dv ZIP_SOURCE_READ -Read data into the buffer -.Ar data -of size -.Ar len . -Return the number of bytes placed into -.Ar data -on success, and zero for end-of-file. -.Ss Dv ZIP_SOURCE_REMOVE -Remove the underlying file. -This is called if a zip archive is empty when closed. -.Ss Dv ZIP_SOURCE_ROLLBACK_WRITE -Abort writing to the source. -Discard written data. -Clean up temporary files or internal buffers. -Subsequently opening and reading from the source should return the -original data. -.Ss Dv ZIP_SOURCE_SEEK -Specify position to read next byte from, like -.Xr fseek 3 . -Use -.Xr ZIP_SOURCE_GET_ARGS 3 -to decode the arguments into the following struct: -.Bd -literal -struct zip_source_args_seek { - zip_int64_t offset; - int whence; -}; -.Ed -.Pp -If the size of the source's data is known, use -.Xr zip_source_seek_compute_offset 3 -to validate the arguments and compute the new offset. -.Ss Dv ZIP_SOURCE_SEEK_WRITE -Specify position to write next byte to, like -.Xr fseek 3 . -See -.Dv ZIP_SOURCE_SEEK -for details. -.Ss Dv ZIP_SOURCE_STAT -Get meta information for the input data. -.Ar data -points to an allocated -.Vt struct zip_stat , -which should be initialized using -.Xr zip_stat_init 3 -and then filled in. -Information only available after the source has been read (e.g. size) -can be omitted in an earlier call. -Return sizeof(struct zip_stat) on success. -.Em NOTE : -.Fn zip_source_function -may be called with this argument even after being called with -.Dv ZIP_SOURCE_CLOSE . -.Ss Dv ZIP_SOURCE_SUPPORTS -Return bitmap specifying which commands are supported. -Use -.Xr zip_source_make_command_bitmap 3 . -If this command is not implemented, the source is assumed to be a -read source without seek support. -.Ss Dv ZIP_SOURCE_TELL -Return the current read offset in the source, like -.Xr ftell 3 . -.Ss Dv ZIP_SOURCE_TELL_WRITE -Return the current write offset in the source, like -.Xr ftell 3 . -.Ss Dv ZIP_SOURCE_WRITE -Write data to the source. -Return number of bytes written. -.Ss Return Values -Commands should return \-1 on error. -.Dv ZIP_SOURCE_ERROR -will be called to retrieve the error code. -On success, commands return 0, unless specified otherwise in the -description above. -.Ss Calling Conventions -The library will always issue -.Dv ZIP_SOURCE_OPEN -before issuing -.Dv ZIP_SOURCE_READ , -.Dv ZIP_SOURCE_SEEK , -or -.Dv ZIP_SOURCE_TELL . -When it no longer wishes to read from this source, it will issue -.Dv ZIP_SOURCE_CLOSE . -If the library wishes to read the data again, it will issue -.Dv ZIP_SOURCE_OPEN -a second time. -If the function is unable to provide the data again, it should -return \-1. -.Pp -.Dv ZIP_SOURCE_BEGIN_WRITE -will be called before -.Dv ZIP_SOURCE_WRITE , -.Dv ZIP_SOURCE_SEEK_WRITE , -or -.Dv ZIP_SOURCE_TELL_WRITE . -When writing is complete, either -.Dv ZIP_SOURCE_COMMIT_WRITE -or -.Dv ZIP_SOURCE_ROLLBACK_WRITE -will be called. -.Dv -.Pp -.Dv ZIP_SOURCE_STAT -can be issued at any time. -.Pp -.Dv ZIP_SOURCE_ERROR -will only be issued in response to the function -returning \-1. -.Pp -.Dv ZIP_SOURCE_FREE -will be the last command issued; -if -.Dv ZIP_SOURCE_OPEN -was called and succeeded, -.Dv ZIP_SOURCE_CLOSE -will be called before -.Dv ZIP_SOURCE_FREE , -and similarly for -.Dv ZIP_SOURCE_BEGIN_WRITE -and -.Dv ZIP_SOURCE_COMMIT_WRITE -or -.Dv ZIP_SOURCE_ROLLBACK_WRITE . -.Sh RETURN VALUES -Upon successful completion, the created source is returned. -Otherwise, -.Dv NULL -is returned and the error code in -.Ar archive -or -.Ar error -is set to indicate the error (unless -it is -.Dv NULL ) . -.Sh ERRORS -.Fn zip_source_function -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_add 3 , -.Xr zip_replace 3 , -.Xr zip_source 3 , -.Xr zip_stat_init 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_is_deleted.man b/libzip-1.2.0/man/zip_source_is_deleted.man deleted file mode 100644 index 6313d81bd..000000000 --- a/libzip-1.2.0/man/zip_source_is_deleted.man +++ /dev/null @@ -1,31 +0,0 @@ -.TH "ZIP_SOURCE_IS_DELETED" "3" "November 18, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_is_deleted\fR -\- check if zip_source is deleted -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_source_is_deleted\fR(\fIzip_source_t\ *source\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_source_is_deleted\fR() -returns whether the zip_source was deleted. -This can for example happen when all entries are removed from a zip archive. -.SH "RETURN VALUES" -\fBzip_source_is_deleted\fR() -returns 1 if the zip_source is deleted and 0 otherwise. -.SH "SEE ALSO" -libzip(3), -zip_source(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_is_deleted.mdoc b/libzip-1.2.0/man/zip_source_is_deleted.mdoc deleted file mode 100644 index 0399b9a71..000000000 --- a/libzip-1.2.0/man/zip_source_is_deleted.mdoc +++ /dev/null @@ -1,59 +0,0 @@ -.\" zip_source_is_deleted.mdoc -- check if zip source is deleted -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd November 18, 2014 -.Dt ZIP_SOURCE_IS_DELETED 3 -.Os -.Sh NAME -.Nm zip_source_is_deleted -.Nd check if zip_source is deleted -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_source_is_deleted "zip_source_t *source" -.Sh DESCRIPTION -The function -.Fn zip_source_is_deleted -returns whether the zip_source was deleted. -This can for example happen when all entries are removed from a zip archive. -.Sh RETURN VALUES -.Fn zip_source_is_deleted -returns 1 if the zip_source is deleted and 0 otherwise. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_keep.man b/libzip-1.2.0/man/zip_source_keep.man deleted file mode 100644 index b952cfee6..000000000 --- a/libzip-1.2.0/man/zip_source_keep.man +++ /dev/null @@ -1,29 +0,0 @@ -.TH "ZIP_SOURCE_KEEP" "3" "November 18, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_keep\fR -\- increment reference count of zip data source -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIvoid\fR -.PD 0 -.HP 4n -\fBzip_source_keep\fR(\fIzip_source_t\ *source\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_source_keep\fR() -increments the reference count of -\fIsource\fR. -.SH "SEE ALSO" -libzip(3), -zip_source(3), -zip_source_free(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_keep.mdoc b/libzip-1.2.0/man/zip_source_keep.mdoc deleted file mode 100644 index f7a2a3cba..000000000 --- a/libzip-1.2.0/man/zip_source_keep.mdoc +++ /dev/null @@ -1,57 +0,0 @@ -.\" zip_source_keep.mdoc -- increment reference count of zip data source -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd November 18, 2014 -.Dt ZIP_SOURCE_KEEP 3 -.Os -.Sh NAME -.Nm zip_source_keep -.Nd increment reference count of zip data source -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft void -.Fn zip_source_keep "zip_source_t *source" -.Sh DESCRIPTION -The function -.Fn zip_source_keep -increments the reference count of -.Ar source . -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source 3 , -.Xr zip_source_free 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_make_command_bitmap.man b/libzip-1.2.0/man/zip_source_make_command_bitmap.man deleted file mode 100644 index a90ffd350..000000000 --- a/libzip-1.2.0/man/zip_source_make_command_bitmap.man +++ /dev/null @@ -1,31 +0,0 @@ -.TH "ZIP_SOURCE_MAKE_COMMAND_BITMAP" "3" "November 18, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_make_command_bitmap\fR -\- create bitmap of supported source operations -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_int64_t\fR -.PD 0 -.HP 4n -\fBzip_source_make_command_bitmap\fR(\fIzip_source_cmd_t\ command\fR, \fI...\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_source_make_command_bitmap\fR() -function returns a bitmap of source commands suitable as return value -for -\fRZIP_SOURCE_SUPPORTS\fR. -It includes all the commands from the argument list, which must be -terminated by \-1. -.SH "SEE ALSO" -libzip(3), -zip_source_function(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_make_command_bitmap.mdoc b/libzip-1.2.0/man/zip_source_make_command_bitmap.mdoc deleted file mode 100644 index 6ec9fd683..000000000 --- a/libzip-1.2.0/man/zip_source_make_command_bitmap.mdoc +++ /dev/null @@ -1,59 +0,0 @@ -.\" zip_source_make_command_bitmap -- create bitmap of supported source operations -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd November 18, 2014 -.Dt ZIP_SOURCE_MAKE_COMMAND_BITMAP 3 -.Os -.Sh NAME -.Nm zip_source_make_command_bitmap -.Nd create bitmap of supported source operations -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_int64_t -.Fn zip_source_make_command_bitmap "zip_source_cmd_t command" "..." -.Sh DESCRIPTION -The -.Fn zip_source_make_command_bitmap -function returns a bitmap of source commands suitable as return value -for -.Dv ZIP_SOURCE_SUPPORTS . -It includes all the commands from the argument list, which must be -terminated by \-1. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source_function 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_open.man b/libzip-1.2.0/man/zip_source_open.man deleted file mode 100644 index b42761b14..000000000 --- a/libzip-1.2.0/man/zip_source_open.man +++ /dev/null @@ -1,39 +0,0 @@ -.TH "ZIP_SOURCE_OPEN" "3" "November 18, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_open\fR -\- open zip_source for reading -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_source_open\fR(\fIzip_source_t\ *source\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_source_open\fR() -opens -\fIsource\fR -for reading. -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -\fIsource\fR -is set to indicate the error. -.SH "SEE ALSO" -libzip(3), -zip_source(3), -zip_source_begin_write(3), -zip_source_close(3), -zip_source_read(3), -zip_source_seek(3), -zip_source_tell(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_open.mdoc b/libzip-1.2.0/man/zip_source_open.mdoc deleted file mode 100644 index 4bd5c6064..000000000 --- a/libzip-1.2.0/man/zip_source_open.mdoc +++ /dev/null @@ -1,67 +0,0 @@ -.\" zip_source_open.mdoc -- open zip source for reading -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd November 18, 2014 -.Dt ZIP_SOURCE_OPEN 3 -.Os -.Sh NAME -.Nm zip_source_open -.Nd open zip_source for reading -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_source_open "zip_source_t *source" -.Sh DESCRIPTION -The function -.Fn zip_source_open -opens -.Fa source -for reading. -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -.Ar source -is set to indicate the error. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source 3 , -.Xr zip_source_begin_write 3 , -.Xr zip_source_close 3 , -.Xr zip_source_read 3 , -.Xr zip_source_seek 3 , -.Xr zip_source_tell 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_read.man b/libzip-1.2.0/man/zip_source_read.man deleted file mode 100644 index 4bc83a309..000000000 --- a/libzip-1.2.0/man/zip_source_read.man +++ /dev/null @@ -1,47 +0,0 @@ -.TH "ZIP_SOURCE_READ" "3" "December 16, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_read\fR -\- read data from zip source -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_int64_t\fR -.PD 0 -.HP 4n -\fBzip_source_read\fR(\fIzip_source_t\ *source\fR, \fIvoid\ *data\fR, \fIzip_uint64_t\ len\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_source_read\fR() -reads up to -\fIlen\fR -bytes of data from -\fIsource\fR -at the current read offset into the buffer -\fIdata\fR. -.PP -The zip source -\fIsource\fR -has to be opened for reading by calling -zip_source_open(3) -first. -.SH "RETURN VALUES" -Upon successful completion the number of bytes read is returned. -Upon reading end-of-file, zero is returned. -Otherwise, \-1 is returned and the error information in -\fIsource\fR -is set to indicate the error. -.SH "SEE ALSO" -libzip(3), -zip_source(3), -zip_source_seek(3), -zip_source_tell(3), -zip_source_write(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_read.mdoc b/libzip-1.2.0/man/zip_source_read.mdoc deleted file mode 100644 index 7fb5d966e..000000000 --- a/libzip-1.2.0/man/zip_source_read.mdoc +++ /dev/null @@ -1,75 +0,0 @@ -.\" zip_source_read.mdoc -- read data from zip source -.\" Copyright (C) 2014-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 16, 2016 -.Dt ZIP_SOURCE_READ 3 -.Os -.Sh NAME -.Nm zip_source_read -.Nd read data from zip source -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_int64_t -.Fn zip_source_read "zip_source_t *source" "void *data" "zip_uint64_t len" -.Sh DESCRIPTION -The function -.Fn zip_source_read -reads up to -.Ar len -bytes of data from -.Ar source -at the current read offset into the buffer -.Ar data . -.Pp -The zip source -.Ar source -has to be opened for reading by calling -.Xr zip_source_open 3 -first. -.Sh RETURN VALUES -Upon successful completion the number of bytes read is returned. -Upon reading end-of-file, zero is returned. -Otherwise, \-1 is returned and the error information in -.Ar source -is set to indicate the error. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source 3 , -.Xr zip_source_seek 3 , -.Xr zip_source_tell 3 , -.Xr zip_source_write 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_rollback_write.man b/libzip-1.2.0/man/zip_source_rollback_write.man deleted file mode 100644 index 0f4af58b8..000000000 --- a/libzip-1.2.0/man/zip_source_rollback_write.man +++ /dev/null @@ -1,42 +0,0 @@ -.TH "ZIP_SOURCE_ROLLBACK_WRITE" "3" "December 29, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_rollback_write\fR -\- undo changes to zip source -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIvoid\fR -.PD 0 -.HP 4n -\fBzip_source_rollback_write\fR(\fIzip_source_t\ *source\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_source_rollback_write\fR() -reverts changes written to -\fIsource\fR, -restoring the data before -zip_source_begin_write(3) -was called. -Usually this removes temporary files or frees buffers. -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -\fIsource\fR -is set to indicate the error. -.SH "SEE ALSO" -libzip(3), -zip_source(3), -zip_source_begin_write(3), -zip_source_commit_write(3), -zip_source_seek_write(3), -zip_source_tell_write(3), -zip_source_write(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_rollback_write.mdoc b/libzip-1.2.0/man/zip_source_rollback_write.mdoc deleted file mode 100644 index e313cdf31..000000000 --- a/libzip-1.2.0/man/zip_source_rollback_write.mdoc +++ /dev/null @@ -1,70 +0,0 @@ -.\" zip_source_rollback_write.mdoc -- undo changes to zip source -.\" Copyright (C) 2014-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 29, 2016 -.Dt ZIP_SOURCE_ROLLBACK_WRITE 3 -.Os -.Sh NAME -.Nm zip_source_rollback_write -.Nd undo changes to zip source -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft void -.Fn zip_source_rollback_write "zip_source_t *source" -.Sh DESCRIPTION -The function -.Fn zip_source_rollback_write -reverts changes written to -.Fa source , -restoring the data before -.Xr zip_source_begin_write 3 -was called. -Usually this removes temporary files or frees buffers. -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -.Ar source -is set to indicate the error. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source 3 , -.Xr zip_source_begin_write 3 , -.Xr zip_source_commit_write 3 , -.Xr zip_source_seek_write 3 , -.Xr zip_source_tell_write 3 , -.Xr zip_source_write 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_seek.man b/libzip-1.2.0/man/zip_source_seek.man deleted file mode 100644 index 1224021de..000000000 --- a/libzip-1.2.0/man/zip_source_seek.man +++ /dev/null @@ -1,53 +0,0 @@ -.TH "ZIP_SOURCE_SEEK" "3" "November 18, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_seek\fR -\- set read offset in zip source -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_source_seek\fR(\fIzip_source_t\ *source\fR, \fIzip_int64_t\ offset\fR, \fIint\ whence\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_source_seek\fR() -sets the current read offset for -\fIsource\fR. -Just like in -fseek(3), -depending on the -\fIwhence\fR -argument, the -\fIoffset\fR -is counted relative from: -.RS 6n -.TP 12n -\fRSEEK_SET\fR -start of file -.TP 12n -\fRSEEK_CUR\fR -current read offset in file -.TP 12n -\fRSEEK_END\fR -end of file -.RE -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -\fIsource\fR -is set to indicate the error. -.SH "SEE ALSO" -libzip(3), -zip_source(3), -zip_source_read(3), -zip_source_tell(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_seek.mdoc b/libzip-1.2.0/man/zip_source_seek.mdoc deleted file mode 100644 index f6c38810c..000000000 --- a/libzip-1.2.0/man/zip_source_seek.mdoc +++ /dev/null @@ -1,78 +0,0 @@ -.\" zip_source_seek.mdoc -- set read offset in source -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd November 18, 2014 -.Dt ZIP_SOURCE_SEEK 3 -.Os -.Sh NAME -.Nm zip_source_seek -.Nd set read offset in zip source -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_source_seek "zip_source_t *source" "zip_int64_t offset" "int whence" -.Sh DESCRIPTION -The function -.Fn zip_source_seek -sets the current read offset for -.Fa source . -Just like in -.Xr fseek 3 , -depending on the -.Ar whence -argument, the -.Ar offset -is counted relative from: -.Bl -tag -width SEEK_CURXX -offset indent -.It Dv SEEK_SET -start of file -.It Dv SEEK_CUR -current read offset in file -.It Dv SEEK_END -end of file -.El -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -.Ar source -is set to indicate the error. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source 3 , -.Xr zip_source_read 3 , -.Xr zip_source_tell 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_seek_compute_offset.man b/libzip-1.2.0/man/zip_source_seek_compute_offset.man deleted file mode 100644 index 5e772fb4f..000000000 --- a/libzip-1.2.0/man/zip_source_seek_compute_offset.man +++ /dev/null @@ -1,49 +0,0 @@ -.TH "ZIP_SOURCE_SEEK_COMPUTE_OFFSET" "3" "November 13, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_seek_compute_offset\fR -\- validate arguments and compute offset -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_int64_t\fR -.PD 0 -.HP 4n -\fBzip_source_seek_compute_offset\fR(\fIzip_uint64_t\ offset\fR, \fIzip_uint64_t\ length\fR, \fIvoid\ *data\fR, \fIzip_uint64_t\ data_length\fR, \fIzip_error_t\ *error\fR); -.PD -.SH "DESCRIPTION" -Use this function to compute the offset for a -\fRZIP_SOURCE_SEEK\fR -or -\fRZIP_SOURCE_SEEK_WRITE\fR -command. -\fIdata\fR -and -\fIdata_length\fR -are the arguments to the source callback, -\fIoffset\fR -is the current offset and -\fIlength\fR -is the length of the source data or, for -\fRZIP_SOURCE_SEEK_WRITE\fR, -the amount of data written. -.SH "RETURN VALUES" -On success, it returns the new offset, on error it returns \-1 and -sets -\fIerror\fR. -.SH "ERRORS" -\fBzip_source_seek_compute_offset\fR() -fails if: -.TP 19n -[\fRZIP_ER_INVAL\fR] -One of the arguments is invalid or the seek would place the offset -outside the data. -.SH "SEE ALSO" -zip_source_function(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_seek_compute_offset.mdoc b/libzip-1.2.0/man/zip_source_seek_compute_offset.mdoc deleted file mode 100644 index 89fb77f49..000000000 --- a/libzip-1.2.0/man/zip_source_seek_compute_offset.mdoc +++ /dev/null @@ -1,78 +0,0 @@ -.\" zip_source_seek_compute_offset.mdoc - validate arguments and compute offset -.\" Copyright (C) 2014-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd November 13, 2014 -.Dt ZIP_SOURCE_SEEK_COMPUTE_OFFSET 3 -.Os -.Sh NAME -.Nm zip_source_seek_compute_offset -.Nd validate arguments and compute offset -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_int64_t -.Fn zip_source_seek_compute_offset "zip_uint64_t offset" "zip_uint64_t length" "void *data" "zip_uint64_t data_length" "zip_error_t *error" -.Sh DESCRIPTION -Use this function to compute the offset for a -.Dv ZIP_SOURCE_SEEK -or -.Dv ZIP_SOURCE_SEEK_WRITE -command. -.Ar data -and -.Ar data_length -are the arguments to the source callback, -.Ar offset -is the current offset and -.Ar length -is the length of the source data or, for -.Dv ZIP_SOURCE_SEEK_WRITE , -the amount of data written. -.Sh RETURN VALUES -On success, it returns the new offset, on error it returns \-1 and -sets -.Ar error . -.Sh ERRORS -.Fn zip_source_seek_compute_offset -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_INVAL -One of the arguments is invalid or the seek would place the offset -outside the data. -.El -.Sh SEE ALSO -.Xr zip_source_function 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_seek_write.man b/libzip-1.2.0/man/zip_source_seek_write.man deleted file mode 100644 index 0ba319201..000000000 --- a/libzip-1.2.0/man/zip_source_seek_write.man +++ /dev/null @@ -1,56 +0,0 @@ -.TH "ZIP_SOURCE_SEEK_WRITE" "3" "November 18, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_seek_write\fR -\- set write offset in zip source -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_source_seek_write\fR(\fIzip_source_t\ *source\fR, \fIzip_int64_t\ offset\fR, \fIint\ whence\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_source_seek_write\fR() -sets the current write offset for -\fIsource\fR. -Just like in -fseek(3), -depending on the -\fIwhence\fR -argument, the -\fIoffset\fR -is counted relative from: -.RS 6n -.TP 12n -\fRSEEK_SET\fR -start of file -.TP 12n -\fRSEEK_CUR\fR -current write offset in file -.TP 12n -\fRSEEK_END\fR -end of file -.RE -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -\fIsource\fR -is set to indicate the error. -.SH "SEE ALSO" -libzip(3), -zip_source(3), -zip_source_begin_write(3), -zip_source_commit_write(3), -zip_source_rollback_write(3), -zip_source_tell_write(3), -zip_source_write(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_seek_write.mdoc b/libzip-1.2.0/man/zip_source_seek_write.mdoc deleted file mode 100644 index 720f75a7f..000000000 --- a/libzip-1.2.0/man/zip_source_seek_write.mdoc +++ /dev/null @@ -1,81 +0,0 @@ -.\" zip_source_seek_write.mdoc -- set write offset in source -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd November 18, 2014 -.Dt ZIP_SOURCE_SEEK_WRITE 3 -.Os -.Sh NAME -.Nm zip_source_seek_write -.Nd set write offset in zip source -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_source_seek_write "zip_source_t *source" "zip_int64_t offset" "int whence" -.Sh DESCRIPTION -The function -.Fn zip_source_seek_write -sets the current write offset for -.Fa source . -Just like in -.Xr fseek 3 , -depending on the -.Ar whence -argument, the -.Ar offset -is counted relative from: -.Bl -tag -width SEEK_CURXX -offset indent -.It Dv SEEK_SET -start of file -.It Dv SEEK_CUR -current write offset in file -.It Dv SEEK_END -end of file -.El -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -.Ar source -is set to indicate the error. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source 3 , -.Xr zip_source_begin_write 3 , -.Xr zip_source_commit_write 3 , -.Xr zip_source_rollback_write 3 , -.Xr zip_source_tell_write 3 , -.Xr zip_source_write 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_stat.man b/libzip-1.2.0/man/zip_source_stat.man deleted file mode 100644 index 24411ff23..000000000 --- a/libzip-1.2.0/man/zip_source_stat.man +++ /dev/null @@ -1,108 +0,0 @@ -.TH "ZIP_SOURCE_STAT" "3" "November 18, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_stat\fR -\- get information about zip_source -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_source_stat\fR(\fIzip_source_t\ *source\fR, \fIzip_stat_t\ *sb\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_source_stat\fR() -function obtains information about the zip source -\fIsource\fR -.PP -The -\fIsb\fR -argument is a pointer to a -\fIstruct zip_source_stat\fR -(shown below), into which information about the zip source is placed. -.nf -.sp -.RS 0n -struct zip_source_stat { - zip_uint64_t valid; /* which fields have valid values */ - const char *name; /* name of the file */ - zip_uint64_t index; /* index within archive */ - zip_uint64_t size; /* size of file (uncompressed) */ - zip_uint64_t comp_size; /* size of file (compressed) */ - time_t mtime; /* modification time */ - zip_uint32_t crc; /* crc of file data */ - zip_uint16_t comp_method; /* compression method used */ - zip_uint16_t encryption_method; /* encryption method used */ - zip_uint32_t flags; /* reserved for future use */ -}; -.RE -.fi -The structure pointed to by -\fIsb\fR -must be initialized with -\fBzip_stat_init\fR(\fI3\fR) -before calling -\fBzip_source_stat\fR(). -.PP -The -\fIvalid\fR -field of the structure specifies which other fields are valid. -Check if the flag defined by the following defines are in -\fIvalid\fR -before accessing the fields: -.RS 6n -.PD 0 -.TP 37n -\fRZIP_SOURCE_STAT_NAME\fR -\fIname\fR -.TP 37n -\fRZIP_SOURCE_STAT_INDEX\fR -\fIindex\fR -.TP 37n -\fRZIP_SOURCE_STAT_SIZE\fR -\fIsize\fR -.TP 37n -\fRZIP_SOURCE_STAT_COMP_SIZE\fR -\fIcomp_size\fR -.TP 37n -\fRZIP_SOURCE_STAT_MTIME\fR -\fImtime\fR -.TP 37n -\fRZIP_SOURCE_STAT_CRC\fR -\fIcrc\fR -.TP 37n -\fRZIP_SOURCE_STAT_COMP_METHOD\fR -\fIcomp_method\fR -.TP 37n -\fRZIP_SOURCE_STAT_ENCRYPTION_METHOD\fR -\fIencryption_method\fR -.TP 37n -\fRZIP_SOURCE_STAT_FLAGS\fR -\fIflags\fR -.RE -.PD -.PP -\fINOTE\fR: -Some fields may only be filled out after all data has been read from -the source, for example the -\fIcrc\fR -or -\fIsize\fR -fields. -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -\fIsource\fR -is set to indicate the error. -.SH "SEE ALSO" -libzip(3), -zip_source(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_stat.mdoc b/libzip-1.2.0/man/zip_source_stat.mdoc deleted file mode 100644 index cb68b73f3..000000000 --- a/libzip-1.2.0/man/zip_source_stat.mdoc +++ /dev/null @@ -1,122 +0,0 @@ -.\" zip_source_stat.mdoc -- get information about zip source -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd November 18, 2014 -.Dt ZIP_SOURCE_STAT 3 -.Os -.Sh NAME -.Nm zip_source_stat -.Nd get information about zip_source -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_source_stat "zip_source_t *source" "zip_stat_t *sb" -.Sh DESCRIPTION -The -.Fn zip_source_stat -function obtains information about the zip source -.Ar source -.Pp -The -.Ar sb -argument is a pointer to a -.Ft struct zip_source_stat -(shown below), into which information about the zip source is placed. -.Bd -literal -struct zip_source_stat { - zip_uint64_t valid; /* which fields have valid values */ - const char *name; /* name of the file */ - zip_uint64_t index; /* index within archive */ - zip_uint64_t size; /* size of file (uncompressed) */ - zip_uint64_t comp_size; /* size of file (compressed) */ - time_t mtime; /* modification time */ - zip_uint32_t crc; /* crc of file data */ - zip_uint16_t comp_method; /* compression method used */ - zip_uint16_t encryption_method; /* encryption method used */ - zip_uint32_t flags; /* reserved for future use */ -}; -.Ed -The structure pointed to by -.Ar sb -must be initialized with -.Fn zip_stat_init 3 -before calling -.Fn zip_source_stat . -.Pp -The -.Ar valid -field of the structure specifies which other fields are valid. -Check if the flag defined by the following defines are in -.Ar valid -before accessing the fields: -.Bl -tag -width ZIP_SOURCE_STAT_ENCRYPTION_METHODXX -compact -offset indent -.It Dv ZIP_SOURCE_STAT_NAME -.Ar name -.It Dv ZIP_SOURCE_STAT_INDEX -.Ar index -.It Dv ZIP_SOURCE_STAT_SIZE -.Ar size -.It Dv ZIP_SOURCE_STAT_COMP_SIZE -.Ar comp_size -.It Dv ZIP_SOURCE_STAT_MTIME -.Ar mtime -.It Dv ZIP_SOURCE_STAT_CRC -.Ar crc -.It Dv ZIP_SOURCE_STAT_COMP_METHOD -.Ar comp_method -.It Dv ZIP_SOURCE_STAT_ENCRYPTION_METHOD -.Ar encryption_method -.It Dv ZIP_SOURCE_STAT_FLAGS -.Ar flags -.El -.Pp -.Em NOTE : -Some fields may only be filled out after all data has been read from -the source, for example the -.Ar crc -or -.Ar size -fields. -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -.Ar source -is set to indicate the error. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_tell.man b/libzip-1.2.0/man/zip_source_tell.man deleted file mode 100644 index 76e146c1c..000000000 --- a/libzip-1.2.0/man/zip_source_tell.man +++ /dev/null @@ -1,43 +0,0 @@ -.TH "ZIP_SOURCE_TELL" "3" "November 18, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_tell\fR -\- report current read offset in zip source -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_int64_t\fR -.PD 0 -.HP 4n -\fBzip_source_tell\fR(\fIzip_source_t\ *source\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_source_tell\fR() -returns the current read offset -for -\fIsource\fR. -The return value can be passed to -zip_source_seek(3) -with -\fIwhence\fR -set to -\fRSEEK_SET\fR -to return to the same location in the source. -.SH "RETURN VALUES" -Upon successful completion the current read offset is returned. -Otherwise, \-1 is returned and the error information in -\fIsource\fR -is set to indicate the error. -.SH "SEE ALSO" -libzip(3), -zip_source(3), -zip_source_read(3), -zip_source_tell(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_tell.mdoc b/libzip-1.2.0/man/zip_source_tell.mdoc deleted file mode 100644 index b26122c6b..000000000 --- a/libzip-1.2.0/man/zip_source_tell.mdoc +++ /dev/null @@ -1,71 +0,0 @@ -.\" zip_source_tell.mdoc -- report current read offset in source -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd November 18, 2014 -.Dt ZIP_SOURCE_TELL 3 -.Os -.Sh NAME -.Nm zip_source_tell -.Nd report current read offset in zip source -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_int64_t -.Fn zip_source_tell "zip_source_t *source" -.Sh DESCRIPTION -The function -.Fn zip_source_tell -returns the current read offset -for -.Fa source . -The return value can be passed to -.Xr zip_source_seek 3 -with -.Ar whence -set to -.Dv SEEK_SET -to return to the same location in the source. -.Sh RETURN VALUES -Upon successful completion the current read offset is returned. -Otherwise, \-1 is returned and the error information in -.Ar source -is set to indicate the error. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source 3 , -.Xr zip_source_read 3 , -.Xr zip_source_tell 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_tell_write.man b/libzip-1.2.0/man/zip_source_tell_write.man deleted file mode 100644 index ab340ec88..000000000 --- a/libzip-1.2.0/man/zip_source_tell_write.man +++ /dev/null @@ -1,46 +0,0 @@ -.TH "ZIP_SOURCE_TELL_WRITE" "3" "November 18, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_tell_write\fR -\- report current write offset in zip source -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_int64_t\fR -.PD 0 -.HP 4n -\fBzip_source_tell_write\fR(\fIzip_source_t\ *source\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_source_tell_write\fR() -returns the current write offset -for -\fIsource\fR. -The return value can be passed to -zip_source_seek_write(3) -with -\fIwhence\fR -set to -\fRSEEK_SET\fR -to return to the same location in the source. -.SH "RETURN VALUES" -Upon successful completion the current write offset is returned. -Otherwise, \-1 is returned and the error information in -\fIsource\fR -is set to indicate the error. -.SH "SEE ALSO" -libzip(3), -zip_source(3), -zip_source_begin_write(3), -zip_source_commit_write(3), -zip_source_rollback_write(3), -zip_source_tell_write(3), -zip_source_write(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_tell_write.mdoc b/libzip-1.2.0/man/zip_source_tell_write.mdoc deleted file mode 100644 index 0bc6783cf..000000000 --- a/libzip-1.2.0/man/zip_source_tell_write.mdoc +++ /dev/null @@ -1,74 +0,0 @@ -.\" zip_source_tell_write.mdoc -- report current write offset in source -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd November 18, 2014 -.Dt ZIP_SOURCE_TELL_WRITE 3 -.Os -.Sh NAME -.Nm zip_source_tell_write -.Nd report current write offset in zip source -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_int64_t -.Fn zip_source_tell_write "zip_source_t *source" -.Sh DESCRIPTION -The function -.Fn zip_source_tell_write -returns the current write offset -for -.Fa source . -The return value can be passed to -.Xr zip_source_seek_write 3 -with -.Ar whence -set to -.Dv SEEK_SET -to return to the same location in the source. -.Sh RETURN VALUES -Upon successful completion the current write offset is returned. -Otherwise, \-1 is returned and the error information in -.Ar source -is set to indicate the error. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source 3 , -.Xr zip_source_begin_write 3 , -.Xr zip_source_commit_write 3 , -.Xr zip_source_rollback_write 3 , -.Xr zip_source_tell_write 3 , -.Xr zip_source_write 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_win32a.man b/libzip-1.2.0/man/zip_source_win32a.man deleted file mode 100644 index fe0f5c70a..000000000 --- a/libzip-1.2.0/man/zip_source_win32a.man +++ /dev/null @@ -1,88 +0,0 @@ -.TH "ZIP_SOURCE_WIN32A" "3" "December 29, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_win32a\fR, -\fBzip_source_win32a_create\fR -\- create data source from a Windows ANSI file name -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_source_t *\fR -.PD 0 -.HP 4n -\fBzip_source_win32a\fR(\fIzip_t\ *archive\fR, \fIconst\ char\ *fname\fR, \fIzip_uint64_t\ start\fR, \fIzip_int64_t\ len\fR); -.PD -.PP -\fIzip_source_t *\fR -.PD 0 -.HP 4n -\fBzip_source_win32a_create\fR(\fIconst\ char\ *fname\fR, \fIzip_uint64_t\ start\fR, \fIzip_int64_t\ len\fR, \fIzip_error_t\ *error\fR); -.PD -.SH "DESCRIPTION" -The functions -\fBzip_source_win32a\fR() -and -\fBzip_source_win32a_create\fR() -create a zip source on Windows using a Windows ANSI name. -They open -\fIfname\fR -and read -\fIlen\fR -bytes from offset -\fIstart\fR -from it. -If -\fIlen\fR -is 0 or \-1, the whole file (starting from -\fIstart\fR) -is used. -.PP -If the file supports seek, the source can be used to open a zip archive from. -.PP -The file is opened and read when the data from the source is used, usually by -\fBzip_close\fR() -or -\fBzip_open_from_source\fR(). -.SH "RETURN VALUES" -Upon successful completion, the created source is returned. -Otherwise, -\fRNULL\fR -is returned and the error code in -\fIarchive\fR -or -\fIerror\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_source_win32a\fR() -and -\fBzip_source_win32a_create\fR() -fail if: -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIfname\fR, -\fIstart\fR, -or -\fIlen\fR -are invalid. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.TP 19n -[\fRZIP_ER_OPEN\fR] -Opening -\fIfname\fR -failed. -.SH "SEE ALSO" -libzip(3), -zip_add(3), -zip_replace(3), -zip_source(3), -zip_source_win32handle(3), -zip_source_win32w(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_win32a.mdoc b/libzip-1.2.0/man/zip_source_win32a.mdoc deleted file mode 100644 index b4e687d2b..000000000 --- a/libzip-1.2.0/man/zip_source_win32a.mdoc +++ /dev/null @@ -1,111 +0,0 @@ -.\" zip_source_win32a.mdoc -- create data source using a win32 ANSI name -.\" Copyright (C) 2015-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 29, 2016 -.Dt ZIP_SOURCE_WIN32A 3 -.Os -.Sh NAME -.Nm zip_source_win32a , -.Nm zip_source_win32a_create -.Nd create data source from a Windows ANSI file name -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_source_t * -.Fn zip_source_win32a "zip_t *archive" "const char *fname" "zip_uint64_t start" "zip_int64_t len" -.Ft zip_source_t * -.Fn zip_source_win32a_create "const char *fname" "zip_uint64_t start" "zip_int64_t len" "zip_error_t *error" -.Sh DESCRIPTION -The functions -.Fn zip_source_win32a -and -.Fn zip_source_win32a_create -create a zip source on Windows using a Windows ANSI name. -They open -.Ar fname -and read -.Ar len -bytes from offset -.Ar start -from it. -If -.Ar len -is 0 or \-1, the whole file (starting from -.Ar start ) -is used. -.Pp -If the file supports seek, the source can be used to open a zip archive from. -.Pp -The file is opened and read when the data from the source is used, usually by -.Fn zip_close -or -.Fn zip_open_from_source . -.Sh RETURN VALUES -Upon successful completion, the created source is returned. -Otherwise, -.Dv NULL -is returned and the error code in -.Ar archive -or -.Ar error -is set to indicate the error. -.Sh ERRORS -.Fn zip_source_win32a -and -.Fn zip_source_win32a_create -fail if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_INVAL -.Ar fname , -.Ar start , -or -.Ar len -are invalid. -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.It Bq Er ZIP_ER_OPEN -Opening -.Ar fname -failed. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_add 3 , -.Xr zip_replace 3 , -.Xr zip_source 3 , -.Xr zip_source_win32handle 3 , -.Xr zip_source_win32w 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_win32handle.man b/libzip-1.2.0/man/zip_source_win32handle.man deleted file mode 100644 index f0b21a3d7..000000000 --- a/libzip-1.2.0/man/zip_source_win32handle.man +++ /dev/null @@ -1,88 +0,0 @@ -.TH "ZIP_SOURCE_WIN32HANDLE" "3" "December 29, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_win32handle\fR, -\fBzip_source_win32handle_create\fR -\- create data source from a Windows file handle -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_source_t *\fR -.PD 0 -.HP 4n -\fBzip_source_win32handle\fR(\fIzip_t\ *archive\fR, \fIHANDLE\ h\fR, \fIzip_uint64_t\ start\fR, \fIzip_int64_t\ len\fR); -.PD -.PP -\fIzip_source_t *\fR -.PD 0 -.HP 4n -\fBzip_source_win32handle_create\fR(\fIHANDLE\ h\fR, \fIzip_uint64_t\ start\fR, \fIzip_int64_t\ len\fR, \fIzip_error_t\ *error\fR); -.PD -.SH "DESCRIPTION" -The functions -\fBzip_source_win32handle\fR() -and -\fBzip_source_win32handle_create\fR() -create a zip source from a Windows file handle. -They open -\fIfname\fR -and read -\fIlen\fR -bytes from offset -\fIstart\fR -from it. -If -\fIlen\fR -is 0 or \-1, the whole file (starting from -\fIstart\fR) -is used. -.PP -If the file supports seek, the source can be used to open a zip archive from. -.PP -The file is opened and read when the data from the source is used, usually by -\fBzip_close\fR() -or -\fBzip_open_from_source\fR(). -.SH "RETURN VALUES" -Upon successful completion, the created source is returned. -Otherwise, -\fRNULL\fR -is returned and the error code in -\fIarchive\fR -or -\fIerror\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_source_w32handle\fR() -and -\fBzip_source_w32handle_create\fR() -fail if: -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIfname\fR, -\fIstart\fR, -or -\fIlen\fR -are invalid. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.TP 19n -[\fRZIP_ER_OPEN\fR] -Opening -\fIfname\fR -failed. -.SH "SEE ALSO" -libzip(3), -zip_add(3), -zip_replace(3), -zip_source(3), -zip_source_win32a(3), -zip_source_win32w(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_win32handle.mdoc b/libzip-1.2.0/man/zip_source_win32handle.mdoc deleted file mode 100644 index 415d99474..000000000 --- a/libzip-1.2.0/man/zip_source_win32handle.mdoc +++ /dev/null @@ -1,111 +0,0 @@ -.\" zip_source_handle.mdoc -- create data source from a Windows file handle -.\" Copyright (C) 2015-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 29, 2016 -.Dt ZIP_SOURCE_WIN32HANDLE 3 -.Os -.Sh NAME -.Nm zip_source_win32handle , -.Nm zip_source_win32handle_create -.Nd create data source from a Windows file handle -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_source_t * -.Fn zip_source_win32handle "zip_t *archive" "HANDLE h" "zip_uint64_t start" "zip_int64_t len" -.Ft zip_source_t * -.Fn zip_source_win32handle_create "HANDLE h" "zip_uint64_t start" "zip_int64_t len" "zip_error_t *error" -.Sh DESCRIPTION -The functions -.Fn zip_source_win32handle -and -.Fn zip_source_win32handle_create -create a zip source from a Windows file handle. -They open -.Ar fname -and read -.Ar len -bytes from offset -.Ar start -from it. -If -.Ar len -is 0 or \-1, the whole file (starting from -.Ar start ) -is used. -.Pp -If the file supports seek, the source can be used to open a zip archive from. -.Pp -The file is opened and read when the data from the source is used, usually by -.Fn zip_close -or -.Fn zip_open_from_source . -.Sh RETURN VALUES -Upon successful completion, the created source is returned. -Otherwise, -.Dv NULL -is returned and the error code in -.Ar archive -or -.Ar error -is set to indicate the error. -.Sh ERRORS -.Fn zip_source_w32handle -and -.Fn zip_source_w32handle_create -fail if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_INVAL -.Ar fname , -.Ar start , -or -.Ar len -are invalid. -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.It Bq Er ZIP_ER_OPEN -Opening -.Ar fname -failed. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_add 3 , -.Xr zip_replace 3 , -.Xr zip_source 3 , -.Xr zip_source_win32a 3 , -.Xr zip_source_win32w 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_win32w.man b/libzip-1.2.0/man/zip_source_win32w.man deleted file mode 100644 index 740e82040..000000000 --- a/libzip-1.2.0/man/zip_source_win32w.man +++ /dev/null @@ -1,88 +0,0 @@ -.TH "ZIP_SOURCE_WIN32W" "3" "December 29, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_win32w\fR, -\fBzip_source_win32w_create\fR -\- create data source from a Windows Unicode file name -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_source_t *\fR -.PD 0 -.HP 4n -\fBzip_source_win32w\fR(\fIzip_t\ *archive\fR, \fIconst\ char\ *fname\fR, \fIzip_uint64_t\ start\fR, \fIzip_int64_t\ len\fR); -.PD -.PP -\fIzip_source_t *\fR -.PD 0 -.HP 4n -\fBzip_source_win32w_create\fR(\fIconst\ char\ *fname\fR, \fIzip_uint64_t\ start\fR, \fIzip_int64_t\ len\fR, \fIzip_error_t\ *error\fR); -.PD -.SH "DESCRIPTION" -The functions -\fBzip_source_win32w\fR() -and -\fBzip_source_win32w_create\fR() -create a zip source on Windows using a Windows Unicode name. -They open -\fIfname\fR -and read -\fIlen\fR -bytes from offset -\fIstart\fR -from it. -If -\fIlen\fR -is 0 or \-1, the whole file (starting from -\fIstart\fR) -is used. -.PP -If the file supports seek, the source can be used to open a zip archive from. -.PP -The file is opened and read when the data from the source is used, usually by -\fBzip_close\fR() -or -\fBzip_open_from_source\fR(). -.SH "RETURN VALUES" -Upon successful completion, the created source is returned. -Otherwise, -\fRNULL\fR -is returned and the error code in -\fIarchive\fR -or -\fIerror\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_source_win32w\fR() -and -\fBzip_source_win32w_create\fR() -fail if: -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIfname\fR, -\fIstart\fR, -or -\fIlen\fR -are invalid. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.TP 19n -[\fRZIP_ER_OPEN\fR] -Opening -\fIfname\fR -failed. -.SH "SEE ALSO" -libzip(3), -zip_add(3), -zip_replace(3), -zip_source(3), -zip_source_win32a(3), -zip_source_win32handle(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_win32w.mdoc b/libzip-1.2.0/man/zip_source_win32w.mdoc deleted file mode 100644 index ad8557f1a..000000000 --- a/libzip-1.2.0/man/zip_source_win32w.mdoc +++ /dev/null @@ -1,111 +0,0 @@ -.\" zip_source_win32w.mdoc -- create data source using a win32 Unicode name -.\" Copyright (C) 2015-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 29, 2016 -.Dt ZIP_SOURCE_WIN32W 3 -.Os -.Sh NAME -.Nm zip_source_win32w , -.Nm zip_source_win32w_create -.Nd create data source from a Windows Unicode file name -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_source_t * -.Fn zip_source_win32w "zip_t *archive" "const char *fname" "zip_uint64_t start" "zip_int64_t len" -.Ft zip_source_t * -.Fn zip_source_win32w_create "const char *fname" "zip_uint64_t start" "zip_int64_t len" "zip_error_t *error" -.Sh DESCRIPTION -The functions -.Fn zip_source_win32w -and -.Fn zip_source_win32w_create -create a zip source on Windows using a Windows Unicode name. -They open -.Ar fname -and read -.Ar len -bytes from offset -.Ar start -from it. -If -.Ar len -is 0 or \-1, the whole file (starting from -.Ar start ) -is used. -.Pp -If the file supports seek, the source can be used to open a zip archive from. -.Pp -The file is opened and read when the data from the source is used, usually by -.Fn zip_close -or -.Fn zip_open_from_source . -.Sh RETURN VALUES -Upon successful completion, the created source is returned. -Otherwise, -.Dv NULL -is returned and the error code in -.Ar archive -or -.Ar error -is set to indicate the error. -.Sh ERRORS -.Fn zip_source_win32w -and -.Fn zip_source_win32w_create -fail if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_INVAL -.Ar fname , -.Ar start , -or -.Ar len -are invalid. -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.It Bq Er ZIP_ER_OPEN -Opening -.Ar fname -failed. -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_add 3 , -.Xr zip_replace 3 , -.Xr zip_source 3 , -.Xr zip_source_win32a 3 , -.Xr zip_source_win32handle 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_write.man b/libzip-1.2.0/man/zip_source_write.man deleted file mode 100644 index 1c029b9ae..000000000 --- a/libzip-1.2.0/man/zip_source_write.man +++ /dev/null @@ -1,49 +0,0 @@ -.TH "ZIP_SOURCE_WRITE" "3" "November 18, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_write\fR -\- write data to zip source -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_int64_t\fR -.PD 0 -.HP 4n -\fBzip_source_write\fR(\fIzip_source_t\ *source\fR, \fIconst\ void\ *data\fR, \fIzip_uint64_t\ len\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_source_write\fR() -writes -\fIlen\fR -bytes from the buffer -\fIdata\fR -to the zip source -\fIsource\fR -at the current write offset. -.PP -The zip source -\fIsource\fR -has to be prepared for writing by calling -zip_source_begin_write(3) -first. -.SH "RETURN VALUES" -Upon successful completion the number of bytes written is returned. -Otherwise, \-1 is returned and the error information in -\fIsource\fR -is set to indicate the error. -.SH "SEE ALSO" -libzip(3), -zip_source(3), -zip_source_begin_write(3), -zip_source_commit_write(3), -zip_source_rollback_write(3), -zip_source_seek_write(3), -zip_source_tell_write(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_write.mdoc b/libzip-1.2.0/man/zip_source_write.mdoc deleted file mode 100644 index b7e79620b..000000000 --- a/libzip-1.2.0/man/zip_source_write.mdoc +++ /dev/null @@ -1,77 +0,0 @@ -.\" zip_source_write.mdoc -- write data to zip source -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd November 18, 2014 -.Dt ZIP_SOURCE_WRITE 3 -.Os -.Sh NAME -.Nm zip_source_write -.Nd write data to zip source -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_int64_t -.Fn zip_source_write "zip_source_t *source" "const void *data" "zip_uint64_t len" -.Sh DESCRIPTION -The function -.Fn zip_source_write -writes -.Ar len -bytes from the buffer -.Ar data -to the zip source -.Ar source -at the current write offset. -.Pp -The zip source -.Ar source -has to be prepared for writing by calling -.Xr zip_source_begin_write 3 -first. -.Sh RETURN VALUES -Upon successful completion the number of bytes written is returned. -Otherwise, \-1 is returned and the error information in -.Ar source -is set to indicate the error. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_source 3 , -.Xr zip_source_begin_write 3 , -.Xr zip_source_commit_write 3 , -.Xr zip_source_rollback_write 3 , -.Xr zip_source_seek_write 3 , -.Xr zip_source_tell_write 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_source_zip.man b/libzip-1.2.0/man/zip_source_zip.man deleted file mode 100644 index a08803606..000000000 --- a/libzip-1.2.0/man/zip_source_zip.man +++ /dev/null @@ -1,93 +0,0 @@ -.TH "ZIP_SOURCE_ZIP" "3" "August 2, 2014" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_source_zip\fR -\- create data source from zip file -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIzip_source_t *\fR -.PD 0 -.HP 4n -\fBzip_source_zip\fR(\fIzip_t\ *archive\fR, \fIzip_t\ *srcarchive\fR, \fIzip_uint64_t\ srcidx\fR, \fIzip_flags_t\ flags\fR, \fIzip_uint64_t\ start\fR, \fIzip_int64_t\ len\fR); -.PD -.SH "DESCRIPTION" -The function -\fBzip_source_zip\fR() -creates a zip source from a file in a zip archive. -The -\fIsrcarchive\fR -argument is the (open) zip archive containing the source zip file -at index -\fIsrcidx\fR. -\fIlen\fR -bytes from offset -\fIstart\fR -will be used in the zip_source. -If -\fIlen\fR -is 0 or \-1, the rest of the file, starting from -\fIstart\fR, -is used. -If -\fIstart\fR -is zero and -\fIlen\fR -is \-1, the whole file will be copied without decompressing it. -.PP -Supported flags are: -.TP 23n -\fRZIP_FL_UNCHANGED\fR -Try to get the original data without any changes that may have been -made to -\fIsrcarchive\fR -after opening it. -.TP 23n -\fRZIP_FL_RECOMPRESS\fR -When adding the data from -\fIsrcarchive\fR, -re-compress it using the current settings instead of copying the -compressed data. -.SH "RETURN VALUES" -Upon successful completion, the created source is returned. -Otherwise, -\fRNULL\fR -is returned and the error code in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_source_zip\fR() -fails if: -.TP 19n -[\fRZIP_ER_CHANGED\fR] -Unchanged data was requested, but it is not available. -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIsrcarchive\fR, -\fIsrcidx\fR, -\fIstart\fR, -or -\fIlen\fR -are invalid. -.TP 19n -[\fRZIP_ER_MEMORY\fR] -Required memory could not be allocated. -.PD 0 -.PP -Additionally, it can return all error codes from -\fBzip_stat_index\fR() -and -\fBzip_fopen_index\fR(). -.PD -.SH "SEE ALSO" -libzip(3), -zip_add(3), -zip_replace(3), -zip_source(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_source_zip.mdoc b/libzip-1.2.0/man/zip_source_zip.mdoc deleted file mode 100644 index e33295802..000000000 --- a/libzip-1.2.0/man/zip_source_zip.mdoc +++ /dev/null @@ -1,117 +0,0 @@ -.\" zip_source_zip.mdoc -- create data source from zip file -.\" Copyright (C) 2004-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd August 2, 2014 -.Dt ZIP_SOURCE_ZIP 3 -.Os -.Sh NAME -.Nm zip_source_zip -.Nd create data source from zip file -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft zip_source_t * -.Fn zip_source_zip "zip_t *archive" "zip_t *srcarchive" "zip_uint64_t srcidx" "zip_flags_t flags" "zip_uint64_t start" "zip_int64_t len" -.Sh DESCRIPTION -The function -.Fn zip_source_zip -creates a zip source from a file in a zip archive. -The -.Ar srcarchive -argument is the (open) zip archive containing the source zip file -at index -.Ar srcidx . -.Ar len -bytes from offset -.Ar start -will be used in the zip_source. -If -.Ar len -is 0 or \-1, the rest of the file, starting from -.Ar start , -is used. -If -.Ar start -is zero and -.Ar len -is \-1, the whole file will be copied without decompressing it. -.Pp -Supported flags are: -.Bl -tag -width XZIPXFLXRECOMPRESSXXX -.It Dv ZIP_FL_UNCHANGED -Try to get the original data without any changes that may have been -made to -.Ar srcarchive -after opening it. -.It Dv ZIP_FL_RECOMPRESS -When adding the data from -.Ar srcarchive , -re-compress it using the current settings instead of copying the -compressed data. -.El -.Sh RETURN VALUES -Upon successful completion, the created source is returned. -Otherwise, -.Dv NULL -is returned and the error code in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Fn zip_source_zip -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_CHANGED -Unchanged data was requested, but it is not available. -.It Bq Er ZIP_ER_INVAL -.Ar srcarchive , -.Ar srcidx , -.Ar start , -or -.Ar len -are invalid. -.It Bq Er ZIP_ER_MEMORY -Required memory could not be allocated. -.El -Additionally, it can return all error codes from -.Fn zip_stat_index -and -.Fn zip_fopen_index . -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_add 3 , -.Xr zip_replace 3 , -.Xr zip_source 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_stat.man b/libzip-1.2.0/man/zip_stat.man deleted file mode 100644 index c7ce05773..000000000 --- a/libzip-1.2.0/man/zip_stat.man +++ /dev/null @@ -1,145 +0,0 @@ -.TH "ZIP_STAT" "3" "December 29, 2016" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_stat\fR, -\fBzip_stat_index\fR -\- get information about file -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_stat\fR(\fIzip_t\ *archive\fR, \fIconst\ char\ *fname\fR, \fIzip_flags_t\ flags\fR, \fIzip_stat_t\ *sb\fR); -.PD -.PP -\fIint\fR -.PD 0 -.HP 4n -\fBzip_stat_index\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_flags_t\ flags\fR, \fIzip_stat_t\ *sb\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_stat\fR() -function obtains information about the file named -\fIfname\fR -in -\fIarchive\fR. -The -\fIflags\fR -argument specifies how the name lookup should be done. -Its values are described in -zip_name_locate(3). -Also, -\fRZIP_FL_UNCHANGED\fR -may be -\fIor\fR'ed -to it to request information about the original file in the archive, -ignoring any changes made. -.PP -The -\fBzip_stat_index\fR() -function obtains information about the file at position -\fIindex\fR. -.PP -The -\fIsb\fR -argument is a pointer to a -\fIstruct zip_stat\fR -(shown below), into which information about the file is placed. -.nf -.sp -.RS 0n -struct zip_stat { - zip_uint64_t valid; /* which fields have valid values */ - const char *name; /* name of the file */ - zip_uint64_t index; /* index within archive */ - zip_uint64_t size; /* size of file (uncompressed) */ - zip_uint64_t comp_size; /* size of file (compressed) */ - time_t mtime; /* modification time */ - zip_uint32_t crc; /* crc of file data */ - zip_uint16_t comp_method; /* compression method used */ - zip_uint16_t encryption_method; /* encryption method used */ - zip_uint32_t flags; /* reserved for future use */ -}; -.RE -.fi -The structure pointed to by -\fIsb\fR -must be allocated before calling -\fBzip_stat\fR() -or -\fBzip_stat_index\fR(). -.PP -The -\fIvalid\fR -field of the structure specifies which other fields are valid. -Check if the flag defined by the following defines are in -\fIvalid\fR -before accessing the fields: -.RS 6n -.PD 0 -.TP 30n -\fRZIP_STAT_NAME\fR -\fIname\fR -.TP 30n -\fRZIP_STAT_INDEX\fR -\fIindex\fR -.TP 30n -\fRZIP_STAT_SIZE\fR -\fIsize\fR -.TP 30n -\fRZIP_STAT_COMP_SIZE\fR -\fIcomp_size\fR -.TP 30n -\fRZIP_STAT_MTIME\fR -\fImtime\fR -.TP 30n -\fRZIP_STAT_CRC\fR -\fIcrc\fR -.TP 30n -\fRZIP_STAT_COMP_METHOD\fR -\fIcomp_method\fR -.TP 30n -\fRZIP_STAT_ENCRYPTION_METHOD\fR -\fIencryption_method\fR -.TP 30n -\fRZIP_STAT_FLAGS\fR -\fIflags\fR -.RE -.PD -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -The function -\fBzip_stat\fR() -can fail for any of the errors specified for the routine -zip_name_locate(3). -.PP -The function -\fBzip_stat_index\fR() -fails and sets the error information to -\fRZIP_ER_INVAL\fR -if -\fIindex\fR -is invalid. -If -\fRZIP_FL_UNCHANGED\fR -is not set and no information can be obtained from the source -callback, the error information is set to -\fRZIP_ER_CHANGED\fR. -.SH "SEE ALSO" -libzip(3), -zip_get_num_entries(3), -zip_name_locate(3), -zip_stat_init(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_stat.mdoc b/libzip-1.2.0/man/zip_stat.mdoc deleted file mode 100644 index 676781683..000000000 --- a/libzip-1.2.0/man/zip_stat.mdoc +++ /dev/null @@ -1,155 +0,0 @@ -.\" zip_stat.mdoc -- get information about file -.\" Copyright (C) 2003-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 29, 2016 -.Dt ZIP_STAT 3 -.Os -.Sh NAME -.Nm zip_stat , -.Nm zip_stat_index -.Nd get information about file -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_stat "zip_t *archive" "const char *fname" "zip_flags_t flags" "zip_stat_t *sb" -.Ft int -.Fn zip_stat_index "zip_t *archive" "zip_uint64_t index" "zip_flags_t flags" "zip_stat_t *sb" -.Sh DESCRIPTION -The -.Fn zip_stat -function obtains information about the file named -.Ar fname -in -.Ar archive . -The -.Ar flags -argument specifies how the name lookup should be done. -Its values are described in -.Xr zip_name_locate 3 . -Also, -.Dv ZIP_FL_UNCHANGED -may be -.Em or Ns No 'ed -to it to request information about the original file in the archive, -ignoring any changes made. -.Pp -The -.Fn zip_stat_index -function obtains information about the file at position -.Ar index . -.Pp -The -.Ar sb -argument is a pointer to a -.Ft struct zip_stat -(shown below), into which information about the file is placed. -.Bd -literal -struct zip_stat { - zip_uint64_t valid; /* which fields have valid values */ - const char *name; /* name of the file */ - zip_uint64_t index; /* index within archive */ - zip_uint64_t size; /* size of file (uncompressed) */ - zip_uint64_t comp_size; /* size of file (compressed) */ - time_t mtime; /* modification time */ - zip_uint32_t crc; /* crc of file data */ - zip_uint16_t comp_method; /* compression method used */ - zip_uint16_t encryption_method; /* encryption method used */ - zip_uint32_t flags; /* reserved for future use */ -}; -.Ed -The structure pointed to by -.Ar sb -must be allocated before calling -.Fn zip_stat -or -.Fn zip_stat_index . -.Pp -The -.Ar valid -field of the structure specifies which other fields are valid. -Check if the flag defined by the following defines are in -.Ar valid -before accessing the fields: -.Bl -tag -width ZIP_STAT_ENCRYPTION_METHODXX -compact -offset indent -.It Dv ZIP_STAT_NAME -.Ar name -.It Dv ZIP_STAT_INDEX -.Ar index -.It Dv ZIP_STAT_SIZE -.Ar size -.It Dv ZIP_STAT_COMP_SIZE -.Ar comp_size -.It Dv ZIP_STAT_MTIME -.Ar mtime -.It Dv ZIP_STAT_CRC -.Ar crc -.It Dv ZIP_STAT_COMP_METHOD -.Ar comp_method -.It Dv ZIP_STAT_ENCRYPTION_METHOD -.Ar encryption_method -.It Dv ZIP_STAT_FLAGS -.Ar flags -.El -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error information in -.Ar archive -is set to indicate the error. -.Sh ERRORS -The function -.Fn zip_stat -can fail for any of the errors specified for the routine -.Xr zip_name_locate 3 . -.Pp -The function -.Fn zip_stat_index -fails and sets the error information to -.Er ZIP_ER_INVAL -if -.Ar index -is invalid. -If -.Dv ZIP_FL_UNCHANGED -is not set and no information can be obtained from the source -callback, the error information is set to -.Er ZIP_ER_CHANGED . -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_get_num_entries 3 , -.Xr zip_name_locate 3 , -.Xr zip_stat_init 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_stat_init.man b/libzip-1.2.0/man/zip_stat_init.man deleted file mode 100644 index 142a74e3d..000000000 --- a/libzip-1.2.0/man/zip_stat_init.man +++ /dev/null @@ -1,45 +0,0 @@ -.TH "ZIP_STAT_INIT" "3" "September 22, 2013" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_stat_init\fR -\- initialize zip_stat structure -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIvoid\fR -.PD 0 -.HP 4n -\fBzip_stat_init\fR(\fIzip_stat_t\ *sb\fR); -.PD -.SH "DESCRIPTION" -The -\fBzip_stat_init\fR() -function initializes the members of a struct zip_stat. -The current members are described in -zip_stat(3), -but this function should be used to initialize it to -make sure none are missed. -The structure pointed to by -\fIsb\fR -must be allocated before calling -\fBzip_stat_init\fR(). -.PP -This function should be used by functions provided to -zip_source_function(3) -when returning -\fRZIP_SOURCE_STAT\fR -information to make sure all fields are initialized. -.SH "RETURN VALUES" -If -\fIsb\fR -is valid, the function is always successful. -.SH "SEE ALSO" -libzip(3), -zip_stat(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_stat_init.mdoc b/libzip-1.2.0/man/zip_stat_init.mdoc deleted file mode 100644 index 3fe8a9356..000000000 --- a/libzip-1.2.0/man/zip_stat_init.mdoc +++ /dev/null @@ -1,73 +0,0 @@ -.\" zip_stat_init.mdoc -- init zip_stat structure -.\" Copyright (C) 2006-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd September 22, 2013 -.Dt ZIP_STAT_INIT 3 -.Os -.Sh NAME -.Nm zip_stat_init -.Nd initialize zip_stat structure -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft void -.Fn zip_stat_init "zip_stat_t *sb" -.Sh DESCRIPTION -The -.Fn zip_stat_init -function initializes the members of a struct zip_stat. -The current members are described in -.Xr zip_stat 3 , -but this function should be used to initialize it to -make sure none are missed. -The structure pointed to by -.Ar sb -must be allocated before calling -.Fn zip_stat_init . -.Pp -This function should be used by functions provided to -.Xr zip_source_function 3 -when returning -.Dv ZIP_SOURCE_STAT -information to make sure all fields are initialized. -.Sh RETURN VALUES -If -.Ar sb -is valid, the function is always successful. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_stat 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_unchange.man b/libzip-1.2.0/man/zip_unchange.man deleted file mode 100644 index 38a24746f..000000000 --- a/libzip-1.2.0/man/zip_unchange.man +++ /dev/null @@ -1,44 +0,0 @@ -.TH "ZIP_UNCHANGE" "3" "April 23, 2006" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_unchange\fR -\- undo changes to file in zip archive -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_unchange\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR); -.PD -.SH "DESCRIPTION" -Changes to the file at position -\fIindex\fR -are reverted. -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error code in -\fIarchive\fR -is set to indicate the error. -.SH "ERRORS" -\fBzip_unchange\fR() -fails if: -.TP 19n -[\fRZIP_ER_EXISTS\fR] -Unchanging the name would result in a duplicate name in the archive. -.TP 19n -[\fRZIP_ER_INVAL\fR] -\fIindex\fR -is not a valid file index in -\fIzip\fR. -.SH "SEE ALSO" -libzip(3), -zip_unchange_all(3), -zip_unchange_archive(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_unchange.mdoc b/libzip-1.2.0/man/zip_unchange.mdoc deleted file mode 100644 index ffa7e1c15..000000000 --- a/libzip-1.2.0/man/zip_unchange.mdoc +++ /dev/null @@ -1,72 +0,0 @@ -.\" zip_unchange.mdoc -- undo changes to file in zip archive -.\" Copyright (C) 2003-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd April 23, 2006 -.Dt ZIP_UNCHANGE 3 -.Os -.Sh NAME -.Nm zip_unchange -.Nd undo changes to file in zip archive -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_unchange "zip_t *archive" "zip_uint64_t index" -.Sh DESCRIPTION -Changes to the file at position -.Ar index -are reverted. -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error code in -.Ar archive -is set to indicate the error. -.Sh ERRORS -.Fn zip_unchange -fails if: -.Bl -tag -width Er -.It Bq Er ZIP_ER_EXISTS -Unchanging the name would result in a duplicate name in the archive. -.It Bq Er ZIP_ER_INVAL -.Ar index -is not a valid file index in -.Ar zip . -.El -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_unchange_all 3 , -.Xr zip_unchange_archive 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_unchange_all.man b/libzip-1.2.0/man/zip_unchange_all.man deleted file mode 100644 index 9cf0381a0..000000000 --- a/libzip-1.2.0/man/zip_unchange_all.man +++ /dev/null @@ -1,33 +0,0 @@ -.TH "ZIP_UNCHANGE_ALL" "3" "April 23, 2006" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_unchange_all\fR -\- undo all changes in a zip archive -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_unchange_all\fR(\fIzip_t\ *archive\fR); -.PD -.SH "DESCRIPTION" -All changes to files and global information in -\fIarchive\fR -are reverted. -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error code in -\fIarchive\fR -is set to indicate the error. -.SH "SEE ALSO" -libzip(3), -zip_unchange(3), -zip_unchange_archive(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_unchange_all.mdoc b/libzip-1.2.0/man/zip_unchange_all.mdoc deleted file mode 100644 index 9f6b3f84b..000000000 --- a/libzip-1.2.0/man/zip_unchange_all.mdoc +++ /dev/null @@ -1,61 +0,0 @@ -.\" zip_unchange_all.mdoc -- undo changes to all files in zip archive -.\" Copyright (C) 2003-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd April 23, 2006 -.Dt ZIP_UNCHANGE_ALL 3 -.Os -.Sh NAME -.Nm zip_unchange_all -.Nd undo all changes in a zip archive -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_unchange_all "zip_t *archive" -.Sh DESCRIPTION -All changes to files and global information in -.Ar archive -are reverted. -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error code in -.Ar archive -is set to indicate the error. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_unchange 3 , -.Xr zip_unchange_archive 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zip_unchange_archive.man b/libzip-1.2.0/man/zip_unchange_archive.man deleted file mode 100644 index 9b71cfa68..000000000 --- a/libzip-1.2.0/man/zip_unchange_archive.man +++ /dev/null @@ -1,33 +0,0 @@ -.TH "ZIP_UNCHANGE_ARCHIVE" "3" "May 14, 2008" "NiH" "Library Functions Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzip_unchange_archive\fR -\- undo global changes to zip archive -.SH "LIBRARY" -libzip (-lzip) -.SH "SYNOPSIS" -\fB#include \fR -.sp -\fIint\fR -.PD 0 -.HP 4n -\fBzip_unchange_archive\fR(\fIzip_t\ *archive\fR); -.PD -.SH "DESCRIPTION" -Revert all global changes to the archive -\fIarchive\fR. -This reverts changes to the archive comment and global flags. -.SH "RETURN VALUES" -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error code in -\fIarchive\fR -is set to indicate the error. -.SH "SEE ALSO" -libzip(3), -zip_unchange(3), -zip_unchange_all(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zip_unchange_archive.mdoc b/libzip-1.2.0/man/zip_unchange_archive.mdoc deleted file mode 100644 index b306b2c79..000000000 --- a/libzip-1.2.0/man/zip_unchange_archive.mdoc +++ /dev/null @@ -1,61 +0,0 @@ -.\" zip_unchange_archive.mdoc -- undo changes to all files in zip archive -.\" Copyright (C) 2006-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd May 14, 2008 -.Dt ZIP_UNCHANGE_ARCHIVE 3 -.Os -.Sh NAME -.Nm zip_unchange_archive -.Nd undo global changes to zip archive -.Sh LIBRARY -libzip (-lzip) -.Sh SYNOPSIS -.In zip.h -.Ft int -.Fn zip_unchange_archive "zip_t *archive" -.Sh DESCRIPTION -Revert all global changes to the archive -.Ar archive . -This reverts changes to the archive comment and global flags. -.Sh RETURN VALUES -Upon successful completion 0 is returned. -Otherwise, \-1 is returned and the error code in -.Ar archive -is set to indicate the error. -.Sh SEE ALSO -.Xr libzip 3 , -.Xr zip_unchange 3 , -.Xr zip_unchange_all 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zipcmp.man b/libzip-1.2.0/man/zipcmp.man deleted file mode 100644 index 32780293e..000000000 --- a/libzip-1.2.0/man/zipcmp.man +++ /dev/null @@ -1,61 +0,0 @@ -.TH "ZIPCMP" "1" "January 19, 2016" "NiH" "General Commands Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzipcmp\fR -\- compare contents of zip archives -.SH "SYNOPSIS" -.HP 7n -\fBzipcmp\fR -[\fB\-hipqtVv\fR] -\fIarchive1\ archive2\fR -.SH "DESCRIPTION" -\fBzipcmp\fR -compares the zip archives or directories -\fIarchive1\fR -and -\fIarchive2\fR -and checks if they contain the same files, comparing their names, -uncompressed sizes, and CRCs. -File order and compressed size differences are ignored. -.PP -Supported options: -.TP 5n -\fB\-h\fR -Display a short help message and exit. -.TP 5n -\fB\-i\fR -Compare names ignoring case distinctions. -.TP 5n -\fB\-p\fR -Enable paranoid checks. -Compares extra fields and other meta data. -(Automatically disabled if one of the archives is a directory.) -.TP 5n -\fB\-q\fR -Quiet mode. -Compare -\fB\-v\fR. -.TP 5n -\fB\-t\fR -Test zip files by comparing the contents to their checksums. -.TP 5n -\fB\-V\fR -Display version information and exit. -.TP 5n -\fB\-v\fR -Verbose mode. -Print details about differences to stdout. -(This is the default.) -.SH "EXIT STATUS" -\fBzipcmp\fR -exits 0 if the two archives contain the same files, 1 if they differ, -and >1 if an error occurred. -.SH "SEE ALSO" -zipmerge(1), -ziptool(1), -libzip(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zipcmp.mdoc b/libzip-1.2.0/man/zipcmp.mdoc deleted file mode 100644 index c22bff39e..000000000 --- a/libzip-1.2.0/man/zipcmp.mdoc +++ /dev/null @@ -1,87 +0,0 @@ -.\" zipcmp.mdoc -- compare zip archives -.\" Copyright (C) 2003-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd January 19, 2016 -.Dt ZIPCMP 1 -.Os -.Sh NAME -.Nm zipcmp -.Nd compare contents of zip archives -.Sh SYNOPSIS -.Nm -.Op Fl hipqtVv -.Ar archive1 archive2 -.Sh DESCRIPTION -.Nm -compares the zip archives or directories -.Ar archive1 -and -.Ar archive2 -and checks if they contain the same files, comparing their names, -uncompressed sizes, and CRCs. -File order and compressed size differences are ignored. -.Pp -Supported options: -.Bl -tag -width MMM -.It Fl h -Display a short help message and exit. -.It Fl i -Compare names ignoring case distinctions. -.It Fl p -Enable paranoid checks. -Compares extra fields and other meta data. -(Automatically disabled if one of the archives is a directory.) -.It Fl q -Quiet mode. -Compare -.Fl v . -.It Fl t -Test zip files by comparing the contents to their checksums. -.It Fl V -Display version information and exit. -.It Fl v -Verbose mode. -Print details about differences to stdout. -(This is the default.) -.El -.Sh EXIT STATUS -.Nm -exits 0 if the two archives contain the same files, 1 if they differ, -and \*[Gt]1 if an error occurred. -.Sh SEE ALSO -.Xr zipmerge 1 , -.Xr ziptool 1 , -.Xr libzip 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/zipmerge.man b/libzip-1.2.0/man/zipmerge.man deleted file mode 100644 index ba8418abe..000000000 --- a/libzip-1.2.0/man/zipmerge.man +++ /dev/null @@ -1,60 +0,0 @@ -.TH "ZIPMERGE" "1" "January 19, 2016" "NiH" "General Commands Manual" -.nh -.if n .ad l -.SH "NAME" -\fBzipmerge\fR -\- merge zip archives -.SH "SYNOPSIS" -.HP 9n -\fBzipmerge\fR -[\fB\-DhIiSsV\fR] -\fItarget-zip\fR -\fIsource-zip\fR\ [\fIsource-zip\ ...\fR] -.SH "DESCRIPTION" -\fBzipmerge\fR -merges the source zip archives -\fIsource-zip\fR -into the target zip archive -\fItarget-zip\fR. -By default, files in the source zip archives overwrite -existing files of the same name in the target zip archive. -.PP -Supported options: -.TP 5n -\fB\-D\fR -Ignore directory components in file name comparisons. -.TP 5n -\fB\-h\fR -Display a short help message and exit. -.TP 5n -\fB\-I\fR -Ignore case in file name comparisons -.TP 5n -\fB\-i\fR -Ask before overwriting files. -See also -\fB\-s\fR. -.TP 5n -\fB\-S\fR -Do not overwrite files that have the same size and -CRC32 in both the source and target archives. -.TP 5n -\fB\-s\fR -When -\fB\-i\fR -is given, do not before overwriting files that have the same size -and CRC32. -.TP 5n -\fB\-V\fR -Display version information and exit. -.SH "EXIT STATUS" -\fBzipmerge\fR -exits 0 on success and >1 if an error occurred. -.SH "SEE ALSO" -zipcmp(1), -ziptool(1), -libzip(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/zipmerge.mdoc b/libzip-1.2.0/man/zipmerge.mdoc deleted file mode 100644 index 40a8cc51a..000000000 --- a/libzip-1.2.0/man/zipmerge.mdoc +++ /dev/null @@ -1,86 +0,0 @@ -.\" zipmerge.mdoc -- merge zip archives -.\" Copyright (C) 2004-2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd January 19, 2016 -.Dt ZIPMERGE 1 -.Os -.Sh NAME -.Nm zipmerge -.Nd merge zip archives -.Sh SYNOPSIS -.Nm -.Op Fl DhIiSsV -.Ar target-zip -.Ar source-zip Op Ar source-zip ... -.Sh DESCRIPTION -.Nm -merges the source zip archives -.Ar source-zip -into the target zip archive -.Ar target-zip . -By default, files in the source zip archives overwrite -existing files of the same name in the target zip archive. -.Pp -Supported options: -.Bl -tag -width MMM -.It Fl D -Ignore directory components in file name comparisons. -.It Fl h -Display a short help message and exit. -.It Fl I -Ignore case in file name comparisons -.It Fl i -Ask before overwriting files. -See also -.Fl s . -.It Fl S -Do not overwrite files that have the same size and -CRC32 in both the source and target archives. -.It Fl s -When -.Fl i -is given, do not before overwriting files that have the same size -and CRC32. -.It Fl V -Display version information and exit. -.El -.Sh EXIT STATUS -.Nm -exits 0 on success and \*[Gt]1 if an error occurred. -.Sh SEE ALSO -.Xr zipcmp 1 , -.Xr ziptool 1 , -.Xr libzip 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/man/ziptool.man b/libzip-1.2.0/man/ziptool.man deleted file mode 100644 index d5a5e84e7..000000000 --- a/libzip-1.2.0/man/ziptool.man +++ /dev/null @@ -1,388 +0,0 @@ -.TH "ZIPTOOL" "1" "December 16, 2016" "NiH" "General Commands Manual" -.nh -.if n .ad l -.SH "NAME" -\fBziptool\fR -\- modify zip archives -.SH "SYNOPSIS" -.HP 8n -\fBziptool\fR -[\fB\-cegHhmnrst\fR] -[\fB\-l\fR\ \fIlength\fR] -[\fB\-o\fR\ \fIoffset\fR] -\fIzip-archive\fR -\fBcommand\fR\ [\fIcommand-args\ ...\fR] -[\fBcommand\fR\ [\fIcommand-args\ ...\fR]\ ...] -.SH "DESCRIPTION" -\fBziptool\fR -modifies the zip archive -\fIzip-archive\fR -according to the -\fIcommands\fR -given. -.PP -Supported options: -.TP 13n -\fB\-c\fR -Check zip archive consistency when opening it. -.TP 13n -\fB\-e\fR -Error if archive already exists (only useful with -\fB\-n\fR). -.TP 13n -\fB\-g\fR -Guess file name encoding (for -\fBstat\fR -command). -.TP 13n -\fB\-H\fR -Write files with -\(Lqholes\(Rq -compactly. -In other words, when the modified zip archive contains long runs of zeroes, -write a basic run-length encoded block instead. -\fINote\fR: -This command is for internal testing of -libzip(3) -and will usually create invalid zip archives. -.TP 13n -\fB\-h\fR -Display help. -.TP 13n -\fB\-l\fR \fIlength\fR -Only read -\fIlength\fR -bytes of archive. -See also -\fB\-o\fR. -.TP 13n -\fB\-m\fR -Read archive into memory, and modify there; write out at end. -\fINote\fR: -This command is for internal testing of -libzip(3). -.TP 13n -\fB\-n\fR -Create archive if it doesn't exist. -See also -\fB\-e\fR. -.TP 13n -\fB\-o\fR \fIoffset\fR -Start reading input archive from -\fIoffset\fR. -See also -\fB\-l\fR. -.TP 13n -\fB\-r\fR -Print raw file name encoding without translation (for -\fBstat\fR -command). -.TP 13n -\fB\-s\fR -Follow file name convention strictly (for -\fBstat\fR -command). -.TP 13n -\fB\-t\fR -Disregard current file contents, if any. -\fINote\fR: -use this with care, it deletes all existing file contents when -you modify the archive. -.SS "Commands" -For all commands below, the index is zero-based. -In other words, the first entry in the zip archive has index 0. -.PP -Supported commands and arguments are: -.TP 12n -\fBadd\fR \fIname content\fR -Add file called -\fIname\fR -using the string -\fIcontent\fR -from the command line as data. -.TP 12n -\fBadd_dir\fR \fIname\fR -Add directory -\fIname\fR. -.TP 12n -\fBadd_file\fR \fIname file_to_add offset len\fR -Add file -\fIname\fR -to archive, using -\fIlen\fR -bytes from the file -\fIfile_to_add\fR -as input data, starting at -\fIoffset\fR. -.TP 12n -\fBadd_from_zip\fR \fIname archivename index offset len\fR -Add file called -\fIname\fR -to archive using data from another zip archive -\fIarchivename\fR -using the entry with index -\fIindex\fR -and reading -\fIlen\fR -bytes from -\fIoffset\fR. -.TP 12n -\fBadd_nul\fR \fIname length\fR -Add a file -\fIname\fR -consisting of -\fIlength\fR -NUL bytes. -(Mostly useful for testing.) -.TP 12n -\fBcat\fR \fIindex\fR -Output file contents for entry -\fIindex\fR -to stdout. -.TP 12n -\fBcount_extra\fR \fIindex flags\fR -Print the number of extra fields for archive entry -\fIindex\fR -using -\fIflags\fR. -.TP 12n -\fBcount_extra_by_id\fR \fIindex extra_id flags\fR -Print number of extra fields of type -\fIextra_id\fR -for archive entry -\fIindex\fR -using -\fIflags\fR. -.TP 12n -\fBdelete\fR \fIindex\fR -Remove entry at -\fIindex\fR -from zip archive. -.TP 12n -\fBdelete_extra\fR \fIindex extra_idx flags\fR -Remove extra field number -\fIextra_idx\fR -from archive entry -\fIindex\fR -using -\fIflags\fR. -.TP 12n -\fBdelete_extra_by_id\fR \fIindex extra_id extra_index flags\fR -Remove extra field number -\fIextra_index\fR -of type -\fIextra_id\fR -from archive entry -\fIindex\fR -using -\fIflags\fR. -.TP 12n -\fBget_archive_comment\fR -Print archive comment. -.TP 12n -\fBget_extra\fR \fIindex extra_index flags\fR -Print extra field -\fIextra_index\fR -for archive entry -\fIindex\fR -using -\fIflags\fR. -.TP 12n -\fBget_extra_by_id\fR \fIindex extra_id extra_index flags\fR -Print extra field -\fIextra_index\fR -of type -\fIextra_id\fR -for archive entry -\fIindex\fR -using -\fIflags\fR. -.TP 12n -\fBget_file_comment\fR \fIindex\fR -Get file comment for archive entry -\fIindex\fR. -.TP 12n -\fBget_num_entries\fR \fIflags\fR -Print number of entries in archive using -\fIflags\fR. -.TP 12n -\fBname_locate\fR \fIname flags\fR -Find entry in archive with the filename -\fIname\fR -using -\fIflags\fR -and print its index. -.TP 12n -\fBrename\fR \fIindex name\fR -Rename archive entry -\fIindex\fR -to -\fIname\fR. -.TP 12n -\fBreplace_file_contents\fR \fIindex data\fR -Replace file contents for archive entry -\fIindex\fR -with the string -\fIdata\fR. -.TP 12n -\fBset_archive_comment\fR \fIcomment\fR -Set archive comment to -\fIcomment\fR. -.TP 12n -\fBset_extra\fR \fIindex extra_id extra_index flags value\fR -Set extra field number -\fIextra_index\fR -of type -\fIextra_id\fR -for archive entry -\fIindex\fR -using -\fIflags\fR -to -\fIvalue\fR. -.TP 12n -\fBset_file_comment\fR \fIindex comment\fR -Set file comment for archive entry -\fIindex\fR -to string -\fIcomment\fR. -.TP 12n -\fBset_file_compression\fR \fIindex method compression_flags\fR -Set file compression method for archive entry -\fIindex\fR -to -\fImethod\fR -using -\fIcompression_flags\fR. -\fINote\fR: -Currently, -\fIcompression_flags\fR -are ignored. -.TP 12n -\fBset_file_encryption\fR \fIindex method password\fR -Set file encryption method for archive entry -\fIindex\fR -to -\fImethod\fR -with password -\fIpassword\fR. -.TP 12n -\fBset_file_mtime\fR \fIindex timestamp\fR -Set file modification time for archive entry -\fIindex\fR -to UNIX mtime -\fItimestamp\fR. -.TP 12n -\fBset_file_mtime_all\fR \fItimestamp\fR -Set file modification time for all archive entries to UNIX mtime -\fItimestamp\fR. -.TP 12n -\fBset_password\fR \fIpassword\fR -Set default password for encryption/decryption to -\fIpassword\fR. -.TP 12n -\fBstat\fR \fIindex\fR -Print information about archive entry -\fIindex\fR. -.TP 12n -\fBunchange_all\fR -Revert all changes up to that point. -Mostly useful for testing. -.TP 12n -\fBzin_close\fR \fIindex\fR -Close input zip_source -\fIindex\fR. -For internal tests only. -.SS "Flags" -Some commands take flag arguments. -Supported flags are: -.RS 6n -.PD 0 -.TP 5n -\fIC\fR -\fRZIP_FL_NOCASE\fR -.TP 5n -\fIc\fR -\fRZIP_FL_CENTRAL\fR -.TP 5n -\fId\fR -\fRZIP_FL_NODIR\fR -.TP 5n -\fIl\fR -\fRZIP_FL_LOCAL\fR -.TP 5n -\fIu\fR -\fRZIP_FL_UNCHANGED\fR -.RE -.PD -.SS "Compression Methods" -Some commands take compression method arguments. -Supported methods are: -.RS 6n -.PD 0 -.TP 4n -\fB\(bu\fR -\fRdefault\fR -.TP 4n -\fB\(bu\fR -\fRdeflate\fR -.TP 4n -\fB\(bu\fR -\fRstore\fR -.RE -.PD -.SS "Encryption Methods" -Some commands take encryption method arguments. -Supported methods are: -.RS 6n -.PD 0 -.TP 4n -\fB\(bu\fR -\fRnone\fR -.TP 4n -\fB\(bu\fR -\fRAES-128\fR -.TP 4n -\fB\(bu\fR -\fRAES-192\fR -.TP 4n -\fB\(bu\fR -\fRAES-256\fR -.RE -.PD -.SH "EXIT STATUS" -.br -The \fBziptool\fR utility exits\~0 on success, and\~>0 if an error occurs. -.SH "EXAMPLES" -Add a file called -\fIteststring.txt\fR -to the zip archive -\fItestbuffer.zip\fR -with data -\(LqThis is a test.\en\(Rq -where -\(Lq\en\(Rq -is replaced with a newline character: -.nf -.sp -.RS 6n -ziptool testbuffer.zip add teststring.txt \\"This is a test.\en\\" -.RE -.fi -.PP -Delete the first file from the zip archive -\fItestfile.zip\fR: -.nf -.sp -.RS 6n -ziptool testfile.zip delete 0 -.RE -.fi -.SH "SEE ALSO" -zipcmp(1), -zipmerge(1), -libzip(3) -.SH "AUTHORS" -Dieter Baron <\fIdillo@nih.at\fR> -and -Thomas Klausner <\fItk@giga.or.at\fR> diff --git a/libzip-1.2.0/man/ziptool.mdoc b/libzip-1.2.0/man/ziptool.mdoc deleted file mode 100644 index 4eca252b0..000000000 --- a/libzip-1.2.0/man/ziptool.mdoc +++ /dev/null @@ -1,356 +0,0 @@ -.\" ziptool.mdoc -- modify zip archives in multiple ways -.\" Copyright (C) 2016 Dieter Baron and Thomas Klausner -.\" -.\" This file is part of libzip, a library to manipulate ZIP archives. -.\" The authors can be contacted at -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in -.\" the documentation and/or other materials provided with the -.\" distribution. -.\" 3. The names of the authors may not be used to endorse or promote -.\" products derived from this software without specific prior -.\" written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd December 16, 2016 -.Dt ZIPTOOL 1 -.Os -.Sh NAME -.Nm ziptool -.Nd modify zip archives -.Sh SYNOPSIS -.Nm -.Op Fl cegHhmnrst -.Op Fl l Ar length -.Op Fl o Ar offset -.Ar zip-archive -.Cm command Op Ar command-args ... -.Op Cm command Oo Ar command-args ... Oc ... -.Sh DESCRIPTION -.Nm -modifies the zip archive -.Ar zip-archive -according to the -.Ar commands -given. -.Pp -Supported options: -.Bl -tag -width MoMoffsetMM -.It Fl c -Check zip archive consistency when opening it. -.It Fl e -Error if archive already exists (only useful with -.Fl n ) . -.It Fl g -Guess file name encoding (for -.Cm stat -command). -.It Fl H -Write files with -.Dq holes -compactly. -In other words, when the modified zip archive contains long runs of zeroes, -write a basic run-length encoded block instead. -.Em Note : -This command is for internal testing of -.Xr libzip 3 -and will usually create invalid zip archives. -.It Fl h -Display help. -.It Fl l Ar length -Only read -.Ar length -bytes of archive. -See also -.Fl o . -.It Fl m -Read archive into memory, and modify there; write out at end. -.Em Note : -This command is for internal testing of -.Xr libzip 3 . -.It Fl n -Create archive if it doesn't exist. -See also -.Fl e . -.It Fl o Ar offset -Start reading input archive from -.Ar offset . -See also -.Fl l . -.It Fl r -Print raw file name encoding without translation (for -.Cm stat -command). -.It Fl s -Follow file name convention strictly (for -.Cm stat -command). -.It Fl t -Disregard current file contents, if any. -.Em Note : -use this with care, it deletes all existing file contents when -you modify the archive. -.El -.Ss Commands -For all commands below, the index is zero-based. -In other words, the first entry in the zip archive has index 0. -.Pp -Supported commands and arguments are: -.Bl -tag -width 10n -.It Cm add Ar name content -Add file called -.Ar name -using the string -.Ar content -from the command line as data. -.It Cm add_dir Ar name -Add directory -.Ar name . -.It Cm add_file Ar name file_to_add offset len -Add file -.Ar name -to archive, using -.Ar len -bytes from the file -.Ar file_to_add -as input data, starting at -.Ar offset . -.It Cm add_from_zip Ar name archivename index offset len -Add file called -.Ar name -to archive using data from another zip archive -.Ar archivename -using the entry with index -.Ar index -and reading -.Ar len -bytes from -.Ar offset . -.It Cm add_nul Ar name length -Add a file -.Ar name -consisting of -.Ar length -NUL bytes. -(Mostly useful for testing.) -.It Cm cat Ar index -Output file contents for entry -.Ar index -to stdout. -.It Cm count_extra Ar index flags -Print the number of extra fields for archive entry -.Ar index -using -.Ar flags . -.It Cm count_extra_by_id Ar index extra_id flags -Print number of extra fields of type -.Ar extra_id -for archive entry -.Ar index -using -.Ar flags . -.It Cm delete Ar index -Remove entry at -.Ar index -from zip archive. -.It Cm delete_extra Ar index extra_idx flags -Remove extra field number -.Ar extra_idx -from archive entry -.Ar index -using -.Ar flags . -.It Cm delete_extra_by_id Ar index extra_id extra_index flags -Remove extra field number -.Ar extra_index -of type -.Ar extra_id -from archive entry -.Ar index -using -.Ar flags . -.It Cm get_archive_comment -Print archive comment. -.It Cm get_extra Ar index extra_index flags -Print extra field -.Ar extra_index -for archive entry -.Ar index -using -.Ar flags . -.It Cm get_extra_by_id Ar index extra_id extra_index flags -Print extra field -.Ar extra_index -of type -.Ar extra_id -for archive entry -.Ar index -using -.Ar flags . -.It Cm get_file_comment Ar index -Get file comment for archive entry -.Ar index . -.It Cm get_num_entries Ar flags -Print number of entries in archive using -.Ar flags . -.It Cm name_locate Ar name flags -Find entry in archive with the filename -.Ar name -using -.Ar flags -and print its index. -.It Cm rename Ar index name -Rename archive entry -.Ar index -to -.Ar name . -.It Cm replace_file_contents Ar index data -Replace file contents for archive entry -.Ar index -with the string -.Ar data . -.It Cm set_archive_comment Ar comment -Set archive comment to -.Ar comment . -.It Cm set_extra Ar index extra_id extra_index flags value -Set extra field number -.Ar extra_index -of type -.Ar extra_id -for archive entry -.Ar index -using -.Ar flags -to -.Ar value . -.It Cm set_file_comment Ar index comment -Set file comment for archive entry -.Ar index -to string -.Ar comment . -.It Cm set_file_compression Ar index method compression_flags -Set file compression method for archive entry -.Ar index -to -.Ar method -using -.Ar compression_flags . -.Em Note : -Currently, -.Ar compression_flags -are ignored. -.It Cm set_file_encryption Ar index method password -Set file encryption method for archive entry -.Ar index -to -.Ar method -with password -.Ar password . -.It Cm set_file_mtime Ar index timestamp -Set file modification time for archive entry -.Ar index -to UNIX mtime -.Ar timestamp . -.It Cm set_file_mtime_all Ar timestamp -Set file modification time for all archive entries to UNIX mtime -.Ar timestamp . -.It Cm set_password Ar password -Set default password for encryption/decryption to -.Ar password . -.It Cm stat Ar index -Print information about archive entry -.Ar index . -.It Cm unchange_all -Revert all changes up to that point. -Mostly useful for testing. -.It Cm zin_close Ar index -Close input zip_source -.Ar index . -For internal tests only. -.El -.Ss Flags -Some commands take flag arguments. -Supported flags are: -.Bl -tag -width MMM -compact -offset indent -.It Ar C -.Dv ZIP_FL_NOCASE -.It Ar c -.Dv ZIP_FL_CENTRAL -.It Ar d -.Dv ZIP_FL_NODIR -.It Ar l -.Dv ZIP_FL_LOCAL -.It Ar u -.Dv ZIP_FL_UNCHANGED -.El -.Ss Compression Methods -Some commands take compression method arguments. -Supported methods are: -.Bl -bullet -compact -offset indent -.It -.Dv default -.It -.Dv deflate -.It -.Dv store -.El -.Ss Encryption Methods -Some commands take encryption method arguments. -Supported methods are: -.Bl -bullet -compact -offset indent -.It -.Dv none -.It -.Dv AES-128 -.It -.Dv AES-192 -.It -.Dv AES-256 -.El -.Sh EXIT STATUS -.Ex -std -.Sh EXAMPLES -Add a file called -.Pa teststring.txt -to the zip archive -.Pa testbuffer.zip -with data -.Dq This is a test.\en -where -.Dq \en -is replaced with a newline character: -.Bd -literal -offset indent -ziptool testbuffer.zip add teststring.txt \\"This is a test.\en\\" -.Ed -.Pp -Delete the first file from the zip archive -.Pa testfile.zip : -.Bd -literal -offset indent -ziptool testfile.zip delete 0 -.Ed -.Sh SEE ALSO -.Xr zipcmp 1 , -.Xr zipmerge 1 , -.Xr libzip 3 -.Sh AUTHORS -.An -nosplit -.An Dieter Baron Aq Mt dillo@nih.at -and -.An Thomas Klausner Aq Mt tk@giga.or.at diff --git a/libzip-1.2.0/missing b/libzip-1.2.0/missing deleted file mode 100644 index f62bbae30..000000000 --- a/libzip-1.2.0/missing +++ /dev/null @@ -1,215 +0,0 @@ -#! /bin/sh -# Common wrapper for a few potentially missing GNU programs. - -scriptversion=2013-10-28.13; # UTC - -# Copyright (C) 1996-2014 Free Software Foundation, Inc. -# Originally written by Fran,cois Pinard , 1996. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -if test $# -eq 0; then - echo 1>&2 "Try '$0 --help' for more information" - exit 1 -fi - -case $1 in - - --is-lightweight) - # Used by our autoconf macros to check whether the available missing - # script is modern enough. - exit 0 - ;; - - --run) - # Back-compat with the calling convention used by older automake. - shift - ;; - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due -to PROGRAM being missing or too old. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - -Supported PROGRAM values: - aclocal autoconf autoheader autom4te automake makeinfo - bison yacc flex lex help2man - -Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and -'g' are ignored when checking the name. - -Send bug reports to ." - exit $? - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing $scriptversion (GNU Automake)" - exit $? - ;; - - -*) - echo 1>&2 "$0: unknown '$1' option" - echo 1>&2 "Try '$0 --help' for more information" - exit 1 - ;; - -esac - -# Run the given program, remember its exit status. -"$@"; st=$? - -# If it succeeded, we are done. -test $st -eq 0 && exit 0 - -# Also exit now if we it failed (or wasn't found), and '--version' was -# passed; such an option is passed most likely to detect whether the -# program is present and works. -case $2 in --version|--help) exit $st;; esac - -# Exit code 63 means version mismatch. This often happens when the user -# tries to use an ancient version of a tool on a file that requires a -# minimum version. -if test $st -eq 63; then - msg="probably too old" -elif test $st -eq 127; then - # Program was missing. - msg="missing on your system" -else - # Program was found and executed, but failed. Give up. - exit $st -fi - -perl_URL=http://www.perl.org/ -flex_URL=http://flex.sourceforge.net/ -gnu_software_URL=http://www.gnu.org/software - -program_details () -{ - case $1 in - aclocal|automake) - echo "The '$1' program is part of the GNU Automake package:" - echo "<$gnu_software_URL/automake>" - echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" - echo "<$gnu_software_URL/autoconf>" - echo "<$gnu_software_URL/m4/>" - echo "<$perl_URL>" - ;; - autoconf|autom4te|autoheader) - echo "The '$1' program is part of the GNU Autoconf package:" - echo "<$gnu_software_URL/autoconf/>" - echo "It also requires GNU m4 and Perl in order to run:" - echo "<$gnu_software_URL/m4/>" - echo "<$perl_URL>" - ;; - esac -} - -give_advice () -{ - # Normalize program name to check for. - normalized_program=`echo "$1" | sed ' - s/^gnu-//; t - s/^gnu//; t - s/^g//; t'` - - printf '%s\n' "'$1' is $msg." - - configure_deps="'configure.ac' or m4 files included by 'configure.ac'" - case $normalized_program in - autoconf*) - echo "You should only need it if you modified 'configure.ac'," - echo "or m4 files included by it." - program_details 'autoconf' - ;; - autoheader*) - echo "You should only need it if you modified 'acconfig.h' or" - echo "$configure_deps." - program_details 'autoheader' - ;; - automake*) - echo "You should only need it if you modified 'Makefile.am' or" - echo "$configure_deps." - program_details 'automake' - ;; - aclocal*) - echo "You should only need it if you modified 'acinclude.m4' or" - echo "$configure_deps." - program_details 'aclocal' - ;; - autom4te*) - echo "You might have modified some maintainer files that require" - echo "the 'autom4te' program to be rebuilt." - program_details 'autom4te' - ;; - bison*|yacc*) - echo "You should only need it if you modified a '.y' file." - echo "You may want to install the GNU Bison package:" - echo "<$gnu_software_URL/bison/>" - ;; - lex*|flex*) - echo "You should only need it if you modified a '.l' file." - echo "You may want to install the Fast Lexical Analyzer package:" - echo "<$flex_URL>" - ;; - help2man*) - echo "You should only need it if you modified a dependency" \ - "of a man page." - echo "You may want to install the GNU Help2man package:" - echo "<$gnu_software_URL/help2man/>" - ;; - makeinfo*) - echo "You should only need it if you modified a '.texi' file, or" - echo "any other file indirectly affecting the aspect of the manual." - echo "You might want to install the Texinfo package:" - echo "<$gnu_software_URL/texinfo/>" - echo "The spurious makeinfo call might also be the consequence of" - echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" - echo "want to install GNU make:" - echo "<$gnu_software_URL/make/>" - ;; - *) - echo "You might have modified some files without having the proper" - echo "tools for further handling them. Check the 'README' file, it" - echo "often tells you about the needed prerequisites for installing" - echo "this package. You may also peek at any GNU archive site, in" - echo "case some other package contains this missing '$1' program." - ;; - esac -} - -give_advice "$1" | sed -e '1s/^/WARNING: /' \ - -e '2,$s/^/ /' >&2 - -# Propagate the correct exit status (expected to be 127 for a program -# not found, 63 for a program that failed due to version mismatch). -exit $st - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/libzip-1.2.0/regress/CMakeLists.txt b/libzip-1.2.0/regress/CMakeLists.txt deleted file mode 100644 index 61dc73332..000000000 --- a/libzip-1.2.0/regress/CMakeLists.txt +++ /dev/null @@ -1,156 +0,0 @@ -ENABLE_TESTING() - -CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT) -IF(NOT HAVE_GETOPT) - SET(SRC_EXTRA_FILES ../src/getopt.c) -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/../src) -ENDIF(NOT HAVE_GETOPT) - -SET(STANDALONE_TEST_PROGRAMS - add_from_filep - fopen_unchanged - fseek -) - -SET(HELPER_TEST_PROGRAMS -# tryopen -) - -SET(GETOPT_USERS - fread - tryopen -) - -SET(DISABLED_TESTS - encryption-nonrandom-aes128.test - encryption-nonrandom-aes192.test - encryption-nonrandom-aes256.test -) - -SET(EXTRA_TESTS - add_dir.test - add_from_buffer.test - add_from_file.test - add_from_file_duplicate.test - add_from_file_twice_duplicate.test - add_from_filep.test - add_from_stdin.test - add_from_zip_closed.test - add_from_zip_deflated.test - add_from_zip_partial_deflated.test - add_from_zip_partial_stored.test - add_from_zip_stored.test - add_stored.test - add_stored_in_memory.test - count_entries.test - decrypt-correct-password-aes256.test - decrypt-correct-password-pkware.test - decrypt-no-password-aes256.test - decrypt-wrong-password-aes256.test - decrypt-wrong-password-pkware.test - delete_add_same.test - delete_invalid.test - delete_last.test - delete_multiple_last.test - delete_multiple_partial.test - delete_renamed_rename.test - encrypt.test - encryption-remove.test - extra_add.test - extra_add_multiple.test - extra_count.test - extra_count_by_id.test - extra_count_ignore_zip64.test - extra_delete.test - extra_delete_by_id.test - extra_field_align.test - extra_get.test - extra_get_by_id.test - extra_set.test - extra_set_modify_c.test - extra_set_modify_l.test - file_comment_encmismatch.test - fopen_unchanged.test - fread.test - fseek_deflated.test - fseek_fail.test - fseek_ok.test - get_comment.test - name_locate.test - open_cons_extrabytes.test - open_empty.test - open_empty_2.test - open_extrabytes.test - open_filename_empty.test - open_incons.test - open_many_ok.test - open_multidisk.test - open_new_but_exists.test - open_new_ok.test - open_nonarchive.test - open_nosuchfile.test - open_ok.test - open_too_short.test - open_truncate.test - open_zip64_3mf.test - open_zip64_ok.test - progress.test - rename_ascii.test - rename_cp437.test - rename_deleted.test - rename_fail.test - rename_ok.test - rename_utf8.test - rename_utf8_encmismatch.test - set_comment_all.test - set_comment_localonly.test - set_comment_removeglobal.test - set_comment_revert.test - set_compression_deflate_to_deflate.test - set_compression_deflate_to_store.test - set_compression_store_to_deflate.test - set_compression_store_to_store.test - set_compression_unknown.test - stat_index_cp437_guess.test - stat_index_cp437_raw.test - stat_index_cp437_strict.test - stat_index_fileorder.test - stat_index_streamed.test - stat_index_streamed_zip64.test - stat_index_utf8_guess.test - stat_index_utf8_raw.test - stat_index_utf8_strict.test - stat_index_utf8_unmarked_strict.test - stat_index_zip64.test - utf-8-standardization.test - zip64_creation.test - zip64_stored_creation.test -) - -SET(ENV{srcdir} ${CMAKE_CURRENT_SOURCE_DIR}) -FOREACH(PROGRAM ${STANDALONE_TEST_PROGRAMS}) - ADD_EXECUTABLE(${PROGRAM} ${PROGRAM}.c) - TARGET_LINK_LIBRARIES(${PROGRAM} zipstatic) - ADD_TEST(${PROGRAM} ${CMAKE_CURRENT_SOURCE_DIR}/runtest ${CMAKE_CURRENT_SOURCE_DIR}/${PROGRAM}) -ENDFOREACH(PROGRAM ${STANDALONE_TEST_PROGRAMS}) - -FOREACH(PROGRAM ${HELPER_TEST_PROGRAMS}) - ADD_EXECUTABLE(${PROGRAM} ${PROGRAM}.c) - TARGET_LINK_LIBRARIES(${PROGRAM} zipstatic) -ENDFOREACH(PROGRAM ${HELPER_TEST_PROGRAMS}) - -FOREACH(PROGRAM ${GETOPT_USERS}) - ADD_EXECUTABLE(${PROGRAM} ${PROGRAM}.c ${SRC_EXTRA_FILES}) - TARGET_LINK_LIBRARIES(${PROGRAM} zipstatic) -ENDFOREACH(PROGRAM ${GETOPT_USERS}) - -ADD_TEST(fread ${CMAKE_CURRENT_SOURCE_DIR}/runtest ${CMAKE_CURRENT_SOURCE_DIR}/fread) - -FOREACH(CASE ${EXTRA_TESTS}) - ADD_TEST(${CASE} ${CMAKE_CURRENT_SOURCE_DIR}/runtest ${CMAKE_CURRENT_SOURCE_DIR}/${CASE}) -ENDFOREACH(CASE ${EXTRA_TESTS}) - -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../lib - ${CMAKE_CURRENT_SOURCE_DIR}/../src - ${CMAKE_CURRENT_BINARY_DIR}/..) diff --git a/libzip-1.2.0/regress/Makefile.am b/libzip-1.2.0/regress/Makefile.am deleted file mode 100644 index 19babed1c..000000000 --- a/libzip-1.2.0/regress/Makefile.am +++ /dev/null @@ -1,321 +0,0 @@ -AUTOMAKE_OPTIONS= parallel-tests - -noinst_SCRIPTS= runtest - -noinst_PROGRAMS= \ - add_from_filep \ - fopen_unchanged \ - fread \ - fseek \ - tryopen - -if !WIN32_HOST -pkglib_LTLIBRARIES= malloc.la nonrandomopen.la - -malloc_la_SOURCES= malloc.c -malloc_la_LDFLAGS= -module -avoid-version -malloc_la_LIBADD= ${DLSYM_LIB} - -nonrandomopen_la_SOURCES= nonrandomopen.c -nonrandomopen_la_LDFLAGS= -module -avoid-version -nonrandomopen_la_LIBADD= ${DLSYM_LIB} - -# we have to do it this way, because if we choose noinst_LTLIBRARIES, -# only the .a files are built -install-pkglibLTLIBRARIES: - @echo not installing shared objects needed only for testing -endif - -EXTRA_DIST= \ - CMakeLists.txt \ - NiHTest.pm \ - runtest.in \ - ${TESTS} \ - bigstored.zh \ - bigzero-zip.zip \ - bogus.zip \ - broken.zip \ - cm-default.zip \ - encrypt-aes128-noentropy.zip \ - encrypt-aes192-noentropy.zip \ - encrypt-aes256-noentropy.zip \ - encrypt-aes128.zip \ - encrypt-aes192.zip \ - encrypt-aes256.zip \ - encrypt-none.zip \ - encrypt.zip \ - encrypt_plus_extra.zip \ - encrypt_plus_extra_modified_c.zip \ - encrypt_plus_extra_modified_l.zip \ - extra_field_align_1-0.zip \ - extra_field_align_1-ff.zip \ - extra_field_align_2-0.zip \ - extra_field_align_2-ff.zip \ - extra_field_align_3-0.zip \ - extra_field_align_3-ff.zip \ - extra_field_align_4-ff.zip \ - extra_field_align_1-ef_00.zip \ - extra_field_align_1-ef_ff.zip \ - extra_field_align_2-ef_00.zip \ - extra_field_align_2-ef_ff.zip \ - extra_field_align_3-ef_00.zip \ - extra_field_align_3-ef_ff.zip \ - filename_duplicate.zip \ - filename_duplicate_empty.zip \ - filename_empty.zip \ - fileorder.zip \ - firstsecond.zip \ - firstsecond-split-deflated.zip \ - firstsecond-split-stored.zip \ - foo-stored.zip \ - incons-archive-comment-longer.zip \ - incons-archive-comment-shorter.zip \ - incons-cdoffset.zip \ - incons-central-compression-method.zip \ - incons-central-compsize-larger-toolarge.zip \ - incons-central-compsize-larger.zip \ - incons-central-compsize-smaller.zip \ - incons-central-crc.zip \ - incons-central-date.zip \ - incons-central-file-comment-longer.zip \ - incons-central-file-comment-shorter.zip \ - incons-central-magic-bad.zip \ - incons-central-magic-bad2.zip \ - incons-central-size-larger.zip \ - incons-data.zip \ - incons-ef-central-size-wrong.zip \ - incons-ef-local-id-size.zip \ - incons-ef-local-id.zip \ - incons-ef-local-size.zip \ - incons-eocd-magic-bad.zip \ - incons-file-count-high.zip \ - incons-file-count-low.zip \ - incons-file-count-overflow.zip \ - incons-local-compression-method.zip \ - incons-local-compsize-larger.zip \ - incons-local-compsize-smaller.zip \ - incons-local-crc.zip \ - incons-local-filename-long.zip \ - incons-local-filename-missing.zip \ - incons-local-filename-short.zip \ - incons-local-filename.zip \ - incons-local-magic-bad.zip \ - incons-local-size-larger.zip \ - junk-at-end.zip \ - junk-at-start.zip \ - large-uncompressable \ - manyfiles-zip.zip \ - multidisk.zip \ - rename_ok.zip \ - streamed.zip \ - streamed-zip64.zip \ - test.zip \ - test2.zip \ - test-cp437.zip \ - test-cp437-comment-utf-8.zip \ - test-cp437-fc.zip \ - test-cp437-fc-utf-8-filename.zip \ - test-utf8.zip \ - test-utf8-unmarked.zip \ - testbuffer.zip \ - testdir.zip \ - testchanged.zip \ - testchangedlocal.zip \ - testcomment.zip \ - testcomment13.zip \ - testcommentremoved.zip \ - testdeflated.zip \ - testdeflated2.zip \ - testempty.zip \ - testextrabytes.zip \ - testfile.txt \ - testfile.zip \ - testfile-cp437.zip \ - testfile-plus-extra.zip \ - testfile-UTF8.zip \ - testfile2014.zip \ - teststdin.zip \ - teststored.zip \ - utf-8-standardization-input.zip \ - utf-8-standardization-output.zip \ - zip-in-archive-comment.zip \ - zip64.zip \ - zip64-3mf.zip - -TESTS_ENVIRONMENT= ZIPCMP=${top_builddir}/src/zipcmp -# ${srcdir}/runtest -#LOG_COMPILER= ${srcdir}/runtest -TEST_EXTENSIONS= .test -TEST_LOG_COMPILER= ${builddir}/runtest -#AM_TEST_LOG_FLAGS = -s - -TESTS= \ - add_dir.test \ - add_from_buffer.test \ - add_from_file.test \ - add_from_file_duplicate.test \ - add_from_file_twice_duplicate.test \ - add_from_filep.test \ - add_from_stdin.test \ - add_from_zip_closed.test \ - add_from_zip_deflated.test \ - add_from_zip_deflated2.test \ - add_from_zip_partial_deflated.test \ - add_from_zip_partial_stored.test \ - add_from_zip_stored.test \ - add_stored.test \ - add_stored_in_memory.test \ - cm-default.test \ - count_entries.test \ - decrypt-correct-password-aes128.test \ - decrypt-correct-password-aes192.test \ - decrypt-correct-password-aes256.test \ - decrypt-correct-password-pkware.test \ - decrypt-no-password-aes256.test \ - decrypt-wrong-password-aes128.test \ - decrypt-wrong-password-aes192.test \ - decrypt-wrong-password-aes256.test \ - decrypt-wrong-password-pkware.test \ - delete_add_same.test \ - delete_invalid.test \ - delete_last.test \ - delete_multiple_last.test \ - delete_multiple_partial.test \ - delete_renamed_rename.test \ - encrypt.test \ - encryption-remove.test \ - extra_add.test \ - extra_add_multiple.test \ - extra_count.test \ - extra_count_by_id.test \ - extra_count_ignore_zip64.test \ - extra_delete.test \ - extra_delete_by_id.test \ - extra_field_align.test \ - extra_get.test \ - extra_get_by_id.test \ - extra_set.test \ - extra_set_modify_c.test \ - extra_set_modify_l.test \ - file_comment_encmismatch.test \ - fopen_unchanged.test \ - fread.test \ - fseek_deflated.test \ - fseek_fail.test \ - fseek_ok.test \ - get_comment.test \ - junk_at_end.test \ - junk_at_start.test \ - name_locate.test \ - open_cons_extrabytes.test \ - open_empty.test \ - open_empty_2.test \ - open_extrabytes.test \ - open_file_count.test \ - open_filename_duplicate.test \ - open_filename_duplicate_consistency.test \ - open_filename_duplicate_empty.test \ - open_filename_duplicate_empty_consistency.test \ - open_filename_empty.test \ - open_incons.test \ - open_many_fail.test \ - open_many_ok.test \ - open_multidisk.test \ - open_new_but_exists.test \ - open_new_ok.test \ - open_nonarchive.test \ - open_nosuchfile.test \ - open_ok.test \ - open_too_short.test \ - open_truncate.test \ - open_zip64_3mf.test \ - open_zip64_ok.test \ - progress.test \ - rename_ascii.test \ - rename_cp437.test \ - rename_deleted.test \ - rename_fail.test \ - rename_ok.test \ - rename_utf8.test \ - rename_utf8_encmismatch.test \ - set_comment_all.test \ - set_comment_localonly.test \ - set_comment_removeglobal.test \ - set_comment_revert.test \ - set_compression_deflate_to_deflate.test \ - set_compression_deflate_to_store.test \ - set_compression_store_to_deflate.test \ - set_compression_store_to_store.test \ - set_compression_unknown.test \ - stat_index_cp437_guess.test \ - stat_index_cp437_raw.test \ - stat_index_cp437_strict.test \ - stat_index_fileorder.test \ - stat_index_streamed.test \ - stat_index_streamed_zip64.test \ - stat_index_utf8_guess.test \ - stat_index_utf8_raw.test \ - stat_index_utf8_strict.test \ - stat_index_utf8_unmarked_strict.test \ - stat_index_zip64.test \ - utf-8-standardization.test \ - zip-in-archive-comment.test \ - zip64_creation.test \ - zip64_stored_creation.test - -DISABLED_TESTS= \ - encryption-nonrandom-aes128.test \ - encryption-nonrandom-aes192.test \ - encryption-nonrandom-aes256.test - -#XFAIL_TESTS= - - -AM_CPPFLAGS=-I${top_srcdir}/lib -I../lib -I${top_srcdir}/src -LDADD=${top_builddir}/lib/libzip.la - -CREATED_FILES= \ - bigzero.zip \ - manyfiles-133000.zip \ - manyfiles-65536.zip \ - manyfiles-fewer.zip \ - manyfiles-more.zip \ - manyfiles-zip64-modulo.zip \ - manyfiles-zip64.zip \ - manyfiles.zip \ - runtest - -check-am: ${CREATED_FILES} - -bigzero.zip: bigzero-zip.zip - ${top_builddir}/src/ziptool ${srcdir}/bigzero-zip.zip cat 0 > ${builddir}/bigzero.zip - -manyfiles.zip: manyfiles-zip.zip - ${top_builddir}/src/ziptool ${srcdir}/manyfiles-zip.zip cat 0 > ${builddir}/$@ - -manyfiles-133000.zip: manyfiles-zip.zip - ${top_builddir}/src/ziptool ${srcdir}/manyfiles-zip.zip cat 1 > ${builddir}/$@ - -manyfiles-65536.zip: manyfiles-zip.zip - ${top_builddir}/src/ziptool ${srcdir}/manyfiles-zip.zip cat 2 > ${builddir}/$@ - -manyfiles-fewer.zip: manyfiles-zip.zip - ${top_builddir}/src/ziptool ${srcdir}/manyfiles-zip.zip cat 5 > ${builddir}/$@ - -manyfiles-more.zip: manyfiles-zip.zip - ${top_builddir}/src/ziptool ${srcdir}/manyfiles-zip.zip cat 6 > ${builddir}/$@ - -manyfiles-zip64-modulo.zip: manyfiles-zip.zip - ${top_builddir}/src/ziptool ${srcdir}/manyfiles-zip.zip cat 3 > ${builddir}/$@ - -manyfiles-zip64.zip: manyfiles-zip.zip - ${top_builddir}/src/ziptool ${srcdir}/manyfiles-zip.zip cat 4 > ${builddir}/$@ - -runtest: runtest.in - sed -e 's!@[s]rcdir@!${srcdir}!g' -e 's!@[a]bs_srcdir@!${abs_srcdir}!g' ${srcdir}/runtest.in > runtest - chmod +x runtest - -cleanup: - rm -rf ${builddir}/sandbox-*.d[0-9]*/ - -CLEANFILES=${CREATED_FILES} diff --git a/libzip-1.2.0/regress/Makefile.in b/libzip-1.2.0/regress/Makefile.in deleted file mode 100644 index 0364b0791..000000000 --- a/libzip-1.2.0/regress/Makefile.in +++ /dev/null @@ -1,1364 +0,0 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2014 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -noinst_PROGRAMS = add_from_filep$(EXEEXT) fopen_unchanged$(EXEEXT) \ - fread$(EXEEXT) fseek$(EXEEXT) tryopen$(EXEEXT) -subdir = regress -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(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/visibility.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/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)$(pkglibdir)" -LTLIBRARIES = $(pkglib_LTLIBRARIES) -am__DEPENDENCIES_1 = -@WIN32_HOST_FALSE@malloc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) -am__malloc_la_SOURCES_DIST = malloc.c -@WIN32_HOST_FALSE@am_malloc_la_OBJECTS = malloc.lo -malloc_la_OBJECTS = $(am_malloc_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 = -malloc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(malloc_la_LDFLAGS) $(LDFLAGS) -o $@ -@WIN32_HOST_FALSE@am_malloc_la_rpath = -rpath $(pkglibdir) -@WIN32_HOST_FALSE@nonrandomopen_la_DEPENDENCIES = \ -@WIN32_HOST_FALSE@ $(am__DEPENDENCIES_1) -am__nonrandomopen_la_SOURCES_DIST = nonrandomopen.c -@WIN32_HOST_FALSE@am_nonrandomopen_la_OBJECTS = nonrandomopen.lo -nonrandomopen_la_OBJECTS = $(am_nonrandomopen_la_OBJECTS) -nonrandomopen_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(nonrandomopen_la_LDFLAGS) $(LDFLAGS) \ - -o $@ -@WIN32_HOST_FALSE@am_nonrandomopen_la_rpath = -rpath $(pkglibdir) -PROGRAMS = $(noinst_PROGRAMS) -add_from_filep_SOURCES = add_from_filep.c -add_from_filep_OBJECTS = add_from_filep.$(OBJEXT) -add_from_filep_LDADD = $(LDADD) -add_from_filep_DEPENDENCIES = ${top_builddir}/lib/libzip.la -fopen_unchanged_SOURCES = fopen_unchanged.c -fopen_unchanged_OBJECTS = fopen_unchanged.$(OBJEXT) -fopen_unchanged_LDADD = $(LDADD) -fopen_unchanged_DEPENDENCIES = ${top_builddir}/lib/libzip.la -fread_SOURCES = fread.c -fread_OBJECTS = fread.$(OBJEXT) -fread_LDADD = $(LDADD) -fread_DEPENDENCIES = ${top_builddir}/lib/libzip.la -fseek_SOURCES = fseek.c -fseek_OBJECTS = fseek.$(OBJEXT) -fseek_LDADD = $(LDADD) -fseek_DEPENDENCIES = ${top_builddir}/lib/libzip.la -tryopen_SOURCES = tryopen.c -tryopen_OBJECTS = tryopen.$(OBJEXT) -tryopen_LDADD = $(LDADD) -tryopen_DEPENDENCIES = ${top_builddir}/lib/libzip.la -SCRIPTS = $(noinst_SCRIPTS) -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)/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 = $(malloc_la_SOURCES) $(nonrandomopen_la_SOURCES) \ - add_from_filep.c fopen_unchanged.c fread.c fseek.c tryopen.c -DIST_SOURCES = $(am__malloc_la_SOURCES_DIST) \ - $(am__nonrandomopen_la_SOURCES_DIST) add_from_filep.c \ - fopen_unchanged.c fread.c fseek.c tryopen.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__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__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` -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -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)/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 -am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \ - $(top_srcdir)/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DLSYM_LIB = @DLSYM_LIB@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -HAVE_VISIBILITY = @HAVE_VISIBILITY@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MANFMT = @MANFMT@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -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@ -PKG_CONFIG_RPATH = @PKG_CONFIG_RPATH@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -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@ -AUTOMAKE_OPTIONS = parallel-tests -noinst_SCRIPTS = runtest -@WIN32_HOST_FALSE@pkglib_LTLIBRARIES = malloc.la nonrandomopen.la -@WIN32_HOST_FALSE@malloc_la_SOURCES = malloc.c -@WIN32_HOST_FALSE@malloc_la_LDFLAGS = -module -avoid-version -@WIN32_HOST_FALSE@malloc_la_LIBADD = ${DLSYM_LIB} -@WIN32_HOST_FALSE@nonrandomopen_la_SOURCES = nonrandomopen.c -@WIN32_HOST_FALSE@nonrandomopen_la_LDFLAGS = -module -avoid-version -@WIN32_HOST_FALSE@nonrandomopen_la_LIBADD = ${DLSYM_LIB} -EXTRA_DIST = \ - CMakeLists.txt \ - NiHTest.pm \ - runtest.in \ - ${TESTS} \ - bigstored.zh \ - bigzero-zip.zip \ - bogus.zip \ - broken.zip \ - cm-default.zip \ - encrypt-aes128-noentropy.zip \ - encrypt-aes192-noentropy.zip \ - encrypt-aes256-noentropy.zip \ - encrypt-aes128.zip \ - encrypt-aes192.zip \ - encrypt-aes256.zip \ - encrypt-none.zip \ - encrypt.zip \ - encrypt_plus_extra.zip \ - encrypt_plus_extra_modified_c.zip \ - encrypt_plus_extra_modified_l.zip \ - extra_field_align_1-0.zip \ - extra_field_align_1-ff.zip \ - extra_field_align_2-0.zip \ - extra_field_align_2-ff.zip \ - extra_field_align_3-0.zip \ - extra_field_align_3-ff.zip \ - extra_field_align_4-ff.zip \ - extra_field_align_1-ef_00.zip \ - extra_field_align_1-ef_ff.zip \ - extra_field_align_2-ef_00.zip \ - extra_field_align_2-ef_ff.zip \ - extra_field_align_3-ef_00.zip \ - extra_field_align_3-ef_ff.zip \ - filename_duplicate.zip \ - filename_duplicate_empty.zip \ - filename_empty.zip \ - fileorder.zip \ - firstsecond.zip \ - firstsecond-split-deflated.zip \ - firstsecond-split-stored.zip \ - foo-stored.zip \ - incons-archive-comment-longer.zip \ - incons-archive-comment-shorter.zip \ - incons-cdoffset.zip \ - incons-central-compression-method.zip \ - incons-central-compsize-larger-toolarge.zip \ - incons-central-compsize-larger.zip \ - incons-central-compsize-smaller.zip \ - incons-central-crc.zip \ - incons-central-date.zip \ - incons-central-file-comment-longer.zip \ - incons-central-file-comment-shorter.zip \ - incons-central-magic-bad.zip \ - incons-central-magic-bad2.zip \ - incons-central-size-larger.zip \ - incons-data.zip \ - incons-ef-central-size-wrong.zip \ - incons-ef-local-id-size.zip \ - incons-ef-local-id.zip \ - incons-ef-local-size.zip \ - incons-eocd-magic-bad.zip \ - incons-file-count-high.zip \ - incons-file-count-low.zip \ - incons-file-count-overflow.zip \ - incons-local-compression-method.zip \ - incons-local-compsize-larger.zip \ - incons-local-compsize-smaller.zip \ - incons-local-crc.zip \ - incons-local-filename-long.zip \ - incons-local-filename-missing.zip \ - incons-local-filename-short.zip \ - incons-local-filename.zip \ - incons-local-magic-bad.zip \ - incons-local-size-larger.zip \ - junk-at-end.zip \ - junk-at-start.zip \ - large-uncompressable \ - manyfiles-zip.zip \ - multidisk.zip \ - rename_ok.zip \ - streamed.zip \ - streamed-zip64.zip \ - test.zip \ - test2.zip \ - test-cp437.zip \ - test-cp437-comment-utf-8.zip \ - test-cp437-fc.zip \ - test-cp437-fc-utf-8-filename.zip \ - test-utf8.zip \ - test-utf8-unmarked.zip \ - testbuffer.zip \ - testdir.zip \ - testchanged.zip \ - testchangedlocal.zip \ - testcomment.zip \ - testcomment13.zip \ - testcommentremoved.zip \ - testdeflated.zip \ - testdeflated2.zip \ - testempty.zip \ - testextrabytes.zip \ - testfile.txt \ - testfile.zip \ - testfile-cp437.zip \ - testfile-plus-extra.zip \ - testfile-UTF8.zip \ - testfile2014.zip \ - teststdin.zip \ - teststored.zip \ - utf-8-standardization-input.zip \ - utf-8-standardization-output.zip \ - zip-in-archive-comment.zip \ - zip64.zip \ - zip64-3mf.zip - -TESTS_ENVIRONMENT = ZIPCMP=${top_builddir}/src/zipcmp -# ${srcdir}/runtest -#LOG_COMPILER= ${srcdir}/runtest -TEST_EXTENSIONS = .test -TEST_LOG_COMPILER = ${builddir}/runtest -#AM_TEST_LOG_FLAGS = -s -TESTS = \ - add_dir.test \ - add_from_buffer.test \ - add_from_file.test \ - add_from_file_duplicate.test \ - add_from_file_twice_duplicate.test \ - add_from_filep.test \ - add_from_stdin.test \ - add_from_zip_closed.test \ - add_from_zip_deflated.test \ - add_from_zip_deflated2.test \ - add_from_zip_partial_deflated.test \ - add_from_zip_partial_stored.test \ - add_from_zip_stored.test \ - add_stored.test \ - add_stored_in_memory.test \ - cm-default.test \ - count_entries.test \ - decrypt-correct-password-aes128.test \ - decrypt-correct-password-aes192.test \ - decrypt-correct-password-aes256.test \ - decrypt-correct-password-pkware.test \ - decrypt-no-password-aes256.test \ - decrypt-wrong-password-aes128.test \ - decrypt-wrong-password-aes192.test \ - decrypt-wrong-password-aes256.test \ - decrypt-wrong-password-pkware.test \ - delete_add_same.test \ - delete_invalid.test \ - delete_last.test \ - delete_multiple_last.test \ - delete_multiple_partial.test \ - delete_renamed_rename.test \ - encrypt.test \ - encryption-remove.test \ - extra_add.test \ - extra_add_multiple.test \ - extra_count.test \ - extra_count_by_id.test \ - extra_count_ignore_zip64.test \ - extra_delete.test \ - extra_delete_by_id.test \ - extra_field_align.test \ - extra_get.test \ - extra_get_by_id.test \ - extra_set.test \ - extra_set_modify_c.test \ - extra_set_modify_l.test \ - file_comment_encmismatch.test \ - fopen_unchanged.test \ - fread.test \ - fseek_deflated.test \ - fseek_fail.test \ - fseek_ok.test \ - get_comment.test \ - junk_at_end.test \ - junk_at_start.test \ - name_locate.test \ - open_cons_extrabytes.test \ - open_empty.test \ - open_empty_2.test \ - open_extrabytes.test \ - open_file_count.test \ - open_filename_duplicate.test \ - open_filename_duplicate_consistency.test \ - open_filename_duplicate_empty.test \ - open_filename_duplicate_empty_consistency.test \ - open_filename_empty.test \ - open_incons.test \ - open_many_fail.test \ - open_many_ok.test \ - open_multidisk.test \ - open_new_but_exists.test \ - open_new_ok.test \ - open_nonarchive.test \ - open_nosuchfile.test \ - open_ok.test \ - open_too_short.test \ - open_truncate.test \ - open_zip64_3mf.test \ - open_zip64_ok.test \ - progress.test \ - rename_ascii.test \ - rename_cp437.test \ - rename_deleted.test \ - rename_fail.test \ - rename_ok.test \ - rename_utf8.test \ - rename_utf8_encmismatch.test \ - set_comment_all.test \ - set_comment_localonly.test \ - set_comment_removeglobal.test \ - set_comment_revert.test \ - set_compression_deflate_to_deflate.test \ - set_compression_deflate_to_store.test \ - set_compression_store_to_deflate.test \ - set_compression_store_to_store.test \ - set_compression_unknown.test \ - stat_index_cp437_guess.test \ - stat_index_cp437_raw.test \ - stat_index_cp437_strict.test \ - stat_index_fileorder.test \ - stat_index_streamed.test \ - stat_index_streamed_zip64.test \ - stat_index_utf8_guess.test \ - stat_index_utf8_raw.test \ - stat_index_utf8_strict.test \ - stat_index_utf8_unmarked_strict.test \ - stat_index_zip64.test \ - utf-8-standardization.test \ - zip-in-archive-comment.test \ - zip64_creation.test \ - zip64_stored_creation.test - -DISABLED_TESTS = \ - encryption-nonrandom-aes128.test \ - encryption-nonrandom-aes192.test \ - encryption-nonrandom-aes256.test - - -#XFAIL_TESTS= -AM_CPPFLAGS = -I${top_srcdir}/lib -I../lib -I${top_srcdir}/src -LDADD = ${top_builddir}/lib/libzip.la -CREATED_FILES = \ - bigzero.zip \ - manyfiles-133000.zip \ - manyfiles-65536.zip \ - manyfiles-fewer.zip \ - manyfiles-more.zip \ - manyfiles-zip64-modulo.zip \ - manyfiles-zip64.zip \ - manyfiles.zip \ - runtest - -CLEANFILES = ${CREATED_FILES} -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign regress/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign regress/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -@WIN32_HOST_TRUE@install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES) -@WIN32_HOST_TRUE@ @$(NORMAL_INSTALL) - @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || 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)$(pkglibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \ - } - -uninstall-pkglibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \ - done - -clean-pkglibLTLIBRARIES: - -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES) - @list='$(pkglib_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}; \ - } - -malloc.la: $(malloc_la_OBJECTS) $(malloc_la_DEPENDENCIES) $(EXTRA_malloc_la_DEPENDENCIES) - $(AM_V_CCLD)$(malloc_la_LINK) $(am_malloc_la_rpath) $(malloc_la_OBJECTS) $(malloc_la_LIBADD) $(LIBS) - -nonrandomopen.la: $(nonrandomopen_la_OBJECTS) $(nonrandomopen_la_DEPENDENCIES) $(EXTRA_nonrandomopen_la_DEPENDENCIES) - $(AM_V_CCLD)$(nonrandomopen_la_LINK) $(am_nonrandomopen_la_rpath) $(nonrandomopen_la_OBJECTS) $(nonrandomopen_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 - -add_from_filep$(EXEEXT): $(add_from_filep_OBJECTS) $(add_from_filep_DEPENDENCIES) $(EXTRA_add_from_filep_DEPENDENCIES) - @rm -f add_from_filep$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(add_from_filep_OBJECTS) $(add_from_filep_LDADD) $(LIBS) - -fopen_unchanged$(EXEEXT): $(fopen_unchanged_OBJECTS) $(fopen_unchanged_DEPENDENCIES) $(EXTRA_fopen_unchanged_DEPENDENCIES) - @rm -f fopen_unchanged$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(fopen_unchanged_OBJECTS) $(fopen_unchanged_LDADD) $(LIBS) - -fread$(EXEEXT): $(fread_OBJECTS) $(fread_DEPENDENCIES) $(EXTRA_fread_DEPENDENCIES) - @rm -f fread$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(fread_OBJECTS) $(fread_LDADD) $(LIBS) - -fseek$(EXEEXT): $(fseek_OBJECTS) $(fseek_DEPENDENCIES) $(EXTRA_fseek_DEPENDENCIES) - @rm -f fseek$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(fseek_OBJECTS) $(fseek_LDADD) $(LIBS) - -tryopen$(EXEEXT): $(tryopen_OBJECTS) $(tryopen_DEPENDENCIES) $(EXTRA_tryopen_DEPENDENCIES) - @rm -f tryopen$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tryopen_OBJECTS) $(tryopen_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/add_from_filep.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fopen_unchanged.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fread.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fseek.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonrandomopen.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tryopen.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 - -# 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 for $(PACKAGE_STRING)$${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: - @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 - @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: $(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-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) -installdirs: - for dir in "$(DESTDIR)$(pkglibdir)"; 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: - -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) - -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 \ - clean-pkglibLTLIBRARIES 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-pkglibLTLIBRARIES - -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-pkglibLTLIBRARIES - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ - clean-generic clean-libtool clean-noinstPROGRAMS \ - clean-pkglibLTLIBRARIES 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-pkglibLTLIBRARIES \ - 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 \ - recheck tags tags-am uninstall uninstall-am \ - uninstall-pkglibLTLIBRARIES - -.PRECIOUS: Makefile - - -# we have to do it this way, because if we choose noinst_LTLIBRARIES, -# only the .a files are built -@WIN32_HOST_FALSE@install-pkglibLTLIBRARIES: -@WIN32_HOST_FALSE@ @echo not installing shared objects needed only for testing - -check-am: ${CREATED_FILES} - -bigzero.zip: bigzero-zip.zip - ${top_builddir}/src/ziptool ${srcdir}/bigzero-zip.zip cat 0 > ${builddir}/bigzero.zip - -manyfiles.zip: manyfiles-zip.zip - ${top_builddir}/src/ziptool ${srcdir}/manyfiles-zip.zip cat 0 > ${builddir}/$@ - -manyfiles-133000.zip: manyfiles-zip.zip - ${top_builddir}/src/ziptool ${srcdir}/manyfiles-zip.zip cat 1 > ${builddir}/$@ - -manyfiles-65536.zip: manyfiles-zip.zip - ${top_builddir}/src/ziptool ${srcdir}/manyfiles-zip.zip cat 2 > ${builddir}/$@ - -manyfiles-fewer.zip: manyfiles-zip.zip - ${top_builddir}/src/ziptool ${srcdir}/manyfiles-zip.zip cat 5 > ${builddir}/$@ - -manyfiles-more.zip: manyfiles-zip.zip - ${top_builddir}/src/ziptool ${srcdir}/manyfiles-zip.zip cat 6 > ${builddir}/$@ - -manyfiles-zip64-modulo.zip: manyfiles-zip.zip - ${top_builddir}/src/ziptool ${srcdir}/manyfiles-zip.zip cat 3 > ${builddir}/$@ - -manyfiles-zip64.zip: manyfiles-zip.zip - ${top_builddir}/src/ziptool ${srcdir}/manyfiles-zip.zip cat 4 > ${builddir}/$@ - -runtest: runtest.in - sed -e 's!@[s]rcdir@!${srcdir}!g' -e 's!@[a]bs_srcdir@!${abs_srcdir}!g' ${srcdir}/runtest.in > runtest - chmod +x runtest - -cleanup: - rm -rf ${builddir}/sandbox-*.d[0-9]*/ - -# 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/libzip-1.2.0/regress/NiHTest.pm b/libzip-1.2.0/regress/NiHTest.pm deleted file mode 100644 index 6021fd6cf..000000000 --- a/libzip-1.2.0/regress/NiHTest.pm +++ /dev/null @@ -1,1214 +0,0 @@ -package NiHTest; - -use strict; -use warnings; - -use Cwd; -use File::Copy; -use File::Path qw(mkpath remove_tree); -use Getopt::Long qw(:config posix_default bundling no_ignore_case); -use IPC::Open3; -use Symbol 'gensym'; -use UNIVERSAL; - -use Data::Dumper qw(Dumper); - -# NiHTest -- package to run regression tests -# Copyright (C) 2002-2016 Dieter Baron and Thomas Klausner -# -# This file is part of ckmame, a program to check rom sets for MAME. -# The authors can be contacted at -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# 3. The names of the authors may not be used to endorse or promote -# products derived from this software without specific prior -# written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# runtest TESTNAME -# -# files: -# TESTNAME.test: test scenario -# -# test scenario: -# Lines beginning with # are comments. -# -# The following commands are recognized; return and args must -# appear exactly once, the others are optional. -# -# args ARGS -# run program with command line arguments ARGS -# -# description TEXT -# description of what test is for -# -# features FEATURE ... -# only run test if all FEATUREs are present, otherwise skip it. -# -# file TEST IN OUT -# copy file IN as TEST, compare against OUT after program run. -# -# file-del TEST IN -# copy file IN as TEST, check that it is removed by program. -# -# file-new TEST OUT -# check that file TEST is created by program and compare -# against OUT. -# -# mkdir MODE NAME -# create directory NAME with permissions MODE. -# -# pipein COMMAND ARGS ... -# pipe output of running COMMAND to program's stdin. -# -# preload LIBRARY -# pre-load LIBRARY before running program. -# -# program PRG -# run PRG instead of ckmame. -# -# return RET -# RET is the expected exit code -# -# setenv VAR VALUE -# set environment variable VAR to VALUE. -# -# stderr TEXT -# program is expected to produce the error message TEXT. If -# multiple stderr commands are used, the messages are -# expected in the order given. -# -# stderr-replace REGEX REPLACEMENT -# run regex replacement over expected and got stderr output. -# -# stdout TEXT -# program is expected to print TEXT to stdout. If multiple -# stdout commands are used, the messages are expected in -# the order given. -# -# touch MTIME FILE -# set last modified timestamp of FILE to MTIME (seconds since epoch). -# If FILE doesn't exist, an empty file is created. -# -# ulimit C VALUE -# set ulimit -C to VALUE while running the program. -# -# exit status -# runtest uses the following exit codes: -# 0: test passed -# 1: test failed -# 2: other error -# 77: test was skipped -# -# environment variables: -# RUN_GDB: if set, run gdb on program in test environment -# KEEP_BROKEN: if set, don't delete test environment if test failed -# NO_CLEANUP: if set, don't delete test environment -# SETUP_ONLY: if set, exit after creating test environment -# VERBOSE: if set, be more verbose (e. g., output diffs) - -my %EXIT_CODES = ( - PASS => 0, - FAIL => 1, - SKIP => 77, - ERROR => 99 - ); - -sub new { - my $class = UNIVERSAL::isa ($_[0], __PACKAGE__) ? shift : __PACKAGE__; - my $self = bless {}, $class; - - my ($opts) = @_; - - $self->{default_program} = $opts->{default_program}; - $self->{zipcmp} = $opts->{zipcmp} // 'zipcmp'; - $self->{zipcmp_flags} = $opts->{zipcmp_flags}; - - $self->{directives} = { - args => { type => 'string...', once => 1, required => 1 }, - description => { type => 'string', once => 1 }, - features => { type => 'string...', once => 1 }, - file => { type => 'string string string' }, - 'file-del' => { type => 'string string' }, - 'file-new' => { type => 'string string' }, - mkdir => { type => 'string string' }, - pipein => { type => 'string', once => 1 }, - preload => { type => 'string', once => 1 }, - program => { type => 'string', once => 1 }, - 'return' => { type => 'int', once => 1, required => 1 }, - setenv => { type => 'string string' }, - stderr => { type => 'string' }, - 'stderr-replace' => { type => 'string string' }, - stdout => { type => 'string' }, - touch => { type => 'int string' }, - ulimit => { type => 'char string' } - }; - - $self->{compare_by_type} = {}; - $self->{copy_by_type} = {}; - $self->{hooks} = {}; - - $self->add_comparator('zip/zip', \&comparator_zip); - - $self->{srcdir} = $opts->{srcdir} // $ENV{srcdir}; - - if (!defined($self->{srcdir}) || $self->{srcdir} eq '') { - $self->{srcdir} = `sed -n 's/^srcdir = \(.*\)/\1/p' Makefile`; - chomp($self->{srcdir}); - } - - $self->{in_sandbox} = 0; - - $self->{verbose} = $ENV{VERBOSE}; - $self->{keep_broken} = $ENV{KEEP_BROKEN}; - $self->{no_cleanup} = $ENV{NO_CLEANUP}; - $self->{setup_only} = $ENV{SETUP_ONLY}; - - return $self; -} - - -sub add_comparator { - my ($self, $ext, $sub) = @_; - - return $self->add_file_proc('compare_by_type', $ext, $sub); -} - - -sub add_copier { - my ($self, $ext, $sub) = @_; - - return $self->add_file_proc('copy_by_type', $ext, $sub); -} - - -sub add_directive { - my ($self, $name, $def) = @_; - - if (exists($self->{directives}->{$name})) { - $self->die("directive $name already defined"); - } - - # TODO: validate $def - - $self->{directives}->{$name} = $def; - - return 1; -} - - -sub add_file_proc { - my ($self, $proc, $ext, $sub) = @_; - - $self->{$proc}->{$ext} = [] unless (defined($self->{$proc}->{$ext})); - unshift @{$self->{$proc}->{$ext}}, $sub; - - return 1; -} - - -sub add_hook { - my ($self, $hook, $sub) = @_; - - $self->{hooks}->{$hook} = [] unless (defined($self->{hooks}->{$hook})); - push @{$self->{hooks}->{$hook}}, $sub; - - return 1; -} - - -sub end { - my ($self, @results) = @_; - - my $result = 'PASS'; - - for my $r (@results) { - if ($r eq 'ERROR' || ($r eq 'FAIL' && $result ne 'ERROR')) { - $result = $r; - } - } - - $self->end_test($result); -} - - -sub run { - my ($self, @argv) = @_; - - $self->setup(@argv); - - $self->end($self->runtest()); -} - - -sub runtest { - my ($self, $tag) = @_; - - $ENV{TZ} = "UTC"; - $ENV{LC_CTYPE} = "C"; - $ENV{POSIXLY_CORRECT} = 1; - $self->sandbox_create($tag); - $self->sandbox_enter(); - - my $ok = 1; - $ok &= $self->copy_files(); - $ok &= $self->run_hook('post_copy_files'); - $ok &= $self->touch_files(); - $ok &= $self->run_hook('prepare_sandbox'); - return 'ERROR' unless ($ok); - - if ($self->{setup_only}) { - $self->sandbox_leave(); - return 'SKIP'; - } - - for my $env (@{$self->{test}->{'setenv'}}) { - $ENV{$env->[0]} = $env->[1]; - } - my $preload_env_var = 'LD_PRELOAD'; - if ($^O eq 'darwin') { - $preload_env_var = 'DYLD_INSERT_LIBRARIES'; - } - if (defined($self->{test}->{'preload'})) { - print "preloading: $preload_env_var = $self->{test}->{preload}\n"; - $ENV{$preload_env_var} = cwd() . "/../.libs/$self->{test}->{'preload'}"; - } - - $self->run_program(); - - for my $env (@{$self->{test}->{'setenv'}}) { - delete ${ENV{$env->[0]}}; - } - if (defined($self->{test}->{'preload'})) { - delete ${ENV{$preload_env_var}}; - } - - if ($self->{test}->{stdout}) { - $self->{expected_stdout} = [ @{$self->{test}->{stdout}} ]; - } - else { - $self->{expected_stdout} = []; - } - if ($self->{test}->{stderr}) { - $self->{expected_stderr} = [ @{$self->{test}->{stderr}} ]; - } - else { - $self->{expected_stderr} = []; - } - - $self->run_hook('post_run_program'); - - my @failed = (); - - if ($self->{exit_status} != ($self->{test}->{return} // 0)) { - push @failed, 'exit status'; - if ($self->{verbose}) { - print "Unexpected exit status:\n"; - print "-" . ($self->{test}->{return} // 0) . "\n+$self->{exit_status}\n"; - } - } - - if (!$self->compare_arrays($self->{expected_stdout}, $self->{stdout}, 'output')) { - push @failed, 'output'; - } - if (!$self->compare_arrays($self->{expected_stderr}, $self->{stderr}, 'error output')) { - push @failed, 'error output'; - } - if (!$self->compare_files()) { - push @failed, 'files'; - } - - $self->{failed} = \@failed; - - $self->run_hook('checks'); - - my $result = scalar(@{$self->{failed}}) == 0 ? 'PASS' : 'FAIL'; - - $self->sandbox_leave(); - if (!($self->{no_cleanup} || ($self->{keep_broken} && $result eq 'FAIL'))) { - $self->sandbox_remove(); - } - - $self->print_test_result($tag, $result, join ', ', @{$self->{failed}}); - - return $result; -} - - -sub setup { - my ($self, @argv) = @_; - - my @save_argv = @ARGV; - @ARGV = @argv; - my $ok = GetOptions( - 'help|h' => \my $help, - 'keep-broken' => \$self->{keep_broken}, - 'no-cleanup' => \$self->{no_cleanup}, - # 'run-gdb' => \$self->{run_gdb}, - 'setup-only' => \$self->{setup_only}, - 'verbose|v' => \$self->{verbose} - ); - @argv = @ARGV; - @ARGV = @save_argv; - - if (!$ok || scalar(@argv) != 1 || $help) { - print STDERR "Usage: $0 [-hv] [--keep-broken] [--no-cleanup] [--setup-only] testcase\n"; - exit(1); - } - - my $testcase = shift @argv; - - $testcase .= '.test' unless ($testcase =~ m/\.test$/); - - my $testcase_file = $self->find_file($testcase); - - $self->die("cannot find test case $testcase") unless ($testcase_file); - - $testcase =~ s,^(?:.*/)?([^/]*)\.test$,$1,; - $self->{testname} = $testcase; - - $self->die("error in test case definition") unless $self->parse_case($testcase_file); - - $self->check_features_requirement() if ($self->{test}->{features}); - - $self->end_test('SKIP') if ($self->{test}->{preload} && $^O eq 'darwin'); -} - - -# -# internal methods -# - -sub add_file { - my ($self, $file) = @_; - - if (defined($self->{files}->{$file->{destination}})) { - $self->warn("duplicate specification for input file $file->{destination}"); - return undef; - } - - $self->{files}->{$file->{destination}} = $file; - - return 1; -} - - -sub check_features_requirement() { - my ($self) = @_; - - ### TODO: implement - - return 1; -} - - -sub comparator_zip { - my ($self, $got, $expected) = @_; - - my @args = ($self->{zipcmp}, $self->{verbose} ? '-pv' : '-pq'); - push @args, $self->{zipcmp_flags} if ($self->{zipcmp_flags}); - push @args, ($expected, $got); - - my $ret = system(@args); - - return $ret == 0; -} - - -sub compare_arrays() { - my ($self, $a, $b, $tag) = @_; - - my $ok = 1; - - if (scalar(@$a) != scalar(@$b)) { - $ok = 0; - } - else { - for (my $i = 0; $i < scalar(@$a); $i++) { - if ($a->[$i] ne $b->[$i]) { - $ok = 0; - last; - } - } - } - - if (!$ok && $self->{verbose}) { - print "Unexpected $tag:\n"; - print "--- expected\n+++ got\n"; - - diff_arrays($a, $b); - } - - return $ok; -} - -sub file_cmp($$) { - my ($a, $b) = @_; - my $result = 0; - open my $fha, "< $a"; - open my $fhb, "< $b"; - binmode $fha; - binmode $fhb; - BYTE: while (!eof $fha && !eof $fhb) { - if (getc $fha ne getc $fhb) { - $result = 1; - last BYTE; - } - } - $result = 1 if eof $fha != eof $fhb; - close $fha; - close $fhb; - return $result; -} - -sub compare_file($$$) { - my ($self, $got, $expected) = @_; - - my $real_expected = $self->find_file($expected); - unless ($real_expected) { - $self->warn("cannot find expected result file $expected"); - return 0; - } - - my $ok = $self->run_comparator($got, $real_expected); - - if (!defined($ok)) { - my $ret; - if ($self->{verbose}) { - $ret = system('diff', '-u', $real_expected, $got); - } - else { - $ret = file_cmp($real_expected, $got); - } - $ok = ($ret == 0); - } - - return $ok; -} - - -sub compare_files() { - my ($self) = @_; - - my $ok = 1; - - opendir(my $ls, '.'); - unless ($ls) { - # TODO: handle error - } - my @files_got = grep { -f } readdir($ls); - closedir($ls); - - @files_got = sort @files_got; - my @files_should = (); - - for my $file (sort keys %{$self->{files}}) { - push @files_should, $file if ($self->{files}->{$file}->{result} || $self->{files}->{$file}->{ignore}); - } - - $self->{files_got} = \@files_got; - $self->{files_should} = \@files_should; - - unless ($self->run_hook('post_list_files')) { - return 0; - } - - $ok = $self->compare_arrays($self->{files_should}, $self->{files_got}, 'files'); - - for my $file (@{$self->{files_got}}) { - my $file_def = $self->{files}->{$file}; - next unless ($file_def && $file_def->{result}); - - $ok &= $self->compare_file($file, $file_def->{result}); - } - - return $ok; -} - - -sub copy_files { - my ($self) = @_; - - my $ok = 1; - - for my $filename (sort keys %{$self->{files}}) { - my $file = $self->{files}->{$filename}; - next unless ($file->{source}); - - my $src = $self->find_file($file->{source}); - unless ($src) { - $self->warn("cannot find input file $file->{source}"); - $ok = 0; - next; - } - - if ($file->{destination} =~ m,/,) { - my $dir = $file->{destination}; - $dir =~ s,/[^/]*$,,; - if (! -d $dir) { - mkpath($dir); - } - } - - my $this_ok = $self->run_copier($src, $file->{destination}); - if (defined($this_ok)) { - $ok &= $this_ok; - } - else { - unless (copy($src, $file->{destination})) { - $self->warn("cannot copy $src to $file->{destination}: $!"); - $ok = 0; - } - } - } - - if (defined($self->{test}->{mkdir})) { - for my $dir_spec (@{$self->{test}->{mkdir}}) { - my ($mode, $dir) = @$dir_spec; - if (! -d $dir) { - unless (mkdir($dir, oct($mode))) { - $self->warn("cannot create directory $dir: $!"); - $ok = 0; - } - } - } - } - - $self->die("failed to copy input files") unless ($ok); -} - - -sub die() { - my ($self, $msg) = @_; - - print STDERR "$0: $msg\n" if ($msg); - - $self->end_test('ERROR'); -} - - -sub end_test { - my ($self, $status) = @_; - - my $exit_code = $EXIT_CODES{$status} // $EXIT_CODES{ERROR}; - - $self->exit($exit_code); -} - - - -sub exit() { - my ($self, $status) = @_; - ### TODO: cleanup - - exit($status); -} - - -sub find_file() { - my ($self, $fname) = @_; - - for my $dir (('', "$self->{srcdir}/")) { - my $f = "$dir$fname"; - $f = "../$f" if ($self->{in_sandbox} && $dir !~ m,^/,); - - return $f if (-f $f); - } - - return undef; -} - - -sub get_extension { - my ($self, $fname) = @_; - - my $ext = $fname; - if ($ext =~ m/\./) { - $ext =~ s/.*\.//; - } - else { - $ext = ''; - } - - return $ext; -} - - -sub parse_args { - my ($self, $type, $str) = @_; - - if ($type eq 'string...') { - my $args = []; - - while ($str ne '') { - if ($str =~ m/^\"/) { - unless ($str =~ m/^\"([^\"]*)\"\s*(.*)/) { - $self->warn_file_line("unclosed quote in [$str]"); - return undef; - } - push @$args, $1; - $str = $2; - } - else { - $str =~ m/^(\S+)\s*(.*)/; - push @$args, $1; - $str = $2; - } - } - - return $args; - } - elsif ($type =~ m/(\s|\.\.\.$)/) { - my $ellipsis = 0; - if ($type =~ m/(.*)\.\.\.$/) { - $ellipsis = 1; - $type = $1; - } - my @types = split /\s+/, $type; - my @strs = split /\s+/, $str; - my $optional = 0; - for (my $i = scalar(@types) - 1; $i >= 0; $i--) { - last unless ($types[$i] =~ m/(.*)\?$/); - $types[$i] = $1; - $optional++; - } - - if ($ellipsis && $optional > 0) { - # TODO: check this when registering a directive - $self->warn_file_line("can't use ellipsis together with optional arguments"); - return undef; - } - if (!$ellipsis && (scalar(@strs) < scalar(@types) - $optional || scalar(@strs) > scalar(@types))) { - my $expected = scalar(@types); - if ($optional > 0) { - $expected = ($expected - $optional) . "-$expected"; - } - $self->warn_file_line("expected $expected arguments, got " . (scalar(@strs))); - return undef; - } - - my $args = []; - - my $n = scalar(@types); - for (my $i=0; $iparse_args(($i >= $n ? $types[$n-1] : $types[$i]), $strs[$i]); - return undef unless (defined($val)); - push @$args, $val; - } - - return $args; - } - else { - if ($type eq 'string') { - return $str; - } - elsif ($type eq 'int') { - if ($str !~ m/^\d+$/) { - $self->warn_file_line("illegal int [$str]"); - return undef; - } - return $str+0; - } - elsif ($type eq 'char') { - if ($str !~ m/^.$/) { - $self->warn_file_line("illegal char [$str]"); - return undef; - } - return $str; - } - else { - $self->warn_file_line("unknown type $type"); - return undef; - } - } -} - - -sub parse_case() { - my ($self, $fname) = @_; - - my $ok = 1; - - open TST, "< $fname" or $self->die("cannot open test case $fname: $!"); - - $self->{testcase_fname} = $fname; - - my %test = (); - - while (my $line = ) { - chomp $line; - - next if ($line =~ m/^\#/); - - unless ($line =~ m/(\S*)(?:\s(.*))?/) { - $self->warn_file_line("cannot parse line $line"); - $ok = 0; - next; - } - my ($cmd, $argstring) = ($1, $2//""); - - my $def = $self->{directives}->{$cmd}; - - unless ($def) { - $self->warn_file_line("unknown directive $cmd in test file"); - $ok = 0; - next; - } - - my $args = $self->parse_args($def->{type}, $argstring); - - unless (defined($args)) { - $ok = 0; - next; - } - - if ($def->{once}) { - if (defined($test{$cmd})) { - $self->warn_file_line("directive $cmd appeared twice in test file"); - } - $test{$cmd} = $args; - } - else { - $test{$cmd} = [] unless (defined($test{$cmd})); - push @{$test{$cmd}}, $args; - } - } - - close TST; - - return undef unless ($ok); - - for my $cmd (sort keys %test) { - if ($self->{directives}->{$cmd}->{required} && !defined($test{$cmd})) { - $self->warn_file("required directive $cmd missing in test file"); - $ok = 0; - } - } - - return undef unless ($ok); - - if (defined($test{'stderr-replace'}) && defined($test{stderr})) { - $test{stderr} = [ map { $self->stderr_rewrite($test{'stderr-replace'}, $_); } @{$test{stderr}} ]; - } - - if (!defined($test{program})) { - $test{program} = $self->{default_program}; - } - - $self->{test} = \%test; - - $self->run_hook('mangle_program'); - - if (!$self->parse_postprocess_files()) { - return 0; - } - - return $self->run_hook('post_parse'); -} - - -sub parse_postprocess_files { - my ($self) = @_; - - $self->{files} = {}; - - my $ok = 1; - - for my $file (@{$self->{test}->{file}}) { - $ok = 0 unless ($self->add_file({ source => $file->[1], destination => $file->[0], result => $file->[2] })); - } - - for my $file (@{$self->{test}->{'file-del'}}) { - $ok = 0 unless ($self->add_file({ source => $file->[1], destination => $file->[0], result => undef })); - } - - for my $file (@{$self->{test}->{'file-new'}}) { - $ok = 0 unless ($self->add_file({ source => undef, destination => $file->[0], result => $file->[1] })); - } - - return $ok; -} - - -sub print_test_result { - my ($self, $tag, $result, $reason) = @_; - - if ($self->{verbose}) { - print "$self->{testname}"; - print " ($tag)" if ($tag); - print " -- $result"; - print ": $reason" if ($reason); - print "\n"; - } -} - - -sub run_comparator { - my ($self, $got, $expected) = @_; - - return $self->run_file_proc('compare_by_type', $got, $expected); -} - - -sub run_copier { - my ($self, $src, $dest) = @_; - - return $self->run_file_proc('copy_by_type', $src, $dest); -} - - -sub run_file_proc { - my ($self, $proc, $got, $expected) = @_; - - my $ext = ($self->get_extension($got)) . '/' . ($self->get_extension($expected)); - - if (defined($self->{$proc}->{$ext})) { - for my $sub (@{$self->{$proc}->{$ext}}) { - my $ret = $sub->($self, $got, $expected); - return $ret if (defined($ret)); - } - } - - return undef; -} - - -sub run_hook { - my ($self, $hook) = @_; - - my $ok = 1; - - if (defined($self->{hooks}->{$hook})) { - for my $sub (@{$self->{hooks}->{$hook}}) { - unless ($sub->($self, $hook)) { - $self->warn("hook $hook failed"); - $ok = 0; - } - } - } - - return $ok; -} -sub args_decode { - - - my ($str, $srcdir) = @_; - - if ($str =~ m/\\/) { - $str =~ s/\\a/\a/gi; - $str =~ s/\\b/\b/gi; - $str =~ s/\\f/\f/gi; - $str =~ s/\\n/\n/gi; - $str =~ s/\\r/\r/gi; - $str =~ s/\\t/\t/gi; - $str =~ s/\\v/\cK/gi; - $str =~ s/\\s/ /gi; - # TODO: \xhh, \ooo - $str =~ s/\\(.)/$1/g; - } - - if ($srcdir !~ m,^/,) { - $srcdir = "../$srcdir"; - } - - if ($str =~ m/^\$srcdir(.*)/) { - $str = "$srcdir$1"; - } - - return $str; -} - - -sub run_program { - my ($self) = @_; - goto &pipein_win32 if $^O eq 'MSWin32' && $self->{test}->{pipein}; - my ($stdin, $stdout, $stderr); - $stderr = gensym; - - my @cmd = ('../' . $self->{test}->{program}, map ({ args_decode($_, $self->{srcdir}); } @{$self->{test}->{args}})); - - ### TODO: catch errors? - - my $pid = open3($stdin, $stdout, $stderr, @cmd); - - $self->{stdout} = []; - $self->{stderr} = []; - - if ($self->{test}->{pipein}) { - my $fh; - open($fh, "$self->{test}->{pipein} |"); - if (!defined($fh)) { - $self->die("cannot run pipein command [$self->{test}->{pipein}: $!"); - } - while (my $line = <$fh>) { - print $stdin $line; - } - close($fh); - close($stdin); - } - - while (my $line = <$stdout>) { - if ($^O eq 'MSWin32') { - $line =~ s/[\r\n]+$//; - } - else { - chomp $line; - } - push @{$self->{stdout}}, $line; - } - my $prg = $self->{test}->{program}; - $prg =~ s,.*/,,; - while (my $line = <$stderr>) { - if ($^O eq 'MSWin32') { - $line =~ s/[\r\n]+$//; - } - else { - chomp $line; - } - - $line =~ s/^[^: ]*$prg: //; - if (defined($self->{test}->{'stderr-replace'})) { - $line = $self->stderr_rewrite($self->{test}->{'stderr-replace'}, $line); - } - push @{$self->{stderr}}, $line; - } - - waitpid($pid, 0); - - $self->{exit_status} = $? >> 8; -} - -sub pipein_win32() { - my ($self) = @_; - - my $cmd = "$self->{test}->{pipein}| ..\\$self->{test}->{program} " . join(' ', map ({ args_decode($_, $self->{srcdir}); } @{$self->{test}->{args}})); - my ($success, $error_message, $full_buf, $stdout_buf, $stderr_buf) = IPC::Cmd::run(command => $cmd); - if (!$success) { - ### TODO: catch errors? - } - - my @stdout = map { s/[\r\n]+$// } @$stdout_buf; - $self->{stdout} = \@stdout; - $self->{stderr} = []; - - my $prg = $self->{test}->{program}; - $prg =~ s,.*/,,; - foreach my $line (@$stderr_buf) { - $line =~ s/[\r\n]+$//; - - $line =~ s/^[^: ]*$prg: //; - if (defined($self->{test}->{'stderr-replace'})) { - $line = $self->stderr_rewrite($self->{test}->{'stderr-replace'}, $line); - } - push @{$self->{stderr}}, $line; - } - - $self->{exit_status} = 1; - if ($success) { - $self->{exit_status} = 0; - } - elsif ($error_message =~ /exited with value ([0-9]+)$/) { - $self->{exit_status} = $1 + 0; - } -} - -sub sandbox_create { - my ($self, $tag) = @_; - - $tag = ($tag ? "-$tag" : ""); - $self->{sandbox_dir} = "sandbox-$self->{testname}$tag.d$$"; - - $self->die("sandbox $self->{sandbox_dir} already exists") if (-e $self->{sandbox_dir}); - - mkdir($self->{sandbox_dir}) or $self->die("cannot create sandbox $self->{sandbox_dir}: $!"); - - return 1; -} - - -sub sandbox_enter { - my ($self) = @_; - - $self->die("internal error: cannot enter sandbox before creating it") unless (defined($self->{sandbox_dir})); - - return if ($self->{in_sandbox}); - - chdir($self->{sandbox_dir}) or $self->die("cant cd into sandbox $self->{sandbox_dir}: $!"); - - $self->{in_sandbox} = 1; -} - - -sub sandbox_leave { - my ($self) = @_; - - return if (!$self->{in_sandbox}); - - chdir('..') or $self->die("cannot leave sandbox: $!"); - - $self->{in_sandbox} = 0; -} - - -sub sandbox_remove { - my ($self) = @_; - - my $ok = 1; - remove_tree($self->{sandbox_dir}); - - return $ok; -} - - -sub touch_files { - my ($self) = @_; - - my $ok = 1; - - if (defined($self->{test}->{touch})) { - for my $args (@{$self->{test}->{touch}}) { - my ($mtime, $fname) = @$args; - - if (!-f $fname) { - my $fh; - unless (open($fh, "> $fname") and close($fh)) { - # TODO: error message - $ok = 0; - next; - } - } - unless (utime($mtime, $mtime, $fname) == 1) { - # TODO: error message - $ok = 0; - } - } - } - - return $ok; -} - - -sub warn { - my ($self, $msg) = @_; - - print STDERR "$0: $msg\n"; -} - - -sub warn_file { - my ($self, $msg) = @_; - - $self->warn("$self->{testcase_fname}: $msg"); -} - - -sub warn_file_line { - my ($self, $msg) = @_; - - $self->warn("$self->{testcase_fname}:$.: $msg"); -} - -sub stderr_rewrite { - my ($self, $pattern, $line) = @_; - for my $repl (@{$pattern}) { - $line =~ s/$repl->[0]/$repl->[1]/; - } - return $line; -} - - -# MARK: array diff - -sub diff_arrays { - my ($a, $b) = @_; - - my ($i, $j); - for ($i = $j = 0; $i < scalar(@$a) || $j < scalar(@$b);) { - if ($i >= scalar(@$a)) { - print "+$b->[$j]\n"; - $j++; - } - elsif ($j >= scalar(@$b)) { - print "-$a->[$i]\n"; - $i++; - } - elsif ($a->[$i] eq $b->[$j]) { - print " $a->[$i]\n"; - $i++; - $j++; - } - else { - my ($off_a, $off_b) = find_best_offsets($a, $i, $b, $j); - my ($off_b_2, $off_a_2) = find_best_offsets($b, $j, $a, $i); - - if ($off_a + $off_b > $off_a_2 + $off_b_2) { - $off_a = $off_a_2; - $off_b = $off_b_2; - } - - for (my $off = 0; $off < $off_a; $off++) { - print "-$a->[$i]\n"; - $i++; - } - for (my $off = 0; $off < $off_b; $off++) { - print "+$b->[$j]\n"; - $j++; - } - } - } - -} - -sub find_best_offsets { - my ($a, $i, $b, $j) = @_; - - my ($best_a, $best_b); - - for (my $off_a = 0; $off_a < (defined($best_a) ? $best_a + $best_b : scalar(@$a) - $i); $off_a++) { - my $off_b = find_entry($a->[$i+$off_a], $b, $j, defined($best_a) ? $best_a + $best_b - $off_a : scalar(@$b) - $j); - - next unless (defined($off_b)); - - if (!defined($best_a) || $best_a + $best_b > $off_a + $off_b) { - $best_a = $off_a; - $best_b = $off_b; - } - } - - if (!defined($best_a)) { - return (scalar(@$a) - $i, scalar(@$b) - $j); - } - - return ($best_a, $best_b); -} - -sub find_entry { - my ($entry, $array, $start, $max_offset) = @_; - - for (my $offset = 0; $offset < $max_offset; $offset++) { - return $offset if ($array->[$start + $offset] eq $entry); - } - - return undef; -} - -1; diff --git a/libzip-1.2.0/regress/add_dir.test b/libzip-1.2.0/regress/add_dir.test deleted file mode 100644 index b6a4d371c..000000000 --- a/libzip-1.2.0/regress/add_dir.test +++ /dev/null @@ -1,4 +0,0 @@ -# add directories to zip -return 0 -args testdir.zip add_dir testdir/ add_dir testdir-noslash -file-new testdir.zip testdir.zip diff --git a/libzip-1.2.0/regress/add_from_buffer.test b/libzip-1.2.0/regress/add_from_buffer.test deleted file mode 100644 index 6963c58af..000000000 --- a/libzip-1.2.0/regress/add_from_buffer.test +++ /dev/null @@ -1,4 +0,0 @@ -# add buffer contents as file to zip -return 0 -args testbuffer.zip add teststring.txt "This is a test, and it seems to have been successful.\n" -file-new testbuffer.zip testbuffer.zip diff --git a/libzip-1.2.0/regress/add_from_file.test b/libzip-1.2.0/regress/add_from_file.test deleted file mode 100644 index 4f97d2781..000000000 --- a/libzip-1.2.0/regress/add_from_file.test +++ /dev/null @@ -1,5 +0,0 @@ -# add file to zip -return 0 -args -- testfile.zip add_file testfile.txt testfile.txt 0 -1 -file testfile.txt testfile.txt testfile.txt -file-new testfile.zip testfile.zip diff --git a/libzip-1.2.0/regress/add_from_file_duplicate.test b/libzip-1.2.0/regress/add_from_file_duplicate.test deleted file mode 100644 index 018b260a7..000000000 --- a/libzip-1.2.0/regress/add_from_file_duplicate.test +++ /dev/null @@ -1,6 +0,0 @@ -# add already existing file to zip, making duplicate names -return 1 -args -- testfile.zip add_file testfile.txt testfile.txt 0 -1 -file testfile.txt testfile.txt testfile.txt -file testfile.zip testfile.zip testfile.zip -stderr can't add file 'testfile.txt': File already exists diff --git a/libzip-1.2.0/regress/add_from_file_twice_duplicate.test b/libzip-1.2.0/regress/add_from_file_twice_duplicate.test deleted file mode 100644 index 511c90b2f..000000000 --- a/libzip-1.2.0/regress/add_from_file_twice_duplicate.test +++ /dev/null @@ -1,6 +0,0 @@ -# add file to zip twice, making duplicate names -return 1 -args -- testfile.zip add_file testfile.txt testfile.txt 0 -1 add_file testfile.txt testfile.txt 0 -1 -file testfile.txt testfile.txt testfile.txt -file-new testfile.zip testfile.zip -stderr can't add file 'testfile.txt': File already exists diff --git a/libzip-1.2.0/regress/add_from_filep.c b/libzip-1.2.0/regress/add_from_filep.c deleted file mode 100644 index c97b99e0d..000000000 --- a/libzip-1.2.0/regress/add_from_filep.c +++ /dev/null @@ -1,102 +0,0 @@ -/* - add_from_filep.c -- test case for adding file to archive - Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include -#include -#include - -#include "zip.h" - -static const char *prg; - -int -main(int argc, char *argv[]) -{ - const char *archive; - const char *file; - const char *name; - zip_t *za; - zip_source_t *zs; - int err; - FILE *fp; - - prg = argv[0]; - - if (argc != 3) { - fprintf(stderr, "usage: %s archive file\n", prg); - return 1; - } - - archive = argv[1]; - file = argv[2]; - - if ((za=zip_open(archive, ZIP_CREATE, &err)) == NULL) { - zip_error_t error; - zip_error_init_with_code(&error, err); - fprintf(stderr, "%s: can't open zip archive '%s': %s\n", prg, archive, zip_error_strerror(&error)); - zip_error_fini(&error); - return 1; - } - - if ((fp=fopen(file, "r")) == NULL) { - fprintf(stderr, "%s: can't open input file '%s': %s\n", prg, - file, strerror(errno)); - return 1; - } - - if ((zs=zip_source_filep(za, fp, 0, -1)) == NULL) { - fprintf(stderr, "%s: error creating file source for '%s': %s\n", prg, - file, zip_strerror(za)); - return 1; - } - - if ((name=strrchr(file, '/')) == NULL) - name = file; - - if (zip_add(za, name, zs) == -1) { - zip_source_free(zs); - fprintf(stderr, "%s: can't add file '%s': %s\n", prg, - file, zip_strerror(za)); - return 1; - } - - if (zip_close(za) == -1) { - fprintf(stderr, "%s: can't close zip archive '%s': %s\n", prg, - archive, zip_strerror(za)); - return 1; - } - - return 0; -} diff --git a/libzip-1.2.0/regress/add_from_filep.test b/libzip-1.2.0/regress/add_from_filep.test deleted file mode 100644 index 3a2a8cfe3..000000000 --- a/libzip-1.2.0/regress/add_from_filep.test +++ /dev/null @@ -1,6 +0,0 @@ -# add file to zip -program add_from_filep -return 0 -args testfile.zip testfile.txt -file testfile.txt testfile.txt testfile.txt -file-new testfile.zip testfile.zip diff --git a/libzip-1.2.0/regress/add_from_stdin.test b/libzip-1.2.0/regress/add_from_stdin.test deleted file mode 100644 index 673643852..000000000 --- a/libzip-1.2.0/regress/add_from_stdin.test +++ /dev/null @@ -1,5 +0,0 @@ -# add stdin to zip -pipein echo This is a test, and it seems to have been successful. -args -- teststdin.zip add_file teststring.txt /dev/stdin 0 -1 -return 0 -file-new teststdin.zip teststdin.zip diff --git a/libzip-1.2.0/regress/add_from_zip_closed.test b/libzip-1.2.0/regress/add_from_zip_closed.test deleted file mode 100644 index 4c52e56c3..000000000 --- a/libzip-1.2.0/regress/add_from_zip_closed.test +++ /dev/null @@ -1,5 +0,0 @@ -# add deflated file from zip to zip, but close the source before it can be read -return 1 -args -- testfile.zip add_from_zip abac-repeat.txt testdeflated.zzip 0 0 -1 zin_close 0 -file testdeflated.zzip testdeflated.zip testdeflated.zip -stderr can't close zip archive 'testfile.zip': Containing zip archive was closed diff --git a/libzip-1.2.0/regress/add_from_zip_deflated.test b/libzip-1.2.0/regress/add_from_zip_deflated.test deleted file mode 100644 index ecff27dd4..000000000 --- a/libzip-1.2.0/regress/add_from_zip_deflated.test +++ /dev/null @@ -1,5 +0,0 @@ -# add deflated file from zip to zip -return 0 -args -- testfile.zip add_from_zip abac-repeat.txt testdeflated.zzip 0 0 -1 -file testdeflated.zzip testdeflated.zip testdeflated.zip -file-new testfile.zip testdeflated.zip diff --git a/libzip-1.2.0/regress/add_from_zip_deflated2.test b/libzip-1.2.0/regress/add_from_zip_deflated2.test deleted file mode 100644 index ad7b4b604..000000000 --- a/libzip-1.2.0/regress/add_from_zip_deflated2.test +++ /dev/null @@ -1,5 +0,0 @@ -# add deflated files from zip to zip -return 0 -args -- testfile.zip add_from_zip abac-repeat.txt testdeflated.zzip 0 0 -1 add_from_zip abac-repeat2.txt testdeflated.zzip 0 0 -1 -file testdeflated.zzip testdeflated.zip testdeflated.zip -file-new testfile.zip testdeflated2.zip diff --git a/libzip-1.2.0/regress/add_from_zip_partial_deflated.test b/libzip-1.2.0/regress/add_from_zip_partial_deflated.test deleted file mode 100644 index 69e95c6c8..000000000 --- a/libzip-1.2.0/regress/add_from_zip_partial_deflated.test +++ /dev/null @@ -1,5 +0,0 @@ -# add parts of a file from zip to zip -return 0 -args -- testfile.zip add_from_zip first firstsecond.zzip 0 0 9 add_from_zip second firstsecond.zzip 0 9 -1 -file firstsecond.zzip firstsecond.zip firstsecond.zip -file-new testfile.zip firstsecond-split-stored.zip diff --git a/libzip-1.2.0/regress/add_from_zip_partial_stored.test b/libzip-1.2.0/regress/add_from_zip_partial_stored.test deleted file mode 100644 index 41ebf2138..000000000 --- a/libzip-1.2.0/regress/add_from_zip_partial_stored.test +++ /dev/null @@ -1,5 +0,0 @@ -# add parts of a file from zip to zip -return 0 -args -- testfile.zip add_from_zip first firstsecond.zzip 1 0 9 add_from_zip second firstsecond.zzip 1 9 -1 -file firstsecond.zzip firstsecond.zip firstsecond.zip -file-new testfile.zip firstsecond-split-stored.zip diff --git a/libzip-1.2.0/regress/add_from_zip_stored.test b/libzip-1.2.0/regress/add_from_zip_stored.test deleted file mode 100644 index 2fcbe80cc..000000000 --- a/libzip-1.2.0/regress/add_from_zip_stored.test +++ /dev/null @@ -1,5 +0,0 @@ -# add stored file from zip to zip -return 0 -args -- testfile.zip add_from_zip abac-repeat.txt teststored.zzip 0 0 -1 -file teststored.zzip teststored.zip teststored.zip -file-new testfile.zip testdeflated.zip diff --git a/libzip-1.2.0/regress/add_stored.test b/libzip-1.2.0/regress/add_stored.test deleted file mode 100644 index ea96f2532..000000000 --- a/libzip-1.2.0/regress/add_stored.test +++ /dev/null @@ -1,4 +0,0 @@ -# add file, set compression method to ZIP_CM_STORE -return 0 -args -n test.zip add foo foo set_file_compression 0 store 0 -file-new test.zip foo-stored.zip diff --git a/libzip-1.2.0/regress/add_stored_in_memory.test b/libzip-1.2.0/regress/add_stored_in_memory.test deleted file mode 100644 index 50467c6e7..000000000 --- a/libzip-1.2.0/regress/add_stored_in_memory.test +++ /dev/null @@ -1,4 +0,0 @@ -# add file, set compression method to ZIP_CM_STORE -return 0 -args -mn test.zip add foo foo set_file_compression 0 store 0 -file-new test.zip foo-stored.zip diff --git a/libzip-1.2.0/regress/bigstored.zh b/libzip-1.2.0/regress/bigstored.zh deleted file mode 100644 index 6951028069247a6b2f0444af2ac4252af51434e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24632 zcmeI)F-ikL6adh_t0oE-7CC_S2Gq_jc7Z@h;Q>?-2}A_#?9y22N$hiwoI~&kac12_ zA}FFrnm5bt?4O;P9bWzU{bBbYsIp^g9n0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBmVtw72F zII2$2oXv7Rz^_k}6A4=N>b-cFo<2t>h3Vc(-QD&1Xp~b4(z`~0009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF{IkF!A0X8T_)|W>56?O16=gfVu0Sx~W-`ui-_#@c zywP$7!uEWhn2d9MgGD|<5u0(GKIYN}gI=StUr+ovQ$$&h&HKkXKI<&jHS^F*9l!6j y(a2+Ey7K(|(;RCA2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkKc6#{Pv!bUOx diff --git a/libzip-1.2.0/regress/bigzero-zip.zip b/libzip-1.2.0/regress/bigzero-zip.zip deleted file mode 100644 index 158cb6de22147d50603f20ac7c8868896ae6e365..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10490 zcmeHNk53zQ6#urRn^*#iWAysZj)wmf9}L8;)Cw9_pjw?iS&1Rr(LQW^m1PcwBwd8t90v?4!OV@k(OU(2-Rqw z+{UxE>x_Q2$rw|weX04jE{!#>U>djBKJzyIOOzJqpV;FRr+OR-hj~_o@5+4oSD6D$ zZ_ekbJWXjI3R!=APTX(XJS^gAgHL@+|{?qQASgX-&R1x-B1);p5- zaVm3BJkOfp_S8Fn-z1`3iGmRue=RoKfF(FtvB(cI%=FPmKRFMEdKMc5O{#li)w0K6 zci}_AoK)w{-~7-(Ywi||h@b1cT4pG%|Lf6OUYx?`4qV(_X4qdIen!xwXX>O?`YAqf zwndnet;DfV{y-o{Dj4zp(%5X~z$1Bqlw4k1yN<3?bz}}?XR*SHX(ubUJHQbQQ7;288o-Cg#D14|Vi+ZvM3V@&h2!VnSCoY=E z3mhVgC^&+_gYZv+J4IT!#j1}gbK~%U2@gdud(YxrJI1+aj diff --git a/libzip-1.2.0/regress/bogus.zip b/libzip-1.2.0/regress/bogus.zip deleted file mode 100644 index 7e538b626..000000000 --- a/libzip-1.2.0/regress/bogus.zip +++ /dev/null @@ -1 +0,0 @@ -bogus data diff --git a/libzip-1.2.0/regress/broken.zip b/libzip-1.2.0/regress/broken.zip deleted file mode 100644 index 2008c3244d97007f63d7f6be2e9a71d17a123bdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75091 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 entries -args manyfiles.zip get_num_entries 0 -return 0 -file manyfiles.zip manyfiles.zip manyfiles.zip -stdout 70000 entries in archive diff --git a/libzip-1.2.0/regress/decrypt-correct-password-aes128.test b/libzip-1.2.0/regress/decrypt-correct-password-aes128.test deleted file mode 100644 index a0409d907..000000000 --- a/libzip-1.2.0/regress/decrypt-correct-password-aes128.test +++ /dev/null @@ -1,5 +0,0 @@ -# test AES decryption support, extract file using correct password -return 0 -args encrypt.zzip set_password foofoofoo cat 1 -file encrypt.zzip encrypt-aes128.zip encrypt-aes128.zip -stdout encrypted diff --git a/libzip-1.2.0/regress/decrypt-correct-password-aes192.test b/libzip-1.2.0/regress/decrypt-correct-password-aes192.test deleted file mode 100644 index 56fc456ad..000000000 --- a/libzip-1.2.0/regress/decrypt-correct-password-aes192.test +++ /dev/null @@ -1,5 +0,0 @@ -# test AES decryption support, extract file using correct password -return 0 -args encrypt.zzip set_password foofoofoo cat 1 -file encrypt.zzip encrypt-aes192.zip encrypt-aes192.zip -stdout encrypted diff --git a/libzip-1.2.0/regress/decrypt-correct-password-aes256.test b/libzip-1.2.0/regress/decrypt-correct-password-aes256.test deleted file mode 100644 index e704b5301..000000000 --- a/libzip-1.2.0/regress/decrypt-correct-password-aes256.test +++ /dev/null @@ -1,5 +0,0 @@ -# test AES decryption support, extract file using correct password -return 0 -args encrypt.zzip set_password foofoofoo cat 1 -file encrypt.zzip encrypt-aes256.zip encrypt-aes256.zip -stdout encrypted diff --git a/libzip-1.2.0/regress/decrypt-correct-password-pkware.test b/libzip-1.2.0/regress/decrypt-correct-password-pkware.test deleted file mode 100644 index c12639458..000000000 --- a/libzip-1.2.0/regress/decrypt-correct-password-pkware.test +++ /dev/null @@ -1,5 +0,0 @@ -# test decryption support, extract file using correct password -return 0 -args encrypt.zzip set_password foo cat 0 -file encrypt.zzip encrypt.zip encrypt.zip -stdout foo diff --git a/libzip-1.2.0/regress/decrypt-no-password-aes256.test b/libzip-1.2.0/regress/decrypt-no-password-aes256.test deleted file mode 100644 index f1a4ce833..000000000 --- a/libzip-1.2.0/regress/decrypt-no-password-aes256.test +++ /dev/null @@ -1,5 +0,0 @@ -# test AES decryption support, no password provided -return 1 -args encrypt.zzip cat 1 -file encrypt.zzip encrypt-aes256.zip encrypt-aes256.zip -stderr can't open file at index '1': No password provided diff --git a/libzip-1.2.0/regress/decrypt-wrong-password-aes128.test b/libzip-1.2.0/regress/decrypt-wrong-password-aes128.test deleted file mode 100644 index 7866efa7e..000000000 --- a/libzip-1.2.0/regress/decrypt-wrong-password-aes128.test +++ /dev/null @@ -1,5 +0,0 @@ -# test AES decryption support, extract file using wrong password -return 1 -args encrypt.zzip set_password notfoonotfoo cat 1 -file encrypt.zzip encrypt-aes128.zip encrypt-aes128.zip -stderr can't open file at index '1': Wrong password provided diff --git a/libzip-1.2.0/regress/decrypt-wrong-password-aes192.test b/libzip-1.2.0/regress/decrypt-wrong-password-aes192.test deleted file mode 100644 index 9a4206d44..000000000 --- a/libzip-1.2.0/regress/decrypt-wrong-password-aes192.test +++ /dev/null @@ -1,5 +0,0 @@ -# test AES decryption support, extract file using wrong password -return 1 -args encrypt.zzip set_password notfoonotfoo cat 1 -file encrypt.zzip encrypt-aes192.zip encrypt-aes192.zip -stderr can't open file at index '1': Wrong password provided diff --git a/libzip-1.2.0/regress/decrypt-wrong-password-aes256.test b/libzip-1.2.0/regress/decrypt-wrong-password-aes256.test deleted file mode 100644 index 8cf701ce8..000000000 --- a/libzip-1.2.0/regress/decrypt-wrong-password-aes256.test +++ /dev/null @@ -1,5 +0,0 @@ -# test AES decryption support, extract file using wrong password -return 1 -args encrypt.zzip set_password notfoonotfoo cat 1 -file encrypt.zzip encrypt-aes256.zip encrypt-aes256.zip -stderr can't open file at index '1': Wrong password provided diff --git a/libzip-1.2.0/regress/decrypt-wrong-password-pkware.test b/libzip-1.2.0/regress/decrypt-wrong-password-pkware.test deleted file mode 100644 index 02749557e..000000000 --- a/libzip-1.2.0/regress/decrypt-wrong-password-pkware.test +++ /dev/null @@ -1,5 +0,0 @@ -# test decryption support, extract file using wrong password -return 1 -args encrypt.zzip set_password notfoo cat 0 -file encrypt.zzip encrypt.zip encrypt.zip -stderr can't open file at index '0': Wrong password provided diff --git a/libzip-1.2.0/regress/delete_add_same.test b/libzip-1.2.0/regress/delete_add_same.test deleted file mode 100644 index 54c0e5a73..000000000 --- a/libzip-1.2.0/regress/delete_add_same.test +++ /dev/null @@ -1,5 +0,0 @@ -# delete entry in zip archive then add file of same name -# time is now(), so use zipcmp -return 0 -args testfile.zip delete 0 add testfile.txt test -file testfile.zip testfile.zip test2.zip diff --git a/libzip-1.2.0/regress/delete_invalid.test b/libzip-1.2.0/regress/delete_invalid.test deleted file mode 100644 index 9a06306bf..000000000 --- a/libzip-1.2.0/regress/delete_invalid.test +++ /dev/null @@ -1,5 +0,0 @@ -# delete last entry in zip archive -return 1 -args testfile.zzip delete 5 -file testfile.zzip testfile.zip testfile.zip -stderr can't delete file at index '5': Invalid argument diff --git a/libzip-1.2.0/regress/delete_last.test b/libzip-1.2.0/regress/delete_last.test deleted file mode 100644 index 3b415b50e..000000000 --- a/libzip-1.2.0/regress/delete_last.test +++ /dev/null @@ -1,4 +0,0 @@ -# delete last entry in zip archive -return 0 -args testfile.zzip delete 0 -file-del testfile.zzip testfile.zip diff --git a/libzip-1.2.0/regress/delete_multiple_last.test b/libzip-1.2.0/regress/delete_multiple_last.test deleted file mode 100644 index 71ac98354..000000000 --- a/libzip-1.2.0/regress/delete_multiple_last.test +++ /dev/null @@ -1,4 +0,0 @@ -# delete multiple entries in zip archive, emptying it -return 0 -args testfile.zzip delete 0 delete 1 delete 2 delete 3 -file-del testfile.zzip testcomment.zip diff --git a/libzip-1.2.0/regress/delete_multiple_partial.test b/libzip-1.2.0/regress/delete_multiple_partial.test deleted file mode 100644 index 272fab3cf..000000000 --- a/libzip-1.2.0/regress/delete_multiple_partial.test +++ /dev/null @@ -1,4 +0,0 @@ -# delete some entries in zip archive -return 0 -args testfile.zip delete 1 delete 3 -file testfile.zip testcomment.zip testcomment13.zip diff --git a/libzip-1.2.0/regress/delete_renamed_rename.test b/libzip-1.2.0/regress/delete_renamed_rename.test deleted file mode 100644 index e81996c41..000000000 --- a/libzip-1.2.0/regress/delete_renamed_rename.test +++ /dev/null @@ -1,5 +0,0 @@ -# delete renamed entry in zip archive then rename file to same name -# file date is now(), so use zipcmp -return 0 -args testfile.zip rename 0 something add test test delete 0 rename 1 testfile.txt -file testfile.zip testfile.zip test2.zip diff --git a/libzip-1.2.0/regress/encrypt-aes128-noentropy.zip b/libzip-1.2.0/regress/encrypt-aes128-noentropy.zip deleted file mode 100644 index e54572217696016cd9e16dbf1a373b16aa6c8186..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmWIWW@h1H0D+vD*&iagn^MEnIRXb5GcnW2gD$) zoDAFysd>pol?5fKDU37O8JHLxT^T_tAi!r`-(Jg2kNw+^^Z!e}w|~ONJh9i`Uk7+I zGRZOHwi=`tWXP6A5DV-EkQNbU+>QV#1c7ahnm`hplLEY1L0$v8kcpubNLPY53;-=D BFtz{y diff --git a/libzip-1.2.0/regress/encrypt-aes128.zip b/libzip-1.2.0/regress/encrypt-aes128.zip deleted file mode 100644 index e48c3c93430b90533a27fb4586e004805911c367..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmWIWW@h1H0D+vD*&iagn^MEnIRXb5GcnW2gD$) zoDAFysd>pol?5fKDU37O8JHLxT^Sh|YO5+7g^CYl%AT1ytG9HLZ~D@!ZBw2W$$Woh zxFFFwz?+dtjv2SrARB;&Fl=cAvA}KsX%S(@?Ff)U5ZKnJ2_&&ODZrZ*D*&iagn^MEnIRXb5Gco>1jHb% zoDAFysd>pol?5fKDU37O8JHLxU70{C5Wt{l&$2HjZLW*_9P~x@q|85lj_;uR`~Yu8 zCOKx@)`Rpj0`Znc5DV-MkQNbU+ztUL1c7ahnm`hpvjV(XLEZzpl8K=dNY{cm3;?NI BEvNth diff --git a/libzip-1.2.0/regress/encrypt-aes192.zip b/libzip-1.2.0/regress/encrypt-aes192.zip deleted file mode 100644 index 98865ce41e14ece71c9b09122639604473b2abc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 316 zcmWIWW@h1H0D+v|QZ$-un2 zvnoQMt11GlfGYrKhzJ8CLo!1y&=8;+1|=W{8OzDQ&5)XxTvS<5lA6LelbwNy!O@k8 zfkFLh>&;}BqCa7q?q!_Wuqk5g!Q6Klj~;KiDVxOc`OERRt6>4&j7)OOxSS>dvIJ-& z1H+a^5DV;%&=6LL%g|g5GD?IQw*x^2fWWp!S0IVaxdGm+pdbOdo{6CsNY4au7y#hJ BL%RR~ diff --git a/libzip-1.2.0/regress/encrypt-aes256-noentropy.zip b/libzip-1.2.0/regress/encrypt-aes256-noentropy.zip deleted file mode 100644 index 0a3627a6ccdf23f8e782267d1a13e329ab4a07e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 268 zcmWIWW@h1H0D+vD*&iagn^MEnIRXb5Gco>2E-t( zoDAFysd>pol?5fKDU37O8JHLxU70~DP(j3jUH*FurzTBb&iU!>jT=wCRVEjSbOd-a zGRZOHb^^!@Mj+nO2x5WV0@5PFjN36Fg&?r4Q4>gFb6S8mE69sLmohPw0%@?>3;|QZ$-un2 zvnm3F!3wwnfQE=LFft@F3*gfhJ{4 z3R>o~FM6+~?h-5635S)!!_4w0mK0nm@aaBx{k*63f#dA```QD%8JXmmaXC){WD(F- z28Jz-AQspyp&_gg*P*!@WRwUqZbyO)0D*0du0Rr-lLNe2LBRs_0TV+nke&D*&ia1SrJ7kPB288rSn1qz!~Q zfjBiUxu~+BBsB%j0BT@ll4HhgHc%G>BM@(C1hK%DfV7A(fR;LXS+&Wy`tydXmv7=d_6BZ!6MPF9FJLn{~!Z5?r^7FX@ycwCqnQ=K!31leP=}Q_xEF{OWLL3`f u!GPV7FoQwbFrCE<5{4R_2xLJW2{aVqKn8{YZ&o&t8YUo|38d$OI1B(}ElLys diff --git a/libzip-1.2.0/regress/encrypt_plus_extra_modified_c.zip b/libzip-1.2.0/regress/encrypt_plus_extra_modified_c.zip deleted file mode 100644 index f50d6496e37e8089e0e1722e219b4963bcdce0fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332 zcmWIWW@h1HU}RumFl?A%vLe-}P5{Ve0b))DEr!&*!Z5?r^7FX@ycwCqnQ=K!31leP=}Q_xEF{OWLL3`f x!2ouoE4m|L27|O=I*S)13^h0r$bvc&Xeh*i3=9F@tZX1POh7mjNY4dv7ywsIN%Q~! diff --git a/libzip-1.2.0/regress/encrypt_plus_extra_modified_l.zip b/libzip-1.2.0/regress/encrypt_plus_extra_modified_l.zip deleted file mode 100644 index a546022e0b1f054e59ed0847b6bc76b3772bad41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332 zcmWIWW@h1HU}RumFl?A%vLe-}P5{Ve0b))DEr!&*!Z5?r^7FX@ycwCqnQ=K!31leP=}Q_xEF{OWLL3`f x!2ot-D!Lm>10#c>kueCH1b8zt$uZ+r2htA$TN*(mNLPS2 RD;tQ-2!uvJS`EZu006>b4pjgE diff --git a/libzip-1.2.0/regress/extra_field_align_1-ef_00.zip b/libzip-1.2.0/regress/extra_field_align_1-ef_00.zip deleted file mode 100644 index c07777b0016ced4ba93730e2a6fa3ac46f3cda10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123 zcmWIWW@h1H0D<*uOgy%~zthYJWJ54FgW>=GYz&4*#wMm_42A*Tj7)OOxD|s<0TNpp XK`dmg0p6@^ATdTDv;xxFAPxfn&72gG diff --git a/libzip-1.2.0/regress/extra_field_align_1-ef_ff.zip b/libzip-1.2.0/regress/extra_field_align_1-ef_ff.zip deleted file mode 100644 index d62e0ec2ca51785166f561558090759e42a3c2c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123 zcmWIWW@h1H0D<*uOgy%~zthYJWJ54FgW>=GYz&4*#wMm_{|y7Y8JXmmaVrL!0wlIH Xf>_8}1H4(;Kw^wQXa%ITK^z7EHbNGU diff --git a/libzip-1.2.0/regress/extra_field_align_1-ff.zip b/libzip-1.2.0/regress/extra_field_align_1-ff.zip deleted file mode 100644 index 6b05df2f24ae3e9c29a9f1cae162634e281275de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110 zcmWIWW@h1H00E7aCLW6)Jf6)0WP>m>10#c>k@0^ZHVN=%WRhdXtq!Cg1hzDSNRX}o SZ&o%Cn-K_&fV3Kj!vFv#4G>cR diff --git a/libzip-1.2.0/regress/extra_field_align_2-0.zip b/libzip-1.2.0/regress/extra_field_align_2-0.zip deleted file mode 100644 index c7072d2d2288b9d503c378141a753ef5e846055b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110 zcmWIWW@h1H00E7aCLW6)Jf6)0WP>mh5E>dW0I{)2fHxzP95ZfpApIb)r4dAebOm^` QvVqu)KnUbAsDU^P0Im!T?*IS* diff --git a/libzip-1.2.0/regress/extra_field_align_2-ef_00.zip b/libzip-1.2.0/regress/extra_field_align_2-ef_00.zip deleted file mode 100644 index 68e40891573b9b79a4388369824de553efe78eba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123 zcmWIWW@h1H0D<*uOgy%~zthYJWJ54FgW>=GtPF-m#wMl=42A*Tj7)OOxD|s<0TNpp XK`dmg0p6@^ATdTDv;xxFAPxfnwviMg diff --git a/libzip-1.2.0/regress/extra_field_align_2-ef_ff.zip b/libzip-1.2.0/regress/extra_field_align_2-ef_ff.zip deleted file mode 100644 index be9510b6384ab4cd616e3fd9f8150564fc8c36b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123 zcmWIWW@h1H0D<*uOgy%~zthYJWJ54FgW>=GtPF-m#wMo!{~HE)Gcw6B<5mnd1xRdZ X1hJ5{26(fwfy5Yr&mh5E>dW{5Lc*HVN=%WRhdXtq!Cg1hzDSNRX}o SZ&o%Cn-K_&fV3Kj!vFvgw-4mx12cmmkTx_jHVN=%WRhdXtq!OR47N0aD3GoI SZ&o%Cn-K_&fV3Kj!vFx8xDAT{ diff --git a/libzip-1.2.0/regress/extra_field_align_3-ef_00.zip b/libzip-1.2.0/regress/extra_field_align_3-ef_00.zip deleted file mode 100644 index 326f98d528100cc0612a16c25c66b3a0d4cb2a67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123 zcmWIWW@h1H0D<*uOgy%~zthYJWJ54FgW>=GEDVN5#wI{9!vJqaCOKx@ia~~ez?Mc3 WiL5oio0SbD#t4K~Kw2BbVE_Q1hZDB| diff --git a/libzip-1.2.0/regress/extra_field_align_3-ef_ff.zip b/libzip-1.2.0/regress/extra_field_align_3-ef_ff.zip deleted file mode 100644 index ab9d81f0dbbb7cfb05f10e75856fb10228ce6681..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123 zcmWIWW@h1H0D<*uOgy%~zthYJWJ54FgW>=GEDVN5#wP#&|2GWqW@M6M#;q7^3Xs^+ X2x1{?4e(}V1Bo#Lp%swU25}ew-&Gm0 diff --git a/libzip-1.2.0/regress/extra_field_align_3-ff.zip b/libzip-1.2.0/regress/extra_field_align_3-ff.zip deleted file mode 100644 index c6fde73b420e9883bab1992cbd2aed7cd22a4861..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110 zcmWIWW@h1H00E7aCLW6)Jf6)0WP>mx12co+|Ns9Djf_nKycwC~m~pEE=?8%=jUW=F UE5MtT4a8;yLL(rp2I4RP0LqmUg#Z8m diff --git a/libzip-1.2.0/regress/extra_field_align_4-ff.zip b/libzip-1.2.0/regress/extra_field_align_4-ff.zip deleted file mode 100644 index c23966f4336695b0f9c2697a6cc0da0ce60570ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113 zcmWIWW@h1H00EX&CLS_YUr)0F*&xiwz`|ho|33qRp^>qPX@EB)lN>W{l^_#9U`r#2 V1nUd%W@Q6$7=h3jNNa#N3;^-*52*kE diff --git a/libzip-1.2.0/regress/extra_get.test b/libzip-1.2.0/regress/extra_get.test deleted file mode 100644 index 4f4588774..000000000 --- a/libzip-1.2.0/regress/extra_get.test +++ /dev/null @@ -1,9 +0,0 @@ -# get extra fields for index -args encrypt.zip get_extra 0 0 l get_extra 0 0 c get_extra 0 1 l get_extra 0 1 c get_extra 0 2 l -return 1 -file encrypt.zip encrypt.zip encrypt.zip -stdout Extra field 0x5455: len 9, data 0x033dda4c444dda4c44 -stdout Extra field 0x5455: len 5, data 0x033dda4c44 -stdout Extra field 0x7855: len 4, data 0x64001400 -stdout Extra field 0x7855: len 0 -stderr can't get extra field data for file at index 0, extra field 2, flags 256: No such file diff --git a/libzip-1.2.0/regress/extra_get_by_id.test b/libzip-1.2.0/regress/extra_get_by_id.test deleted file mode 100644 index 67f49671b..000000000 --- a/libzip-1.2.0/regress/extra_get_by_id.test +++ /dev/null @@ -1,9 +0,0 @@ -# get extra_by_id fields for index -args encrypt.zip get_extra_by_id 0 21589 0 l get_extra_by_id 0 30805 0 l get_extra_by_id 0 21589 0 c get_extra_by_id 0 30805 0 c get_extra_by_id 0 21544 0 c -return 1 -file encrypt.zip encrypt.zip encrypt.zip -stdout Extra field 0x5455: len 9, data 0x033dda4c444dda4c44 -stdout Extra field 0x7855: len 4, data 0x64001400 -stdout Extra field 0x5455: len 5, data 0x033dda4c44 -stdout Extra field 0x7855: len 0 -stderr can't get extra field data for file at index 0, extra field id 21544, ef index 0, flags 512: No such file diff --git a/libzip-1.2.0/regress/extra_set.test b/libzip-1.2.0/regress/extra_set.test deleted file mode 100644 index ccdbdc968..000000000 --- a/libzip-1.2.0/regress/extra_set.test +++ /dev/null @@ -1,14 +0,0 @@ -# set extra field -args -- encrypt get_extra 0 0 c get_extra 0 1 c get_extra 0 0 l get_extra 0 1 l set_extra 0 2345 -1 l extrafieldcontent set_extra 0 2345 -1 c extrafieldcontent get_extra 0 0 c get_extra 0 1 c get_extra 0 2 c get_extra 0 0 l get_extra 0 1 l get_extra 0 2 l -file encrypt encrypt.zip encrypt_plus_extra.zip -return 0 -stdout Extra field 0x5455: len 5, data 0x033dda4c44 -stdout Extra field 0x7855: len 0 -stdout Extra field 0x5455: len 9, data 0x033dda4c444dda4c44 -stdout Extra field 0x7855: len 4, data 0x64001400 -stdout Extra field 0x5455: len 5, data 0x033dda4c44 -stdout Extra field 0x7855: len 0 -stdout Extra field 0x0929: len 17, data 0x65787472616669656c64636f6e74656e74 -stdout Extra field 0x5455: len 9, data 0x033dda4c444dda4c44 -stdout Extra field 0x7855: len 4, data 0x64001400 -stdout Extra field 0x0929: len 17, data 0x65787472616669656c64636f6e74656e74 diff --git a/libzip-1.2.0/regress/extra_set_modify_c.test b/libzip-1.2.0/regress/extra_set_modify_c.test deleted file mode 100644 index dca49f436..000000000 --- a/libzip-1.2.0/regress/extra_set_modify_c.test +++ /dev/null @@ -1,16 +0,0 @@ -# change existing central extra field -args encrypt.zip get_extra 0 0 c get_extra 0 1 c get_extra 0 2 c get_extra 0 0 l get_extra 0 1 l get_extra 0 2 l set_extra 0 2345 0 c Extrafieldcontent get_extra 0 0 c get_extra 0 1 c get_extra 0 2 c get_extra 0 0 l get_extra 0 1 l get_extra 0 2 l -file encrypt.zip encrypt_plus_extra.zip encrypt_plus_extra_modified_c.zip -return 0 -stdout Extra field 0x5455: len 5, data 0x033dda4c44 -stdout Extra field 0x7855: len 0 -stdout Extra field 0x0929: len 17, data 0x65787472616669656c64636f6e74656e74 -stdout Extra field 0x0929: len 17, data 0x65787472616669656c64636f6e74656e74 -stdout Extra field 0x5455: len 9, data 0x033dda4c444dda4c44 -stdout Extra field 0x7855: len 4, data 0x64001400 -stdout Extra field 0x5455: len 5, data 0x033dda4c44 -stdout Extra field 0x7855: len 0 -stdout Extra field 0x0929: len 17, data 0x45787472616669656c64636f6e74656e74 -stdout Extra field 0x0929: len 17, data 0x65787472616669656c64636f6e74656e74 -stdout Extra field 0x5455: len 9, data 0x033dda4c444dda4c44 -stdout Extra field 0x7855: len 4, data 0x64001400 diff --git a/libzip-1.2.0/regress/extra_set_modify_l.test b/libzip-1.2.0/regress/extra_set_modify_l.test deleted file mode 100644 index 4dda9b7ce..000000000 --- a/libzip-1.2.0/regress/extra_set_modify_l.test +++ /dev/null @@ -1,16 +0,0 @@ -# change existing local extra field -args encrypt.zip get_extra 0 0 c get_extra 0 1 c get_extra 0 2 c get_extra 0 0 l get_extra 0 1 l get_extra 0 2 l set_extra 0 2345 0 l Extrafieldcontent get_extra 0 0 c get_extra 0 1 c get_extra 0 2 c get_extra 0 0 l get_extra 0 1 l get_extra 0 2 l -file encrypt.zip encrypt_plus_extra.zip encrypt_plus_extra_modified_l.zip -return 0 -stdout Extra field 0x5455: len 5, data 0x033dda4c44 -stdout Extra field 0x7855: len 0 -stdout Extra field 0x0929: len 17, data 0x65787472616669656c64636f6e74656e74 -stdout Extra field 0x0929: len 17, data 0x65787472616669656c64636f6e74656e74 -stdout Extra field 0x5455: len 9, data 0x033dda4c444dda4c44 -stdout Extra field 0x7855: len 4, data 0x64001400 -stdout Extra field 0x5455: len 5, data 0x033dda4c44 -stdout Extra field 0x7855: len 0 -stdout Extra field 0x0929: len 17, data 0x65787472616669656c64636f6e74656e74 -stdout Extra field 0x0929: len 17, data 0x45787472616669656c64636f6e74656e74 -stdout Extra field 0x5455: len 9, data 0x033dda4c444dda4c44 -stdout Extra field 0x7855: len 4, data 0x64001400 diff --git a/libzip-1.2.0/regress/file_comment_encmismatch.test b/libzip-1.2.0/regress/file_comment_encmismatch.test deleted file mode 100644 index a2b820946..000000000 --- a/libzip-1.2.0/regress/file_comment_encmismatch.test +++ /dev/null @@ -1,4 +0,0 @@ -# set file comment to UTF-8 for CP437 encoded filename (adds InfoZIP extra field) -return 0 -args testfile.zip set_file_comment 0 ÄÖÜßäöü -file testfile.zip test-cp437.zip test-cp437-comment-utf-8.zip diff --git a/libzip-1.2.0/regress/filename_duplicate.zip b/libzip-1.2.0/regress/filename_duplicate.zip deleted file mode 100644 index 96a11e7dd330e2dbcd006ae5fecf030eb6b7ab72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmWIWW@h1H0D--8Z#YPsN7k?b*&xgc#3iZ4C5B*vD*&!=H&Ee?l#+0)3XOmY8JXmm rahnM=mVpt7w={xSV8fBMU^5-05TZpBp@kJ>KLZmGrUB_75QhN(sEs25 diff --git a/libzip-1.2.0/regress/filename_duplicate_empty.zip b/libzip-1.2.0/regress/filename_duplicate_empty.zip deleted file mode 100644 index c4af0d8455c52a12d7d31e57b70ca203d06cbbc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 186 zcmWIWW@h1H0D--8Z#YPsN7k?b*&qx8C8@> diff --git a/libzip-1.2.0/regress/filename_empty.zip b/libzip-1.2.0/regress/filename_empty.zip deleted file mode 100644 index d32e4e72244cc30fef2055efc3491e713c3cc132..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98 ycmWIWW@h1H0D(Vg-$oECz?+o~L^A@R9*~v;aToyfpa_5f diff --git a/libzip-1.2.0/regress/fileorder.zip b/libzip-1.2.0/regress/fileorder.zip deleted file mode 100644 index 3fcd81a66b6ddf4129101cc36f3cfe873c393d46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 zcmWIWW@h1H0D*10W;?_izGG(vvSBzaGbhyuOa#EyZ3U`(n(%xcObv(zDKP{S0p5&E sa?B7Dv8e>v#0bP&8Z}`0khNfQ1VRgl1$7N88;HXMglRxJ0K{Pc04%H{%m4rY diff --git a/libzip-1.2.0/regress/firstsecond-split-deflated.zip b/libzip-1.2.0/regress/firstsecond-split-deflated.zip deleted file mode 100644 index 35b9a5c6d8852e1392aa65a5d19f1a249e1111e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 219 zcmWIWW@Zs#U|`^22#cHJu!5my3OA6)3B;^GoR(QsT;hFNM@vuBLr05|Apk|SzU17$ zJU~@kK+Fcj#i_~pc`4d{zUR(+!_+e}F)-jZAE*flfNcx#M%99D2|~RdkO{Fez?&6h PKLZmGrUU6X5QhN(R-7TM diff --git a/libzip-1.2.0/regress/firstsecond-split-stored.zip b/libzip-1.2.0/regress/firstsecond-split-stored.zip deleted file mode 100644 index 35f0684bf9d8d7d4a8a568110559881c5f769b56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 215 zcmWIWW@h1HU}9ik@Q<70u!5my3MY^a!mL1?mRVF>0wxL)i%J6EYJ-4k^(E*2jwCDg?5UT>bSwXe~ Oy}-nf4y2<%90maOuqH47 diff --git a/libzip-1.2.0/regress/firstsecond.zip b/libzip-1.2.0/regress/firstsecond.zip deleted file mode 100644 index a9117e373a2be8412ad15233b69a4b3ea44ad6d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmWIWW@Zs#U|`^22#cHJuwf!&gbW{mjN{~Faq(GMi2|hodMnujo95K0a6XsXpO27=1NwGE74pS;LXYg(#iyc6M*y# H5QhN(loCYW diff --git a/libzip-1.2.0/regress/foo-stored.zip b/libzip-1.2.0/regress/foo-stored.zip deleted file mode 100644 index d3adc8022793ed62d69976ca9316d2d5a961c011..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107 zcmWIWW@Zs#0D*;z`kfS0i+h-XY#2_<&j+FaZ$>5&2HdK^+TjFP11lSd&j^HuKw1SX F2>^^N4T=B& diff --git a/libzip-1.2.0/regress/fopen_unchanged.c b/libzip-1.2.0/regress/fopen_unchanged.c deleted file mode 100644 index 0256425f2..000000000 --- a/libzip-1.2.0/regress/fopen_unchanged.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - fopen_unchanged.c -- test case for adding file and reading from unchanged - Copyright (C) 2012-2015 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include -#include -#include - -#include "zip.h" - -const char *teststr="This is a test.\n"; -const char *file="teststring.txt"; - -int -main(int argc, char *argv[]) -{ - const char *archive; - zip_t *za; - zip_source_t *zs; - int err; - - if (argc != 2) { - fprintf(stderr, "usage: %s archive\n", argv[0]); - return 1; - } - - archive = argv[1]; - - if ((za=zip_open(archive, ZIP_CREATE, &err)) == NULL) { - zip_error_t error; - zip_error_init_with_code(&error, err); - fprintf(stderr, "can't open zip archive '%s': %s\n", archive, zip_error_strerror(&error)); - zip_error_fini(&error); - return 1; - } - - if ((zs=zip_source_buffer(za, teststr, strlen(teststr), 0)) == NULL) { - fprintf(stderr, "can't create zip_source from buffer: %s\n", zip_strerror(za)); - exit(1); - } - - if (zip_add(za, file, zs) == -1) { - fprintf(stderr, "can't add file '%s': %s\n", file, zip_strerror(za)); - (void)zip_source_free(zs); - (void)zip_close(za); - return 1; - } - - if (zip_fopen(za, file, ZIP_FL_UNCHANGED) == NULL) { - fprintf(stderr, "can't zip_fopen file '%s': %s\n", file, zip_strerror(za)); - (void)zip_discard(za); - return 1; - } - - if (zip_close(za) == -1) { - fprintf(stderr, "can't close zip archive '%s': %s\n", archive, zip_strerror(za)); - return 1; - } - - return 0; -} diff --git a/libzip-1.2.0/regress/fopen_unchanged.test b/libzip-1.2.0/regress/fopen_unchanged.test deleted file mode 100644 index 885f8b7ba..000000000 --- a/libzip-1.2.0/regress/fopen_unchanged.test +++ /dev/null @@ -1,5 +0,0 @@ -# add buffer contents as file to zip, then read unchanged from it -program fopen_unchanged -return 1 -args testbuffer.zip -stderr can't zip_fopen file 'teststring.txt': No such file diff --git a/libzip-1.2.0/regress/fread.c b/libzip-1.2.0/regress/fread.c deleted file mode 100644 index bad51824f..000000000 --- a/libzip-1.2.0/regress/fread.c +++ /dev/null @@ -1,223 +0,0 @@ -/* - fread.c -- test cases for reading from zip archives - Copyright (C) 2004-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include "config.h" - -#include -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif - -#ifndef HAVE_GETOPT -#include "getopt.h" -#endif - -#include "zip.h" - -enum when { - WHEN_NEVER, WHEN_OPEN, WHEN_READ, WHEN_CLOSE -}; - -const char *when_name[] = { - "no", "zip_fopen", "zip_fread", "zip_fclose" -}; - -static int do_read(zip_t *z, const char *name, zip_flags_t flags, enum when when_ex, int ze_ex, int se_ex); - -int verbose; - -const char *prg; -#define USAGE "usage: %s [-v] archive\n" - -int -main(int argc, char *argv[]) -{ - int fail, ze; - int c; - zip_t *z; - zip_source_t *zs; - char *archive; - zip_int64_t idx; - - verbose = 0; - fail = 0; - - prg = argv[0]; - - while ((c=getopt(argc, argv, "v")) != -1) { - switch (c) { - case 'v': - verbose = 1; - break; - - default: - fprintf(stderr, USAGE, prg); - return 1; - } - } - - - if (argc-optind != 1) { - fprintf(stderr, USAGE, prg); - return 1; - } - - archive = argv[optind]; - - if ((z=zip_open(archive, 0, &ze)) == NULL) { - zip_error_t error; - zip_error_init_with_code(&error, ze); - fprintf(stderr, "%s: can't open zip archive '%s': %s\n", prg, archive, zip_error_strerror(&error)); - zip_error_fini(&error); - return 1; - } - - fail += do_read(z, "storedok", 0, WHEN_NEVER, 0, 0); - fail += do_read(z, "deflateok", 0, WHEN_NEVER, 0, 0); - fail += do_read(z, "storedcrcerror", 0, WHEN_READ, ZIP_ER_CRC, 0); - fail += do_read(z, "deflatecrcerror", 0, WHEN_READ, ZIP_ER_CRC, 0); - fail += do_read(z, "deflatezliberror", 0, WHEN_READ, ZIP_ER_ZLIB, -3); - fail += do_read(z, NULL, 0, WHEN_OPEN, ZIP_ER_INVAL, 0); - fail += do_read(z, "nosuchfile", 0, WHEN_OPEN, ZIP_ER_NOENT, 0); - fail += do_read(z, "deflatezliberror", ZIP_FL_COMPRESSED, WHEN_NEVER, 0,0); - fail += do_read(z, "deflatecrcerror", ZIP_FL_COMPRESSED, WHEN_NEVER, 0, 0); - fail += do_read(z, "storedcrcerror", ZIP_FL_COMPRESSED, WHEN_READ, ZIP_ER_CRC, 0); - fail += do_read(z, "storedok", ZIP_FL_COMPRESSED, WHEN_NEVER, 0, 0); - - fail += do_read(z, "cryptok", 0, WHEN_OPEN, ZIP_ER_NOPASSWD, 0); - zip_set_default_password(z, "crypt"); - fail += do_read(z, "cryptok", 0, WHEN_NEVER, 0, 0); - zip_set_default_password(z, "wrong"); - fail += do_read(z, "cryptok", 0, WHEN_OPEN, ZIP_ER_WRONGPASSWD, 0); - zip_set_default_password(z, NULL); - - zs = zip_source_buffer(z, "asdf", 4, 0); - if ((idx = zip_name_locate(z, "storedok", 0)) < 0) { - fprintf(stderr, "%s: can't locate 'storedok' in zip archive '%s': %s\n", prg, archive, zip_strerror(z)); - fail++; - } - else { - if (zip_replace(z, (zip_uint64_t)idx, zs) < 0) { - fprintf(stderr, "%s: can't replace 'storedok' in zip archive '%s': %s\n", prg, archive, zip_strerror(z)); - fail++; - } - else { - fail += do_read(z, "storedok", 0, WHEN_OPEN, ZIP_ER_CHANGED, 0); - fail += do_read(z, "storedok", ZIP_FL_UNCHANGED, WHEN_NEVER, 0, 0); - } - } - if ((idx = zip_name_locate(z, "storedok", 0)) < 0) { - fprintf(stderr, "%s: can't locate 'storedok' in zip archive '%s': %s\n", prg, archive, zip_strerror(z)); - fail++; - } - else { - if (zip_delete(z, (zip_uint64_t)idx) < 0) { - fprintf(stderr, "%s: can't replace 'storedok' in zip archive '%s': %s\n", prg, archive, zip_strerror(z)); - fail++; - } - else { - fail += do_read(z, "storedok", 0, WHEN_OPEN, ZIP_ER_NOENT, 0); - fail += do_read(z, "storedok", ZIP_FL_UNCHANGED, WHEN_NEVER, 0, 0); - } - } - zs = zip_source_buffer(z, "asdf", 4, 0); - if (zip_file_add(z, "new_file", zs, 0) < 0) { - fprintf(stderr, "%s: can't add file to zip archive '%s': %s\n", prg, archive, zip_strerror(z)); - fail++; - } - else { - fail += do_read(z, "new_file", 0, WHEN_OPEN, ZIP_ER_CHANGED, 0); - } - - zip_unchange_all(z); - if (zip_close(z) == -1) { - fprintf(stderr, "%s: can't close zip archive '%s': %s\n", prg, archive, zip_strerror(z)); - return 1; - } - - exit(fail ? 1 : 0); -} - - -static int -do_read(zip_t *z, const char *name, zip_flags_t flags, enum when when_ex, int ze_ex, int se_ex) -{ - zip_file_t *zf; - enum when when_got; - zip_error_t error_got, error_ex; - zip_error_t *zf_error; - int err; - char b[8192]; - zip_int64_t n; - - when_got = WHEN_NEVER; - zip_error_init(&error_got); - zip_error_init(&error_ex); - zip_error_set(&error_ex, ze_ex, se_ex); - - if ((zf=zip_fopen(z, name, flags)) == NULL) { - when_got = WHEN_OPEN; - zf_error = zip_get_error(z); - zip_error_set(&error_got, zip_error_code_zip(zf_error), zip_error_code_system(zf_error)); - } - else { - while ((n=zip_fread(zf, b, sizeof(b))) > 0) - ; - if (n < 0) { - when_got = WHEN_READ; - zf_error = zip_file_get_error(zf); - zip_error_set(&error_got, zip_error_code_zip(zf_error), zip_error_code_system(zf_error)); - } - err = zip_fclose(zf); - if (when_got == WHEN_NEVER && err != 0) { - when_got = WHEN_CLOSE; - zip_error_init_with_code(&error_got, err); - } - } - - if (when_got != when_ex || zip_error_code_zip(&error_got) != zip_error_code_zip(&error_ex) || zip_error_code_system(&error_got) != zip_error_code_system(&error_ex)) { - printf("%s: %s: got %s error (%s), expected %s error (%s)\n", - prg, name, - when_name[when_got], zip_error_strerror(&error_got), - when_name[when_ex], zip_error_strerror(&error_ex)); - zip_error_fini(&error_got); - zip_error_fini(&error_ex); - return 1; - } - else if (verbose) - printf("%s: %s: passed\n", prg, name); - - return 0; -} diff --git a/libzip-1.2.0/regress/fread.test b/libzip-1.2.0/regress/fread.test deleted file mode 100644 index 234e1a150..000000000 --- a/libzip-1.2.0/regress/fread.test +++ /dev/null @@ -1,5 +0,0 @@ -# various tests for zip_fread -program fread -args broken.zip -return 0 -file broken.zip broken.zip broken.zip diff --git a/libzip-1.2.0/regress/fseek.c b/libzip-1.2.0/regress/fseek.c deleted file mode 100644 index cafea66cb..000000000 --- a/libzip-1.2.0/regress/fseek.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - fseek.c -- test tool for seeking in zip archives - Copyright (C) 2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include - -#include "zip.h" - -const char *prg; -#define USAGE "usage: %s archive index offset\n" - -int -main(int argc, char *argv[]) -{ - int ze; - zip_t *z; - zip_file_t *zf; - char *archive; - zip_int64_t offset, n; - zip_uint64_t index; - char b[1024]; - - prg = argv[0]; - - if (argc != 4) { - fprintf(stderr, USAGE, prg); - return 1; - } - - archive = argv[1]; - index = strtoull(argv[2], NULL, 10); - offset = (zip_int64_t)strtoull(argv[3], NULL, 10); - - if ((z=zip_open(archive, 0, &ze)) == NULL) { - zip_error_t error; - zip_error_init_with_code(&error, ze); - fprintf(stderr, "%s: can't open zip archive '%s': %s\n", prg, archive, zip_error_strerror(&error)); - zip_error_fini(&error); - return 1; - } - - if ((zf=zip_fopen_index(z, index, 0)) == NULL) { - fprintf(stderr, "%s: can't open file in archive '%s': %s\n", prg, archive, zip_error_strerror(zip_file_get_error(zf))); - zip_close(z); - return 1; - } - - if (zip_fseek(zf, offset, SEEK_SET) < 0) { - fprintf(stderr, "%s: zip_fseek failed: %s\n", prg, zip_error_strerror(zip_file_get_error(zf))); - zip_close(z); - return 1; - } - - while ((n=zip_fread(zf, b, sizeof(b))) > 0) { - printf("%.*s", (int)n, b); - } - if (n < 0) { - fprintf(stderr, "%s: zip_fread failed: %s\n", prg, zip_error_strerror(zip_file_get_error(zf))); - zip_close(z); - return 1; - } - - if (zip_close(z) == -1) { - fprintf(stderr, "%s: can't close zip archive '%s': %s\n", prg, archive, zip_strerror(z)); - return 1; - } - - return 0; -} diff --git a/libzip-1.2.0/regress/fseek_deflated.test b/libzip-1.2.0/regress/fseek_deflated.test deleted file mode 100644 index 7c560afee..000000000 --- a/libzip-1.2.0/regress/fseek_deflated.test +++ /dev/null @@ -1,6 +0,0 @@ -# unsuccessful fseek test because data is compressed -program fseek -args test.zip 0 2 -return 1 -file test.zip testdeflated.zip testdeflated.zip -stderr zip_fseek failed: Operation not supported diff --git a/libzip-1.2.0/regress/fseek_fail.test b/libzip-1.2.0/regress/fseek_fail.test deleted file mode 100644 index be78a9a9a..000000000 --- a/libzip-1.2.0/regress/fseek_fail.test +++ /dev/null @@ -1,6 +0,0 @@ -# successful fseek test -program fseek -args test.zip 0 8 -return 1 -file test.zip test.zip test.zip -stderr zip_fseek failed: Invalid argument diff --git a/libzip-1.2.0/regress/fseek_ok.test b/libzip-1.2.0/regress/fseek_ok.test deleted file mode 100644 index 29cfe67f2..000000000 --- a/libzip-1.2.0/regress/fseek_ok.test +++ /dev/null @@ -1,6 +0,0 @@ -# successful fseek test -program fseek -args test.zip 0 2 -return 0 -file test.zip test.zip test.zip -stdout st diff --git a/libzip-1.2.0/regress/get_comment.test b/libzip-1.2.0/regress/get_comment.test deleted file mode 100644 index 5f2df0a7a..000000000 --- a/libzip-1.2.0/regress/get_comment.test +++ /dev/null @@ -1,14 +0,0 @@ -# show comments of a zip archive -return 0 -args testcomment.zip get_archive_comment get_file_comment 0 get_file_comment 1 get_file_comment 2 get_file_comment 3 -file testcomment.zip testcomment.zip testcomment.zip -stdout Archive comment: This is the archive comment for the file. -stdout -stdout Long. -stdout -stdout Longer. -stdout -stdout No comment for 'file1' -stdout File comment for 'file2': First one had no comment. -stdout File comment for 'file3': Third one. -stdout File comment for 'file4': Last. diff --git a/libzip-1.2.0/regress/incons-archive-comment-longer.zip b/libzip-1.2.0/regress/incons-archive-comment-longer.zip deleted file mode 100644 index 28d7ed365f9218f5177adae4bd35004f4d817562..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmWIWW@h1H0D;RTGaQ`vZGXWCWJ9nFLtZD|CtfM&5m%tA9Kz?+o~qLh)r9muc&aToxfaT~Y* diff --git a/libzip-1.2.0/regress/incons-central-date.zip b/libzip-1.2.0/regress/incons-central-date.zip deleted file mode 100644 index 6c831ca4867eba78403ec79be491a891026b9fa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131 zcmWIWW@h1H0D;RTGaQ`vZGXWCWJ54NLt<$KHv=Qf3uXoemK30PVt_XzlN>Wdg8~)} dAcH`fw={xS=-LCkS=m71j6i4yr1e1@1^}fh5_13m diff --git a/libzip-1.2.0/regress/incons-central-file-comment-longer.zip b/libzip-1.2.0/regress/incons-central-file-comment-longer.zip deleted file mode 100644 index b34c6612435cda05e33e36d95ca455986fd75fcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmWIWW@h1H0D;RTGaQ`vZGXWCWJ9nFLtHX25x?hvQreciF0fX3 z<|;x3TmH4xk%u})tj`SDnXoiGP=l%tT&jc<(#L6rC`OW^R+OgN(ZLj+!AJJ!oL$jL gQ1)D*lFobuv8AT5F_QhF$VcNeWoG+n8R^mc0Og`bVgLXD diff --git a/libzip-1.2.0/regress/incons-central-magic-bad.zip b/libzip-1.2.0/regress/incons-central-magic-bad.zip deleted file mode 100644 index 954563baa48f6eaaa1220964a02e19237b23bc2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmWIWW@h1H0D;RTGaQ`vZGXWCWJ9nFLtr-= diff --git a/libzip-1.2.0/regress/incons-central-magic-bad2.zip b/libzip-1.2.0/regress/incons-central-magic-bad2.zip deleted file mode 100644 index f99d9b7194ef44adab07e3e989fb78a7fbb198f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmWIWW@h1H0D;RTGaQ`vZGXWCWJ9nFLtZD|CtfM&5m%tA9Kz?+o~qLh)r9muc&aToxcI~%M3 diff --git a/libzip-1.2.0/regress/incons-central-size-larger.zip b/libzip-1.2.0/regress/incons-central-size-larger.zip deleted file mode 100644 index 0779ce62ec2c50e2172e50cc78e6fa3ca153cc1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmWIWW@h1H0D;RTGaQ`vZGXWCWJ9nFLtnH(T#{N`l9rj1s#j7`qV1`x$H)-i&B(;S sfJ=usP!BRd*8ktC+}zN}*u>P#+``fT&I<5m1=+~J2!w$^+5oH{0JLNqHUIzs diff --git a/libzip-1.2.0/regress/incons-ef-local-id-size.zip b/libzip-1.2.0/regress/incons-ef-local-id-size.zip deleted file mode 100644 index 44ce2f77d5d441993821bf954f4899a3b72019f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmWIWW@h1H0D;RTGaQ`vZGXWCWJ9nFLt)do@p!i-SW zAi6;i#L*4#W@FQV3d6L4xKO2yFj^m~#uQ2e^|6DPDNsI0U4S<$8;HvYgdp`0wEzJR B7jggq diff --git a/libzip-1.2.0/regress/incons-local-compression-method.zip b/libzip-1.2.0/regress/incons-local-compression-method.zip deleted file mode 100644 index 2e70f592de4227371d9b820c6c21cdc6532b0cba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmWIWW@h1HU|`^2xLh*B!Fk{I7mPq21j{fahK6u5FrS?_%^!qIE4UdLSza(RFtDTm x6(t6EGcw6BgLE@s(JcWM2br{`5yS+V#R@SC&71&lRyL3VMj&(t(l#It0|1{{8?XQX diff --git a/libzip-1.2.0/regress/incons-local-compsize-larger.zip b/libzip-1.2.0/regress/incons-local-compsize-larger.zip deleted file mode 100644 index 6fc27e05df312e86fe81a725dc93afa80cfa2dc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmWIWW@h1H0D;RTGaQ`vZGWKvWHW-X3`1gQ2qy#c*?H6aLAbPnn}Lz#1v3K!OA1gy wVt_XzlN>XuZir5h2@*gh5R=PaSRrPinG@j6$_7!&$lwlS*nl_;0IMn+#{d8T diff --git a/libzip-1.2.0/regress/incons-local-compsize-smaller.zip b/libzip-1.2.0/regress/incons-local-compsize-smaller.zip deleted file mode 100644 index 75f14635778e11f3cb74feb00dc964e89c635900..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173 zcmWIWW@Zs#U|`^2@GPC-;MUNxpBcZD|CtfM&5m%tA9Kz?+o~qLh)r9muc&aToxjQ5(1b diff --git a/libzip-1.2.0/regress/incons-local-filename-long.zip b/libzip-1.2.0/regress/incons-local-filename-long.zip deleted file mode 100644 index 42b4a1ff136a9cedd2636d82294be63e353f4edf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmWIWW@h1H0D;RTGaQ`vZGXWCWP|Ws1{sFL&=5`r=Ckvr`Gat21vdjD%L`@(29^|{ vg2VuCMkYCC?7A5lB!EgFCT(d1v4Cc=Ld-%lC%~JP4Wg8h!5zr30dW`r2m~C2 diff --git a/libzip-1.2.0/regress/incons-local-filename-missing.zip b/libzip-1.2.0/regress/incons-local-filename-missing.zip deleted file mode 100644 index 71d3eb287b2072fb85fd14a2d6740233f4b4fb61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152 zcmWIWW@h1H0D;RTGaQ`vZGXWCWP>mRgA7Ax2qy#c*?H6aLAbPnn}Lz#1v3K!OA1gn wF~FOVNsbx2W<~}Hun{1Gwlsp6iJ>8^5VO$C3GilR11VqxLU$l-4dO5W0A?o}MF0Q* diff --git a/libzip-1.2.0/regress/incons-local-filename-short.zip b/libzip-1.2.0/regress/incons-local-filename-short.zip deleted file mode 100644 index c69be1bc0695deb94ea46d4a745bf7180c5f39a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmWIWW@h1H0D;RTGaQ`vZGXWCWP>mRgA7ArXb2|*^VxaR{6V<1f}4Sn@~ diff --git a/libzip-1.2.0/regress/incons-local-magic-bad.zip b/libzip-1.2.0/regress/incons-local-magic-bad.zip deleted file mode 100644 index 9a6a061736b101b8a753f0ad9924c2ed6657f6de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmZ?pW@h1H0D;RTGaQ`vZGXWCWJ9nFLtVrU2_1M}H=)BHiWw1S&~k>v$50|QG6 zP(fmVHzSiAGp25k35*O9KoUeVFl=cAv4Cc=Ld-%lC%~JP4Wxh(2;G6S4T!@40IIGV A#{d8T diff --git a/libzip-1.2.0/regress/junk-at-end.zip b/libzip-1.2.0/regress/junk-at-end.zip deleted file mode 100644 index 30387b3f61c145f63946d088b765e2695fb6912f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416 zcmWIWW@h1HU}9ikxLWI`f6R2JH7k$}!YmA;3?-?>C7~gl49t#2jrJfMTEW7Q!XN^c z;0gfi1uA8zo}q07qG5mosy8LGNFS`9Q}l`BEFcEyf5Du>0MUxgT3#frAnT1V><8%w z$pGzVWD;k_<$7MQV;F(tmPQa0;ultkUqUMwfNp?j2T5Xj0HU3NL4e_{qYYF$#5+JE nK;A(%0=q|$T~Ll>1k_t7PGMyOIfEGpPXXyYAPz%PVi6Yr?d4B* diff --git a/libzip-1.2.0/regress/junk-at-start.zip b/libzip-1.2.0/regress/junk-at-start.zip deleted file mode 100644 index 8c983255bf84e2bddd16e9964abdcee63132bb59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416 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 ucard=xP2I2^@uF&Qa2%B7 - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The name of the author may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include -#include -/* #include */ -#include -#define __USE_GNU -#include -#undef __USE_GNU - -#include "config.h" - -#if !defined(RTLD_NEXT) -#define RTLD_NEXT RTLD_DEFAULT -#endif - -#if defined(HAVE___PROGNAME) -extern char *__progname; -#endif - -#if defined(HAVE_GETPROGNAME) -/* all fine */ -#else -const char * -getprogname(void) -{ -#if defined(HAVE___PROGNAME) - return __progname; -#else - return NULL; -#endif -} -#endif - -static int inited = 0; -static size_t count = 0; -static size_t max_count = 0; -static size_t min_size = 0; -static void *(*real_malloc)(size_t size) = NULL; -static void *(*real_calloc)(size_t number, size_t size) = NULL; -static void *(*real_realloc)(void *ptr, size_t size) = NULL; - -static const char *myname = NULL; - -/* TODO: add sentinel -- check if particular size is malloced before doing other stuff */ -/* TODO: catch free for sentinel too */ -/* TODO: optionally, catch malloc of particular size */ - -static void -init(void) -{ - char *foo; - myname = getprogname(); - if (!myname) - myname = "(unknown)"; - if ((foo=getenv("MALLOC_MAX_COUNT")) != NULL) - max_count = strtoul(foo, NULL, 0); - if ((foo=getenv("MALLOC_MIN_SIZE")) != NULL) - min_size = strtoul(foo, NULL, 0); - real_calloc = dlsym(RTLD_NEXT, "calloc"); - if (!real_calloc) - abort(); - real_malloc = dlsym(RTLD_NEXT, "malloc"); - if (!real_malloc) - abort(); - real_realloc = dlsym(RTLD_NEXT, "realloc"); - if (!real_realloc) - abort(); - inited = 1; -} - -void * -calloc(size_t number, size_t size) -{ - void *ret; - - if (!inited) { - init(); - } - - if (number >= min_size/size && count >= max_count) { - errno = ENOMEM; - return NULL; - } - - ret = real_calloc(number, size); - if (size >= min_size) { - count++; - } - - return ret; -} - -void * -malloc(size_t size) -{ - void *ret; - - if (!inited) { - init(); - } - - if (size >= min_size && count >= max_count) { - errno = ENOMEM; - return NULL; - } - - ret = real_malloc(size); - if (size >= min_size) { - count++; - } - - return ret; -} - -void * -realloc(void *ptr, size_t size) -{ - void *ret; - - if (!inited) { - init(); - } - - if (size >= min_size && count >= max_count) { - errno = ENOMEM; - return NULL; - } - - ret = real_realloc(ptr, size); - if (size >= min_size) { - count++; - } - - return ret; -} diff --git a/libzip-1.2.0/regress/manyfiles-zip.zip b/libzip-1.2.0/regress/manyfiles-zip.zip deleted file mode 100644 index 19ad57d66f0a9a153e93d8248e7f08a43863b79d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3434201 zcmeF44P2B}_V_i@$wEw%=m9s zmV{HfWvwZiDVoZNR&GBR(agZtLEXeM1w#cyng91ZFyqYd;8xr2#yk@rr(uc3_W#m{jN6+&WLk`WjhZ)}_N!6j#%F8Ps4?g0wz{>3G=6yC_E$gr zGO8@HXU{*LXmWaHx6_GD|Nh~;2iLay%Z$)*e{GWzbZFnlV-v~_>y2e4dTUwP#Vqrc z?^5k0MP_^PZoA!Rvzg0|#^x^D6mV`)X>R%^!@2zEbLPt%vcj9jHJwxYqld=rZTd>> zRT<;neeFG!zmHz4{P+HAmH$@1R{3wmYnA_2y;k{eqw!{c8(PEZ=-v`!^S!oZa8p`D)IEQTvnJzjVw|`8(LL z(%+{!Dt`w*t@JlFN9FI})JlIBa#a4-eLrgdt`Cy>8*EgDaKeDA=A z`quK=FKP4I!*m%@4#Mt z>$dRLFB_(Q^Yy@fecQG0)-ThhezR|2-@Ywcc)y z@Yhd|(<=Y%pH}&A z_q57?ho@Ek+cmB7U-q=he_7Ki|5?t2Wyh~69agmYT-4FL&$6aj&Kw$VS$*lCHb0(T zHFtHBjZfu__tr1tR=vOa&5chT8t<)NMz4Bf_27+99USkiUnZ^Eu=?ALPaPibtzSm1 zTC}?J#zQ&dz4gn4RjXHT+<55FcyIkOW>w1S7dIX{INn>oWDSnpcxe5BWveeu+%RTU zXvEorK8rg_ZoP4bLsgtN6n+A-`TO@ZJq!4|(VNaqIVuH9&a}@SzGlm?=*{O|IQrdZyOn}% z!-`%wx_eqsw)>Y|(+t`1!-}3i>hk5__>95+8=qQxVD{=J6E}=pRV$)hju#ibIdQ|Y zt6E32J2?KU!TmNq^~r(PR(o;L7lYewd}`f+msby-xZ#;qjU!g)jQ8H6ZzpbeZdIp< z)d$CC4xX^_sr3hzuJ+=hd8=Q{8L!EYor9ZgJhb+}ORGCi-0<|Ox)GCd#(Qtk#)%t7 zuWA=D>EQU?gCjN``sBcytG&2r$?6vmj@RTz(&|e&<2CrPcl^co4kRqe?f29B#b3vD zjk`VlK2v+srpZ%|=6;qjE%8k4?7C~34GS(W_-fkXGk0b8Uz0p6c=O~Jj{fsADQJ@2 zZcW6nv`v$rR}89!N`Z$#Rc>LOJO0_cGl6SjH@ScDFsRBcEDwXK!ovFQvn6Lntcl%x z&h1Osn$k_@PJWhj#^uXyEg4l!G-XtMr6r?ku%?Wv%)ucOH|*5rhlY%*&YCi+b`Rb% zaf3!bVkd6cHCTfm^9G;MufDY9M$>CSUo1Jb`}ppH(IqdG?C> zEG&nI%FSiv>8C39Tsb{dZZ0c_hsw=m<>{xY@Lak1smeW9!?ok7!l)Xl9Z!|wjnj&! z3Zv>7?Rcuh8+YjGRV_67p%qURM%B~W@l+|^xY4VIZ#<;Qk5Q{aHy+a9$ESx%_Kvsq zD`;Kv=eTj{&C_o&y&1G5$l;&za9EZ5r#u{1<^CxThn1T-

F?#sF0!fMQ>{nNyCC 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

    XUXjD>f(aEl#Q$1z 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

    FM5tsp5j;l0;z! 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

    VXcM6%C`J?}q- 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

    #Yi7;jnGy#F| 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%0D2!?Z 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�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
    uuPa#jv*!k6D|8?-TjP{ z(1sY$|8pGo755$3*yoLC=@!J^X!m5MNazS|K?ud<@*OxD(M%=Dj0!eND#<$Q3u^L- z>N5Al)KoE@9$bH*Lov1L7Z`DbVkS#>z_c2nm|>AaOgUnFx2lD?rzkMG?;i}(66_)0 z0Z!|6Qd;{`S(st_aOVQj24K~4fX3gUrY8U!GD#Wdjf7?1nQ7Y1i%b=4@%PoeCsyel z;?{YFfVM~_Ew|AgpzX_$s9GXvYYOfhpLp!<^pl6OE!6jLS+0^IO%I~0+(Cbxsos@H z4I~Pg>W-*H40m~zJB(BW0G@FcWMm53ginC)7`p9THc{Bs-=bIDWEY z3$F&i1~b|52VUsTv*()5zDz19s(taNvP8+G%p&w#=P}m=YluiF9)zxWO$sv8NcSU> z*iHNyA<|=*1nRrI1evt$wA9n2L88OHAa=7@)f$=9*Jn}uqTuxMTV3T2y;m80GuiPs zfL7)W7D0lRlO1WHiB5L-Q(3&cxHrW*B)}0Y8(+T8e%1(O4MZ26tDc>5gIe5#RMMlF zj;hpGD!W6bmr&1;vD zSq;gg`F24weTK9rgvnhzB!}S%m&HB+&&6Pr4#RDIgANGfX=@Fa>PHW|+Rz5epr` zr-GR>{FmscFF-q=6rUQ?d)853VB_ohm>+76tj;S0v?`TUSss=L65fyb%`jHA98tSU zcC2S!2h!+d2TWOTVHVgh0iz${R6XyyD|oAHN6o;Dqz05QDm|D?wxfU#0qRP)!BcP` zXJE!`h>H8M^Zmoj0hT*=4Sxj(PGw3`KecR!d(9b3X=f$2!&JwzrQ$t61_O>mEz-MH zxmHA(D$@H(JfskFU=EHs;T46@w=D((@*t7kjk$=1;Iur1vz6^mgouxaw*XU`<|cM3HpE53mlAUfPXY zX&nOs|8FXM#1jo4aT{|KY~02zoP?}}NyNsrM~tEaz}E0nN4cbnO>gZgceI#K>X?i4 zHb~Y1ixugON?!<;DAH?XjLKs)Pr5?tYZXOid3O(5@cLLJYe#*R@DfJ38)Y_AN8rFe zdsXE@oC*j6qa&WW?uK|gMcsMd&hT%sXA_{+xoQcd`HlcBa@8)4e+6Bb8lbJ^s#PHe zpq(0^{hkeN>ocove9ywpd+JZSB04o2;~rxAMDW7ETwm`9V$}-LP%|*+#vK9P)dAi+ zG96`8NphR7HZUQ5r;G@-=>J6@>x_Cv0F`%}z<{R)rjSE-saa%ThLoLT5ps{5xc3jp zAR3Y0=x!6hD_&VUv+DR4ob_eQ6GgP@kYEFWP*|&u5a}&4$G$xdgZP2E@rmv>fiOgo z-aU0bL3l@x9Y5LeZKe}pW+ppkkubPPk{y0mq!s6Vfcw@?j5CfH21c(d?BI!8-~|+> zL8X$4^k_GB5(EP zj`f=AMWUC0^<3Y=rDt@64yUd7@icLxYCAyPbe*JYJ21_jkBDGu8KQ?WUlrqTWm_Y2pY8xi5V-> z+b40GY1_}(OxG_XN2i6^D$T~2lS`{3ECY{eXQ;Xp={R(LaPRwFExH0_6OdMud=DKoQtql`lwDIM6_Oof8uVBCimMF;c z#&k*{i7F$#r`a8iQ!1{6H>Iws?LdpFXdqYHaRqkB8j;?%coE=$N+q?@fILJOMFSId z)W5){2}o2em83RJlqt3<(mPqU<4E!Dt$X^;{_W2kb#MFZm4EozxBuquQ|>r(^IPxx z!24gj@7&+H?*qSc-y5&G?2T`rfBnPX{BN(NpYg*RUOINu#Id7OXB7AD**tde@YDBf z*@uu}V$a+$c74Dsq{%!Z^f_Q+Ui;3H%znbM?o?Vr!AN6*g-N`f`sG zl#oyf-!a(kTl^Kh$TDlb5s9Tf`VR*xrlw{%xMGM5sa16-{1A)Ov-kh?(W5d)!o>2_ zL$mo|1MAM@Syz{XU?gvHT|{hTNuUeb|{Xf}}W{@F%c) zUGOi`E6ns+ml)?}-$Aap@pjDC%5sLe;B=+~dQnb5bpbqESa;46Vk7Q_tFj~s)DCG7 z7`?f%NYVSnOL0pGLs%*gXBMqxQKDsDPRy7W9q08R1Ebfs?63yd1d|U~kjRYTqk|tR zt3^yhFW39WRc&nC7;Jqf)D>%n_&tmuSz##S0e-CSI|>) zgzcI&17ihYQRm=(&b0BQ3+jZk(!lDPdD*HQ)5yGJ?mHr!ryogA2df4N0z(WCf0dqf zL(xZQ<|(&`;42hOMW0a%0&%IC7j-OHWL~Tb-oftQow#l;Eln;+6bZU9hvlMfV1AYm z5tLg2u4m2|{T#Iit0gk(JJ7Wtk$Gv_Yj}4h6xK2?Hz;WDVlj1wV*zMSz5>TVax*3^ zxPbsLa8A9KLhbf}0)*X+$d3r`m^SVkbm-AbZzpe4dFp=9LY8MxHj(PZ_8hzI#gHD6 zmZ76yk>Q0aSw+c*f(jh)zts*{3vyQ86tF9Ok4Wpn0sr(BcuQ!bX=KX4$L+VrBo#3( zg3}0SRrqN*#S74q@o>}Fv?*kIiA=>QJ=e!u9C%1KjlY7~YlI~?^H)~?(jFGeO>uB% zc)0>f>cH|^a->uNTH!cjn+1ewgy4lxJ)Z#JYBMYjx1dIaI^|s9b8$OeN&ClcgFq`W zH+oitKK*0D9FSlmf7^~rJD9=7_D|3z!Ib(P8)V_Nl1;-Cs-un*QoGO~mjXC#V4?sO|hn7 zAZ~#JM1OhPtv5QNah4ptH4)5!ds~voo8wpA3Gx2`JB_oz|K>Ji`T}+3uv4)LPL`6O zoor#t)FV!RHT8f3w4oHFyXve9DJ&O5;gAK1Sps;+i2l*}6LAYSOri$0mmO66wj1WJ ziFuJUh&C@H{9i$uMsxc`VAO7ZCoYl)3Xt4HjcX+z9ukKgpCFyYnLP43HG*D(DRAo2 zXob(k&bA6w38P=Dsr`&jqMd>f{pN~{!s0qB61$ptnWhLuElvxury^!f;5H4_`{G+C zAifG34?;__dPJFi6(8$MwU(567qxIV+wiuqV5D(s2BufB4IBstM#3oqEU~188wLAQ zY7uVjkU5~QjqRr@6Z4RwiO_fV_hSK9CKEXj2zbrF)ap7a1Cu$$Y63a>dEN-=5wt;M z5WBagqz#h!;zwD?6h%V19g6f=j89qY5x)`{nBrjEQs5fHdCQi8X^1~L^`+O6R53>G zeeoDUJ4qU*FE_$Cc#NtJLIBV#j?K4w#&d?{6m#qy^xKFM5q|8xO<&0F0Y z_BG|O9Bzzp9<|Q4BE*U-J)tm;+U?&?izLy@9BMqo6Nj=?ZA8hTB&q1?8{Es)+P2^m zW-c^=5qex5^&%s6LJSTgsSO(g>I#WKIWl&+stzm+!J=7ArZ5}I-R>AQGB8$_gK!=| z24a_yGi=HNqGn#AaKF$Wd&E{7%0Up8!AZ-!jK;!Av)YHLRLl3+%v@@}JGVlTg)bO@ z*tM5etbCP12IAg7(>8?w7nYU4otL_GbCvK=i(p-fG}htGg}W5dt&==L3R8WARph>W zD&c2f;*!f>_ShtktL#VJy1XH6xpMDEdWbL~0yAz$pNjp+PReP@+=-L?2Q*0nyt%rL znd6yi@_!MDQF{#a?e0V^un_^?K{c~6F$?ULz=UK3c#|ER5`meJuS`$aj+b$ZJKOk3 zUjr$iuS$;e{(FL?XYW_34aJn)-I=anpGainikvXaxLRTYqws@uw1&sI{}pEoZzpWj ztl1ZRvpcaBSi`>Tu{&zw1RJP8`dF8N&^XolC}Z*F&mb#ht&gG_5b8y*k9riXOX_}$ z(sTq%?y{3nVjcu@IyGjYC6nmxj}d^y3=4#^5+rUJY{XD`kD9?kiD99aeLOX~>x^E& z=R;plU=b^X`dai-b6-wMpfTZZitO%RB7-DiA7fNq ze*)@0%SuB8s%0`@gu*H-SLeA72618BeIQCy212xp+!rg$LGm*FjC3X7SytWm4&$Nn zM}<0kJV*=Nm*GsR3w5L!^Acq_Fpe01E6YJa9LlRbV}-ql4#Qs3Aq<0x_q8*xpwcie z%i?CjvSwIu)XYmnS;7{*_-I~tpPI~=voH+L9WWGt=+O@6TA>%^z6`3!oF4}PUiUeJ z*YvoRb6>LSBPsh~SqAdGcMbjY50V|q!4q1~FoC*@V?f+PDG^ENULbl@JK*ESB%$5) zL11d;Wp>;V#;MH959)dbcsI|WHls=RcrYSSNrL4O_B`CJ1}i}SU%t=i#dC27VGeao z1HA5z_!X$@Y!78w1yTpNJJy+t%$k*;{y*FtDj>mL>sU0va!tqfINbRjCiJ2b)Whkt z4`mGD-99A)EV{)*Iq&5*MjWt+_maEe=(>S)bl-sswIomy<-L^Gy)z)hGT;O6MeUK4 z8K6TMFtWRpSlh`niLCRYTpO$*%b1he3F(T2VfxBUUD|~A$HD4;CIP0!6{%D~0Z@pz zGHxb=AW99CUWsvpf**_9W1MY)Qma@%6tifYwZ}4-x}WZW0*iEdTJ5}tK9UlR(Kzmx z2{=LZvF0vL8TwK^gVa`12$AwjpDqr(5(aR$uH0pA<&X9-;(%8rsLLw$7=5(3n|{cx z6L6~>sJoWO^^|ZI@E`;ms2f&Coy_d_SZ;N+m}LmPEMwr@6a1Cg1nTykrOF3lY3c5O zp*&^ipN#~yDggo3AwjLrwc_5~523K>9wK_|qyz+X5%W@HHmqLLmUvB!QFUP$6jr6D zi?r+<QFCwh15>><-wF8gVeIU zy7E{nxDB$i-V+b|Bn1}q5(2z9@X9iX&qHMmWpmq@70qk+r~t2|+NDFH+>%2E_W~>~ z7vOCwZcr~F1f%cTlW~eOGbs1)fno2g4AS=)cZ?$eUT5r}z&M+FU;L*j^*|ksP=u4(Y6hmGB$viR3zUG@ zDm^?bd{IX_ceW+@PvbSOT`iYjPAFYw0SDHPKcpm)=~E>-ATn}32fb<*bRh3?vcW*K z$BswKz${R@PpqyCOy=yWaU3pVg?QVNn+NSw2-+;@z!tkqK}UhTIs|PkgB0E8PDqux zwbMMpZnB#?rn5qdb&9eaP+3V*%c)k<81&zLhoMTIi{)h<=q1gpsnW$#Wxa!5Z1gXt z%o@vuVDvp5k%5_#c0p7nNOm1ct2_cS(LEjW;#a%1qpPMaUBf1(so2Tt=>9zC#GK3& zFFgWYmbiEE%VMaA(`(O4PjU!$;d~Ed&A=45Clss0a}D51jbQ`tPWH&ZrQwcZZI&%$#T>}FgnXY7JkrE$o+3df@u$) zgSd0V=Vd&I{MG(G=&KygK`p8iAsAw`fcuh3b2P93B~WI?y~C&66srtctoM@8%`x(n3BOGy*fG;BNceGh2m(1>^z8Da1n>KI-1IJJI0aKk^6uF?UC*0 zHeg}a8PAB~RiXovqjD{4Sq|7BIwY&Rnnw@fK&z(4A?0-tL>LEKV3ffSfSa(N)JtuBG)oOkElvwtVBVXd--^cauV->d zI?KT-0Vq`HBq-Yi**15`mMc_*Lcpak&=aq#3poLAu--WB$^dyjRvgwIyJ5ZJ5cg%X zqKIb&sJq*?g}`opIHaOxU>-}&ca=d>M_P$o%-S_~E&01v3`WjwguuvrWMw&Eny(qo z?5mP%?DY=b9qDEZARR)y`wW^8v5OaSA>O^r4L~a~m}Yu*4H+vyd)*Ep0!u$}wmc<~ zM#B85LcHUa0$>O4iLqG`1t<@?Dz`yyka7~ zvQvYK_v@89(2(#kkwH?M=!FQl)dLEEy|FPy$*mqR4BkGu*>N*LoVeKk%8zVlLz)9t zRhI}XP)K=b%M4N`&9Ruq_Di)iZc{uTvlGJb*F+|eT&zV5oI9BFU__Td7v;UW*QZn> zj7sy8*|au5a&4NIZ~}lQB?R+n4}LqdV|yV|sFwdCl^luxVrV{E^j&VBPXR^_kStJD z)t8MB@7kDlfH#DAcccvT?fkh_mU$5|)aJ#ic9$MrtnnZ@n(TPV%P+w?F&^%x4fh-L|Q zKld!!N_aI%^1(>UykrXm9%Ve3U+80Qk=bt*)-FIvEr82w31he*+$#`_mg8(<^HARK zj$WQm0B|_XO2HCVM@7cPBxpykNEc_mgX&Tb%1&GxAIkwLNfRA_cR#@rRocgpxn+bL zL@G5e?r17f!MwE7c$7!KC@%&y!n;Y1L($*;Fdl@E1Lf`}_$I640JLd=qpssXFTuPN z>E-c(f@3-JA~_CP2-Au6a+W~b*g*j$xhj+8ppnW-4#1lp_fT$QVBFCn)F4GSyz^tQ z_4!-{wd6a2^{f0+E8SZZ_`IjQ;k_P$bO?G8Yf7G<0bt^IzNZNsq!n-b=#t9-o`{Fw< zI&e-j)rrGgRdN7ph3d(ySb^G8&Y%jL z+V5m;?|8^#2;*>iJbLXua&Tabe1hEGpWmQ?A$V4az!w-OsI_E}+Ue97jKijhR8@Tk zMVPoSj!ICs(~3UYskhEoAsr{jQ47H690!;k0x%0~m|*T6zl7I(A_)X?x$~B6T+P6Y zq($?<2oc`n99gw79jBJz2oc^%GaQzIY01*MW?=L_VUm)by}QX|lC^LLZOhsTTaIfP zq=DL=9q(FqzYzyXivBG_R{wXUtNJ-|UYx_QB5HSh(I$-y( zjrKq;K|LS=cNhk?Tiu1qMtE?_yxNk>Lv%JBX{vu23acZ$KVc>F zxjFNqH$;7or)jH_qjX?aGfGMUIyndCR0CL8m!@QY;uht`?3{Ixz1h%3>0o}UET!bq zQf=)$nQO{JDFxdpAdC?u@tF8Kg_O zD~zPK*bOB_#7HZseS4B52YRXHkG{c!1o{WhbJ7gQX#7%`o1@#viARsHU8weq#>|4A z_2n`gMA30<<+0qCBT8pzoXUNXBaKvxo^K7E_1AU{lFo7LV~ork2aUAktaJhj91mwz zL6OuB-kJpg{e$z8J+3O3onFme73eaJW!LRyz`Y5BEg@*vUY?0VO!w^ptu7EqPpSg6 zcMvZoJE^L%eG^UgR(@Kp&VUILQ{GTXW`X6IQNya!<0^ZF=}5ggp9vDICmaTZclX4C zCYH54KnrYC@pAdwZe8k``p3<%!`6BO&dalj9tUMYe#4#p z(*IsfgQc(PQVuXOL}0R|9EcI9GlqlFJDstB`OpDgIdR3y6~wL#@cz3E@#(}Ykfs)a zc`j}bp$ZY0rt(IaX>M6ALA{RK0NQ2Tt@{ptW!{zs=JIq4rf5hn#ZuilGk(8bBv2>= z3hI8?hf!NfPQ2vOc6_fAj1yd-juFHKv`^;@%mSWe69aR73}+Be7?`s%5wvhtRdLEF9qdF38D1d*wbGqu zkeBk1DIQz&l|~&7Nj@tAGa|7l0w#*U>}Q#lfk_>wA3K~7D?HvT9)b2>YKu=Ar}SU0 zF$hA~RVB$=Spvcch@|pw5QT02hiWeiKMUz<+7V-2nVHJuYu92eh>k zfxF{oz&ZFY*|Vx(45hZ4-;OFde978{oIT0qI9}hhO#SA7k#F+#Gsoh3FPs^INy)1@`#1Yz39gSwCdGbIvXv5SsBjcqRIn3trP4d%i;5C z65t(Av*3YpdpD~bhL-}V#F?OE)S?-jOe=rXlxAc+qV#mH zVXCm;_>57Q0XYbXC@6r=ADx!~RnD&zld>)-hgHOe0Q6D|@GgiAUU$_`sm(6W(cD>8 zG?R~Bk)A*k=9;i27Nk?VcWb2_5GiD#GD(iIlmmp3pqppPaPY2#MWF&|Aa&>h60aa< zV3`*&*ERFfPJJebE}}J)RdE34^aMLy#o@O=hGoE{ISxaaqdE@IPRvU#!}0nBwgQmg zIMi{FVAgi;77B4-<{+)^v*rHJ5dhtgbv30TV!Q|(j$sWC9xd;A24KEbYb zRuy5ig;u#PQ^ipbJun|x-b*3Laq1=VUaWdy_ygU?7}HoNx=nHXL>*vvTCr7t{V4Z9 z;)qNuT?x-{BoL-nf26i%Le(nsa>RxS=H()F&pP$&p>_@b6#}y*e%tL}VG@ksy*T4A z4&a9)DlPNk6!>6tNIg444hSgM$t{j_35TcyUP||7(o*f0SgOIqtpD_FlT>n8Mn+e1 zphXDqo@blH_RE;m?BnzK;K}1XYzBkO+m*h_Z(Pqu|3VP%T;hnoDygMvhPbUF48V z>uL^Acl+^E9NNT;iCOTdK^EY_Wa>Ct5Oy*TOL#A(Fj)$E%k`Y_^-TUM-cXrWdvweu zNO8BP4UkrA_S$JxK>8+vd_)X3lNBcB*8>BTj*=)Axe~{W%ZhOx&s{%C{2N3nst_>hIMAZ+EZH=h2wnH# zAPT8<=_rK-u)%@J)p0CuET^+^W^q7NgnBO1sRWlHu&U58tz9#q0*u_=-RZwVUQ~d$ zy^D!YLQKR#FCoB-BW^?)rLR|V@fXQ*l={l}n74AkCHSdYtjP%Bq$)tG0=%`8ssJql zypx?&<@0KWd5Mmz0+Yn|vyQ8R<#>6Qr;+f-6EB=J0i^Z*-4&_ckuH`2-Z^$h9e4^b zhAgFl{zJ;Fp%?!{cSYJ#?A&uJZQbaEJ(cK1ZGYLC_C+lg(Qj_Dld7iN^}##uSr?l~ zxHhVg19YkK)44(p)SOt>r6J)7f<_lm_oO~_WnDtKX-eZBTBXCA?PtOCjO?yfY$Ezs zfDJnkIrIiugq?BV>!lA=Dk+MfpOrx)WTk#KxNp;GB0`qEyf8E zjve-j1LHit&-Rt8{L$2x-c1v^sz2JH_EiMR5n+c0B<2%sOVIu zD@ZgW2PTu_Sn_H6w0B4tDmkE#H3Op#tcnfHS6HN#fw?^w;Jt(yg>eq>+wR-^l{>;X zeOIX6{_-r;abUjJ`J=0nj$#9|hk3(bz`*q7PH5Q2{P1}-*#J`zno>0o28TRe<+zJS^OouH%48U+=X`PeTlsTb45~`&h35 zZDd|P$AgIpfqA(obs7C2RUHRxvs#kW&Z_eDY9ad4vYmqBkz9$uY{m&#i+QoK9Hn`w zBF~BSsY*ylNp$q3rSzJJ0EI>LrH@UUQrH4V>_cJMRTV9bvK(-?c+%@yS&q`Y>}2#5 z813M+)Xa;J!?&l*4;=(Khrlk8NcFC;s?T{j)YVBY6x8j@HXv^if%4{w3q=0 zv^u~m>JW&>SF9DXmx+O;HU;u&U=n-QK^XL9!+McHE!n@!< zKpGTAE}eRSQ7|vLIu69Pto%`QSvh)<;I7N$ySA^ft%3_17;5Il<$}AJDvoi&70PJk zkD~iHNamvaQDFd8=GE4A$60*X@I#r`h{A4+1=^)IazO2oKPs*sJNu31(r`UtSVGK- z6;%E8@ei?qNmsbRz7kGr@3xEoyAOF=TJ{phB5G9}fENbFx|1A;qlyEH|6oEFUB!WM z&hvEXNH|3i>NoP2tmz^SWnzk(<4%ZB7-rU0@5mf)P6c{Mq&j(E;nIKwt@rnsA#i zT5|bBLc5?0J3V7ST@`;RtRjwE1GH)zvY!IL))l$pBjM^MW5IQ^bLBE*=umP(X!LX=D4tB;YE8)JPpo zSUQ5GJ6D+t?ybymkYLV=Ne&U2%W?}%fiMK~@{y!vFh`AYPnC5AlH55C-&+NsYjqre z7Ge;|A%jYmu)K2|)J=ET>1#}3Q$6_EIu0CBV%@M-$cEVThP6zNW7jV~WK)C$p^U^6 z?dGwW3d*b_+kiLJH)j0R^2P%zJw0FON#jJ$%VRuGg&~QKFo%aS8JTb{42;y~7$0|f z+7XRYIWK=3x0G=f=PoGOA>o=S%Rj3skj^l=qLJ2K9@Hdx++F9vg7LUPiAY+<0Y$n5 zyvTUOCz4&wnU_ac`O!kcyViA(faK9$nM)N=;m+}z^U|~qP)Gi#m99!Xy6$G8gXO&F zJIDR8{eg1hHcY_iaa_q^*qAEK0aa7mU)mw6spx|3FPoLQVBCuz(^nF^+V+>0vX2-i zY=0TE?bL92E2zq4`9a#BqS5`=nt7?6RaKdn5d&u;a9I-tB}rEa`aTX{uNDF@nf+?T zW0?R9_KOFT3A%99uWMb$0lMs77<**lRZsr{t_^xg=`vs8M=dJz5}XM2nEGlT%WU8+ zMm=eR)XC%`abHn;Q0~z26C8SNG?+>tt%J`Zl?@(Dwvr=fVi52MAd&fqJeVT}842R) zcO5^)p?1KydzmC+g5bY2Gb{W5AOeGtR{rR#N|D6C6p|HX!&e%ZMjFZVkK18vLRsgJ zqQ$KTTdr8M7K{W=dFMFwQ`-TvL)j59+mpI$m3s$)d2W`cQ7UjnSev02<-gR#fm)R7 zqsN#Is;?%68Zl?p{1;r`BP}5c!GBSegwkTTpLS?i3F<;ru4Z6rr&Tp@9d>yK(j=7} zu)J#%A#$pc19R3xUNrR8->fX%Ww|4!M%aLs3l3h|yITzkg3pKUU?Jr01J3J-dw@2L zzc_WZDg-mcUkW>x+)lfrHo4d6WnJ>P zIxf+J2o~M!+2(}$vAVg&3p4xZgjlNrN$wm+KRUc?UBG)c!QwLJ1$T~{=A}1=1{ekN z(h>_8%bgp`g?9(IBS0(RU6(HFsbh?Da;As_+-MRvO!K1ZI518yFWEYdBjs(_Y1Ryc z5@P}DE!bL>954)foSHb8DAhhC61$D6g_9MSZwyuQQ)TzOx6R2UInKgtlg0uG-T_fk z63xhcvF;p)3M_v%5zXNIgmbE(NIJZmo>PSu*k3nUhQl8PX$4@O_8JhFy@p|Fe}dg| zB`}XJ5CoaF)JIju0T$@+ZhBG`!~x;m+GVUB688fd54{NEJpje^3|z3PA-tQ*a1dQa z*Yael^tv62IKXPPK5DH@(1v(peKeLq8_r~zTAPLjwXJ9@ z-;1=GI-#M*vWVCMv)jfTD_>~!rLlr~>UB@$SJ2{n483(+6~X)G_!G9(1=+OyQmD)`;+!2<1cfH%#Qg8r8f&X!3a z)h$mV!9-!jU$!%?Fxg1_rD^1jOY<@$5$sqfif~dD#!;J}n&F%YH4Xy2ksR_fqHf7n z%YA8v6{{cBp92{T%qWYiA|-lx?xd8t{{8A|aj2t;zsyh5TEGYe0_!pz;jAiRW6gc3 zXE=P2(oL4(u+r1RaxV)(tKAnJ=Oj7;TDUJcXc3+uXlwiHhSjNT>VCD!avatT0*jd& zP_=!c0GSNOl0!d@1wc(UD3dYG%Ym317^kW~$}Hb|-=C>J8szDugqCfJdFOa(UjCO2 zZLe31x_PP9^OT2+{MgH3+umB?&dV8?UYTVHnrM9_7a=J6&%H-B4Ki}D3bS+OCB1XJ zGB3kwTQc|MK1yGqY6}z3AIkh=ZU*Ba-b-O@pTIbq7PI{eRy&X>Bsrk2%6qA0I2zk$ zk_w*oiAnQ|aC2_7jJ%*XrE`P~c0u;&tlL3=N7^^}AYMrC+c z{5#{qN5QNQkl!3vne-ExRx+TA$O+B7dybLQo{HnfXp zfJbcVgoO>s84%8q_p&;Lg#^7^sVzBrojt}H5j#~sZ5D9^^OCLO$eEYLOhm|3i>Mr)6z2VVNe-TA&FQ1|p0pW1yKFbsDP@|h|QSDlDxnU~ucC~aPvY3ze!lvZj# z!bxQSV+TU7p@4@kj@4V?- z-Sg>l@yyGPJw|^Yd&gzRw$1(fZ>_lE*R~Y*H@GX0(X znz8mK>Z$Lzf7iwI(gpPL1=PtJ`g?%>zk73K)<=>*0-%T%n=99m+#XUn$*V5-b)Z%mW_b&Q-kd7a@f7g`mrwN94yk@Mpoc=DR zwqK;@OX=@@^mqF(!8UO9y$9#7-G14`UiyVvxf|*4P4wv&XVL&O2-?%=?@9D`4h{Ur z1nY?e+sVUC>h&_}bp^fiuhjlR`uiOH{X6=t4J_&KM#3v53Vq)<_sPS3M_;9OA0Q|% zrO!$9>+Qfx5oH?vI{If%9^Oo2ZT|Bo599y)KKSI}34nU(Q}2&b&(lfT=e(1Eej@?jM}L9LlOxpIEb4WXAQ`0ZJ3fE!!CrD%CQ6dD zh5||G$^5nV9^65#b`Xii@u7R%zSVt^balqGRr`nOmtpF$MPs&TgwCNpf@mtW-%1}6 zlY=|1pTWS1w}Adm zqb^5Z_+5JIUG(<*NaX8+a*WVsK_Ng-r}t(P3GRlV9PXk2&81!jiA?he^j`YA;~F9x z{nm46l-gen#2N%7hM7sgy^VzI59!^P?xUxt(&s@M;X(TQDz&_cB%*_l8zxvssrONW zburjQJ+7y}(`bag?g85QG4Uk5_zHbKL@(b(f1jYgchKJ}+#k_6?;#?5oTTP6r0tuj zlR@fW2l()M71!R{sHc|dX{8!1lC&3M%K(97um z-}MObh4f85IFjxrh@TR~3zS|rsQ&P-HaW$ketdy~cm2sj!&pp1m`DFVjfOLfk%aKR zN&WmQ{r?F1|DO?23u)gn)xZ>0Pkx0 z_^b5)5-E%TFC|pXARwB~B)NJ9HH7(gH~s$uvnI^Rqd~cl(gOo4Bgx|xQ+vve%_Vv! zq6ib#IMym~APHpo0TSJ1a3i=Eg>`S2;FP(4(*?X(FAhsh4lB!W`7d^pW6=dL4e!Z! zj4eo+T2K2Lo8`dvfY$Ab%LvxCJUw_v8O}LM%v=^Ma*L%#=`qLHh|S}b?*$(K(t%1r zC^hPP4pi1ksb*9lM74{x)Qa)qR1#hf^IZvz!0kLkX@P_g2AQymT@B=+srXMP8QF!L z9vJoj9g<+xF6w9q1izS27F0C6$n!IJpry8V#RyP>s#n7`NEYJpsc(e`OdNHlgY7BzJ!X^g zn7UG0Fi#G?WJHiiI;UqVwLaiDFdaUaOGP}?Z+6JY-vK)qdl^nq_ON6C;J1gu@AdKl zrzv=p@Vm>8I(Ixa^2xWX?cN#tdUN@dt&5iLS3QfW{S= zk{(bz?m$|L#HyHS#Jgj(S!*crf#`Lt@?W8uX%ym74Hc5L6dV(98X8pdc}m7krneXq zgaZsg)v(2YMUEs>xhuZ?IwH2gcZEiHD^bQ*x9H0;hESCxV<(GumdVxyFHD#35H5Wg z&L4#Od*Dcj%RwoWP&=98T^N*M;0|Q9fbXUe-v!LqoM`?D?3hZT>a(OK+p4pbk6+g1&qgP1MxLm@}d2%P{uovVM!c5^l`T0wbn zcB1t_NP;A02>3x-4#fl0^8@q>%R#BK;pwjD!frd z(uzH6J;;Cy^$Xz20cIYkSabp*zWw_IFj=MWG_;6Um_DOYT>NRPq|9QShN9z)lzG%W za-_JRm994X))KnFdNx3C^pL5+psq0TMcDm}g^;BOxWWY&e#1=4-ifwbSX5N@8mpjrMRFYI6ORe=t;VT zu!eU!T1trJ1;RWLt~f_MCU8fS?-z6E^xAPHU@B#N@En!Aczo#O8bfAC#4(ZOf??a| ziJ8Z;LlQM|@ykN?{boxraW2xJrthB2PI{#2aadsuIuPa-x$@()-~+cY^U&)|)NhaF|}u-1#S+3}9C z%?EbOj2F;A7-t&Y3Icm8Oqr>XBSS~SrJCnVc%hEAGF9Iw;Y0o%{J!Kqw-&_oENOf@zxdc9izhvPAIH9GxZ6^#JLQ;BDR2kq%OtZ45uue1^eJ;! z3Q4Dk9{xde6}AjWhotVidID^TkTS2mM@pGVy}Gl&>Q#tftOlO3JSl$Z zM5Lm+j%(j+xy$;PeM^VT2bq(V{jdH&1GyZb@4Vie;y8M@UX>RChSe%trZUK7lfdxd zA)_t1Cj^$rdBHm!)6M#9!uWKg6U=o{>ecz+I>R^JOO@&9BC zso%>>*&P6m6^B%R)LbE^oC##UWaP{dTp`13lmuNNDhRgLu^q>NR@K_lN)W1n56=%8 zeZpY8zzHU32jN&_LXtx7p(gQ;t8pyG3-uz_1*?h? zR9t8uw}g(K2DnPKmTX9Kf&EB;8;~>a>%jQ4fXf*#q{MGDFFNq0UYOk4>e{EkGGS+cPcanziSFjz$7Mjc{;R{kW><=Hr*8RgH~ zt&SWh>ckUS7=Sil05&#J=w~ADC!w&V6M$WZSf6L~TLOnleDNKek}{ss8u*YQNk}

    i+wgA1v&<_(%6V`je)Y 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

    (IWK~-U4c^Om{ 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Ý()arzX(sz?eR3I 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

    nv)GaS}ykl6{a&Tz~V*mVTW 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 - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The name of the author may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include -#include -#include -#include - -#define __USE_GNU -#include -#undef __USE_GNU - -#include "config.h" - -#if !defined(RTLD_NEXT) -#define RTLD_NEXT RTLD_DEFAULT -#endif - -static int inited = 0; -static int (*real_open)(const char *path, int mode, ...) = NULL; - -static void -init(void) -{ - char *foo; - real_open = dlsym(RTLD_NEXT, "open"); - if (!real_open) - abort(); - inited = 1; -} - -int -open(const char *path, int flags, ...) -{ - va_list ap; - mode_t mode; - - if (!inited) { - init(); - } - - va_start(ap, flags); - mode = va_arg(ap, mode_t); - va_end(ap); - - if (strcmp(path, "/dev/urandom") == 0) { - return real_open("/dev/zero", flags, mode); - } else { - return real_open(path, flags, mode); - } -} diff --git a/libzip-1.2.0/regress/open_cons_extrabytes.test b/libzip-1.2.0/regress/open_cons_extrabytes.test deleted file mode 100644 index beeb90e2e..000000000 --- a/libzip-1.2.0/regress/open_cons_extrabytes.test +++ /dev/null @@ -1,7 +0,0 @@ -# zip_open: file has extra bytes at end of archive -program tryopen -file testextrabytes.zzip testextrabytes.zip testextrabytes.zip -args -c testextrabytes.zzip -return 1 -stdout opening 'testextrabytes.zzip' returned error 21 -stderr 1 errors diff --git a/libzip-1.2.0/regress/open_empty.test b/libzip-1.2.0/regress/open_empty.test deleted file mode 100644 index 8f05d2921..000000000 --- a/libzip-1.2.0/regress/open_empty.test +++ /dev/null @@ -1,6 +0,0 @@ -# zip_open: file contains no entry, but is valid -program tryopen -file testempty.zip testempty.zip testempty.zip -args testempty.zip -return 0 -stdout opening 'testempty.zip' succeeded, 0 entries diff --git a/libzip-1.2.0/regress/open_empty_2.test b/libzip-1.2.0/regress/open_empty_2.test deleted file mode 100644 index 07a535875..000000000 --- a/libzip-1.2.0/regress/open_empty_2.test +++ /dev/null @@ -1,6 +0,0 @@ -# zip_open: 0 size file is recognized as empty zip -program tryopen -file testfile.txt testfile.txt testfile.txt -args testfile.txt -return 0 -stdout opening 'testfile.txt' succeeded, 0 entries diff --git a/libzip-1.2.0/regress/open_extrabytes.test b/libzip-1.2.0/regress/open_extrabytes.test deleted file mode 100644 index 1cfce246c..000000000 --- a/libzip-1.2.0/regress/open_extrabytes.test +++ /dev/null @@ -1,6 +0,0 @@ -# zip_open: file has extra bytes at end of archive -program tryopen -file testextrabytes.zzip testextrabytes.zip testextrabytes.zip -args testextrabytes.zzip -return 0 -stdout opening 'testextrabytes.zzip' succeeded, 1 entries diff --git a/libzip-1.2.0/regress/open_file_count.test b/libzip-1.2.0/regress/open_file_count.test deleted file mode 100644 index 56f04472d..000000000 --- a/libzip-1.2.0/regress/open_file_count.test +++ /dev/null @@ -1,12 +0,0 @@ -# zip_open: various inconsistent files -setenv LANG C -program tryopen -file incons-file-count-high.zzip incons-file-count-high.zip incons-file-count-high.zip -file incons-file-count-low.zzip incons-file-count-low.zip incons-file-count-low.zip -file incons-file-count-overflow.zzip incons-file-count-overflow.zip incons-file-count-overflow.zip -args incons-file-count-high.zzip incons-file-count-low.zzip incons-file-count-overflow.zzip -return 1 -stdout opening 'incons-file-count-high.zzip' returned error 21 -stdout opening 'incons-file-count-low.zzip' returned error 21 -stdout opening 'incons-file-count-overflow.zzip' returned error 14 -stderr 3 errors diff --git a/libzip-1.2.0/regress/open_filename_duplicate.test b/libzip-1.2.0/regress/open_filename_duplicate.test deleted file mode 100644 index 5204db6e5..000000000 --- a/libzip-1.2.0/regress/open_filename_duplicate.test +++ /dev/null @@ -1,6 +0,0 @@ -# zip_open: file opens fine even though same file name appears twice -program tryopen -args filename_duplicate.zzip -return 0 -file filename_duplicate.zzip filename_duplicate.zip filename_duplicate.zip -stdout opening 'filename_duplicate.zzip' succeeded, 2 entries diff --git a/libzip-1.2.0/regress/open_filename_duplicate_consistency.test b/libzip-1.2.0/regress/open_filename_duplicate_consistency.test deleted file mode 100644 index e82cf751b..000000000 --- a/libzip-1.2.0/regress/open_filename_duplicate_consistency.test +++ /dev/null @@ -1,7 +0,0 @@ -# zip_open: file opens fine even though same file name appears twice -program tryopen -args -c filename_duplicate.zzip -return 1 -file filename_duplicate.zzip filename_duplicate.zip filename_duplicate.zip -stdout opening 'filename_duplicate.zzip' returned error 10 -stderr 1 errors diff --git a/libzip-1.2.0/regress/open_filename_duplicate_empty.test b/libzip-1.2.0/regress/open_filename_duplicate_empty.test deleted file mode 100644 index ea143b609..000000000 --- a/libzip-1.2.0/regress/open_filename_duplicate_empty.test +++ /dev/null @@ -1,6 +0,0 @@ -# zip_open: file opens fine even though same file name (empty file name) appears twice -program tryopen -args filename_duplicate_empty.zzip -return 0 -file filename_duplicate_empty.zzip filename_duplicate_empty.zip filename_duplicate_empty.zip -stdout opening 'filename_duplicate_empty.zzip' succeeded, 2 entries diff --git a/libzip-1.2.0/regress/open_filename_duplicate_empty_consistency.test b/libzip-1.2.0/regress/open_filename_duplicate_empty_consistency.test deleted file mode 100644 index 657019563..000000000 --- a/libzip-1.2.0/regress/open_filename_duplicate_empty_consistency.test +++ /dev/null @@ -1,7 +0,0 @@ -# zip_open: file opens fine even though same file name (empty file name) appears twice -program tryopen -args -c filename_duplicate_empty.zzip -return 1 -file filename_duplicate_empty.zzip filename_duplicate_empty.zip filename_duplicate_empty.zip -stdout opening 'filename_duplicate_empty.zzip' returned error 10 -stderr 1 errors diff --git a/libzip-1.2.0/regress/open_filename_empty.test b/libzip-1.2.0/regress/open_filename_empty.test deleted file mode 100644 index 96f3efc0d..000000000 --- a/libzip-1.2.0/regress/open_filename_empty.test +++ /dev/null @@ -1,6 +0,0 @@ -# zip_open: file opens fine even though file name has length 0 -program tryopen -args filename_empty.zip -return 0 -file filename_empty.zip filename_empty.zip filename_empty.zip -stdout opening 'filename_empty.zip' succeeded, 1 entries diff --git a/libzip-1.2.0/regress/open_incons.test b/libzip-1.2.0/regress/open_incons.test deleted file mode 100644 index 084381607..000000000 --- a/libzip-1.2.0/regress/open_incons.test +++ /dev/null @@ -1,74 +0,0 @@ -# zip_open: various inconsistent files -setenv LANG C -program tryopen -file incons-archive-comment-longer.zzip incons-archive-comment-longer.zip incons-archive-comment-longer.zip -file incons-archive-comment-shorter.zzip incons-archive-comment-shorter.zip incons-archive-comment-shorter.zip -file incons-cdoffset.zzip incons-cdoffset.zip incons-cdoffset.zip -file incons-central-compression-method.zzip incons-central-compression-method.zip incons-central-compression-method.zip -file incons-central-compsize-larger.zzip incons-central-compsize-larger.zip incons-central-compsize-larger.zip -file incons-central-compsize-larger-toolarge.zzip incons-central-compsize-larger-toolarge.zip incons-central-compsize-larger-toolarge.zip -file incons-central-compsize-smaller.zzip incons-central-compsize-smaller.zip incons-central-compsize-smaller.zip -file incons-central-crc.zzip incons-central-crc.zip incons-central-crc.zip -file incons-central-date.zzip incons-central-date.zip incons-central-date.zip -file incons-central-file-comment-longer.zzip incons-central-file-comment-longer.zip incons-central-file-comment-longer.zip -file incons-central-file-comment-shorter.zzip incons-central-file-comment-shorter.zip incons-central-file-comment-shorter.zip -file incons-central-magic-bad.zzip incons-central-magic-bad.zip incons-central-magic-bad.zip -file incons-central-magic-bad2.zzip incons-central-magic-bad2.zip incons-central-magic-bad2.zip -file incons-central-size-larger.zzip incons-central-size-larger.zip incons-central-size-larger.zip -file incons-data.zzip incons-data.zip incons-data.zip -file incons-ef-central-size-wrong.zzip incons-ef-central-size-wrong.zip incons-ef-central-size-wrong.zip -file incons-ef-local-id-size.zzip incons-ef-local-id-size.zip incons-ef-local-id-size.zip -file incons-ef-local-id.zzip incons-ef-local-id.zip incons-ef-local-id.zip -file incons-ef-local-size.zzip incons-ef-local-size.zip incons-ef-local-size.zip -file incons-eocd-magic-bad.zzip incons-eocd-magic-bad.zip incons-eocd-magic-bad.zip -file incons-file-count-high.zzip incons-file-count-high.zip incons-file-count-high.zip -file incons-file-count-low.zzip incons-file-count-low.zip incons-file-count-low.zip -file incons-file-count-overflow.zzip incons-file-count-overflow.zip incons-file-count-overflow.zip -file incons-local-compression-method.zzip incons-local-compression-method.zip incons-local-compression-method.zip -file incons-local-compsize-larger.zzip incons-local-compsize-larger.zip incons-local-compsize-larger.zip -file incons-local-compsize-smaller.zzip incons-local-compsize-smaller.zip incons-local-compsize-smaller.zip -file incons-local-crc.zzip incons-local-crc.zip incons-local-crc.zip -file incons-local-filename-long.zzip incons-local-filename-long.zip incons-local-filename-long.zip -file incons-local-filename-missing.zzip incons-local-filename-missing.zip incons-local-filename-missing.zip -file incons-local-filename-short.zzip incons-local-filename-short.zip incons-local-filename-short.zip -file incons-local-filename.zzip incons-local-filename.zip incons-local-filename.zip -file incons-local-magic-bad.zzip incons-local-magic-bad.zip incons-local-magic-bad.zip -file incons-local-size-larger.zzip incons-local-size-larger.zip incons-local-size-larger.zip -args -c incons-archive-comment-longer.zzip incons-archive-comment-shorter.zzip incons-cdoffset.zzip incons-central-compression-method.zzip incons-central-compsize-larger-toolarge.zzip incons-central-compsize-larger.zzip incons-central-compsize-smaller.zzip incons-central-crc.zzip incons-central-date.zzip incons-central-file-comment-longer.zzip incons-central-file-comment-shorter.zzip incons-central-magic-bad.zzip incons-central-magic-bad2.zzip incons-central-size-larger.zzip incons-data.zzip incons-ef-central-size-wrong.zzip incons-ef-local-id-size.zzip incons-ef-local-id.zzip incons-ef-local-size.zzip incons-eocd-magic-bad.zzip incons-file-count-high.zzip incons-file-count-low.zzip incons-file-count-overflow.zzip incons-local-compression-method.zzip incons-local-compsize-larger.zzip incons-local-compsize-smaller.zzip incons-local-crc.zzip incons-local-filename-long.zzip incons-local-filename-missing.zzip incons-local-filename-short.zzip incons-local-filename.zzip incons-local-magic-bad.zzip incons-local-size-larger.zzip -return 1 -stdout opening 'incons-archive-comment-longer.zzip' returned error 21 -stdout opening 'incons-archive-comment-shorter.zzip' returned error 21 -stdout opening 'incons-cdoffset.zzip' returned error 21 -stdout opening 'incons-central-compression-method.zzip' returned error 21 -stdout opening 'incons-central-compsize-larger-toolarge.zzip' returned error 19 -stdout opening 'incons-central-compsize-larger.zzip' returned error 21 -stdout opening 'incons-central-compsize-smaller.zzip' returned error 21 -stdout opening 'incons-central-crc.zzip' returned error 21 -stdout opening 'incons-central-date.zzip' returned error 21 -stdout opening 'incons-central-file-comment-longer.zzip' returned error 21 -stdout opening 'incons-central-file-comment-shorter.zzip' returned error 21 -stdout opening 'incons-central-magic-bad.zzip' returned error 19 -stdout opening 'incons-central-magic-bad2.zzip' returned error 19 -stdout opening 'incons-central-size-larger.zzip' returned error 21 -# tryopen does not test checksums, so this is fine. -stdout opening 'incons-data.zzip' succeeded, 1 entries -stdout opening 'incons-ef-central-size-wrong.zzip' returned error 21 -stdout opening 'incons-ef-local-id-size.zzip' returned error 21 -# different extra fields local vs. central is fine -stdout opening 'incons-ef-local-id.zzip' succeeded, 1 entries -stdout opening 'incons-ef-local-size.zzip' returned error 21 -stdout opening 'incons-eocd-magic-bad.zzip' returned error 19 -stdout opening 'incons-file-count-high.zzip' returned error 21 -stdout opening 'incons-file-count-low.zzip' returned error 21 -stdout opening 'incons-file-count-overflow.zzip' returned error 14 -stdout opening 'incons-local-compression-method.zzip' returned error 21 -stdout opening 'incons-local-compsize-larger.zzip' returned error 21 -stdout opening 'incons-local-compsize-smaller.zzip' returned error 21 -stdout opening 'incons-local-crc.zzip' returned error 21 -stdout opening 'incons-local-filename-long.zzip' returned error 17 -stdout opening 'incons-local-filename-missing.zzip' returned error 21 -stdout opening 'incons-local-filename-short.zzip' returned error 21 -stdout opening 'incons-local-filename.zzip' returned error 21 -stdout opening 'incons-local-magic-bad.zzip' returned error 19 -stdout opening 'incons-local-size-larger.zzip' returned error 21 -stderr 31 errors diff --git a/libzip-1.2.0/regress/open_many_fail.test b/libzip-1.2.0/regress/open_many_fail.test deleted file mode 100644 index d0c154d39..000000000 --- a/libzip-1.2.0/regress/open_many_fail.test +++ /dev/null @@ -1,11 +0,0 @@ -# zip_open: files with >65k that have issues -program tryopen -args manyfiles-zip64-modulo.zzip manyfiles-fewer.zzip manyfiles-more.zzip -return 1 -file manyfiles-zip64-modulo.zzip manyfiles-zip64-modulo.zip manyfiles-zip64-modulo.zip -file manyfiles-fewer.zzip manyfiles-fewer.zip manyfiles-fewer.zip -file manyfiles-more.zzip manyfiles-more.zip manyfiles-more.zip -stdout opening 'manyfiles-zip64-modulo.zzip' returned error 21 -stdout opening 'manyfiles-fewer.zzip' returned error 21 -stdout opening 'manyfiles-more.zzip' returned error 21 -stderr 3 errors \ No newline at end of file diff --git a/libzip-1.2.0/regress/open_many_ok.test b/libzip-1.2.0/regress/open_many_ok.test deleted file mode 100644 index 248868d90..000000000 --- a/libzip-1.2.0/regress/open_many_ok.test +++ /dev/null @@ -1,12 +0,0 @@ -# zip_open: files open fine, have > 65k entries -program tryopen -args manyfiles.zip manyfiles-zip64.zip manyfiles-133000.zip manyfiles-65536.zip -return 0 -file manyfiles.zip manyfiles.zip manyfiles.zip -file manyfiles-zip64.zip manyfiles-zip64.zip manyfiles-zip64.zip -file manyfiles-133000.zip manyfiles-133000.zip manyfiles-133000.zip -file manyfiles-65536.zip manyfiles-65536.zip manyfiles-65536.zip -stdout opening 'manyfiles.zip' succeeded, 70000 entries -stdout opening 'manyfiles-zip64.zip' succeeded, 70000 entries -stdout opening 'manyfiles-133000.zip' succeeded, 133000 entries -stdout opening 'manyfiles-65536.zip' succeeded, 65536 entries diff --git a/libzip-1.2.0/regress/open_multidisk.test b/libzip-1.2.0/regress/open_multidisk.test deleted file mode 100644 index 1da4a5ca6..000000000 --- a/libzip-1.2.0/regress/open_multidisk.test +++ /dev/null @@ -1,7 +0,0 @@ -# zip_open: file is part of a multi-disk zip archive -program tryopen -args test.piz -return 1 -file test.piz multidisk.zip multidisk.zip -stdout opening 'test.piz' returned error 1 -stderr 1 errors diff --git a/libzip-1.2.0/regress/open_new_but_exists.test b/libzip-1.2.0/regress/open_new_but_exists.test deleted file mode 100644 index 002ccb4a0..000000000 --- a/libzip-1.2.0/regress/open_new_but_exists.test +++ /dev/null @@ -1,7 +0,0 @@ -# zip_open: file shall be created but already exists -program tryopen -args -e test.zip -return 1 -file test.zip test.zip test.zip -stdout opening 'test.zip' returned error 10 -stderr 1 errors diff --git a/libzip-1.2.0/regress/open_new_ok.test b/libzip-1.2.0/regress/open_new_ok.test deleted file mode 100644 index b1452c7c5..000000000 --- a/libzip-1.2.0/regress/open_new_ok.test +++ /dev/null @@ -1,5 +0,0 @@ -# zip_open: create new archive -program tryopen -args -n new.zip -return 0 -stdout opening 'new.zip' succeeded, 0 entries diff --git a/libzip-1.2.0/regress/open_nonarchive.test b/libzip-1.2.0/regress/open_nonarchive.test deleted file mode 100644 index c81b542bd..000000000 --- a/libzip-1.2.0/regress/open_nonarchive.test +++ /dev/null @@ -1,7 +0,0 @@ -# zip_open: file is not a zip archive -program tryopen -file Makefile.am Makefile.am Makefile.am -args Makefile.am -return 1 -stdout opening 'Makefile.am' returned error 19 -stderr 1 errors diff --git a/libzip-1.2.0/regress/open_nosuchfile.test b/libzip-1.2.0/regress/open_nosuchfile.test deleted file mode 100644 index 693216407..000000000 --- a/libzip-1.2.0/regress/open_nosuchfile.test +++ /dev/null @@ -1,6 +0,0 @@ -# zip_open: file doesn't exist -program tryopen -args nosuchfile -return 1 -stdout opening 'nosuchfile' returned error 9 -stderr 1 errors diff --git a/libzip-1.2.0/regress/open_ok.test b/libzip-1.2.0/regress/open_ok.test deleted file mode 100644 index dd1f38e0e..000000000 --- a/libzip-1.2.0/regress/open_ok.test +++ /dev/null @@ -1,6 +0,0 @@ -# zip_open: file opens fine -program tryopen -args test.zip -return 0 -file test.zip test.zip test.zip -stdout opening 'test.zip' succeeded, 3 entries diff --git a/libzip-1.2.0/regress/open_too_short.test b/libzip-1.2.0/regress/open_too_short.test deleted file mode 100644 index b7434baca..000000000 --- a/libzip-1.2.0/regress/open_too_short.test +++ /dev/null @@ -1,7 +0,0 @@ -# zip_open: file is too short for even a central directory entry -program tryopen -args test.piz -return 1 -file test.piz bogus.zip bogus.zip -stdout opening 'test.piz' returned error 19 -stderr 1 errors diff --git a/libzip-1.2.0/regress/open_truncate.test b/libzip-1.2.0/regress/open_truncate.test deleted file mode 100644 index 7ef753729..000000000 --- a/libzip-1.2.0/regress/open_truncate.test +++ /dev/null @@ -1,6 +0,0 @@ -# zip_open: file opens fine and gets truncated -program tryopen -args -t test.zip -return 0 -file-del test.zip test.zip -stdout opening 'test.zip' succeeded, 0 entries diff --git a/libzip-1.2.0/regress/open_zip64_3mf.test b/libzip-1.2.0/regress/open_zip64_3mf.test deleted file mode 100644 index 4a571549e..000000000 --- a/libzip-1.2.0/regress/open_zip64_3mf.test +++ /dev/null @@ -1,6 +0,0 @@ -# zip_open: ZIP64 file opens fine even when most eocd entries are 0xff (3MF format) -program tryopen -args test.zip -return 0 -file test.zip zip64-3mf.zip zip64-3mf.zip -stdout opening 'test.zip' succeeded, 1 entries diff --git a/libzip-1.2.0/regress/open_zip64_ok.test b/libzip-1.2.0/regress/open_zip64_ok.test deleted file mode 100644 index ac33f9a47..000000000 --- a/libzip-1.2.0/regress/open_zip64_ok.test +++ /dev/null @@ -1,6 +0,0 @@ -# zip_open: ZIP64 file opens fine -program tryopen -args test.zip -return 0 -file test.zip zip64.zip zip64.zip -stdout opening 'test.zip' succeeded, 1 entries diff --git a/libzip-1.2.0/regress/progress.test b/libzip-1.2.0/regress/progress.test deleted file mode 100644 index 8604db2f0..000000000 --- a/libzip-1.2.0/regress/progress.test +++ /dev/null @@ -1,10 +0,0 @@ -# test default compression stores if smaller; print progress -return 0 -args -n test.zip print_progress add compressable aaaaaaaaaaaaaa add uncompressable uncompressable add_nul large-compressable 8200 add_file large-uncompressable large-uncompressable 0 -1 -file-new test.zip cm-default.zip -file large-uncompressable large-uncompressable large-uncompressable -stdout 0.0% done -stdout 25.0% done -stdout 50.0% done -stdout 75.0% done -stdout 100.0% done diff --git a/libzip-1.2.0/regress/rename_ascii.test b/libzip-1.2.0/regress/rename_ascii.test deleted file mode 100644 index 0010ca41f..000000000 --- a/libzip-1.2.0/regress/rename_ascii.test +++ /dev/null @@ -1,4 +0,0 @@ -# rename file to ASCII name in zip archive -return 0 -args testfile rename 0 testfile.txt -file testfile testfile-UTF8.zip testfile.zip diff --git a/libzip-1.2.0/regress/rename_cp437.test b/libzip-1.2.0/regress/rename_cp437.test deleted file mode 100644 index 5a0125040..000000000 --- a/libzip-1.2.0/regress/rename_cp437.test +++ /dev/null @@ -1,4 +0,0 @@ -# rename file to CP437 name in zip archive (fails) -return 0 -args testfile.zip rename 0 ‚ƒ„…†‡ˆ‰Š‹ŒŽ -file testfile.zip testfile.zip testfile-cp437.zip diff --git a/libzip-1.2.0/regress/rename_deleted.test b/libzip-1.2.0/regress/rename_deleted.test deleted file mode 100644 index 9dcc7c36c..000000000 --- a/libzip-1.2.0/regress/rename_deleted.test +++ /dev/null @@ -1,5 +0,0 @@ -# rename deleted entry in zip archive (fails) -return 1 -args testfile.zip delete 1 delete 3 rename 1 othername -file testfile.zip testcomment.zip testcomment13.zip -stderr can't rename file at index '1' to 'othername': Entry has been deleted diff --git a/libzip-1.2.0/regress/rename_fail.test b/libzip-1.2.0/regress/rename_fail.test deleted file mode 100644 index 185f4e219..000000000 --- a/libzip-1.2.0/regress/rename_fail.test +++ /dev/null @@ -1,5 +0,0 @@ -# rename file inside zip archive, but file name already exists -return 1 -args rename.zip rename 0 file4 -file rename.zip testcomment.zip testcomment.zip -stderr can't rename file at index '0' to 'file4': File already exists diff --git a/libzip-1.2.0/regress/rename_ok.test b/libzip-1.2.0/regress/rename_ok.test deleted file mode 100644 index b76df9c66..000000000 --- a/libzip-1.2.0/regress/rename_ok.test +++ /dev/null @@ -1,4 +0,0 @@ -# rename file inside zip archive -return 0 -args rename.zip rename 1 notfile2 -file rename.zip testcomment.zip rename_ok.zip diff --git a/libzip-1.2.0/regress/rename_ok.zip b/libzip-1.2.0/regress/rename_ok.zip deleted file mode 100644 index ad073060c75447df53e4872d172ce8b8018c7491..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 709 zcmZ{iy-ve07)8I529-z|5wLj$q==s`Obq-itx%*k4-lmeiPYLCF{q4;-H=$AkdVro z@BlEfGcv-?wUe|!N}L;6NqqeI*nY=qI;5|&r%8L~?c#bJeI1)tDNcucH|VdBbr&2Q z>jdK_4bYCHP+X{-$(Y4ymMc7m+;jXH&j;`2_4#%KES(m3LMr{+obCZ>V~;4$6m%)YNBmp-V@|d kPm(j-D&Z{5q9ncI)dE;7GxOe@FV}IMt`z59)!`Ys-)p9&X8-^I diff --git a/libzip-1.2.0/regress/rename_utf8.test b/libzip-1.2.0/regress/rename_utf8.test deleted file mode 100644 index 391ebeb26..000000000 --- a/libzip-1.2.0/regress/rename_utf8.test +++ /dev/null @@ -1,4 +0,0 @@ -# rename file to UTF-8 name in zip archive -return 0 -args testfile rename 0 ÄÖÜßäöü -file testfile testfile.zip testfile-UTF8.zip diff --git a/libzip-1.2.0/regress/rename_utf8_encmismatch.test b/libzip-1.2.0/regress/rename_utf8_encmismatch.test deleted file mode 100644 index 075bca189..000000000 --- a/libzip-1.2.0/regress/rename_utf8_encmismatch.test +++ /dev/null @@ -1,4 +0,0 @@ -# rename file to UTF-8 name in zip archive with CP437 comment (sets InfoZIP UTF-8 Name Extension) -return 0 -args testfile rename 0 ÄÖÜßäöü -file testfile test-cp437-fc.zip test-cp437-fc-utf-8-filename.zip diff --git a/libzip-1.2.0/regress/runtest.in b/libzip-1.2.0/regress/runtest.in deleted file mode 100644 index c84538847..000000000 --- a/libzip-1.2.0/regress/runtest.in +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env perl - -# runtest -- run regression tests -# Copyright (C) 2002-2014 Dieter Baron and Thomas Klausner -# -# This file is part of ckmame, a program to check rom sets for MAME. -# The authors can be contacted at -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# 3. The names of the authors may not be used to endorse or promote -# products derived from this software without specific prior -# written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -use strict; - -BEGIN { push @INC, '@abs_srcdir@'; } - -use NiHTest; - -my $test = NiHTest::new({ default_program => '../src/ziptool', srcdir => '@srcdir@', zipcmp => '../../src/zipcmp', zipcmp_flags => '-p' }); - -$test->run(@ARGV); diff --git a/libzip-1.2.0/regress/set_comment_all.test b/libzip-1.2.0/regress/set_comment_all.test deleted file mode 100644 index 5902f98b3..000000000 --- a/libzip-1.2.0/regress/set_comment_all.test +++ /dev/null @@ -1,4 +0,0 @@ -# change local and global comments in a zip archive -return 0 -args testcomment.zip set_archive_comment "This is the new,\r\nmultiline archive comment.\r\nAin't it nice?" set_file_comment 0 "File comment no 0" set_file_comment 1 "File comment no 1" set_file_comment 2 "File comment no 2" set_file_comment 3 "File comment no 3" -file testcomment.zip testcomment.zip testchanged.zip diff --git a/libzip-1.2.0/regress/set_comment_localonly.test b/libzip-1.2.0/regress/set_comment_localonly.test deleted file mode 100644 index 08f7b8e5d..000000000 --- a/libzip-1.2.0/regress/set_comment_localonly.test +++ /dev/null @@ -1,4 +0,0 @@ -# change file comments in a zip archive -return 0 -args testcomment.zip set_file_comment 0 "File comment no 0" set_file_comment 1 "File comment no 1" set_file_comment 3 "File comment no 3" set_file_comment 2 "" -file testcomment.zip testcomment.zip testchangedlocal.zip diff --git a/libzip-1.2.0/regress/set_comment_removeglobal.test b/libzip-1.2.0/regress/set_comment_removeglobal.test deleted file mode 100644 index b469b37f4..000000000 --- a/libzip-1.2.0/regress/set_comment_removeglobal.test +++ /dev/null @@ -1,4 +0,0 @@ -# remove archive comment -return 0 -args testcomment.zip set_archive_comment "" -file testcomment.zip testcomment.zip testcommentremoved.zip diff --git a/libzip-1.2.0/regress/set_comment_revert.test b/libzip-1.2.0/regress/set_comment_revert.test deleted file mode 100644 index da61c37e4..000000000 --- a/libzip-1.2.0/regress/set_comment_revert.test +++ /dev/null @@ -1,4 +0,0 @@ -# start changing local and global comments, but revert before closing -return 0 -args testcomment.zip set_archive_comment "some long string, a bit longer than this at least" set_file_comment 0 "File comment no 0" set_file_comment 1 "File comment no 1" set_file_comment 3 "File comment no 3" set_file_comment 2 "" unchange_all -file testcomment.zip testcomment.zip testcomment.zip diff --git a/libzip-1.2.0/regress/set_compression_deflate_to_deflate.test b/libzip-1.2.0/regress/set_compression_deflate_to_deflate.test deleted file mode 100644 index e0b31218a..000000000 --- a/libzip-1.2.0/regress/set_compression_deflate_to_deflate.test +++ /dev/null @@ -1,4 +0,0 @@ -# change method from deflated to deflated (no change) -return 0 -args test.zip set_file_compression 0 deflate 0 -file test.zip testdeflated.zip testdeflated.zip diff --git a/libzip-1.2.0/regress/set_compression_deflate_to_store.test b/libzip-1.2.0/regress/set_compression_deflate_to_store.test deleted file mode 100644 index 1678b9c32..000000000 --- a/libzip-1.2.0/regress/set_compression_deflate_to_store.test +++ /dev/null @@ -1,4 +0,0 @@ -# change method from deflated to stored -return 0 -args test.zip set_file_compression 0 store 0 -file test.zip testdeflated.zip teststored.zip diff --git a/libzip-1.2.0/regress/set_compression_store_to_deflate.test b/libzip-1.2.0/regress/set_compression_store_to_deflate.test deleted file mode 100644 index 1f8349283..000000000 --- a/libzip-1.2.0/regress/set_compression_store_to_deflate.test +++ /dev/null @@ -1,4 +0,0 @@ -# change method from stored to deflated -return 0 -args test.zip set_file_compression 0 deflate 0 -file test.zip teststored.zip testdeflated.zip diff --git a/libzip-1.2.0/regress/set_compression_store_to_store.test b/libzip-1.2.0/regress/set_compression_store_to_store.test deleted file mode 100644 index 66cf3ddc3..000000000 --- a/libzip-1.2.0/regress/set_compression_store_to_store.test +++ /dev/null @@ -1,4 +0,0 @@ -# change method from stored to stored (no change) -return 0 -args test.zip set_file_compression 0 store 0 -file test.zip teststored.zip teststored.zip diff --git a/libzip-1.2.0/regress/set_compression_unknown.test b/libzip-1.2.0/regress/set_compression_unknown.test deleted file mode 100644 index 9ebf688b1..000000000 --- a/libzip-1.2.0/regress/set_compression_unknown.test +++ /dev/null @@ -1,5 +0,0 @@ -# change method to unknown -return 1 -args test.zip set_file_compression 0 unknown 0 -file test.zip teststored.zip teststored.zip -stderr can't set file compression method at index '0' to 'unknown', flags '0': Compression method not supported diff --git a/libzip-1.2.0/regress/stat_index_cp437_guess.test b/libzip-1.2.0/regress/stat_index_cp437_guess.test deleted file mode 100644 index f1abd1ad0..000000000 --- a/libzip-1.2.0/regress/stat_index_cp437_guess.test +++ /dev/null @@ -1,148 +0,0 @@ -# guess CP437 file names and autoconvert them -args test-cp437.zip stat 0 stat 1 stat 2 stat 3 stat 4 stat 5 stat 6 stat 7 stat 8 stat 9 stat 10 stat 11 stat 12 stat 13 stat 14 stat 15 -return 0 -file test-cp437.zip test-cp437.zip test-cp437.zip -stdout name: '☺☻♥♦♣♠•○◘◙♂♀♪♫☼►' -stdout index: '0' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:51:50' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '◄↕‼¶§▬↨↑↓→â†âˆŸâ†”▲▼ ' -stdout index: '1' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:51:54' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '!"#$%&'()*+,-./0' -stdout index: '2' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:51:58' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '123456789:;<=>?@' -stdout index: '3' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:04' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'ABCDEFGHIJKLMNOP' -stdout index: '4' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:08' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'QRSTUVWXYZ[\]^_`' -stdout index: '5' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:12' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'abcdefghijklmnop' -stdout index: '6' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:18' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'qrstuvwxyz{|}~~Ç' -stdout index: '7' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:22' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'üéâäàåçêëèïîìÄÅÉ' -stdout index: '8' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:26' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'æÆôöòûùÿÖÜ¢£¥₧ƒá' -stdout index: '9' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:30' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'íóúñѪº¿âŒÂ¬Â½Â¼Â¡Â«Â»â–‘' -stdout index: '10' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:36' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '▒▓│┤╡╢╖╕╣║╗â•â•œâ•›â”â””' -stdout index: '11' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:40' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '┴┬├─┼╞╟╚╔╩╦╠â•â•¬â•§â•¨' -stdout index: '12' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:44' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '╤╥╙╘╒╓╫╪┘┌█▄▌â–▀α' -stdout index: '13' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:50' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'ßΓπΣσµτΦΘΩδ∞φε∩≡' -stdout index: '14' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:54' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '±≥≤⌠⌡÷≈°∙·√â¿Â²â– Â Â ' -stdout index: '15' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:53:02' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout diff --git a/libzip-1.2.0/regress/stat_index_cp437_raw.test b/libzip-1.2.0/regress/stat_index_cp437_raw.test deleted file mode 100644 index 79104f0ef..000000000 --- a/libzip-1.2.0/regress/stat_index_cp437_raw.test +++ /dev/null @@ -1,149 +0,0 @@ -# get raw file names them from archive -args -r test-cp437.zip stat 0 stat 1 stat 2 stat 3 stat 4 stat 5 stat 6 stat 7 stat 8 stat 9 stat 10 stat 11 stat 12 stat 13 stat 14 stat 15 -return 0 -file test-cp437.zip test-cp437.zip test-cp437.zip -stdout name: '  -stdout ' -stdout index: '0' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:51:50' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: ' ' -stdout index: '1' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:51:54' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '!"#$%&'()*+,-./0' -stdout index: '2' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:51:58' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '123456789:;<=>?@' -stdout index: '3' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:04' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'ABCDEFGHIJKLMNOP' -stdout index: '4' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:08' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'QRSTUVWXYZ[\]^_`' -stdout index: '5' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:12' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'abcdefghijklmnop' -stdout index: '6' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:18' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'qrstuvwxyz{|}~~€' -stdout index: '7' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:22' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '‚ƒ„…†‡ˆ‰Š‹ŒŽ' -stdout index: '8' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:26' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '‘’“”•–—˜™š›œžŸ ' -stdout index: '9' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:30' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '¡¢£¤¥¦§¨©ª«¬­®¯°' -stdout index: '10' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:36' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '±²³´µ¶·¸¹º»¼½¾¿À' -stdout index: '11' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:40' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'ÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐ' -stdout index: '12' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:44' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'ÑÒÓÔÕÖ×ØÙÚÛÜÝÞßà' -stdout index: '13' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:50' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'áâãäåæçèéêëìíîïð' -stdout index: '14' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:54' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'ñòóôõö÷øùúûüýþÿÿ' -stdout index: '15' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:53:02' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout diff --git a/libzip-1.2.0/regress/stat_index_cp437_strict.test b/libzip-1.2.0/regress/stat_index_cp437_strict.test deleted file mode 100644 index a34a0e636..000000000 --- a/libzip-1.2.0/regress/stat_index_cp437_strict.test +++ /dev/null @@ -1,148 +0,0 @@ -# strictly follow ZIP spec and expect CP437 file names, and autoconvert them -args -s test-cp437.zip stat 0 stat 1 stat 2 stat 3 stat 4 stat 5 stat 6 stat 7 stat 8 stat 9 stat 10 stat 11 stat 12 stat 13 stat 14 stat 15 -return 0 -file test-cp437.zip test-cp437.zip test-cp437.zip -stdout name: '☺☻♥♦♣♠•○◘◙♂♀♪♫☼►' -stdout index: '0' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:51:50' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '◄↕‼¶§▬↨↑↓→â†âˆŸâ†”▲▼ ' -stdout index: '1' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:51:54' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '!"#$%&'()*+,-./0' -stdout index: '2' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:51:58' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '123456789:;<=>?@' -stdout index: '3' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:04' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'ABCDEFGHIJKLMNOP' -stdout index: '4' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:08' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'QRSTUVWXYZ[\]^_`' -stdout index: '5' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:12' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'abcdefghijklmnop' -stdout index: '6' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:18' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'qrstuvwxyz{|}~~Ç' -stdout index: '7' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:22' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'üéâäàåçêëèïîìÄÅÉ' -stdout index: '8' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:26' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'æÆôöòûùÿÖÜ¢£¥₧ƒá' -stdout index: '9' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:30' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'íóúñѪº¿âŒÂ¬Â½Â¼Â¡Â«Â»â–‘' -stdout index: '10' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:36' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '▒▓│┤╡╢╖╕╣║╗â•â•œâ•›â”â””' -stdout index: '11' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:40' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '┴┬├─┼╞╟╚╔╩╦╠â•â•¬â•§â•¨' -stdout index: '12' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:44' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '╤╥╙╘╒╓╫╪┘┌█▄▌â–▀α' -stdout index: '13' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:50' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'ßΓπΣσµτΦΘΩδ∞φε∩≡' -stdout index: '14' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:52:54' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: '±≥≤⌠⌡÷≈°∙·√â¿Â²â– Â Â ' -stdout index: '15' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Fri Feb 17 2012 20:53:02' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout diff --git a/libzip-1.2.0/regress/stat_index_fileorder.test b/libzip-1.2.0/regress/stat_index_fileorder.test deleted file mode 100644 index 24b02b44e..000000000 --- a/libzip-1.2.0/regress/stat_index_fileorder.test +++ /dev/null @@ -1,22 +0,0 @@ -# zip_open: entries ordered by central directory order -args fileorder.zzip stat 0 stat 1 -return 0 -file fileorder.zzip fileorder.zip fileorder.zip -stdout name: 'file1' -stdout index: '0' -stdout size: '5' -stdout compressed size: '5' -stdout mtime: 'Fri Apr 27 2012 23:21:42' -stdout crc: '9ee760e5' -stdout compression method: '0' -stdout encryption method: '0' -stdout -stdout name: 'file2' -stdout index: '1' -stdout size: '5' -stdout compressed size: '5' -stdout mtime: 'Fri Apr 27 2012 23:21:44' -stdout crc: '7ee315f' -stdout compression method: '0' -stdout encryption method: '0' -stdout diff --git a/libzip-1.2.0/regress/stat_index_streamed.test b/libzip-1.2.0/regress/stat_index_streamed.test deleted file mode 100644 index a2b3048ad..000000000 --- a/libzip-1.2.0/regress/stat_index_streamed.test +++ /dev/null @@ -1,13 +0,0 @@ -# stat file in streamed zip file -args streamed stat 0 -file streamed streamed.zip streamed.zip -return 0 -stdout name: '-' -stdout index: '0' -stdout size: '2' -stdout compressed size: '4' -stdout mtime: 'Wed Apr 25 2012 10:20:38' -stdout crc: 'ddeaa107' -stdout compression method: '8' -stdout encryption method: '0' -stdout diff --git a/libzip-1.2.0/regress/stat_index_streamed_zip64.test b/libzip-1.2.0/regress/stat_index_streamed_zip64.test deleted file mode 100644 index 18a8694b0..000000000 --- a/libzip-1.2.0/regress/stat_index_streamed_zip64.test +++ /dev/null @@ -1,13 +0,0 @@ -# stat file in streamed zip file -args streamed stat 0 -file streamed streamed-zip64.zip streamed-zip64.zip -return 0 -stdout name: '-' -stdout index: '0' -stdout size: '2' -stdout compressed size: '4' -stdout mtime: 'Wed Apr 25 2012 10:20:38' -stdout crc: 'ddeaa107' -stdout compression method: '8' -stdout encryption method: '0' -stdout diff --git a/libzip-1.2.0/regress/stat_index_utf8_guess.test b/libzip-1.2.0/regress/stat_index_utf8_guess.test deleted file mode 100644 index 898db2dcd..000000000 --- a/libzip-1.2.0/regress/stat_index_utf8_guess.test +++ /dev/null @@ -1,13 +0,0 @@ -# guess UTF-8 file names -args test-utf8.zip stat 0 -return 0 -file test-utf8.zip test-utf8.zip test-utf8.zip -stdout name: 'ÄÖÜäöüßćçĉéèêëē' -stdout index: '0' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Sat Feb 18 2012 00:15:08' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout diff --git a/libzip-1.2.0/regress/stat_index_utf8_raw.test b/libzip-1.2.0/regress/stat_index_utf8_raw.test deleted file mode 100644 index 881a18b74..000000000 --- a/libzip-1.2.0/regress/stat_index_utf8_raw.test +++ /dev/null @@ -1,13 +0,0 @@ -# print UTF-8 file names -args -r test-utf8.zip stat 0 -return 0 -file test-utf8.zip test-utf8.zip test-utf8.zip -stdout name: 'ÄÖÜäöüßćçĉéèêëē' -stdout index: '0' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Sat Feb 18 2012 00:15:08' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout diff --git a/libzip-1.2.0/regress/stat_index_utf8_strict.test b/libzip-1.2.0/regress/stat_index_utf8_strict.test deleted file mode 100644 index af1bb818b..000000000 --- a/libzip-1.2.0/regress/stat_index_utf8_strict.test +++ /dev/null @@ -1,14 +0,0 @@ -# follow strict rules and convert UTF-8 as if it was CP437, but not -# if the files are marked as having UTF-8 names -args -s test-utf8.zip stat 0 -return 0 -file test-utf8.zip test-utf8.zip test-utf8.zip -stdout name: 'ÄÖÜäöüßćçĉéèêëē' -stdout index: '0' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Sat Feb 18 2012 00:15:08' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout diff --git a/libzip-1.2.0/regress/stat_index_utf8_unmarked_strict.test b/libzip-1.2.0/regress/stat_index_utf8_unmarked_strict.test deleted file mode 100644 index 07954dd24..000000000 --- a/libzip-1.2.0/regress/stat_index_utf8_unmarked_strict.test +++ /dev/null @@ -1,14 +0,0 @@ -# follow strict rules and convert UTF-8 as if it was CP437, -# if not marked otherwise (in this case: not marked) -args -s test-utf8-unmarked.zip stat 0 -return 0 -file test-utf8-unmarked.zip test-utf8-unmarked.zip test-utf8-unmarked.zip -stdout name: '├ä├û├£├ñ├╢├â•â”œÆ’─ç├º─ë├âŒâ”œÂ¿â”œÂ¬â”œÂ½â”€Ã´' -stdout index: '0' -stdout size: '0' -stdout compressed size: '0' -stdout mtime: 'Sat Feb 18 2012 00:15:08' -stdout crc: '0' -stdout compression method: '0' -stdout encryption method: '0' -stdout diff --git a/libzip-1.2.0/regress/stat_index_zip64.test b/libzip-1.2.0/regress/stat_index_zip64.test deleted file mode 100644 index c3f420c9f..000000000 --- a/libzip-1.2.0/regress/stat_index_zip64.test +++ /dev/null @@ -1,13 +0,0 @@ -# stat file in zip64 zip file -args bigzero stat 0 -file bigzero bigzero.zip bigzero.zip -return 0 -stdout name: 'bigzero' -stdout index: '0' -stdout size: '4294967296' -stdout compressed size: '4168157' -stdout mtime: 'Thu Mar 15 2012 14:54:06' -stdout crc: 'd202ef8d' -stdout compression method: '8' -stdout encryption method: '0' -stdout diff --git a/libzip-1.2.0/regress/streamed-zip64.zip b/libzip-1.2.0/regress/streamed-zip64.zip deleted file mode 100644 index 85886190bef6d6408c2a0f2efbe8418c7f54a61b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmWIWW@gc4-~htOK{Fi~fZ#tAFfxcR=rS@0fW%OM_Y)?D0B?2<_JyzRvOr~+pmcyY mBa<96!a$fBkUS$)4Tx?K1aWi&yjj^m3`QW-2h#o^4g&yCJ{C>@ diff --git a/libzip-1.2.0/regress/streamed.zip b/libzip-1.2.0/regress/streamed.zip deleted file mode 100644 index 737d56f31b3dbf55589c53ce41411c69d2a3cd52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120 zcmWIWW@gc4-~htOK{Fi~fZ#tAFap`S-cOhq0=(Hd*cZOK%K{W&0^$H~MkYCCgeGJ; dkR}iS(G7wimTrJID;tQx2!#4T+8D%P008cb77YLZ diff --git a/libzip-1.2.0/regress/test-cp437-comment-utf-8.zip b/libzip-1.2.0/regress/test-cp437-comment-utf-8.zip deleted file mode 100644 index 04fbaac95fd8360af4fc71d98c06ca9b3a7e5f11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2619 zcmaLZX;@5A9LMo9%~V>XBto(iQTAQ3Q)r^HuVvpOO6pMxNg@?3R3y7XvSsVq_bo)m zQV3Z>mQc?B>T!>Ajyv=G?sHz;`J8v(XVi{Ll|F)xPl~g>cqo4uBMYR^QmV9dboDCe z8yHqJs$}ftZGaT20wqE!5B!>|iyl&Dr`kEe)PE&kj$~5Vw2E2PYUb5z)U>E&S-TET z%E1aulKePQ-Fo#KG;Gw^s!3DpX3cGETks?eR$!78$dOvMYTc%7yY?MAcIw=vt6evH zo|K0bm?Q;pr0zX>_UhfIZ@>Nyjspe`a#Hi80<6F!X&Fay9z4Xw)otjo;Uh+l8a-z0 zIG$996__N2aHR1Q+&v~vnmlFdwCOWu&YC@kClz4@CP|?jX|CtI`CbbadiyN$UF_%Y zzl0|hV+AHjVH_zSaA{ERvgIp6R)($$TOGcJCzW6YCQ0EOX>G*1$f)S`8)9PP;x}$e zNaRVSSb<4W1V>8Ryd`;S%C_x0cJA7}XK!j6Pg17YIl&|;k|XWge<1x}#-YPUjvmWA ze&XaQo}`Nvm?TAWq|;f#nX~84U$}Vb@|COCuHWEEhFF0~QVd7BdF%F_?7R2w=RA0r z`$+Tn2~RS?3QUsXIMUN+dHK&@yexS2`c2{6cke&&Br~kQBq@m_6@C2lx%kW1Z{JIP z{QOl~R>qSou>w;&Dzq$>|0|R&GAgfCdH@`lUb&khMQ)U}MhFt3g?J%BNER}LOjj4} zKi#5k{`W2NYBp)+MEnMxg}LY6+(1;MHNabqq6BG dRX42CAr@7rE~9GeK<6LW?UBNGw?ty``ZX&pqY!^y3i0-i20?c h_A)Xtv#_$Ub8rd>3I%wxvVja_1j2G49S`C#006EKLmL19 diff --git a/libzip-1.2.0/regress/test-cp437-fc.zip b/libzip-1.2.0/regress/test-cp437-fc.zip deleted file mode 100644 index 0c4f04d53139f06a6fc4eb89eecb755ea37aca46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 186 zcmWIWW@h1H0Dbg^Sq?3PX1vdjD z%L`@(29^|{`T%c6COKwY=14H`K+XKy2x6d`$_g(rzFQ0{~}K9<2ZX diff --git a/libzip-1.2.0/regress/test-cp437.zip b/libzip-1.2.0/regress/test-cp437.zip deleted file mode 100644 index 066531efb10cd09d803f455b1ae7c5e47ec764b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2582 zcmaLZc~DMK7{~GR_P%dvK_No2lP&vBvQy}d%1+3>N4!aml1LIsRF<-2SIC|%`@V)O zSqdRb$P&tP4%0m|&pGa$-<|W%{mlLAJ6GqV)|e1_`6ReFu*1KHIk6@x1GPqLXk=W> z#MG>KiIV1SuEs>2mT2!x=dCv-DowVU5RE6iqbrhp1(HRn(q$~mma{5fp`vvqo61#~ zlnx4=RPqx@RjXC6QL|QU+d6gY)o)-Fx(Obn4Z+kF$N(zlC8c-7E=5Zpjeh5b`hTtHscfr@(ws<4HMifhQLF`(i$f-3ByqT(|0Y8I%t zlb{M4si?S;ylMx(4!D`13VW%jxR|`E2Nm}dRAD<671xtjQ$fWo1y$HlMa3oMRWl7C lxT~NFo2sa|s=VqBDsC*O!oF$^AsfUTZVxRXaquo7e*kg%Dir_# diff --git a/libzip-1.2.0/regress/test-utf8-unmarked.zip b/libzip-1.2.0/regress/test-utf8-unmarked.zip deleted file mode 100644 index 1bcb7035ff928b664d3fe5502a256f45f5f12d75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 210 zcmWIWW@h1H0D&irK@MOBl#pYPVL04!c-rAPhnF1Qc6iU>`A6ChFF(?Gc;(?0hgTh5 zePnWI2qyz`^?f^k5H79YW?*D_!OXzGk^(d#z?+dtjv1H95^#&QG=i9f>|ur2gJB0N P8%Q@J5Q6NC0C5-qK;S&S diff --git a/libzip-1.2.0/regress/test-utf8.zip b/libzip-1.2.0/regress/test-utf8.zip deleted file mode 100644 index 3045e20b86ae42e8e5529af7803dc62f38278037..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 210 zcmWIWW@h1HVBlb2c)}Ruz<>ng7-Sd@w;Y~!c+TM^hqoQxb9nxd_QT7MbRJ%Lc*WsW zhgTn&92&yOz+8Rb&L4zJE4UdLSza(RFtDTmO$qR3WRhdXWwHd^o-K_aCLw!RA@*R{ R!O8~G%?N}bJ0n0G1^`OHJk9_B diff --git a/libzip-1.2.0/regress/test.zip b/libzip-1.2.0/regress/test.zip deleted file mode 100644 index e4efd716b64801cd7445a7baaa8d460a661534ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 412 zcmWIWW@h1HU}9ikxLWI`f6R2JH7k$}!YmA;3?-?>C7~gl49t#2jrJfMTEW7Q!XN^c z;0gfi1uA8zo}q07qG5mosy8LGNFS`9Q}l`BEFcEyf5Du>0MUxgT3#frAnT1V><8%w z$pGzVWD;k_<$7MQV;F(tmPQa0;ultkUqUMwfNp?j2T5Xj0HU3NL4e_{qYYF$#5+JE jK;A(%0=q|$T~Ll>1k_t7PGMyOIfEGpPXXyYAPxfnv0Y9$ diff --git a/libzip-1.2.0/regress/test2.zip b/libzip-1.2.0/regress/test2.zip deleted file mode 100644 index ed2f60f50e320d2968637f673d0ac50355594b21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126 zcmWIWW@Zs#0D=6}7FV9S`Wq}jHVE?oaY<@%Nm^!3s$NM&35Xrw&B!Fej9WcW3m9x` X1X0Mk1H4(;Kw^wQXa%J8KpX}DC%P7g diff --git a/libzip-1.2.0/regress/testbuffer.zip b/libzip-1.2.0/regress/testbuffer.zip deleted file mode 100644 index 91e7d8a8b84dbd7faaef9afc2a873216a37b6bb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180 zcmWIWW@Zs#00FL)7FXuqca+S4Y!K!H;*!+jlH!u0%)E5Hl8Ta$jLc#MAWBpKiR&mN z=A|fPmM9dbrsftal;kU9B$lNrB&DY2DHN9`C#Mz{rYn521qA?I1B(&O)2OA diff --git a/libzip-1.2.0/regress/testchanged.zip b/libzip-1.2.0/regress/testchanged.zip deleted file mode 100644 index d5169c96edbda1b0e796e0a466feba7a013c1d36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 728 zcmZ|LJxjwt0LJmFO+^D497Nr26Gckj7C{iTxD+JN<^xE2AqUAtlB?Fyv0K5#Nhs(y z@dN1S?&#v+?sG|up%@MId!m8 z2K9<%@GA$=6kyg<2fOy5v5Gf|fvb;Lr`Qo0`8=WcOP^7}ZVoInoCJ~wTrheWyFR}z S!Zj`Pgo|BCIT~`89sd9>TCF1h diff --git a/libzip-1.2.0/regress/testchangedlocal.zip b/libzip-1.2.0/regress/testchangedlocal.zip deleted file mode 100644 index 1c8b301414483864e522f2d440c53027942d63d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714 zcmZ{iF-yZh7>2K=5e;N;5Oup%htirZPJ)U{L=M{g07)+<(B|ZFN*x`$2`)~Bg8mbK zfR65tE)MR#m!xgz#a!Ow2z*c8JcRjH(;@o0e4TXLpEvirIP2JCn?%WwcY^*Vv7UmX zGo4`EBm=Bdkt&|5jEaaxiOdxCA#XWs!DHaPf4n{Jfu%F&9p=1euypEp84pD|Fn~P( zzYcoes|CFrI0a0n4yfWpn!EtKjo-=sYQb*Kn}MZM$BV?RRPmxFhz{gm@ii1|XFS;%9)y{=!{#PZ$uK^NUvM-1D81d0g_CnD*ylh diff --git a/libzip-1.2.0/regress/testcomment.zip b/libzip-1.2.0/regress/testcomment.zip deleted file mode 100644 index 45dc18d1423248071fd02b8a68e9bed36dd3f623..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 703 zcmZ{iKTm@|7>C~q7$spe>UN_#5dU;>GEw8w#*nmp00M`Qw46E6)X}koJZ`34U(Z~~ahB4ClEvdQzoTlpGq&o|iCyeU{Ji+HiPl0`CWu(h;q{O8cY&WT#c z{U`y1SJ=a6c- z1Wzk4Oafe5B{dSBeh7*a2E+@ efee%Mn%5g(v5@+`{<9q0vAZI>aO(+|n0^CjSE923 diff --git a/libzip-1.2.0/regress/testcomment13.zip b/libzip-1.2.0/regress/testcomment13.zip deleted file mode 100644 index bd6e1c3277cfc2551406338d2c5f92db0401bb35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 383 zcmWIWW@h1H00FYscEDR|?=$xNd zlA2ditdO6kkd|3gTmmF>QuVk3;N}Gb&3mF1{07}TW3YMifM$U(HuFj{GK*5+<}osf zGvjh0FUa8xj6l4k5yXPJmlfjP&7$w*a5EK1JEEK5~L&d<#ShK)j6ei2w495TFI Ryj(u{dFgsEMrsj|2>{KAS6=`C diff --git a/libzip-1.2.0/regress/testcommentremoved.zip b/libzip-1.2.0/regress/testcommentremoved.zip deleted file mode 100644 index b2e4d05dc5bd3d8b4e6d2a4f16215b5c37dc50ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 640 zcmZ{hKTE?v7{=e4M6{4m)Gebr6#sN_RdK0EpuG=JnhOcEIY}ba(XpH0;v^L8H}M1L z=l}lz0zis~IkMA$TvZ&v)Bkapt^3&3gcgQ^zahKxL5y>;m|{ z*Zo*7c%*@kfN|=8Ws>GLPk^`fHQ8M**w(x$Se!autgiDiSrlxnY&!or^zr9J4dm&T zca>4k7!_lpu=6u-JM*lURJq$ZZ=l~j~?`?#>hcxp6g v3x=9WvKBBh1b8zt$uZ;B4>W>-5s3dbf>>y#1$eWvfrJ@>&=yGBfjA5RzZV&5 diff --git a/libzip-1.2.0/regress/testdeflated2.zip b/libzip-1.2.0/regress/testdeflated2.zip deleted file mode 100644 index b5ded7d6d3fc7c8a3b59a03ca7b6c3ec5cbfaa1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 270 zcmWIWW@Zs#U|`^2FfX6$=HXzvK@iBZ0b&6lPE1Nn)-6gcNKGs;(krPb@%C|Hi}BQG z&=w3elVmMmWC(z34=HiALDtTXsvU=JMkYCC+|~n)U|O!)Ul?|kV2?$GobO?yU007bbld*r`MfAD_9s_ yFsCpCcr!AIGvhLV7jE8?Mi3L#I97;pp%n~3V_4Zh3K)UV9Z1`QI1GsyiCh3Uv>w<1 diff --git a/libzip-1.2.0/regress/testfile-UTF8.zip b/libzip-1.2.0/regress/testfile-UTF8.zip deleted file mode 100644 index 727961545ca745df1f286593bc818d3fb59b996c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126 zcmWIWW@h1HVBlb2Sl;s9hye-k0ojLJ4o^Eg=kWZ)OAc>4yeGh$kx7mjw`!Q?zl|Uk Tx?WZ`kSHS%+5l-C5QhN(9QGVY diff --git a/libzip-1.2.0/regress/testfile-cp437.zip b/libzip-1.2.0/regress/testfile-cp437.zip deleted file mode 100644 index 169a90311aa235010b5e29c9479bf3dc81477b76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmWIWW@h1H0Dlx4h diff --git a/libzip-1.2.0/regress/testfile-plus-extra.zip b/libzip-1.2.0/regress/testfile-plus-extra.zip deleted file mode 100644 index 09a6c039c3d6132c11bd266c68479addcccda42b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164 zcmWIWW@h1H0DW^-3yA0=yZS5FP*k diff --git a/libzip-1.2.0/regress/teststdin.zip b/libzip-1.2.0/regress/teststdin.zip deleted file mode 100644 index e1a40a869fa29ffbe742866eabf0c514ea84545e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 200 zcmWIWW@Zs#00Fa<7FXuqca+RPY#`=i5Md}uEiNf8Day=C*DI+gVPp^h%Yapb2p|Z_ z$ShU>qC^FdS{;SNycC7Z5{2T_)ZAi)l6-}X#IjU{q}0?rh2qlW - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include "config.h" - -#include -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif - -#ifndef HAVE_GETOPT -#include "getopt.h" -#endif - -#include "zip.h" -#include "compat.h" - -const char *usage = "usage: %s [-cent] file\n\n" - "\t-c\tcheck consistency\n" - "\t-e\texclusively open archive\n" - "\t-n\tcreate new file\n" - "\t-t\ttruncate file to size 0\n"; - - -int -main(int argc, char *argv[]) -{ - const char *fname; - zip_t *z; - int c, flags, ze; - zip_int64_t count; - int error; - - flags = 0; - - while ((c=getopt(argc, argv, "cent")) != -1) { - switch (c) { - case 'c': - flags |= ZIP_CHECKCONS; - break; - case 'e': - flags |= ZIP_EXCL; - break; - case 'n': - flags |= ZIP_CREATE; - break; - case 't': - flags |= ZIP_TRUNCATE; - break; - - default: - fprintf(stderr, usage, argv[0]); - return 1; - } - } - - error = 0; - for (; optind < argc; optind++) { - fname = argv[optind]; - errno = 0; - - if ((z=zip_open(fname, flags, &ze)) != NULL) { - count = zip_get_num_entries(z, 0); - printf("opening '%s' succeeded, %"PRIu64" entries\n", fname, count); - zip_close(z); - continue; - } - - printf("opening '%s' returned error %d", fname, ze); - if (zip_error_get_sys_type(ze) == ZIP_ET_SYS) - printf("/%d", errno); - printf("\n"); - error++; - } - - if (error > 0) - fprintf(stderr, "%d errors\n", error); - - return error ? 1 : 0; -} diff --git a/libzip-1.2.0/regress/utf-8-standardization-input.zip b/libzip-1.2.0/regress/utf-8-standardization-input.zip deleted file mode 100644 index 67e3acf3ce999f23c1694ee994f332976b0df32f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 285 zcmWIWW@Zs#U|`^2I8glG<oztux3spkcXW2?l~k0J z7N{^V&b||M87g~t&*7Da7ad-5c){VNhnF8-b$IpR6(Dt=wRH6YHO`&)4b?c|>En0y z#CcCo-5?FmwHgWRF*esdyyx)B!;20tIlSQT(!ijv^`+*F0U)N+O7{JfIXyb^`9{33;tj8uiR%$!uc0B=Snc?MjDs{oA$ v0R=Eg&?+vdLPiD&hV0Dq?T6Q#XN1uS&VBMAetW^-3yA0=yZS)do@p!i-SW zAi6;i#L*4#W@FQV3d6L4xX4ODe0>lB1f~#*0jQ51#7u$mLFxm%S=nGNgwYHP0A;%+ A`Tzg` diff --git a/libzip-1.2.0/regress/zip64.zip b/libzip-1.2.0/regress/zip64.zip deleted file mode 100644 index c1ba76b7e76183b17d7b058a61ffcea94b3f3e35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198 zcmWIWW@gc400IA^Xb1L%ukQYb0!9WA23)do@p!i-SW zAi6;i#L*4#W@FQV3d6L4xX4ODe0>lB1f~#*0jQ51#7u$mLFxm%S=m5bMj!;Kho}Vr D!GacW diff --git a/libzip-1.2.0/regress/zip64_creation.test b/libzip-1.2.0/regress/zip64_creation.test deleted file mode 100644 index f21608867..000000000 --- a/libzip-1.2.0/regress/zip64_creation.test +++ /dev/null @@ -1,4 +0,0 @@ -# create big zip64 zip file from scratch -args bigzero.zip add_nul bigzero 4294967296 -file-new bigzero.zip bigzero.zip -return 0 diff --git a/libzip-1.2.0/regress/zip64_stored_creation.test b/libzip-1.2.0/regress/zip64_stored_creation.test deleted file mode 100644 index 92ee02c14..000000000 --- a/libzip-1.2.0/regress/zip64_stored_creation.test +++ /dev/null @@ -1,4 +0,0 @@ -# create big zip64 zip file from scratch -args -H bigstored.zh add_nul bigzero 4294967296 set_file_compression 0 0 0 set_file_mtime 0 0 add_nul smallzero 16384 set_file_compression 1 0 0 set_file_mtime 1 0 -file-new bigstored.zh bigstored.zh -return 0 diff --git a/libzip-1.2.0/src/CMakeLists.txt b/libzip-1.2.0/src/CMakeLists.txt deleted file mode 100644 index 36e67c926..000000000 --- a/libzip-1.2.0/src/CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../lib - ${CMAKE_CURRENT_BINARY_DIR}/..) - -INSTALL(FILES ziptool_lib.h DESTINATION include) - -CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT) -IF(NOT HAVE_GETOPT) - SET(SRC_EXTRA_FILES getopt.c) -ENDIF(NOT HAVE_GETOPT) - -#ADD_EXECUTABLE(zipcmp zipcmp.c ${SRC_EXTRA_FILES}) -#TARGET_LINK_LIBRARIES(zipcmp zip) -#INSTALL(TARGETS zipcmp RUNTIME DESTINATION bin) - -#ADD_EXECUTABLE(zipmerge zipmerge.c ${SRC_EXTRA_FILES}) -#TARGET_LINK_LIBRARIES(zipmerge zip) -#INSTALL(TARGETS zipmerge RUNTIME DESTINATION bin) - -add_library(ziptool_lib STATIC ziptool_lib.c ${SRC_EXTRA_FILES} source_hole.c) - -target_link_libraries(ziptool_lib zipstatic) - -target_include_directories(ziptool_lib PUBLIC - $ - $ # -) -#install(TARGETS ziptool_lib ARCHIVE DESTINATION lib) - -#ADD_EXECUTABLE(ziptool ziptool_main.c) -#TARGET_LINK_LIBRARIES(ziptool ziptool_lib) -#INSTALL(TARGETS ziptool RUNTIME DESTINATION bin) - -#ADD_EXECUTABLE(hole hole.c ${SRC_EXTRA_FILES} source_hole.c) -#TARGET_LINK_LIBRARIES(hole zip) -# do not install hole, just a test helper diff --git a/libzip-1.2.0/src/Makefile.am b/libzip-1.2.0/src/Makefile.am deleted file mode 100644 index fa5ba2f17..000000000 --- a/libzip-1.2.0/src/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ -bin_PROGRAMS=zipcmp zipmerge ziptool -noinst_PROGRAMS=hole - -hole_SOURCES= hole.c source_hole.c -ziptool_SOURCES= source_hole.c ziptool.c - -AM_CPPFLAGS=-I${top_srcdir}/lib -I../lib -LDADD=${top_builddir}/lib/libzip.la - -EXTRA_DIST= CMakeLists.txt getopt.c getopt.h diff --git a/libzip-1.2.0/src/Makefile.in b/libzip-1.2.0/src/Makefile.in deleted file mode 100644 index ce97d61f7..000000000 --- a/libzip-1.2.0/src/Makefile.in +++ /dev/null @@ -1,673 +0,0 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2014 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -bin_PROGRAMS = zipcmp$(EXEEXT) zipmerge$(EXEEXT) ziptool$(EXEEXT) -noinst_PROGRAMS = hole$(EXEEXT) -subdir = src -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(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/visibility.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(bindir)" -PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) -am_hole_OBJECTS = hole.$(OBJEXT) source_hole.$(OBJEXT) -hole_OBJECTS = $(am_hole_OBJECTS) -hole_LDADD = $(LDADD) -hole_DEPENDENCIES = ${top_builddir}/lib/libzip.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 = -zipcmp_SOURCES = zipcmp.c -zipcmp_OBJECTS = zipcmp.$(OBJEXT) -zipcmp_LDADD = $(LDADD) -zipcmp_DEPENDENCIES = ${top_builddir}/lib/libzip.la -zipmerge_SOURCES = zipmerge.c -zipmerge_OBJECTS = zipmerge.$(OBJEXT) -zipmerge_LDADD = $(LDADD) -zipmerge_DEPENDENCIES = ${top_builddir}/lib/libzip.la -am_ziptool_OBJECTS = source_hole.$(OBJEXT) ziptool.$(OBJEXT) -ziptool_OBJECTS = $(am_ziptool_OBJECTS) -ziptool_LDADD = $(LDADD) -ziptool_DEPENDENCIES = ${top_builddir}/lib/libzip.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(hole_SOURCES) zipcmp.c zipmerge.c $(ziptool_SOURCES) -DIST_SOURCES = $(hole_SOURCES) zipcmp.c zipmerge.c $(ziptool_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DLSYM_LIB = @DLSYM_LIB@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -HAVE_VISIBILITY = @HAVE_VISIBILITY@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MANFMT = @MANFMT@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -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@ -PKG_CONFIG_RPATH = @PKG_CONFIG_RPATH@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -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@ -hole_SOURCES = hole.c source_hole.c -ziptool_SOURCES = source_hole.c ziptool.c -AM_CPPFLAGS = -I${top_srcdir}/lib -I../lib -LDADD = ${top_builddir}/lib/libzip.la -EXTRA_DIST = CMakeLists.txt getopt.c getopt.h -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -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 - -hole$(EXEEXT): $(hole_OBJECTS) $(hole_DEPENDENCIES) $(EXTRA_hole_DEPENDENCIES) - @rm -f hole$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(hole_OBJECTS) $(hole_LDADD) $(LIBS) - -zipcmp$(EXEEXT): $(zipcmp_OBJECTS) $(zipcmp_DEPENDENCIES) $(EXTRA_zipcmp_DEPENDENCIES) - @rm -f zipcmp$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(zipcmp_OBJECTS) $(zipcmp_LDADD) $(LIBS) - -zipmerge$(EXEEXT): $(zipmerge_OBJECTS) $(zipmerge_DEPENDENCIES) $(EXTRA_zipmerge_DEPENDENCIES) - @rm -f zipmerge$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(zipmerge_OBJECTS) $(zipmerge_LDADD) $(LIBS) - -ziptool$(EXEEXT): $(ziptool_OBJECTS) $(ziptool_DEPENDENCIES) $(EXTRA_ziptool_DEPENDENCIES) - @rm -f ziptool$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(ziptool_OBJECTS) $(ziptool_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hole.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/source_hole.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zipcmp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zipmerge.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ziptool.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 -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: - for dir in "$(DESTDIR)$(bindir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic clean-libtool \ - clean-noinstPROGRAMS mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-binPROGRAMS - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-binPROGRAMS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic clean-libtool \ - clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-binPROGRAMS install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am uninstall-binPROGRAMS - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libzip-1.2.0/src/getopt.c b/libzip-1.2.0/src/getopt.c deleted file mode 100644 index aaf840f53..000000000 --- a/libzip-1.2.0/src/getopt.c +++ /dev/null @@ -1,117 +0,0 @@ -/* - * getopt.c -- - * - * Standard UNIX getopt function. Code is from BSD. - * - * Copyright (c) 1987-2002 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * A. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * B. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * C. Neither the names of the copyright holders nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS - * IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -/* #if !defined(lint) - * static char sccsid[] = "@(#)getopt.c 8.2 (Berkeley) 4/2/94"; - * #endif - */ -#include -#include -#include - -#include "getopt.h" - -int opterr = 1, /* if error message should be printed */ - optind = 1, /* index into parent argv vector */ - optopt, /* character checked for validity */ - optreset; /* reset getopt */ -char *optarg; /* argument associated with option */ - -#define BADCH (int)'?' -#define BADARG (int)':' -#define EMSG "" - -/* - * getopt -- - * Parse argc/argv argument vector. - */ -int -getopt( int nargc, - char * const *nargv, - const char *ostr) -{ - static char *place = EMSG; /* option letter processing */ - char *oli; /* option letter list index */ - - if (optreset || !*place) { /* update scanning pointer */ - optreset = 0; - if (optind >= nargc || *(place = nargv[optind]) != '-') { - place = EMSG; - return (EOF); - } - if (place[1] && *++place == '-') { /* found "--" */ - ++optind; - place = EMSG; - return (EOF); - } - } /* option letter okay? */ - if ((optopt = (int)*place++) == (int)':' || - !(oli = (char*) strchr(ostr, optopt))) { - /* - * if the user didn't specify '-' as an option, - * assume it means EOF. - */ - if (optopt == (int)'-') - return (EOF); - if (!*place) - ++optind; - if (opterr && *ostr != ':') - (void)fprintf(stderr, - "illegal option -- %c\n", optopt); - return (BADCH); - } - if (*++oli != ':') { /* don't need argument */ - optarg = NULL; - if (!*place) - ++optind; - } - else { /* need an argument */ - if (*place) /* no white space */ - optarg = place; - else if (nargc <= ++optind) { /* no arg */ - place = EMSG; - if (*ostr == ':') - return (BADARG); - if (opterr) - (void)fprintf(stderr, - "option requires an argument -- %c\n", - optopt); - return (BADCH); - } - else /* white space */ - optarg = nargv[optind]; - place = EMSG; - ++optind; - } - return (optopt); /* dump back option letter */ -} diff --git a/libzip-1.2.0/src/getopt.h b/libzip-1.2.0/src/getopt.h deleted file mode 100644 index 5bcb06fbe..000000000 --- a/libzip-1.2.0/src/getopt.h +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef _HAD_GETOPT_H -#define _HAD_GETOPT_H - -/* - getopt.h -- header for getopt() replacement function - Copyright (C) 1999-2011 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifdef __cplusplus -extern "C" { -#endif - -extern char *optarg; -extern int optind; -extern int opterr; - -extern int getopt(int, char * const *, const char *); - -#ifdef __cplusplus -} -#endif - -#endif /* _HAD_GETOPT_H */ diff --git a/libzip-1.2.0/src/hole.c b/libzip-1.2.0/src/hole.c deleted file mode 100644 index b616165f5..000000000 --- a/libzip-1.2.0/src/hole.c +++ /dev/null @@ -1,201 +0,0 @@ -/* - hole.c -- convert huge files with mostly NULs to/from source_hole - Copyright (C) 2014-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "config.h" - -#include -#include -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif - -#ifndef HAVE_GETOPT -#include "getopt.h" -#endif - -#include "zip.h" - -/* public API */ - -zip_source_t *source_hole_create(const char *, int flags, zip_error_t *); - -const char *prg; - - -static int -copy_source(zip_source_t *from, zip_source_t *to) -{ - zip_uint8_t buf[8192]; - zip_int64_t n; - - if (zip_source_open(from) < 0) { - fprintf(stderr, "%s: can't open source for reading: %s\n", prg, zip_error_strerror(zip_source_error(from))); - return -1; - } - - if (zip_source_begin_write(to) < 0) { - fprintf(stderr, "%s: can't open source for writing: %s\n", prg, zip_error_strerror(zip_source_error(to))); - zip_source_close(from); - return -1; - } - - while ((n = zip_source_read(from, buf, sizeof(buf))) > 0) { - if (zip_source_write(to, buf, (zip_uint64_t)n) != n) { - fprintf(stderr, "%s: can't write to source: %s\n", prg, zip_error_strerror(zip_source_error(to))); - zip_source_close(from); - zip_source_rollback_write(to); - return -1; - } - } - - if (n < 0) { - fprintf(stderr, "%s: can't read from source: %s\n", prg, zip_error_strerror(zip_source_error(from))); - zip_source_close(from); - zip_source_rollback_write(to); - return -1; - } - - zip_source_close(from); - - if (zip_source_commit_write(to) < 0) { - fprintf(stderr, "%s: can't commit source: %s\n", prg, zip_error_strerror(zip_source_error(to))); - zip_source_rollback_write(to); - return -1; - } - - return 0; -} - - -static zip_source_t * -open_compressed(const char *fname, int flags) -{ - zip_error_t error; - zip_source_t *src; - - zip_error_init(&error); - - if ((src = source_hole_create(fname, flags, &error)) == NULL) { - fprintf(stderr, "%s: can't open compressed file %s: %s\n", prg, fname, zip_error_strerror(&error)); - zip_error_fini(&error); - exit(1); - } - - return src; -} - - -static zip_source_t * -open_file(const char *fname) -{ - zip_error_t error; - zip_source_t *src; - - zip_error_init(&error); - - if ((src = zip_source_file_create(fname, 0, 0, &error)) == NULL) { - fprintf(stderr, "%s: can't open file %s: %s\n", prg, fname, zip_error_strerror(&error)); - zip_error_fini(&error); - exit(1); - } - - return src; -} - - -static void -usage(void) -{ - fprintf(stderr, "usage: %s [-du] in out\n", prg); - fprintf(stderr, "\nOptions:\n -d decompress in\n -u update in\n"); - exit(1); -} - - -int -main(int argc, char **argv) -{ - zip_source_t *from; - zip_source_t *to; - int c, err; - int compress = 1; - int decompress = 0; - - prg = argv[0]; - - while ((c=getopt(argc, argv, "du")) != -1) { - switch (c) { - case 'd': - compress = 0; - decompress = 1; - break; - - case 'u': - compress = 1; - decompress = 1; - break; - - default: - usage(); - break; - } - } - - if (optind+2 != argc) { - usage(); - } - - if (decompress) { - from = open_compressed(argv[optind], 0); - } - else { - from = open_file(argv[optind]); - } - - if (compress) { - to = open_compressed(argv[optind+1], ZIP_CREATE); - } - else { - to = open_file(argv[optind+1]); - } - - err = copy_source(from, to); - - zip_source_free(from); - zip_source_free(to); - - exit(err < 0 ? 1 : 0); -} - diff --git a/libzip-1.2.0/src/source_hole.c b/libzip-1.2.0/src/source_hole.c deleted file mode 100644 index d2f1a1687..000000000 --- a/libzip-1.2.0/src/source_hole.c +++ /dev/null @@ -1,589 +0,0 @@ -/* - source_hole.c -- source for handling huge files that are mostly NULs - Copyright (C) 2014-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include - -#include "zip.h" - -/* public API */ - -zip_source_t *source_hole_create(const char *, int flags, zip_error_t *); - - -#ifndef EFTYPE -#define EFTYPE EINVAL -#endif - - -#define MY_MIN(a, b) ((a) < (b) ? (a) : (b)) - -#define FRAGMENT_SIZE (8*1024) - -#define MARK_BEGIN "NiH0" -#define MARK_DATA "NiH1" -#define MARK_NUL "NiH2" - - -typedef struct buffer { - zip_uint64_t fragment_size; - zip_uint8_t **fragment; - zip_uint64_t nfragments; - zip_uint64_t size; - zip_uint64_t offset; -} buffer_t; - -static void buffer_free(buffer_t *buffer); -static buffer_t *buffer_from_file(const char *fname, int flags, zip_error_t *error); -static buffer_t *buffer_new(void); -static zip_int64_t buffer_read(buffer_t *buffer, zip_uint8_t *data, zip_uint64_t length, zip_error_t *error); -static int buffer_read_file(buffer_t *buffer, FILE *f, zip_error_t *error); -static zip_int64_t buffer_seek(buffer_t *buffer, void *data, zip_uint64_t length, zip_error_t *error); -static int buffer_to_file(buffer_t *buffer, const char *fname, zip_error_t *error); -static zip_int64_t buffer_write(buffer_t *buffer, const zip_uint8_t *data, zip_uint64_t length, zip_error_t *error); -static zip_uint64_t get_u64(const zip_uint8_t *b); -static int only_nul(const zip_uint8_t *data, zip_uint64_t length); -static int write_nuls(zip_uint64_t n, FILE *f); -static int write_u64(zip_uint64_t u64, FILE *f); - - -typedef struct hole { - zip_error_t error; - char *fname; - buffer_t *in; - buffer_t *out; -} hole_t; - -static hole_t *hole_new(const char *fname, int flags, zip_error_t *error); -static zip_int64_t source_hole_cb(void *ud, void *data, zip_uint64_t length, zip_source_cmd_t command); - - -zip_source_t *source_hole_create(const char *fname, int flags, zip_error_t *error) -{ - hole_t *ud = hole_new(fname, flags, error); - - if (ud == NULL) { - return NULL; - } - return zip_source_function_create(source_hole_cb, ud, error); -} - - -static void -buffer_free(buffer_t *buffer) -{ - zip_uint64_t i; - - if (buffer == NULL) { - return; - } - - if (buffer->fragment) { - for (i=0; infragments; i++) { - free(buffer->fragment[i]); - } - free(buffer->fragment); - } - free(buffer); -} - - -static buffer_t * -buffer_from_file(const char *fname, int flags, zip_error_t *error) -{ - buffer_t *buffer; - FILE *f; - - if ((buffer = buffer_new()) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return NULL; - - } - - if ((flags & ZIP_TRUNCATE) == 0) { - if ((f = fopen(fname, "rb")) == NULL) { - if (!(errno == ENOENT && (flags & ZIP_CREATE))) { - buffer_free(buffer); - return NULL; - } - } - else { - if (buffer_read_file(buffer, f, error) < 0) { - buffer_free(buffer); - fclose(f); - return NULL; - } - fclose(f); - } - } - - return buffer; -} - - -static buffer_t * -buffer_new(void) -{ - buffer_t *buffer; - - if ((buffer = (buffer_t *)malloc(sizeof(*buffer))) == NULL) { - return NULL; - } - - buffer->fragment = NULL; - buffer->nfragments = 0; - buffer->fragment_size = FRAGMENT_SIZE; - buffer->size = 0; - buffer->offset = 0; - - return buffer; -} - - -static zip_int64_t -buffer_read(buffer_t *buffer, zip_uint8_t *data, zip_uint64_t length, zip_error_t *error) -{ - zip_uint64_t n, i, fragment_offset; - - length = MY_MIN(length, buffer->size - buffer->offset); - - if (length == 0) { - return 0; - } - if (length > ZIP_INT64_MAX) { - return -1; - } - - i = buffer->offset / buffer->fragment_size; - fragment_offset = buffer->offset % buffer->fragment_size; - n = 0; - while (n < length) { - zip_uint64_t left = MY_MIN(length - n, buffer->fragment_size - fragment_offset); - - if (buffer->fragment[i]) { - memcpy(data + n, buffer->fragment[i] + fragment_offset, left); - } - else { - memset(data + n, 0, left); - } - - n += left; - i++; - fragment_offset = 0; - } - - buffer->offset += n; - return (zip_int64_t)n; -} - - -static int -buffer_read_file(buffer_t *buffer, FILE *f, zip_error_t *error) -{ - zip_uint8_t b[20]; - zip_uint64_t i; - - if (fread(b, 20, 1, f) != 1) { - zip_error_set(error, ZIP_ER_READ, errno); - return -1; - } - - if (memcmp(b, MARK_BEGIN, 4) != 0) { - zip_error_set(error, ZIP_ER_READ, EFTYPE); - return -1; - } - - buffer->fragment_size = get_u64(b+4); - buffer->size = get_u64(b+12); - - if (buffer->size + buffer->fragment_size < buffer->size) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return -1; - } - buffer->nfragments = (buffer->size + buffer->fragment_size - 1) / buffer->fragment_size; - if ((buffer->nfragments > SIZE_MAX/sizeof(buffer->fragment[0])) - || ((buffer->fragment = (zip_uint8_t **)malloc(sizeof(buffer->fragment[0]) * buffer->nfragments)) == NULL)) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return -1; - } - - for (i = 0; i < buffer->nfragments; i++) { - buffer->fragment[i] = NULL; - } - - i = 0; - while (i < buffer->nfragments) { - if (fread(b, 4, 1, f) != 1) { - zip_error_set(error, ZIP_ER_READ, errno); - return -1; - } - - if (memcmp(b, MARK_DATA, 4) == 0) { - if (buffer->fragment_size > SIZE_MAX) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return -1; - } - if ((buffer->fragment[i] = (zip_uint8_t *)malloc(buffer->fragment_size)) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return -1; - } - if (fread(buffer->fragment[i], buffer->fragment_size, 1, f) != 1) { - zip_error_set(error, ZIP_ER_READ, errno); - return -1; - } - i++; - } - else if (memcmp(b, MARK_NUL, 4) == 0) { - if (fread(b, 8, 1, f) != 1) { - zip_error_set(error, ZIP_ER_READ, errno); - return -1; - } - i += get_u64(b); - } - else { - zip_error_set(error, ZIP_ER_READ, EFTYPE); - return -1; - } - } - - return 0; -} - -static zip_int64_t -buffer_seek(buffer_t *buffer, void *data, zip_uint64_t length, zip_error_t *error) -{ - zip_int64_t new_offset = zip_source_seek_compute_offset(buffer->offset, buffer->size, data, length, error); - - if (new_offset < 0) { - return -1; - } - - buffer->offset = (zip_uint64_t)new_offset; - return 0; -} - - -static int -buffer_to_file(buffer_t *buffer, const char *fname, zip_error_t *error) -{ - FILE *f = fopen(fname, "wb"); - zip_uint64_t i; - zip_uint64_t nul_run; - - if (f == NULL) { - zip_error_set(error, ZIP_ER_OPEN, errno); - return -1; - } - - fwrite(MARK_BEGIN, 4, 1, f); - write_u64(buffer->fragment_size, f); - write_u64(buffer->size, f); - - nul_run = 0; - for (i=0; i * buffer->fragment_size size; i++) { - if (buffer->fragment[i] == NULL || only_nul(buffer->fragment[i], buffer->fragment_size)) { - nul_run++; - } - else { - if (nul_run > 0) { - write_nuls(nul_run, f); - nul_run = 0; - } - fwrite(MARK_DATA, 4, 1, f); - - fwrite(buffer->fragment[i], 1, buffer->fragment_size, f); - } - } - - if (nul_run > 0) { - write_nuls(nul_run, f); - } - - if (fclose(f) != 0) { - zip_error_set(error, ZIP_ER_WRITE, errno); - return -1; - } - - return 0; -} - - -static zip_int64_t -buffer_write(buffer_t *buffer, const zip_uint8_t *data, zip_uint64_t length, zip_error_t *error) -{ - zip_uint8_t **fragment; - if (buffer->offset + length > buffer->nfragments * buffer->fragment_size) { - zip_uint64_t needed_fragments = (buffer->offset + length + buffer->fragment_size - 1) / buffer->fragment_size; - zip_uint64_t new_capacity = buffer->nfragments; - zip_uint64_t i; - - if (new_capacity == 0) { - new_capacity = 4; - } - while (new_capacity < needed_fragments) { - new_capacity *= 2; - } - - fragment = realloc(buffer->fragment, new_capacity * sizeof(*fragment)); - - if (fragment == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return -1; - } - - for (i = buffer->nfragments; i < new_capacity; i++) { - fragment[i] = NULL; - } - - buffer->fragment = fragment; - buffer->nfragments = new_capacity; - } - - if (!only_nul(data, length)) { - zip_uint64_t idx, n, fragment_offset; - - idx = buffer->offset / buffer->fragment_size; - fragment_offset = buffer->offset % buffer->fragment_size; - n = 0; - - while (n < length) { - zip_uint64_t left = MY_MIN(length - n, buffer->fragment_size - fragment_offset); - - if (buffer->fragment[idx] == NULL) { - if ((buffer->fragment[idx] = (zip_uint8_t *)malloc(buffer->fragment_size)) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return -1; - } - memset(buffer->fragment[idx], 0, buffer->fragment_size); - } - memcpy(buffer->fragment[idx] + fragment_offset, data + n, left); - - n += left; - idx++; - fragment_offset = 0; - } - } - - buffer->offset += length; - if (buffer->offset > buffer->size) { - buffer->size = buffer->offset; - } - - return (zip_int64_t)length; -} - - -static zip_uint64_t -get_u64(const zip_uint8_t *b) -{ - zip_uint64_t i; - - i = (zip_uint64_t)b[0] << 56 | (zip_uint64_t)b[1] << 48 | (zip_uint64_t)b[2] << 40 | (zip_uint64_t)b[3] << 32 | (zip_uint64_t)b[4] << 24 | (zip_uint64_t)b[5] << 16 | (zip_uint64_t)b[6] << 8 | (zip_uint64_t)b[7]; - - return i; -} - - -static int -only_nul(const zip_uint8_t *data, zip_uint64_t length) -{ - zip_uint64_t i; - - for (i=0; i< length; i++) { - if (data[i] != '\0') { - return 0; - } - } - - return 1; -} - - -static int -write_nuls(zip_uint64_t n, FILE *f) -{ - if (fwrite(MARK_NUL, 4, 1, f) != 1) { - return -1; - } - return write_u64(n, f); -} - - -static int -write_u64(zip_uint64_t u64, FILE *f) -{ - zip_uint8_t b[8]; - - b[0] = (zip_uint8_t)((u64 >> 56) & 0xff); - b[1] = (zip_uint8_t)((u64 >> 48) & 0xff); - b[2] = (zip_uint8_t)((u64 >> 40) & 0xff); - b[3] = (zip_uint8_t)((u64 >> 32) & 0xff); - b[4] = (zip_uint8_t)((u64 >> 24) & 0xff); - b[5] = (zip_uint8_t)((u64 >> 16) & 0xff); - b[6] = (zip_uint8_t)((u64 >> 8) & 0xff); - b[7] = (zip_uint8_t)(u64 & 0xff); - - return fwrite(b, 8, 1, f) == 1 ? 0 : -1; -} - - -static void -hole_free(hole_t *hole) { - if (hole == NULL) { - return; - } - zip_error_fini(&hole->error); - buffer_free(hole->in); - buffer_free(hole->out); - free(hole->fname); - free(hole); -} - - -static hole_t * -hole_new(const char *fname, int flags, zip_error_t *error) -{ - hole_t *ctx = (hole_t *)malloc(sizeof(*ctx)); - - if (ctx == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return NULL; - } - - if ((ctx->fname = strdup(fname)) == NULL) { - free(ctx); - zip_error_set(error, ZIP_ER_MEMORY, 0); - return NULL; - } - - if ((ctx->in = buffer_from_file(fname, flags, error)) == NULL) { - free(ctx); - return NULL; - } - - zip_error_init(&ctx->error); - ctx->out = NULL; - - return ctx; -} - - -static zip_int64_t -source_hole_cb(void *ud, void *data, zip_uint64_t length, zip_source_cmd_t command) -{ - hole_t *ctx = (hole_t *)ud; - - switch (command) { - case ZIP_SOURCE_BEGIN_WRITE: - ctx->out = buffer_new(); - return 0; - - case ZIP_SOURCE_CLOSE: - return 0; - - case ZIP_SOURCE_COMMIT_WRITE: - if (buffer_to_file(ctx->out, ctx->fname, &ctx->error) < 0) { - return -1; - } - buffer_free(ctx->in); - ctx->in = ctx->out; - ctx->out = NULL; - return 0; - - case ZIP_SOURCE_ERROR: - return zip_error_to_data(&ctx->error, data, length); - - case ZIP_SOURCE_FREE: - hole_free(ctx); - return 0; - - case ZIP_SOURCE_OPEN: - ctx->in->offset = 0; - return 0; - - case ZIP_SOURCE_READ: - return buffer_read(ctx->in, data, length, &ctx->error); - - case ZIP_SOURCE_REMOVE: - buffer_free(ctx->in); - ctx->in = buffer_new(); - buffer_free(ctx->out); - ctx->out = NULL; - (void)remove(ctx->fname); - return 0; - - case ZIP_SOURCE_ROLLBACK_WRITE: - buffer_free(ctx->out); - ctx->out = NULL; - return 0; - - case ZIP_SOURCE_SEEK: - return buffer_seek(ctx->in, data, length, &ctx->error); - - case ZIP_SOURCE_SEEK_WRITE: - return buffer_seek(ctx->out, data, length, &ctx->error); - - case ZIP_SOURCE_STAT: { - zip_stat_t *st = ZIP_SOURCE_GET_ARGS(zip_stat_t, data, length, &ctx->error); - - if (st == NULL) { - return -1; - } - - /* TODO: return ENOENT if fname doesn't exist */ - - st->valid |= ZIP_STAT_SIZE; - st->size = ctx->in->size; - return 0; - } - - case ZIP_SOURCE_TELL: - return (zip_int64_t)ctx->in->offset; - - case ZIP_SOURCE_TELL_WRITE: - return (zip_int64_t)ctx->out->offset; - - case ZIP_SOURCE_WRITE: - return buffer_write(ctx->out, data, length, &ctx->error); - - case ZIP_SOURCE_SUPPORTS: - return zip_source_make_command_bitmap(ZIP_SOURCE_BEGIN_WRITE, ZIP_SOURCE_COMMIT_WRITE, ZIP_SOURCE_CLOSE, ZIP_SOURCE_ERROR, ZIP_SOURCE_FREE, ZIP_SOURCE_OPEN, ZIP_SOURCE_READ, ZIP_SOURCE_REMOVE, ZIP_SOURCE_ROLLBACK_WRITE, ZIP_SOURCE_SEEK, ZIP_SOURCE_SEEK_WRITE, ZIP_SOURCE_STAT, ZIP_SOURCE_TELL, ZIP_SOURCE_TELL_WRITE, ZIP_SOURCE_WRITE, -1); - - default: - zip_error_set(&ctx->error, ZIP_ER_OPNOTSUPP, 0); - return -1; - } -} diff --git a/libzip-1.2.0/src/zipcmp.c b/libzip-1.2.0/src/zipcmp.c deleted file mode 100644 index aac1eeade..000000000 --- a/libzip-1.2.0/src/zipcmp.c +++ /dev/null @@ -1,723 +0,0 @@ -/* - zipcmp.c -- compare zip files - Copyright (C) 2003-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include "config.h" - -#include -#include -#include -#include -#include -#ifdef HAVE_STRINGS_H -#include -#endif -#ifdef HAVE_UNISTD_H -#include -#endif -#ifdef HAVE_FTS_H -#include -#endif -#include - -#ifndef HAVE_GETOPT -#include "getopt.h" -#endif - -#include "zip.h" -#include "compat.h" - -struct archive { - const char *name; - zip_t *za; - zip_uint64_t nentry; - struct entry *entry; - const char *comment; - size_t comment_length; -}; - -struct ef { - const char *name; - zip_uint16_t flags; - zip_uint16_t id; - zip_uint16_t size; - const zip_uint8_t *data; -}; - -struct entry { - char *name; - zip_uint64_t size; - zip_uint32_t crc; - zip_uint32_t comp_method; - struct ef *extra_fields; - zip_uint16_t n_extra_fields; - const char *comment; - zip_uint32_t comment_length; -}; - - -const char *prg; - -#define PROGRAM "zipcmp" - -#define USAGE "usage: %s [-hipqtVv] archive1 archive2\n" - -char help_head[] = - PROGRAM " (" PACKAGE ") by Dieter Baron and Thomas Klausner\n\n"; - -char help[] = "\n\ - -h display this help message\n\ - -i compare names ignoring case distinctions\n\ - -p compare as many details as possible\n\ - -q be quiet\n\ - -t test zip files (compare file contents to checksum)\n\ - -V display version number\n\ - -v be verbose (print differences, default)\n\ -\n\ -Report bugs to .\n"; - -char version_string[] = PROGRAM " (" PACKAGE " " VERSION ")\n\ -Copyright (C) 2003-2016 Dieter Baron and Thomas Klausner\n\ -" PACKAGE " comes with ABSOLUTELY NO WARRANTY, to the extent permitted by law.\n"; - -#define OPTIONS "hVipqtv" - - -#define BOTH_ARE_ZIPS(a) (a[0].za && a[1].za) - -static int comment_compare(const char *c1, size_t l1, const char *c2, size_t l2); -static int compare_list(char * const name[], - const void *l[], const zip_uint64_t n[], int size, - int (*cmp)(const void *, const void *), - int (*checks)(char *const name[2], const void *, const void *), - void (*print)(const void *)); -static int compare_zip(char * const zn[]); -static int ef_compare(char *const name[2], const struct entry *e1, const struct entry *e2); -static int ef_order(const void *a, const void *b); -static void ef_print(const void *p); -static int ef_read(zip_t *za, zip_uint64_t idx, struct entry *e); -static int entry_cmp(const void *p1, const void *p2); -static int entry_paranoia_checks(char *const name[2], const void *p1, const void *p2); -static void entry_print(const void *p); -static int is_directory(const char *name); -#ifdef HAVE_FTS_H -static int list_directory(const char *name, struct archive *a); -#endif -static int list_zip(const char *name, struct archive *a); -static int test_file(zip_t *za, zip_uint64_t idx, zip_uint64_t size, zip_uint32_t crc); - -int ignore_case, test_files, paranoid, verbose; -int header_done; - - -int -main(int argc, char * const argv[]) -{ - int c; - - prg = argv[0]; - - ignore_case = 0; - test_files = 0; - paranoid = 0; - verbose = 1; - - while ((c=getopt(argc, argv, OPTIONS)) != -1) { - switch (c) { - case 'i': - ignore_case = 1; - break; - case 'p': - paranoid = 1; - break; - case 'q': - verbose = 0; - break; - case 't': - test_files = 1; - break; - case 'v': - verbose = 1; - break; - - case 'h': - fputs(help_head, stdout); - printf(USAGE, prg); - fputs(help, stdout); - exit(0); - case 'V': - fputs(version_string, stdout); - exit(0); - - default: - fprintf(stderr, USAGE, prg); - exit(2); - } - } - - if (argc != optind+2) { - fprintf(stderr, USAGE, prg); - exit(2); - } - - exit((compare_zip(argv+optind) == 0) ? 0 : 1); -} - - -static int -compare_zip(char * const zn[]) -{ - struct archive a[2]; - struct entry *e[2]; - zip_uint64_t n[2]; - int i; - int res; - - for (i=0; i<2; i++) { - a[i].name = zn[i]; - a[i].entry = NULL; - a[i].nentry = 0; - a[i].za = NULL; - a[i].comment = NULL; - a[i].comment_length =0; - - if (is_directory(zn[i])) { -#ifndef HAVE_FTS_H - fprintf(stderr, "%s: reading directories not supported\n", prg); - exit(2); -#else - if (list_directory(zn[i], a+i) < 0) - exit(2); - paranoid = 0; /* paranoid checks make no sense for directories, since they compare zip metadata */ -#endif - } - else { - if (list_zip(zn[i], a+i) < 0) - exit(2); - } - if (a[i].nentry > 0) - qsort(a[i].entry, a[i].nentry, sizeof(a[i].entry[0]), entry_cmp); - } - - header_done = 0; - - e[0] = a[0].entry; - e[1] = a[1].entry; - n[0] = a[0].nentry; - n[1] = a[1].nentry; - res = compare_list(zn, (const void **)e, n, sizeof(e[i][0]), entry_cmp, paranoid ? entry_paranoia_checks : NULL, entry_print); - - if (paranoid) { - if (comment_compare(a[0].comment, a[0].comment_length, a[1].comment, a[1].comment_length) != 0) { - if (verbose) { - printf("--- archive comment (%zd)\n", a[0].comment_length); - printf("+++ archive comment (%zd)\n", a[1].comment_length); - } - res = 1; - } - } - - for (i=0; i<2; i++) - if (a[i].za) - zip_close(a[i].za); - - switch (res) { - case 0: - exit(0); - - case 1: - exit(1); - - default: - exit(2); - } -} - -#ifdef HAVE_FTS_H -static zip_int64_t -compute_crc(const char *fname) -{ - FILE *f; - uLong crc = crc32(0L, Z_NULL, 0); - size_t n; - Bytef buffer[8192]; - - - if ((f=fopen(fname, "r")) == NULL) { - fprintf(stderr, "%s: can't open %s: %s\n", prg, fname, strerror(errno)); - return -1; - } - - while ((n=fread(buffer, 1, sizeof(buffer), f)) > 0) { - crc = crc32(crc, buffer, (unsigned int)n); - } - - if (ferror(f)) { - fprintf(stderr, "%s: read error on %s: %s\n", prg, fname, strerror(errno)); - fclose(f); - return -1; - } - - fclose(f); - - return (zip_int64_t)crc; -} -#endif - - -static int -is_directory(const char *name) -{ - struct stat st; - - if (stat(name, &st) < 0) - return 0; - - return S_ISDIR(st.st_mode); -} - - -#ifdef HAVE_FTS_H -static int -list_directory(const char *name, struct archive *a) -{ - FTS *fts; - FTSENT *ent; - zip_uint64_t nalloc; - - char * const names[2] = { (char *)name, NULL }; - - - if ((fts = fts_open(names, FTS_NOCHDIR|FTS_LOGICAL, NULL)) == NULL) { - fprintf(stderr, "%s: can't open directory '%s': %s\n", prg, name, strerror(errno)); - return -1; - } - size_t prefix_length = strlen(name)+1; - - nalloc = 0; - - while ((ent = fts_read(fts))) { - zip_int64_t crc; - - switch (ent->fts_info) { - case FTS_D: - case FTS_DOT: - case FTS_DP: - case FTS_DEFAULT: - case FTS_SL: - case FTS_NSOK: - break; - - case FTS_DC: - case FTS_DNR: - case FTS_ERR: - case FTS_NS: - case FTS_SLNONE: - /* TODO: error */ - fts_close(fts); - return -1; - - case FTS_F: - if (a->nentry >= nalloc) { - nalloc += 16; - if (nalloc > SIZE_MAX/sizeof(a->entry[0])) { - fprintf(stderr, "%s: malloc failure\n", prg); - exit(1); - } - a->entry = realloc(a->entry, sizeof(a->entry[0])*nalloc); - if (a->entry == NULL) { - fprintf(stderr, "%s: malloc failure\n", prg); - exit(1); - } - } - - a->entry[a->nentry].name = strdup(ent->fts_path+prefix_length); - a->entry[a->nentry].size = (zip_uint64_t)ent->fts_statp->st_size; - if ((crc = compute_crc(ent->fts_accpath)) < 0) { - fts_close(fts); - return -1; - } - - a->entry[a->nentry].crc = (zip_uint32_t)crc; - a->nentry++; - break; - } - } - - if (fts_close(fts)) { - fprintf(stderr, "%s: error closing directory '%s': %s\n", prg, a->name, strerror(errno)); - return -1; - } - - return 0; -} -#endif - - -static int -list_zip(const char *name, struct archive *a) -{ - zip_t *za; - int err; - struct zip_stat st; - unsigned int i; - - if ((za=zip_open(name, paranoid ? ZIP_CHECKCONS : 0, &err)) == NULL) { - zip_error_t error; - zip_error_init_with_code(&error, err); - fprintf(stderr, "%s: cannot open zip archive '%s': %s\n", prg, name, zip_error_strerror(&error)); - zip_error_fini(&error); - return -1; - } - - a->za = za; - a->nentry = (zip_uint64_t)zip_get_num_entries(za, 0); - - if (a->nentry == 0) - a->entry = NULL; - else { - if ((a->nentry > SIZE_MAX/sizeof(a->entry[0])) || (a->entry=(struct entry *)malloc(sizeof(a->entry[0]) * a->nentry)) == NULL) { - fprintf(stderr, "%s: malloc failure\n", prg); - exit(1); - } - - for (i=0; inentry; i++) { - zip_stat_index(za, i, 0, &st); - a->entry[i].name = strdup(st.name); - a->entry[i].size = st.size; - a->entry[i].crc = st.crc; - if (test_files) - test_file(za, i, st.size, st.crc); - if (paranoid) { - a->entry[i].comp_method = st.comp_method; - ef_read(za, i, a->entry+i); - a->entry[i].comment = zip_file_get_comment(za, i, &a->entry[i].comment_length, 0); - } - else { - a->entry[i].comp_method = 0; - a->entry[i].n_extra_fields = 0; - } - } - - if (paranoid) { - int length; - a->comment = zip_get_archive_comment(za, &length, 0); - a->comment_length = (size_t)length; - } - else { - a->comment = NULL; - a->comment_length = 0; - } - } - - return 0; -} - - -static int -comment_compare(const char *c1, size_t l1, const char *c2, size_t l2) { - if (l1 != l2) - return 1; - - if (l1 == 0) - return 0; - - if (c1 == NULL || c2 == NULL) - return c1 == c2; - - return memcmp(c1, c2, (size_t)l2); -} - - -static int -compare_list(char * const name[2], - const void *l[2], const zip_uint64_t n[2], int size, - int (*cmp)(const void *, const void *), - int (*check)(char *const name[2], const void *, const void *), - void (*print)(const void *)) -{ - unsigned int i[2]; - int j, c; - int diff; - -#define INC(k) (i[k]++, l[k]=((const char *)l[k])+size) -#define PRINT(k) do { \ - if (header_done==0 && verbose) { \ - printf("--- %s\n+++ %s\n", name[0], name[1]); \ - header_done = 1; \ - } \ - if (verbose) { \ - printf("%c ", (k)?'+':'-'); \ - print(l[k]); \ - } \ - diff = 1; \ - } while (0) - - i[0] = i[1] = 0; - diff = 0; - while (i[0]n_extra_fields = (zip_uint16_t)(n_local + n_central); - - if ((e->extra_fields=(struct ef *)malloc(sizeof(e->extra_fields[0])*e->n_extra_fields)) == NULL) - return -1; - - for (i=0; iextra_fields[i].name = e->name; - e->extra_fields[i].data = zip_file_extra_field_get(za, idx, i, &e->extra_fields[i].id, &e->extra_fields[i].size, ZIP_FL_LOCAL); - if (e->extra_fields[i].data == NULL) - return -1; - e->extra_fields[i].flags = ZIP_FL_LOCAL; - } - for (; in_extra_fields; i++) { - e->extra_fields[i].name = e->name; - e->extra_fields[i].data=zip_file_extra_field_get(za, idx, (zip_uint16_t)(i-n_local), &e->extra_fields[i].id, &e->extra_fields[i].size, ZIP_FL_CENTRAL); - if (e->extra_fields[i].data == NULL) - return -1; - e->extra_fields[i].flags = ZIP_FL_CENTRAL; - } - - qsort(e->extra_fields, e->n_extra_fields, sizeof(e->extra_fields[0]), ef_order); - - return 0; -} - - -static int -ef_compare(char *const name[2], const struct entry *e1, const struct entry *e2) -{ - struct ef *ef[2]; - zip_uint64_t n[2]; - - ef[0] = e1->extra_fields; - ef[1] = e2->extra_fields; - n[0] = e1->n_extra_fields; - n[1] = e2->n_extra_fields; - - return compare_list(name, (const void **)ef, n, sizeof(struct ef), ef_order, NULL, ef_print); -} - - - -static int -ef_order(const void *ap, const void *bp) { - const struct ef *a, *b; - - a = (struct ef *)ap; - b = (struct ef *)bp; - - if (a->flags != b->flags) - return a->flags - b->flags; - if (a->id != b->id) - return a->id - b->id; - if (a->size != b->size) - return a->size - b->size; - return memcmp(a->data, b->data, a->size); -} - - -static void -ef_print(const void *p) -{ - const struct ef *ef = (struct ef *)p; - int i; - - printf(" %s ", ef->name); - printf("%04x %c <", ef->id, ef->flags == ZIP_FL_LOCAL ? 'l' : 'c'); - for (i=0; isize; i++) - printf("%s%02x", i ? " " : "", ef->data[i]); - printf(">\n"); -} - - -static int -entry_cmp(const void *p1, const void *p2) -{ - const struct entry *e1, *e2; - int c; - - e1 = (struct entry *)p1; - e2 = (struct entry *)p2; - - if ((c=(ignore_case ? strcasecmp : strcmp)(e1->name, e2->name)) != 0) - return c; - if (e1->size != e2->size) { - if (e1->size > e2->size) - return 1; - else - return -1; - } - if (e1->crc != e2->crc) - return (int)e1->crc - (int)e2->crc; - - return 0; -} - - -static int -entry_paranoia_checks(char *const name[2], const void *p1, const void *p2) { - const struct entry *e1, *e2; - int ret; - - e1 = (struct entry *)p1; - e2 = (struct entry *)p2; - - ret = 0; - - if (ef_compare(name, e1, e2) != 0) - ret = 1; - - if (e1->comp_method != e2->comp_method) { - if (verbose) { - if (header_done==0) { - printf("--- %s\n+++ %s\n", name[0], name[1]); - header_done = 1; - } - printf("--- %s ", e1->name); - printf("method %u\n", e1->comp_method); - printf("+++ %s ", e1->name); - printf("method %u\n", e2->comp_method); - } - ret = 1; - } - if (comment_compare(e1->comment, e1->comment_length, e2->comment, e2->comment_length) != 0) { - if (verbose) { - if (header_done==0) { - printf("--- %s\n+++ %s\n", name[0], name[1]); - header_done = 1; - } - printf("--- %s ", e1->name); - printf("comment %d\n", e1->comment_length); - printf("+++ %s ", e1->name); - printf("comment %d\n", e2->comment_length); - } - ret = 1; - } - - return ret; -} - - - -static void -entry_print(const void *p) -{ - const struct entry *e; - - e = (struct entry *)p; - - /* TODO PRId64 */ - printf("%10lu %08x %s\n", (unsigned long)e->size, e->crc, e->name); -} - - -static int -test_file(zip_t *za, zip_uint64_t idx, zip_uint64_t size, zip_uint32_t crc) -{ - zip_file_t *zf; - char buf[8192]; - zip_uint64_t nsize; - zip_int64_t n; - zip_uint32_t ncrc; - - if ((zf=zip_fopen_index(za, idx, 0)) == NULL) { - fprintf(stderr, "%s: cannot open file %" PRIu64 " in archive: %s\n", prg, idx, zip_strerror(za)); - return -1; - } - - ncrc = (zip_uint32_t)crc32(0, NULL, 0); - nsize = 0; - - while ((n=zip_fread(zf, buf, sizeof(buf))) > 0) { - nsize += (zip_uint64_t)n; - ncrc = (zip_uint32_t)crc32(ncrc, (const Bytef *)buf, (unsigned int)n); - } - - if (n < 0) { - fprintf(stderr, "%s: error reading file %" PRIu64 " in archive: %s\n", prg, idx, zip_file_strerror(zf)); - zip_fclose(zf); - return -1; - } - - zip_fclose(zf); - - if (nsize != size) { - fprintf(stderr, "%s: file %" PRIu64 ": unexpected length %" PRId64 " (should be %" PRId64 ")\n", prg, idx, nsize, size); - return -2; - } - if (ncrc != crc) { - fprintf(stderr, "%s: file %" PRIu64 ": unexpected length %x (should be %x)\n", prg, idx, ncrc, crc); - return -2; - } - - return 0; -} diff --git a/libzip-1.2.0/src/zipmerge.c b/libzip-1.2.0/src/zipmerge.c deleted file mode 100644 index d3f1aaf52..000000000 --- a/libzip-1.2.0/src/zipmerge.c +++ /dev/null @@ -1,300 +0,0 @@ -/* - zipmerge.c -- merge zip archives - Copyright (C) 2004-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include -#include -#include -#include -#include - -#include "config.h" - -#ifdef HAVE_UNISTD_H -#include -#endif - -#ifndef HAVE_GETOPT -#include "getopt.h" -#endif - -#include "zip.h" -#include "compat.h" - -char *prg; - -#define PROGRAM "zipmerge" - -#define USAGE "usage: %s [-DhIiSsV] target-zip zip...\n" - -char help_head[] = - PROGRAM " (" PACKAGE ") by Dieter Baron and Thomas Klausner\n\n"; - -char help[] = "\n\ - -h display this help message\n\ - -V display version number\n\ - -D ignore directory component in file names\n\ - -I ignore case in file names\n\ - -i ask before overwriting files\n\ - -S don't overwrite identical files\n\ - -s overwrite identical files without asking\n\ -\n\ -Report bugs to .\n"; - -char version_string[] = PROGRAM " (" PACKAGE " " VERSION ")\n\ -Copyright (C) 2004-2014 Dieter Baron and Thomas Klausner\n\ -" PACKAGE " comes with ABSOLUTELY NO WARRANTY, to the extent permitted by law.\n"; - -#define OPTIONS "hVDiIsS" - -#define CONFIRM_ALL_YES 0x001 -#define CONFIRM_ALL_NO 0x002 -#define CONFIRM_SAME_YES 0x010 -#define CONFIRM_SAME_NO 0x020 - -int confirm; -zip_flags_t name_flags; - -static int confirm_replace(zip_t *, const char *, zip_uint64_t, - zip_t *, const char *, zip_uint64_t); -static zip_t *merge_zip(zip_t *, const char *, const char *); - - -int -main(int argc, char *argv[]) -{ - zip_t *za; - zip_t **zs; - int c, err; - unsigned int i, n; - char *tname; - - prg = argv[0]; - - confirm = CONFIRM_ALL_YES; - name_flags = 0; - - while ((c=getopt(argc, argv, OPTIONS)) != -1) { - switch (c) { - case 'D': - name_flags |= ZIP_FL_NODIR; - break; - case 'i': - confirm &= ~CONFIRM_ALL_YES; - break; - case 'I': - name_flags |= ZIP_FL_NOCASE; - break; - case 's': - confirm &= ~CONFIRM_SAME_NO; - confirm |= CONFIRM_SAME_YES; - break; - case 'S': - confirm &= ~CONFIRM_SAME_YES; - confirm |= CONFIRM_SAME_NO; - break; - - case 'h': - fputs(help_head, stdout); - printf(USAGE, prg); - fputs(help, stdout); - exit(0); - case 'V': - fputs(version_string, stdout); - exit(0); - - default: - fprintf(stderr, USAGE, prg); - exit(2); - } - } - - if (argc < optind+2) { - fprintf(stderr, USAGE, prg); - exit(2); - } - - tname = argv[optind++]; - argv += optind; - - n = (unsigned int)(argc-optind); - if ((zs=(zip_t **)malloc(sizeof(zs[0])*n)) == NULL) { - fprintf(stderr, "%s: out of memory\n", prg); - exit(1); - } - - if ((za=zip_open(tname, ZIP_CREATE, &err)) == NULL) { - zip_error_t error; - zip_error_init_with_code(&error, err); - fprintf(stderr, "%s: can't open zip archive '%s': %s\n", prg, tname, zip_error_strerror(&error)); - zip_error_fini(&error); - exit(1); - } - - for (i=0; i= 0) { - switch (confirm_replace(za, tname, (zip_uint64_t)idx, zs, sname, i)) { - case 0: - break; - - case 1: - if ((source=zip_source_zip(za, zs, i, 0, 0, 0)) == NULL - || zip_replace(za, (zip_uint64_t)idx, source) < 0) { - zip_source_free(source); - fprintf(stderr, - "%s: cannot replace '%s' in `%s': %s\n", - prg, fname, tname, zip_strerror(za)); - zip_close(zs); - return NULL; - } - break; - - case -1: - zip_close(zs); - return NULL; - - default: - fprintf(stderr, "%s: internal error: " - "unexpected return code from confirm (%d)\n", - prg, err); - zip_close(zs); - return NULL; - } - } - else { - if ((source=zip_source_zip(za, zs, i, 0, 0, 0)) == NULL - || zip_add(za, fname, source) < 0) { - zip_source_free(source); - fprintf(stderr, - "%s: cannot add '%s' to `%s': %s\n", - prg, fname, tname, zip_strerror(za)); - zip_close(zs); - return NULL; - } - } - } - - return zs; -} diff --git a/libzip-1.2.0/src/ziptool_lib.c b/libzip-1.2.0/src/ziptool_lib.c deleted file mode 100644 index 83415935c..000000000 --- a/libzip-1.2.0/src/ziptool_lib.c +++ /dev/null @@ -1,1161 +0,0 @@ -/* - ziptool.c -- tool for modifying zip archive in multiple ways - Copyright (C) 2012-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include "config.h" - -#include -#include -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif -#ifdef _WIN32 -/* WIN32 needs for _O_BINARY */ -#include -#endif - -#ifndef HAVE_GETOPT -#include "getopt.h" -#endif -extern int optopt; - -#include "zip.h" -#include "compat.h" - -zip_source_t *source_hole_create(const char *, int flags, zip_error_t *); - -typedef enum { - SOURCE_TYPE_NONE, - SOURCE_TYPE_IN_MEMORY, - SOURCE_TYPE_HOLE -} source_type_t; - -typedef struct dispatch_table_s { - const char *cmdline_name; - int argument_count; - const char *arg_names; - const char *description; - int (*function)(int argc, char *argv[]); -} dispatch_table_t; - -static zip_flags_t get_flags(const char *arg); -static zip_int32_t get_compression_method(const char *arg); -static zip_uint16_t get_encryption_method(const char *arg); -static void hexdump(const zip_uint8_t *data, zip_uint16_t len); -static zip_t *read_to_memory(const char *archive, int flags, zip_error_t *error, zip_source_t **srcp); -static zip_source_t *source_nul(zip_t *za, zip_uint64_t length); - -zip_t *za, *z_in[16]; -unsigned int z_in_count; -zip_flags_t stat_flags; - -static int -add(int argc, char *argv[]) { - zip_source_t *zs; - - if ((zs=zip_source_buffer(za, argv[1], strlen(argv[1]), 0)) == NULL) { - fprintf(stderr, "can't create zip_source from buffer: %s\n", zip_strerror(za)); - return -1; - } - - if (zip_add(za, argv[0], zs) == -1) { - zip_source_free(zs); - fprintf(stderr, "can't add file '%s': %s\n", argv[0], zip_strerror(za)); - return -1; - } - return 0; -} - -static int -add_dir(int argc, char *argv[]) { - /* add directory */ - if (zip_add_dir(za, argv[0]) < 0) { - fprintf(stderr, "can't add directory '%s': %s\n", argv[0], zip_strerror(za)); - return -1; - } - return 0; -} - -static int -add_file(int argc, char *argv[]) { - zip_source_t *zs; - zip_uint64_t start = strtoull(argv[2], NULL, 10); - zip_int64_t len = strtoll(argv[3], NULL, 10); - - if (strcmp(argv[1], "/dev/stdin") == 0) { - if ((zs=zip_source_filep(za, stdin, start, len)) == NULL) { - fprintf(stderr, "can't create zip_source from stdin: %s\n", zip_strerror(za)); - return -1; - } - } else { - if ((zs=zip_source_file(za, argv[1], start, len)) == NULL) { - fprintf(stderr, "can't create zip_source from file: %s\n", zip_strerror(za)); - return -1; - } - } - - if (zip_add(za, argv[0], zs) == -1) { - zip_source_free(zs); - fprintf(stderr, "can't add file '%s': %s\n", argv[0], zip_strerror(za)); - return -1; - } - return 0; -} - -static int -add_from_zip(int argc, char *argv[]) { - zip_uint64_t idx, start; - zip_int64_t len; - int err; - zip_source_t *zs; - /* add from another zip file */ - idx = strtoull(argv[2], NULL, 10); - start = strtoull(argv[3], NULL, 10); - len = strtoll(argv[4], NULL, 10); - if ((z_in[z_in_count]=zip_open(argv[1], ZIP_CHECKCONS, &err)) == NULL) { - zip_error_t error; - zip_error_init_with_code(&error, err); - fprintf(stderr, "can't open zip archive '%s': %s\n", argv[1], zip_error_strerror(&error)); - zip_error_fini(&error); - return -1; - } - if ((zs=zip_source_zip(za, z_in[z_in_count], idx, 0, start, len)) == NULL) { - fprintf(stderr, "error creating file source from '%s' index '%" PRIu64 "': %s\n", argv[1], idx, zip_strerror(za)); - zip_close(z_in[z_in_count]); - return -1; - } - if (zip_add(za, argv[0], zs) == -1) { - fprintf(stderr, "can't add file '%s': %s\n", argv[0], zip_strerror(za)); - zip_source_free(zs); - zip_close(z_in[z_in_count]); - return -1; - } - z_in_count++; - return 0; -} - -static int -add_nul(int argc, char *argv[]) { - zip_source_t *zs; - zip_uint64_t length = strtoull(argv[1], NULL, 10); - - if ((zs=source_nul(za, length)) == NULL) { - fprintf(stderr, "can't create zip_source for length: %s\n", zip_strerror(za)); - return -1; - } - - if (zip_add(za, argv[0], zs) == -1) { - zip_source_free(zs); - fprintf(stderr, "can't add file '%s': %s\n", argv[0], zip_strerror(za)); - return -1; - } - return 0; -} - -static int -cat(int argc, char *argv[]) { - /* output file contents to stdout */ - zip_uint64_t idx; - zip_int64_t n; - zip_file_t *zf; - char buf[8192]; - int err; - idx = strtoull(argv[0], NULL, 10); - -#ifdef _WIN32 - /* Need to set stdout to binary mode for Windows */ - setmode(fileno(stdout), _O_BINARY); -#endif - if ((zf=zip_fopen_index(za, idx, 0)) == NULL) { - fprintf(stderr, "can't open file at index '%" PRIu64 "': %s\n", idx, zip_strerror(za)); - return -1; - } - while ((n=zip_fread(zf, buf, sizeof(buf))) > 0) { - if (fwrite(buf, (size_t)n, 1, stdout) != 1) { - zip_fclose(zf); - fprintf(stderr, "can't write file contents to stdout: %s\n", strerror(errno)); - return -1; - } - } - if (n == -1) { - fprintf(stderr, "can't read file at index '%" PRIu64 "': %s\n", idx, zip_file_strerror(zf)); - zip_fclose(zf); - return -1; - } - if ((err = zip_fclose(zf)) != 0) { - zip_error_t error; - - zip_error_init_with_code(&error, err); - fprintf(stderr, "can't close file at index '%" PRIu64 "': %s\n", idx, zip_error_strerror(&error)); - return -1; - } - - return 0; -} - -static int -count_extra(int argc, char *argv[]) { - zip_int16_t count; - zip_uint64_t idx; - zip_flags_t ceflags = 0; - idx = strtoull(argv[0], NULL, 10); - ceflags = get_flags(argv[1]); - if ((count=zip_file_extra_fields_count(za, idx, ceflags)) < 0) { - fprintf(stderr, "can't get extra field count for file at index '%" PRIu64 "': %s\n", idx, zip_strerror(za)); - return -1; - } else { - printf("Extra field count: %d\n", count); - } - return 0; -} - -static int -count_extra_by_id(int argc, char *argv[]) { - zip_int16_t count; - zip_uint16_t eid; - zip_flags_t ceflags = 0; - zip_uint64_t idx; - idx = strtoull(argv[0], NULL, 10); - eid = (zip_uint16_t)strtoull(argv[1], NULL, 10); - ceflags = get_flags(argv[2]); - if ((count=zip_file_extra_fields_count_by_id(za, idx, eid, ceflags)) < 0) { - fprintf(stderr, "can't get extra field count for file at index '%" PRIu64 "' and for id '%d': %s\n", idx, eid, zip_strerror(za)); - return -1; - } else { - printf("Extra field count: %d\n", count); - } - return 0; -} - -static int -delete(int argc, char *argv[]) { - zip_uint64_t idx; - idx = strtoull(argv[0], NULL, 10); - if (zip_delete(za, idx) < 0) { - fprintf(stderr, "can't delete file at index '%" PRIu64 "': %s\n", idx, zip_strerror(za)); - return -1; - } - return 0; -} - -static int -delete_extra(int argc, char *argv[]) { - zip_flags_t geflags; - zip_uint16_t eid; - zip_uint64_t idx; - idx = strtoull(argv[0], NULL, 10); - eid = (zip_uint16_t)strtoull(argv[1], NULL, 10); - geflags = get_flags(argv[2]); - if ((zip_file_extra_field_delete(za, idx, eid, geflags)) < 0) { - fprintf(stderr, "can't delete extra field data for file at index '%" PRIu64 "', extra field id '%d': %s\n", idx, eid, zip_strerror(za)); - return -1; - } - return 0; -} - -static int -delete_extra_by_id(int argc, char *argv[]) { - zip_flags_t geflags; - zip_uint16_t eid, eidx; - zip_uint64_t idx; - idx = strtoull(argv[0], NULL, 10); - eid = (zip_uint16_t)strtoull(argv[1], NULL, 10); - eidx = (zip_uint16_t)strtoull(argv[2], NULL, 10); - geflags = get_flags(argv[3]); - if ((zip_file_extra_field_delete_by_id(za, idx, eid, eidx, geflags)) < 0) { - fprintf(stderr, "can't delete extra field data for file at index '%" PRIu64 "', extra field id '%d', extra field idx '%d': %s\n", idx, eid, eidx, zip_strerror(za)); - return -1; - } - return 0; -} - -static int -get_archive_comment(int argc, char *argv[]) { - const char *comment; - int len; - /* get archive comment */ - if ((comment=zip_get_archive_comment(za, &len, 0)) == NULL) - printf("No archive comment\n"); - else - printf("Archive comment: %.*s\n", len, comment); - return 0; -} - -static int -get_extra(int argc, char *argv[]) { - zip_flags_t geflags; - zip_uint16_t id, eidx, eflen; - const zip_uint8_t *efdata; - zip_uint64_t idx; - /* get extra field data */ - idx = strtoull(argv[0], NULL, 10); - eidx = (zip_uint16_t)strtoull(argv[1], NULL, 10); - geflags = get_flags(argv[2]); - if ((efdata=zip_file_extra_field_get(za, idx, eidx, &id, &eflen, geflags)) == NULL) { - fprintf(stderr, "can't get extra field data for file at index %" PRIu64 ", extra field %d, flags %u: %s\n", idx, eidx, geflags, zip_strerror(za)); - return -1; - } - printf("Extra field 0x%04x: len %d", id, eflen); - if (eflen > 0) { - printf(", data "); - hexdump(efdata, eflen); - } - printf("\n"); - return 0; -} - -static int -get_extra_by_id(int argc, char *argv[]) { - zip_flags_t geflags; - zip_uint16_t eid, eidx, eflen; - const zip_uint8_t *efdata; - zip_uint64_t idx; - idx = strtoull(argv[0], NULL, 10); - eid = (zip_uint16_t)strtoull(argv[1], NULL, 10); - eidx = (zip_uint16_t)strtoull(argv[2], NULL, 10); - geflags = get_flags(argv[3]); - if ((efdata=zip_file_extra_field_get_by_id(za, idx, eid, eidx, &eflen, geflags)) == NULL) { - fprintf(stderr, "can't get extra field data for file at index %" PRIu64 ", extra field id %d, ef index %d, flags %u: %s\n", idx, eid, eidx, geflags, zip_strerror(za)); - return -1; - } - printf("Extra field 0x%04x: len %d", eid, eflen); - if (eflen > 0) { - printf(", data "); - hexdump(efdata, eflen); - } - printf("\n"); - return 0; -} - -static int -get_file_comment(int argc, char *argv[]) { - const char *comment; - int len; - zip_uint64_t idx; - /* get file comment */ - idx = strtoull(argv[0], NULL, 10); - if ((comment=zip_get_file_comment(za, idx, &len, 0)) == NULL) { - fprintf(stderr, "can't get comment for '%s': %s\n", zip_get_name(za, idx, 0), zip_strerror(za)); - return -1; - } else if (len == 0) - printf("No comment for '%s'\n", zip_get_name(za, idx, 0)); - else - printf("File comment for '%s': %.*s\n", zip_get_name(za, idx, 0), len, comment); - return 0; -} - -static int -get_num_entries(int argc, char *argv[]) { - zip_int64_t count; - zip_flags_t flags; - /* get number of entries in archive */ - flags = get_flags(argv[0]); - count = zip_get_num_entries(za, flags); - printf("%" PRId64 " entr%s in archive\n", count, count == 1 ? "y" : "ies"); - return 0; -} - -static int -name_locate(int argc, char *argv[]) { - zip_flags_t flags; - zip_int64_t idx; - flags = get_flags(argv[1]); - - if ((idx=zip_name_locate(za, argv[0], flags)) < 0) { - fprintf(stderr, "can't find entry with name '%s' using flags '%s'\n", argv[0], argv[1]); - } else { - printf("name '%s' using flags '%s' found at index %" PRId64 "\n", argv[0], argv[1], idx); - } - - return 0; -} - -static void -progress_callback(double percentage) { - printf("%.1lf%% done\n", percentage*100); -} - -static int -print_progress(int argc, char *argv[]) { - zip_register_progress_callback(za, progress_callback); - return 0; -} - -static int -zrename(int argc, char *argv[]) { - zip_uint64_t idx; - idx = strtoull(argv[0], NULL, 10); - if (zip_rename(za, idx, argv[1]) < 0) { - fprintf(stderr, "can't rename file at index '%" PRIu64 "' to '%s': %s\n", idx, argv[1], zip_strerror(za)); - return -1; - } - return 0; -} - -static int -replace_file_contents(int argc, char *argv[]) { - /* replace file contents with data from command line */ - const char *content; - zip_source_t *s; - zip_uint64_t idx; - idx = strtoull(argv[0], NULL, 10); - content = argv[1]; - if ((s=zip_source_buffer(za, content, strlen(content), 0)) == NULL || - zip_file_replace(za, idx, s, 0) < 0) { - zip_source_free(s); - fprintf(stderr, "error replacing file data: %s\n", zip_strerror(za)); - return -1; - } - return 0; -} - -static int -set_extra(int argc, char *argv[]) { - zip_flags_t geflags; - zip_uint16_t eid, eidx; - const zip_uint8_t *efdata; - zip_uint64_t idx; - idx = strtoull(argv[0], NULL, 10); - eid = (zip_uint16_t)strtoull(argv[1], NULL, 10); - eidx = (zip_uint16_t)strtoull(argv[2], NULL, 10); - geflags = get_flags(argv[3]); - efdata = (zip_uint8_t *)argv[4]; - if ((zip_file_extra_field_set(za, idx, eid, eidx, efdata, (zip_uint16_t)strlen((const char *)efdata), geflags)) < 0) { - fprintf(stderr, "can't set extra field data for file at index '%" PRIu64 "', extra field id '%d', index '%d': %s\n", idx, eid, eidx, zip_strerror(za)); - return -1; - } - return 0; -} - -static int -set_archive_comment(int argc, char *argv[]) { - if (zip_set_archive_comment(za, argv[0], (zip_uint16_t)strlen(argv[0])) < 0) { - fprintf(stderr, "can't set archive comment to '%s': %s\n", argv[0], zip_strerror(za)); - return -1; - } - return 0; -} - -static int -set_file_comment(int argc, char *argv[]) { - zip_uint64_t idx; - idx = strtoull(argv[0], NULL, 10); - if (zip_file_set_comment(za, idx, argv[1], (zip_uint16_t)strlen(argv[1]), 0) < 0) { - fprintf(stderr, "can't set file comment at index '%" PRIu64 "' to '%s': %s\n", idx, argv[1], zip_strerror(za)); - return -1; - } - return 0; -} - -static int -set_file_compression(int argc, char *argv[]) { - zip_int32_t method; - zip_uint32_t flags; - zip_uint64_t idx; - idx = strtoull(argv[0], NULL, 10); - method = get_compression_method(argv[1]); - flags = (zip_uint32_t)strtoull(argv[2], NULL, 10); - if (zip_set_file_compression(za, idx, method, flags) < 0) { - fprintf(stderr, "can't set file compression method at index '%" PRIu64 "' to '%s', flags '%d': %s\n", idx, argv[1], flags, zip_strerror(za)); - return -1; - } - return 0; -} - -static int -set_file_encryption(int argc, char *argv[]) { - zip_int32_t method; - zip_uint64_t idx; - char *password; - idx = strtoull(argv[0], NULL, 10); - method = get_encryption_method(argv[1]); - password = argv[2]; - if (strlen(password) == 0) { - password = NULL; - } - if (zip_file_set_encryption(za, idx, method, password) < 0) { - fprintf(stderr, "can't set file encryption method at index '%" PRIu64 "' to '%s': %s\n", idx, argv[1], zip_strerror(za)); - return -1; - } - return 0; -} - -static int -set_file_mtime(int argc, char *argv[]) { - /* set file last modification time (mtime) */ - time_t mtime; - zip_uint64_t idx; - idx = strtoull(argv[0], NULL, 10); - mtime = (time_t)strtoull(argv[1], NULL, 10); - if (zip_file_set_mtime(za, idx, mtime, 0) < 0) { - fprintf(stderr, "can't set file mtime at index '%" PRIu64 "' to '%ld': %s\n", idx, mtime, zip_strerror(za)); - return -1; - } - return 0; -} - -static int -set_file_mtime_all(int argc, char *argv[]) { - /* set last modification time (mtime) for all files */ - time_t mtime; - zip_int64_t num_entries; - zip_uint64_t idx; - mtime = (time_t)strtoull(argv[0], NULL, 10); - - if ((num_entries = zip_get_num_entries(za, 0)) < 0) { - fprintf(stderr, "can't get number of entries: %s\n", zip_strerror(za)); - return -1; - } - for (idx = 0; idx < (zip_uint64_t)num_entries; idx++) { - if (zip_file_set_mtime(za, idx, mtime, 0) < 0) { - fprintf(stderr, "can't set file mtime at index '%" PRIu64 "' to '%ld': %s\n", idx, mtime, zip_strerror(za)); - return -1; - } - } - return 0; -} - -static int -set_password(int argc, char *argv[]) { - /* set default password */ - if (zip_set_default_password(za, argv[0]) < 0) { - fprintf(stderr, "can't set default password to '%s'\n", argv[0]); - return -1; - } - return 0; -} - -static int -zstat(int argc, char *argv[]) { - zip_uint64_t idx; - char buf[100]; - struct zip_stat sb; - idx = strtoull(argv[0], NULL, 10); - - if (zip_stat_index(za, idx, stat_flags, &sb) < 0) { - fprintf(stderr, "zip_stat_index failed on '%" PRIu64 "' failed: %s\n", idx, zip_strerror(za)); - return -1; - } - - if (sb.valid & ZIP_STAT_NAME) - printf("name: '%s'\n", sb.name); - if (sb.valid & ZIP_STAT_INDEX) - printf("index: '%"PRIu64"'\n", sb.index); - if (sb.valid & ZIP_STAT_SIZE) - printf("size: '%"PRIu64"'\n", sb.size); - if (sb.valid & ZIP_STAT_COMP_SIZE) - printf("compressed size: '%"PRIu64"'\n", sb.comp_size); - if (sb.valid & ZIP_STAT_MTIME) { - struct tm *tpm; - tpm = localtime(&sb.mtime); - strftime(buf, sizeof(buf), "%a %b %d %Y %H:%M:%S", tpm); - printf("mtime: '%s'\n", buf); - } - if (sb.valid & ZIP_STAT_CRC) - printf("crc: '%0x'\n", sb.crc); - if (sb.valid & ZIP_STAT_COMP_METHOD) - printf("compression method: '%d'\n", sb.comp_method); - if (sb.valid & ZIP_STAT_ENCRYPTION_METHOD) - printf("encryption method: '%d'\n", sb.encryption_method); - if (sb.valid & ZIP_STAT_FLAGS) - printf("flags: '%ld'\n", (long)sb.flags); - printf("\n"); - - return 0; -} - -static int -unchange_all(int argc, char *argv[]) { - if (zip_unchange_all(za) < 0) { - fprintf(stderr, "can't revert changes to archive: %s\n", zip_strerror(za)); - return -1; - } - return 0; -} - -static int -zin_close(int argc, char *argv[]) { - zip_uint64_t idx; - - idx = strtoull(argv[0], NULL, 10); - if (idx >= z_in_count) { - fprintf(stderr, "invalid argument '%" PRIu64 "', only %d zip sources open\n", idx, z_in_count); - return -1; - } - if (zip_close(z_in[idx]) < 0) { - fprintf(stderr, "can't close source archive: %s\n", zip_strerror(z_in[idx])); - return -1; - } - z_in[idx] = z_in[z_in_count]; - z_in_count--; - - return 0; -} - -static zip_flags_t -get_flags(const char *arg) -{ - zip_flags_t flags = 0; - if (strchr(arg, 'C') != NULL) - flags |= ZIP_FL_NOCASE; - if (strchr(arg, 'c') != NULL) - flags |= ZIP_FL_CENTRAL; - if (strchr(arg, 'd') != NULL) - flags |= ZIP_FL_NODIR; - if (strchr(arg, 'l') != NULL) - flags |= ZIP_FL_LOCAL; - if (strchr(arg, 'u') != NULL) - flags |= ZIP_FL_UNCHANGED; - return flags; -} - -static zip_int32_t -get_compression_method(const char *arg) -{ - if (strcmp(arg, "default") == 0) - return ZIP_CM_DEFAULT; - else if (strcmp(arg, "store") == 0) - return ZIP_CM_STORE; - else if (strcmp(arg, "deflate") == 0) - return ZIP_CM_DEFLATE; - else if (strcmp(arg, "unknown") == 0) - return 100; - return 0; /* TODO: error handling */ -} - -static zip_uint16_t -get_encryption_method(const char *arg) -{ - if (strcmp(arg, "none") == 0) - return ZIP_EM_NONE; - else if (strcmp(arg, "AES-128") == 0) - return ZIP_EM_AES_128; - else if (strcmp(arg, "AES-192") == 0) - return ZIP_EM_AES_192; - else if (strcmp(arg, "AES-256") == 0) - return ZIP_EM_AES_256; - else if (strcmp(arg, "unknown") == 0) - return 100; - return (zip_uint16_t)-1; /* TODO: error handling */ -} - -static void -hexdump(const zip_uint8_t *data, zip_uint16_t len) -{ - zip_uint16_t i; - - if (len <= 0) - return; - - printf("0x"); - - for (i=0; i ZIP_INT64_MAX) { - zip_error_set(error, ZIP_ER_INVAL, 0); - return NULL; - } - if ((source = zip_source_file_create(archive, offset, (zip_int64_t)length, error)) == NULL - || (zaa = zip_open_from_source(source, flags, error)) == NULL) { - zip_source_free(source); - return NULL; - } - } - - return zaa; -} - - -static zip_t * -read_hole(const char *archive, int flags, zip_error_t *error) -{ - zip_source_t *src = NULL; - zip_t *zs = NULL; - - if ((src = source_hole_create(archive, flags, error)) == NULL - || (zs = zip_open_from_source(src, flags, error)) == NULL) { - zip_source_free(src); - } - - return zs; -} - - -static zip_t * -read_to_memory(const char *archive, int flags, zip_error_t *error, zip_source_t **srcp) -{ - struct stat st; - zip_source_t *src; - zip_t *zb; - - if (stat(archive, &st) < 0) { - if (errno == ENOENT) { - src = zip_source_buffer_create(NULL, 0, 0, error); - } - else { - zip_error_set(error, ZIP_ER_OPEN, errno); - return NULL; - } - } - else { - char *buf; - FILE *fp; - if ((buf=malloc((size_t)st.st_size)) == NULL) { - zip_error_set(error, ZIP_ER_MEMORY, 0); - return NULL; - } - if ((fp=fopen(archive, "r")) == NULL) { - free(buf); - zip_error_set(error, ZIP_ER_READ, errno); - return NULL; - } - if (fread(buf, (size_t)st.st_size, 1, fp) < 1) { - free(buf); - fclose(fp); - zip_error_set(error, ZIP_ER_READ, errno); - return NULL; - } - fclose(fp); - src = zip_source_buffer_create(buf, (zip_uint64_t)st.st_size, 1, error); - if (src == NULL) { - free(buf); - } - } - if (src == NULL) { - return NULL; - } - zb = zip_open_from_source(src, flags, error); - if (zb == NULL) { - zip_source_free(src); - return NULL; - } - zip_source_keep(src); - *srcp = src; - return zb; -} - - -typedef struct source_nul { - zip_error_t error; - zip_uint64_t length; - zip_uint64_t offset; -} source_nul_t; - -static zip_int64_t -source_nul_cb(void *ud, void *data, zip_uint64_t length, zip_source_cmd_t command) -{ - source_nul_t *ctx = (source_nul_t *)ud; - - switch (command) { - case ZIP_SOURCE_CLOSE: - return 0; - - case ZIP_SOURCE_ERROR: - return zip_error_to_data(&ctx->error, data, length); - - case ZIP_SOURCE_FREE: - free(ctx); - return 0; - - case ZIP_SOURCE_OPEN: - ctx->offset = 0; - return 0; - - case ZIP_SOURCE_READ: - if (length > ZIP_INT64_MAX) { - zip_error_set(&ctx->error, ZIP_ER_INVAL, 0); - return -1; - } - - if (length > ctx->length - ctx->offset) { - length =ctx->length - ctx->offset; - } - - memset(data, 0, length); - ctx->offset += length; - return (zip_int64_t)length; - - case ZIP_SOURCE_STAT: { - zip_stat_t *st = ZIP_SOURCE_GET_ARGS(zip_stat_t, data, length, &ctx->error); - - if (st == NULL) { - return -1; - } - - st->valid |= ZIP_STAT_SIZE; - st->size = ctx->length; - - return 0; - } - - case ZIP_SOURCE_SUPPORTS: - return zip_source_make_command_bitmap(ZIP_SOURCE_CLOSE, ZIP_SOURCE_ERROR, ZIP_SOURCE_FREE, ZIP_SOURCE_OPEN, ZIP_SOURCE_READ, ZIP_SOURCE_STAT, -1); - - default: - zip_error_set(&ctx->error, ZIP_ER_OPNOTSUPP, 0); - return -1; - } -} - -static zip_source_t * -source_nul(zip_t *zs, zip_uint64_t length) -{ - source_nul_t *ctx; - zip_source_t *src; - - if ((ctx = (source_nul_t *)malloc(sizeof(*ctx))) == NULL) { - zip_error_set(zip_get_error(zs), ZIP_ER_MEMORY, 0); - return NULL; - } - - zip_error_init(&ctx->error); - ctx->length = length; - ctx->offset = 0; - - if ((src = zip_source_function(zs, source_nul_cb, ctx)) == NULL) { - free(ctx); - return NULL; - } - - return src; -} - - -static int -write_memory_src_to_file(const char *archive, zip_source_t *src) -{ - zip_stat_t zst; - char *buf; - FILE *fp; - - if (zip_source_stat(src, &zst) < 0) { - fprintf(stderr, "zip_source_stat on buffer failed: %s\n", zip_error_strerror(zip_source_error(src))); - return -1; - } - if (zip_source_open(src) < 0) { - if (zip_error_code_zip(zip_source_error(src)) == ZIP_ER_DELETED) { - if (unlink(archive) < 0 && errno != ENOENT) { - fprintf(stderr, "unlink failed: %s\n", strerror(errno)); - return -1; - } - return 0; - } - fprintf(stderr, "zip_source_open on buffer failed: %s\n", zip_error_strerror(zip_source_error(src))); - return -1; - } - if ((buf=malloc(zst.size)) == NULL) { - fprintf(stderr, "malloc failed: %s\n", strerror(errno)); - zip_source_close(src); - return -1; - } - if (zip_source_read(src, buf, zst.size) < (zip_int64_t)zst.size) { - fprintf(stderr, "zip_source_read on buffer failed: %s\n", zip_error_strerror(zip_source_error(src))); - zip_source_close(src); - free(buf); - return -1; - } - zip_source_close(src); - if ((fp=fopen(archive, "wb")) == NULL) { - fprintf(stderr, "fopen failed: %s\n", strerror(errno)); - free(buf); - return -1; - } - if (fwrite(buf, zst.size, 1, fp) < 1) { - fprintf(stderr, "fwrite failed: %s\n", strerror(errno)); - free(buf); - fclose(fp); - return -1; - } - free(buf); - if (fclose(fp) != 0) { - fprintf(stderr, "fclose failed: %s\n", strerror(errno)); - return -1; - } - return 0; -} - -dispatch_table_t dispatch_table[] = { - { "add", 2, "name content", "add file called name using content", add }, - { "add_dir", 1, "name", "add directory", add_dir }, - { "add_file", 4, "name file_to_add offset len", "add file to archive, len bytes starting from offset", add_file }, - { "add_from_zip", 5, "name archivename index offset len", "add file from another archive, len bytes starting from offset", add_from_zip }, - { "add_nul", 2, "name length", "add NUL bytes", add_nul }, - { "cat", 1, "index", "output file contents to stdout", cat }, - { "count_extra", 2, "index flags", "show number of extra fields for archive entry", count_extra }, - { "count_extra_by_id", 3, "index extra_id flags", "show number of extra fields of type extra_id for archive entry", count_extra_by_id }, - { "delete", 1, "index", "remove entry", delete }, - { "delete_extra", 3, "index extra_idx flags", "remove extra field", delete_extra }, - { "delete_extra_by_id", 4, "index extra_id extra_index flags", "remove extra field of type extra_id", delete_extra_by_id }, - { "get_archive_comment", 0, "", "show archive comment", get_archive_comment }, - { "get_extra", 3, "index extra_index flags", "show extra field", get_extra }, - { "get_extra_by_id", 4, "index extra_id extra_index flags", "show extra field of type extra_id", get_extra_by_id }, - { "get_file_comment", 1, "index", "get file comment", get_file_comment }, - { "get_num_entries", 1, "flags", "get number of entries in archive", get_num_entries }, - { "name_locate", 2, "name flags", "find entry in archive", name_locate }, - { "print_progress", 0, "", "print progress during zip_close()", print_progress }, - { "rename", 2, "index name", "rename entry", zrename }, - { "replace_file_contents", 2, "index data", "replace entry with data", replace_file_contents }, - { "set_archive_comment", 1, "comment", "set archive comment", set_archive_comment }, - { "set_extra", 5, "index extra_id extra_index flags value", "set extra field", set_extra }, - { "set_file_comment", 2, "index comment", "set file comment", set_file_comment }, - { "set_file_compression", 3, "index method compression_flags", "set file compression method", set_file_compression }, - { "set_file_encryption", 3, "index method password", "set file encryption method", set_file_encryption }, - { "set_file_mtime", 2, "index timestamp", "set file modification time", set_file_mtime }, - { "set_file_mtime_all", 1, "timestamp", "set file modification time for all files", set_file_mtime_all }, - { "set_password", 1, "password", "set default password for encryption", set_password }, - { "stat", 1, "index", "print information about entry", zstat }, - { "unchange_all", 0, "", "revert all changes", unchange_all }, - { "zin_close", 1, "index", "close input zip_source (for internal tests)", zin_close } -}; - -static int -dispatch(int argc, char *argv[]) -{ - unsigned int i; - for (i=0; i= argc-1) - usage(prg, "too few arguments"); - - arg = optind; - - archive = argv[arg++]; - - if (flags == 0) - flags = ZIP_CREATE; - - zip_error_init(&error); - switch (source_type) { - case SOURCE_TYPE_NONE: - za = read_from_file(archive, flags, &error, offset, len); - break; - - case SOURCE_TYPE_IN_MEMORY: - za = read_to_memory(archive, flags, &error, &memory_src); - break; - - case SOURCE_TYPE_HOLE: - za = read_hole(archive, flags, &error); - break; - } - if (za == NULL) { - fprintf(stderr, "can't open zip archive '%s': %s\n", archive, zip_error_strerror(&error)); - zip_error_fini(&error); - return 1; - } - zip_error_fini(&error); - - err = 0; - while (arg < argc) { - int ret; - ret = dispatch(argc-arg, argv+arg); - if (ret > 0) { - arg += ret; - } else { - err = 1; - break; - } - } - - if (zip_close(za) == -1) { - fprintf(stderr, "can't close zip archive '%s': %s\n", archive, zip_strerror(za)); - return 1; - } - if (source_type == SOURCE_TYPE_IN_MEMORY) { - if (write_memory_src_to_file(archive, memory_src) < 0) { - err = 1; - } - zip_source_free(memory_src); - } - - for (i=0; i - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - ziptool.h -- exported declarations to access ziptool executable as a C library. - - June 17, 2017 - Jim Schaff - UConn Health - -*/ - - -#ifdef __cplusplus -extern "C" { -#if 0 -} /* fix autoindent */ -#endif -#endif - -int ziptool_main(int argc, const char* argv[]); - -#ifdef __cplusplus -} -#endif - -#endif /* _HAD_ZIPTOOL_H */ diff --git a/libzip-1.2.0/src/ziptool_main.c b/libzip-1.2.0/src/ziptool_main.c deleted file mode 100644 index c47aee0e9..000000000 --- a/libzip-1.2.0/src/ziptool_main.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - ziptool.c -- tool for modifying zip archive in multiple ways - Copyright (C) 2012-2016 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - ziptool_main.c -- new entry point for ziptool executable. - - June 17, 2017 - Jim Schaff - UConn Health - -*/ - -#include "ziptool_lib.h" - -int -main(int argc, char *argv[]) -{ - return ziptool_main(argc, argv); -} diff --git a/libzip-1.2.0/test-driver b/libzip-1.2.0/test-driver deleted file mode 100644 index 8e575b017..000000000 --- a/libzip-1.2.0/test-driver +++ /dev/null @@ -1,148 +0,0 @@ -#! /bin/sh -# test-driver - basic testsuite driver script. - -scriptversion=2013-07-13.22; # UTC - -# Copyright (C) 2011-2014 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - -# Make unconditional expansion of undefined variables an error. This -# helps a lot in preventing typo-related bugs. -set -u - -usage_error () -{ - echo "$0: $*" >&2 - print_usage >&2 - exit 2 -} - -print_usage () -{ - cat <$log_file 2>&1 -estatus=$? - -if test $enable_hard_errors = no && test $estatus -eq 99; then - tweaked_estatus=1 -else - tweaked_estatus=$estatus -fi - -case $tweaked_estatus:$expect_failure in - 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; - 0:*) col=$grn res=PASS recheck=no gcopy=no;; - 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; - 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; - *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; - *:*) col=$red res=FAIL recheck=yes gcopy=yes;; -esac - -# Report the test outcome and exit status in the logs, so that one can -# know whether the test passed or failed simply by looking at the '.log' -# file, without the need of also peaking into the corresponding '.trs' -# file (automake bug#11814). -echo "$res $test_name (exit status: $estatus)" >>$log_file - -# Report outcome to console. -echo "${col}${res}${std}: $test_name" - -# Register the test result, and other relevant metadata. -echo ":test-result: $res" > $trs_file -echo ":global-test-result: $res" >> $trs_file -echo ":recheck: $recheck" >> $trs_file -echo ":copy-in-global-log: $gcopy" >> $trs_file - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/libzip-1.2.0/xcode/Info.plist b/libzip-1.2.0/xcode/Info.plist deleted file mode 100644 index 4cc3a77e5..000000000 --- a/libzip-1.2.0/xcode/Info.plist +++ /dev/null @@ -1,46 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - BNDL - CFBundleShortVersionString - PACKAGE_VERSION - CFBundleSignature - ???? - CFBundleVersion - 1 - CFPlugInDynamicRegisterFunction - - CFPlugInDynamicRegistration - NO - CFPlugInFactories - - 00000000-0000-0000-0000-000000000000 - MyFactoryFunction - - CFPlugInTypes - - 00000000-0000-0000-0000-000000000000 - - 00000000-0000-0000-0000-000000000000 - - - CFPlugInUnloadFunction - - NSHumanReadableCopyright - Copyright © 2014 Dieter Baron and Thomas Klausner - - diff --git a/libzip-1.2.0/xcode/config.h b/libzip-1.2.0/xcode/config.h deleted file mode 100644 index cf2c0db40..000000000 --- a/libzip-1.2.0/xcode/config.h +++ /dev/null @@ -1,220 +0,0 @@ -/* config.h. Generated from config.h.in by configure. */ -/* config.h.in. Generated from configure.ac by autoheader. */ - -/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. - */ -/* #undef HAVE_DECL_TZNAME */ - -/* Define to 1 if you have the header file. */ -#define HAVE_DLFCN_H 1 - -/* Define to 1 if you have the `fseeko' function. */ -#define HAVE_FSEEKO 1 - -/* Define to 1 if you have the `ftello' function. */ -#define HAVE_FTELLO 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_FTS_H 1 - -/* Define to 1 if you have the `getopt' function. */ -#define HAVE_GETOPT 1 - -/* Define to 1 if the system has the type `int16_t'. */ -#define HAVE_INT16_T 1 - -/* Define to 1 if the system has the type `int32_t'. */ -#define HAVE_INT32_T 1 - -/* Define to 1 if the system has the type `int64_t'. */ -#define HAVE_INT64_T 1 - -/* Define to 1 if the system has the type `int8_t'. */ -#define HAVE_INT8_T 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_INTTYPES_H 1 - -/* Define to 1 if you have the `z' library (-lz). */ -#define HAVE_LIBZ 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_MEMORY_H 1 - -/* Define to 1 if you have the `mkstemp' function. */ -#define HAVE_MKSTEMP 1 - -/* Define to 1 if you have the `open' function. */ -#define HAVE_OPEN 1 - -/* Define to 1 if you have the `snprintf' function. */ -#define HAVE_SNPRINTF 1 - -/* Define to 1 if the system has the type `ssize_t'. */ -#define HAVE_SSIZE_T 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDBOOL_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDINT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDLIB_H 1 - -/* Define to 1 if you have the `strcasecmp' function. */ -#define HAVE_STRCASECMP 1 - -/* Define to 1 if you have the `strdup' function. */ -#define HAVE_STRDUP 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STRINGS_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STRING_H 1 - -/* Define to 1 if `tm_zone' is a member of `struct tm'. */ -#define HAVE_STRUCT_TM_TM_ZONE 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_STAT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_TYPES_H 1 - -/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use - `HAVE_STRUCT_TM_TM_ZONE' instead. */ -#define HAVE_TM_ZONE 1 - -/* Define to 1 if you don't have `tm_zone' but do have the external array - `tzname'. */ -/* #undef HAVE_TZNAME */ - -/* Define to 1 if the system has the type `uint16_t'. */ -#define HAVE_UINT16_T 1 - -/* Define to 1 if the system has the type `uint32_t'. */ -#define HAVE_UINT32_T 1 - -/* Define to 1 if the system has the type `uint64_t'. */ -#define HAVE_UINT64_T 1 - -/* Define to 1 if the system has the type `uint8_t'. */ -#define HAVE_UINT8_T 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_UNISTD_H 1 - -/* Define to 1 or 0, depending whether the compiler supports simple visibility - declarations. */ -#define HAVE_VISIBILITY 1 - -/* Define to 1 if you have the `_close' function. */ -/* #undef HAVE__CLOSE */ - -/* Define to 1 if you have the `_dup' function. */ -/* #undef HAVE__DUP */ - -/* Define to 1 if you have the `_fdopen' function. */ -/* #undef HAVE__FDOPEN */ - -/* Define to 1 if you have the `_fileno' function. */ -/* #undef HAVE__FILENO */ - -/* Define to 1 if you have the `_open' function. */ -/* #undef HAVE__OPEN */ - -/* Define to 1 if you have the `_snprintf' function. */ -/* #undef HAVE__SNPRINTF */ - -/* Define to 1 if you have the `_strdup' function. */ -/* #undef HAVE__STRDUP */ - -/* Define to 1 if you have the `_stricmp' function. */ -/* #undef HAVE__STRICMP */ - -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ -#define LT_OBJDIR ".libs/" - -/* Name of package */ -#define PACKAGE "libzip" - -/* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "libzip@nih.at" - -/* Define to the full name of this package. */ -#define PACKAGE_NAME "libzip" - -/* Define to the full name and version of this package. */ -#define PACKAGE_STRING "libzip 1.0.1a" - -/* Define to the one symbol short name of this package. */ -#define PACKAGE_TARNAME "libzip" - -/* Define to the home page for this package. */ -#define PACKAGE_URL "" - -/* Define to the version of this package. */ -#define PACKAGE_VERSION "1.2.0" - -/* The size of `int', as computed by sizeof. */ -#define SIZEOF_INT 4 - -/* The size of `long', as computed by sizeof. */ -#ifndef __LP64__ -#define SIZEOF_LONG 4 -#else /* __LP64__ */ -#define SIZEOF_LONG 8 -#endif /* __LP64__ */ - -/* The size of `long long', as computed by sizeof. */ -#define SIZEOF_LONG_LONG 8 - -/* The size of `off_t', as computed by sizeof. */ -#define SIZEOF_OFF_T 8 - -/* The size of `short', as computed by sizeof. */ -#define SIZEOF_SHORT 2 - -/* The size of `size_t', as computed by sizeof. */ -#ifndef __LP64__ -#define SIZEOF_SIZE_T 4 -#else /* __LP64__ */ -#define SIZEOF_SIZE_T 8 -#endif /* __LP64__ */ - -/* Define to 1 if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Define to 1 if your declares `struct tm'. */ -/* #undef TM_IN_SYS_TIME */ - -/* Version number of package */ -#define VERSION "1.2.0" - -/* 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 */ - - -#ifndef HAVE_SSIZE_T -# if SIZEOF_SIZE_T == SIZEOF_INT -typedef int ssize_t; -# elif SIZEOF_SIZE_T == SIZEOF_LONG -typedef long ssize_t; -# elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG -typedef long long ssize_t; -# else -#error no suitable type for ssize_t found -# endif -#endif - diff --git a/libzip-1.2.0/xcode/extract-version.sh b/libzip-1.2.0/xcode/extract-version.sh deleted file mode 100644 index 85e83fcb3..000000000 --- a/libzip-1.2.0/xcode/extract-version.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -# Replace the value for PLIST_KEY with the resolved definition from the header file that was passed in. - -SOURCE_HEADER_FILE_PATH=$1 -SOURCE_PLIST_PATH=$2 - -PLIST_KEY="CFBundleShortVersionString" - -VERSION_KEY=`/usr/libexec/PlistBuddy -c "Print :${PLIST_KEY}" "${SOURCE_PLIST_PATH}"` - -#echo "Key: ${VERSION_KEY}" - -VERSION_NUM=`cat "${SOURCE_HEADER_FILE_PATH}" | sed -n "s|#define ${VERSION_KEY} \"\(.*\)\".*|\1|p"` - -#echo "Value: ${VERSION_NUM}" - -TARGET_PLIST_PATH="${TARGET_BUILD_DIR}/${INFOPLIST_PATH}" - -/usr/libexec/PlistBuddy -c "Set :${PLIST_KEY} ${VERSION_NUM}" "${TARGET_PLIST_PATH}" diff --git a/libzip-1.2.0/xcode/libzip.xcodeproj/project.pbxproj b/libzip-1.2.0/xcode/libzip.xcodeproj/project.pbxproj deleted file mode 100644 index 597e8fe80..000000000 --- a/libzip-1.2.0/xcode/libzip.xcodeproj/project.pbxproj +++ /dev/null @@ -1,2840 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXAggregateTarget section */ - 4B01D72815B2F5A2002D5007 /* command line tools */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 4B01D72915B2F5A2002D5007 /* Build configuration list for PBXAggregateTarget "command line tools" */; - buildPhases = ( - ); - dependencies = ( - 4B2CADAC1C50D57800291DE6 /* PBXTargetDependency */, - 4B01D72D15B2F5AC002D5007 /* PBXTargetDependency */, - 4B01D72F15B2F5AC002D5007 /* PBXTargetDependency */, - ); - name = "command line tools"; - productName = "command line tools"; - }; - 4B54447915C977A20067BA33 /* all */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 4B54447C15C977A20067BA33 /* Build configuration list for PBXAggregateTarget "all" */; - buildPhases = ( - ); - dependencies = ( - 4BCF6A7B1C3BDDFF00F036E9 /* PBXTargetDependency */, - 4B54447F15C977AF0067BA33 /* PBXTargetDependency */, - 4B54448115C977B10067BA33 /* PBXTargetDependency */, - ); - name = all; - productName = all; - }; - 4BACD5A715BC2D8200920691 /* test programs */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 4BACD5AE15BC2D8200920691 /* Build configuration list for PBXAggregateTarget "test programs" */; - buildPhases = ( - ); - dependencies = ( - 4BD6CB6E19E71D0800710654 /* PBXTargetDependency */, - 4BACD65515BC303B00920691 /* PBXTargetDependency */, - 4BACD65715BC303B00920691 /* PBXTargetDependency */, - 4BACD65915BC303B00920691 /* PBXTargetDependency */, - 4BACD66915BC303B00920691 /* PBXTargetDependency */, - ); - name = "test programs"; - productName = "test programs"; - }; - 4BCF6A681C3BDDD500F036E9 /* examples */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 4BCF6A751C3BDDD500F036E9 /* Build configuration list for PBXAggregateTarget "examples" */; - buildPhases = ( - ); - dependencies = ( - 4BCF6A791C3BDDF900F036E9 /* PBXTargetDependency */, - ); - name = examples; - productName = examples; - }; - 4BDC72A115B1B6EA00236D3C /* Build iOS Framework */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 4BDC72A215B1B6EA00236D3C /* Build configuration list for PBXAggregateTarget "Build iOS Framework" */; - buildPhases = ( - 4BDC72A515B1B71500236D3C /* ShellScript */, - ); - dependencies = ( - ); - name = "Build iOS Framework"; - productName = "Build iOS Framework"; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXBuildFile section */ - 3D7E35431B33063F00022624 /* in-memory.c in Sources */ = {isa = PBXBuildFile; fileRef = 3D7E35401B33063600022624 /* in-memory.c */; }; - 3D7E35461B33064B00022624 /* libzip.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B01D68B15B2F3F1002D5007 /* libzip.framework */; }; - 3D7E35481B33076C00022624 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D7E35471B33076C00022624 /* libz.dylib */; }; - 3D7E35491B330AD500022624 /* zip_source_is_deleted.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BE402AC19D94AE400298248 /* zip_source_is_deleted.c */; }; - 3D7E354A1B330BCD00022624 /* zip_source_is_deleted.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BE402AC19D94AE400298248 /* zip_source_is_deleted.c */; }; - 3D9284811C309510001EABA7 /* zip_hash.c in Sources */ = {isa = PBXBuildFile; fileRef = 3D9284801C309510001EABA7 /* zip_hash.c */; }; - 3D9284821C309510001EABA7 /* zip_hash.c in Sources */ = {isa = PBXBuildFile; fileRef = 3D9284801C309510001EABA7 /* zip_hash.c */; }; - 4B01D6A615B2F46B002D5007 /* zip_add_dir.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71F115B1B25E00236D3C /* zip_add_dir.c */; }; - 4B01D6A715B2F46B002D5007 /* zip_add_entry.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71F215B1B25E00236D3C /* zip_add_entry.c */; }; - 4B01D6A815B2F46B002D5007 /* zip_add.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71F315B1B25E00236D3C /* zip_add.c */; }; - 4B01D6A915B2F46B002D5007 /* zip_close.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71F415B1B25E00236D3C /* zip_close.c */; }; - 4B01D6AA15B2F46B002D5007 /* zip_delete.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71F515B1B25E00236D3C /* zip_delete.c */; }; - 4B01D6AB15B2F46B002D5007 /* zip_dir_add.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71F615B1B25E00236D3C /* zip_dir_add.c */; }; - 4B01D6AC15B2F46B002D5007 /* zip_dirent.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71F715B1B25E00236D3C /* zip_dirent.c */; }; - 4B01D6AD15B2F46B002D5007 /* zip_discard.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71F815B1B25E00236D3C /* zip_discard.c */; }; - 4B01D6AE15B2F46B002D5007 /* zip_entry.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71F915B1B25E00236D3C /* zip_entry.c */; }; - 4B01D6AF15B2F46B002D5007 /* zip_err_str.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71FA15B1B25E00236D3C /* zip_err_str.c */; }; - 4B01D6B015B2F46B002D5007 /* zip_error_clear.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71FB15B1B25E00236D3C /* zip_error_clear.c */; }; - 4B01D6B115B2F46B002D5007 /* zip_error_get_sys_type.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71FC15B1B25E00236D3C /* zip_error_get_sys_type.c */; }; - 4B01D6B215B2F46B002D5007 /* zip_error_get.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71FD15B1B25E00236D3C /* zip_error_get.c */; }; - 4B01D6B315B2F46B002D5007 /* zip_error_strerror.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71FE15B1B25E00236D3C /* zip_error_strerror.c */; }; - 4B01D6B415B2F46B002D5007 /* zip_error_to_str.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71FF15B1B25E00236D3C /* zip_error_to_str.c */; }; - 4B01D6B515B2F46B002D5007 /* zip_error.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720015B1B25E00236D3C /* zip_error.c */; }; - 4B01D6B615B2F46B002D5007 /* zip_extra_field_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720115B1B25E00236D3C /* zip_extra_field_api.c */; }; - 4B01D6B715B2F46B002D5007 /* zip_extra_field.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720215B1B25E00236D3C /* zip_extra_field.c */; }; - 4B01D6B815B2F46B002D5007 /* zip_fclose.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720315B1B25E00236D3C /* zip_fclose.c */; }; - 4B01D6B915B2F46B002D5007 /* zip_fdopen.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720415B1B25E00236D3C /* zip_fdopen.c */; }; - 4B01D6BA15B2F46B002D5007 /* zip_file_add.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720515B1B25E00236D3C /* zip_file_add.c */; }; - 4B01D6BB15B2F46B002D5007 /* zip_file_error_clear.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720615B1B25E00236D3C /* zip_file_error_clear.c */; }; - 4B01D6BC15B2F46B002D5007 /* zip_file_error_get.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720715B1B25E00236D3C /* zip_file_error_get.c */; }; - 4B01D6BD15B2F46B002D5007 /* zip_file_get_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720815B1B25E00236D3C /* zip_file_get_comment.c */; }; - 4B01D6BE15B2F46B002D5007 /* zip_file_get_offset.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720915B1B25E00236D3C /* zip_file_get_offset.c */; }; - 4B01D6BF15B2F46B002D5007 /* zip_file_rename.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720A15B1B25E00236D3C /* zip_file_rename.c */; }; - 4B01D6C015B2F46B002D5007 /* zip_file_replace.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720B15B1B25E00236D3C /* zip_file_replace.c */; }; - 4B01D6C115B2F46B002D5007 /* zip_file_set_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720C15B1B25E00236D3C /* zip_file_set_comment.c */; }; - 4B01D6C215B2F46B002D5007 /* zip_file_strerror.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720D15B1B25E00236D3C /* zip_file_strerror.c */; }; - 4B01D6C315B2F46B002D5007 /* zip_filerange_crc.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720E15B1B25E00236D3C /* zip_filerange_crc.c */; }; - 4B01D6C415B2F46B002D5007 /* zip_fopen_encrypted.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720F15B1B25E00236D3C /* zip_fopen_encrypted.c */; }; - 4B01D6C515B2F46B002D5007 /* zip_fopen_index_encrypted.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721015B1B25E00236D3C /* zip_fopen_index_encrypted.c */; }; - 4B01D6C615B2F46B002D5007 /* zip_fopen_index.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721115B1B25E00236D3C /* zip_fopen_index.c */; }; - 4B01D6C715B2F46B002D5007 /* zip_fopen.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721215B1B25E00236D3C /* zip_fopen.c */; }; - 4B01D6C815B2F46B002D5007 /* zip_fread.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721315B1B25E00236D3C /* zip_fread.c */; }; - 4B01D6C915B2F46B002D5007 /* zip_get_archive_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721415B1B25E00236D3C /* zip_get_archive_comment.c */; }; - 4B01D6CA15B2F46B002D5007 /* zip_get_archive_flag.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721515B1B25E00236D3C /* zip_get_archive_flag.c */; }; - 4B01D6CB15B2F46B002D5007 /* zip_get_compression_implementation.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721615B1B25E00236D3C /* zip_get_compression_implementation.c */; }; - 4B01D6CC15B2F46B002D5007 /* zip_get_encryption_implementation.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721715B1B25E00236D3C /* zip_get_encryption_implementation.c */; }; - 4B01D6CD15B2F46B002D5007 /* zip_get_file_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721815B1B25E00236D3C /* zip_get_file_comment.c */; }; - 4B01D6CE15B2F46B002D5007 /* zip_get_name.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721915B1B25E00236D3C /* zip_get_name.c */; }; - 4B01D6CF15B2F46B002D5007 /* zip_get_num_entries.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721A15B1B25E00236D3C /* zip_get_num_entries.c */; }; - 4B01D6D015B2F46B002D5007 /* zip_get_num_files.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721B15B1B25E00236D3C /* zip_get_num_files.c */; }; - 4B01D6D115B2F46B002D5007 /* zip_memdup.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721C15B1B25E00236D3C /* zip_memdup.c */; }; - 4B01D6D215B2F46B002D5007 /* zip_name_locate.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721D15B1B25E00236D3C /* zip_name_locate.c */; }; - 4B01D6D315B2F46B002D5007 /* zip_new.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721E15B1B25E00236D3C /* zip_new.c */; }; - 4B01D6D415B2F46B002D5007 /* zip_open.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721F15B1B25E00236D3C /* zip_open.c */; }; - 4B01D6D515B2F46B002D5007 /* zip_rename.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722015B1B25E00236D3C /* zip_rename.c */; }; - 4B01D6D615B2F46B002D5007 /* zip_replace.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722115B1B25E00236D3C /* zip_replace.c */; }; - 4B01D6D715B2F46B002D5007 /* zip_set_archive_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722215B1B25E00236D3C /* zip_set_archive_comment.c */; }; - 4B01D6D815B2F46B002D5007 /* zip_set_archive_flag.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722315B1B25E00236D3C /* zip_set_archive_flag.c */; }; - 4B01D6D915B2F46B002D5007 /* zip_set_default_password.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722415B1B25E00236D3C /* zip_set_default_password.c */; }; - 4B01D6DA15B2F46B002D5007 /* zip_set_file_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722515B1B25E00236D3C /* zip_set_file_comment.c */; }; - 4B01D6DB15B2F46B002D5007 /* zip_set_file_compression.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722615B1B25E00236D3C /* zip_set_file_compression.c */; }; - 4B01D6DC15B2F46B002D5007 /* zip_set_name.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722715B1B25E00236D3C /* zip_set_name.c */; }; - 4B01D6DD15B2F46B002D5007 /* zip_source_buffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722815B1B25E00236D3C /* zip_source_buffer.c */; }; - 4B01D6DE15B2F46B002D5007 /* zip_source_close.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722915B1B25E00236D3C /* zip_source_close.c */; }; - 4B01D6DF15B2F46B002D5007 /* zip_source_crc.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722A15B1B25E00236D3C /* zip_source_crc.c */; }; - 4B01D6E015B2F46B002D5007 /* zip_source_deflate.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722B15B1B25E00236D3C /* zip_source_deflate.c */; }; - 4B01D6E115B2F46B002D5007 /* zip_source_error.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722C15B1B25E00236D3C /* zip_source_error.c */; }; - 4B01D6E215B2F46B002D5007 /* zip_source_file.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722D15B1B25E00236D3C /* zip_source_file.c */; }; - 4B01D6E315B2F46B002D5007 /* zip_source_filep.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722E15B1B25E00236D3C /* zip_source_filep.c */; }; - 4B01D6E415B2F46B002D5007 /* zip_source_free.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722F15B1B25E00236D3C /* zip_source_free.c */; }; - 4B01D6E515B2F46B002D5007 /* zip_source_function.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723015B1B25E00236D3C /* zip_source_function.c */; }; - 4B01D6E615B2F46B002D5007 /* zip_source_layered.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723115B1B25E00236D3C /* zip_source_layered.c */; }; - 4B01D6E715B2F46B002D5007 /* zip_source_open.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723215B1B25E00236D3C /* zip_source_open.c */; }; - 4B01D6E815B2F46B002D5007 /* zip_source_pkware.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723315B1B25E00236D3C /* zip_source_pkware.c */; }; - 4B01D6EA15B2F46B002D5007 /* zip_source_read.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723515B1B25E00236D3C /* zip_source_read.c */; }; - 4B01D6EB15B2F46B002D5007 /* zip_source_stat.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723615B1B25E00236D3C /* zip_source_stat.c */; }; - 4B01D6EC15B2F46B002D5007 /* zip_source_window.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723715B1B25E00236D3C /* zip_source_window.c */; }; - 4B01D6ED15B2F46B002D5007 /* zip_source_zip_new.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723815B1B25E00236D3C /* zip_source_zip_new.c */; }; - 4B01D6EE15B2F46B002D5007 /* zip_source_zip.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723915B1B25E00236D3C /* zip_source_zip.c */; }; - 4B01D6EF15B2F46B002D5007 /* zip_stat_index.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723A15B1B25E00236D3C /* zip_stat_index.c */; }; - 4B01D6F015B2F46B002D5007 /* zip_stat_init.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723B15B1B25E00236D3C /* zip_stat_init.c */; }; - 4B01D6F115B2F46B002D5007 /* zip_stat.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723C15B1B25E00236D3C /* zip_stat.c */; }; - 4B01D6F215B2F46B002D5007 /* zip_strerror.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723D15B1B25E00236D3C /* zip_strerror.c */; }; - 4B01D6F315B2F46B002D5007 /* zip_string.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723E15B1B25E00236D3C /* zip_string.c */; }; - 4B01D6F415B2F46B002D5007 /* zip_unchange_all.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723F15B1B25E00236D3C /* zip_unchange_all.c */; }; - 4B01D6F515B2F46B002D5007 /* zip_unchange_archive.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC724015B1B25E00236D3C /* zip_unchange_archive.c */; }; - 4B01D6F615B2F46B002D5007 /* zip_unchange_data.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC724115B1B25E00236D3C /* zip_unchange_data.c */; }; - 4B01D6F715B2F46B002D5007 /* zip_unchange.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC724215B1B25E00236D3C /* zip_unchange.c */; }; - 4B01D6F815B2F46B002D5007 /* zip_utf-8.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC724315B1B25E00236D3C /* zip_utf-8.c */; }; - 4B01D70715B2F4C5002D5007 /* libzip.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B01D68B15B2F3F1002D5007 /* libzip.framework */; }; - 4B01D70915B2F4CF002D5007 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B01D70815B2F4CF002D5007 /* libz.dylib */; }; - 4B01D70D15B2F4EB002D5007 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B01D70815B2F4CF002D5007 /* libz.dylib */; }; - 4B01D70E15B2F4EB002D5007 /* libzip.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B01D68B15B2F3F1002D5007 /* libzip.framework */; }; - 4B01D72515B2F57B002D5007 /* zipcmp.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B01D72115B2F572002D5007 /* zipcmp.c */; }; - 4B01D72615B2F57F002D5007 /* zipmerge.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B01D72215B2F572002D5007 /* zipmerge.c */; }; - 4B01D73215B2F5EE002D5007 /* zipconf.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BDC729E15B1B4E900236D3C /* zipconf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4B01D73415B2F5F4002D5007 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BDC72A015B1B56400236D3C /* config.h */; }; - 4B01D73C15B2F6AF002D5007 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B01D70815B2F4CF002D5007 /* libz.dylib */; }; - 4B3A5F501DF96EA8005A53A1 /* gladman-fcrypt.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B3A5F4B1DF96D83005A53A1 /* gladman-fcrypt.c */; }; - 4B3A5F511DF96EA9005A53A1 /* gladman-fcrypt.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B3A5F4B1DF96D83005A53A1 /* gladman-fcrypt.c */; }; - 4B3A5F521DF96EB4005A53A1 /* zip_fseek.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B3A5F4D1DF96D83005A53A1 /* zip_fseek.c */; }; - 4B3A5F531DF96EB4005A53A1 /* zip_ftell.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B3A5F4E1DF96D83005A53A1 /* zip_ftell.c */; }; - 4B3A5F541DF96EB5005A53A1 /* zip_fseek.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B3A5F4D1DF96D83005A53A1 /* zip_fseek.c */; }; - 4B3A5F551DF96EB5005A53A1 /* zip_ftell.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B3A5F4E1DF96D83005A53A1 /* zip_ftell.c */; }; - 4B82CED419915F360097BC18 /* zip_file_set_mtime.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B82CED319915F360097BC18 /* zip_file_set_mtime.c */; }; - 4B82CED519915F360097BC18 /* zip_file_set_mtime.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B82CED319915F360097BC18 /* zip_file_set_mtime.c */; }; - 4B97204F188EBE85002FAFAD /* zip_file_get_external_attributes.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B97204D188EBE85002FAFAD /* zip_file_get_external_attributes.c */; }; - 4B972050188EBE85002FAFAD /* zip_file_get_external_attributes.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B97204D188EBE85002FAFAD /* zip_file_get_external_attributes.c */; }; - 4B972051188EBE85002FAFAD /* zip_file_set_external_attributes.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B97204E188EBE85002FAFAD /* zip_file_set_external_attributes.c */; }; - 4B972052188EBE85002FAFAD /* zip_file_set_external_attributes.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B97204E188EBE85002FAFAD /* zip_file_set_external_attributes.c */; }; - 4BACD59315BC2CFA00920691 /* libzip.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B01D68B15B2F3F1002D5007 /* libzip.framework */; }; - 4BACD59415BC2D0800920691 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B01D70815B2F4CF002D5007 /* libz.dylib */; }; - 4BACD59515BC2D1C00920691 /* ziptool.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BACD57C15BC2AEF00920691 /* ziptool.c */; }; - 4BACD5BB15BC2DC900920691 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B01D70815B2F4CF002D5007 /* libz.dylib */; }; - 4BACD5BC15BC2DC900920691 /* libzip.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B01D68B15B2F3F1002D5007 /* libzip.framework */; }; - 4BACD5C315BC2DE000920691 /* add_from_filep.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BACD57715BC2AEF00920691 /* add_from_filep.c */; }; - 4BACD5CA15BC2DF200920691 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B01D70815B2F4CF002D5007 /* libz.dylib */; }; - 4BACD5CB15BC2DF200920691 /* libzip.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B01D68B15B2F3F1002D5007 /* libzip.framework */; }; - 4BACD5D215BC2EFE00920691 /* fopen_unchanged.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BACD57A15BC2AEF00920691 /* fopen_unchanged.c */; }; - 4BACD5D915BC2F3700920691 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B01D70815B2F4CF002D5007 /* libz.dylib */; }; - 4BACD5DA15BC2F3700920691 /* libzip.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B01D68B15B2F3F1002D5007 /* libzip.framework */; }; - 4BACD5E115BC2F4500920691 /* fread.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BACD57B15BC2AEF00920691 /* fread.c */; }; - 4BACD64A15BC301300920691 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B01D70815B2F4CF002D5007 /* libz.dylib */; }; - 4BACD64B15BC301300920691 /* libzip.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B01D68B15B2F3F1002D5007 /* libzip.framework */; }; - 4BACD65315BC302500920691 /* tryopen.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BACD58415BC2AEF00920691 /* tryopen.c */; }; - 4BCB434219E9347E0067FAA3 /* zip_buffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCB434119E9347E0067FAA3 /* zip_buffer.c */; }; - 4BCB434319E9347E0067FAA3 /* zip_buffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCB434119E9347E0067FAA3 /* zip_buffer.c */; }; - 4BCF3021199A2F820064207B /* zip_io_util.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF3019199A2F820064207B /* zip_io_util.c */; }; - 4BCF3022199A2F820064207B /* zip_io_util.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF3019199A2F820064207B /* zip_io_util.c */; }; - 4BCF3023199A2F820064207B /* zip_source_begin_write.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF301A199A2F820064207B /* zip_source_begin_write.c */; }; - 4BCF3024199A2F820064207B /* zip_source_begin_write.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF301A199A2F820064207B /* zip_source_begin_write.c */; }; - 4BCF3025199A2F820064207B /* zip_source_commit_write.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF301B199A2F820064207B /* zip_source_commit_write.c */; }; - 4BCF3026199A2F820064207B /* zip_source_commit_write.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF301B199A2F820064207B /* zip_source_commit_write.c */; }; - 4BCF3027199A2F820064207B /* zip_source_rollback_write.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF301C199A2F820064207B /* zip_source_rollback_write.c */; }; - 4BCF3028199A2F820064207B /* zip_source_rollback_write.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF301C199A2F820064207B /* zip_source_rollback_write.c */; }; - 4BCF3029199A2F820064207B /* zip_source_seek.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF301D199A2F820064207B /* zip_source_seek.c */; }; - 4BCF302A199A2F820064207B /* zip_source_seek.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF301D199A2F820064207B /* zip_source_seek.c */; }; - 4BCF302B199A2F820064207B /* zip_source_supports.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF301E199A2F820064207B /* zip_source_supports.c */; }; - 4BCF302C199A2F820064207B /* zip_source_supports.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF301E199A2F820064207B /* zip_source_supports.c */; }; - 4BCF302D199A2F820064207B /* zip_source_tell.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF301F199A2F820064207B /* zip_source_tell.c */; }; - 4BCF302E199A2F820064207B /* zip_source_tell.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF301F199A2F820064207B /* zip_source_tell.c */; }; - 4BCF302F199A2F820064207B /* zip_source_write.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF3020199A2F820064207B /* zip_source_write.c */; }; - 4BCF3030199A2F820064207B /* zip_source_write.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF3020199A2F820064207B /* zip_source_write.c */; }; - 4BCF3032199ABD3A0064207B /* zip_source_remove.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF3031199ABD3A0064207B /* zip_source_remove.c */; }; - 4BCF3033199ABD3A0064207B /* zip_source_remove.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF3031199ABD3A0064207B /* zip_source_remove.c */; }; - 4BCF3036199ABDDA0064207B /* zip_source_seek_write.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF3034199ABDDA0064207B /* zip_source_seek_write.c */; }; - 4BCF3037199ABDDA0064207B /* zip_source_seek_write.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF3034199ABDDA0064207B /* zip_source_seek_write.c */; }; - 4BCF3038199ABDDA0064207B /* zip_source_tell_write.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF3035199ABDDA0064207B /* zip_source_tell_write.c */; }; - 4BCF3039199ABDDA0064207B /* zip_source_tell_write.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF3035199ABDDA0064207B /* zip_source_tell_write.c */; }; - 4BD5053319A0116D007DD28A /* zip_source_call.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BD5053219A0116D007DD28A /* zip_source_call.c */; }; - 4BD5053419A01BB0007DD28A /* zip_source_call.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BD5053219A0116D007DD28A /* zip_source_call.c */; }; - 4BD6CB5D19E6A5D900710654 /* source_hole.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BD6CB5C19E6A5D900710654 /* source_hole.c */; }; - 4BD6CB6419E71CD100710654 /* source_hole.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BD6CB5C19E6A5D900710654 /* source_hole.c */; }; - 4BD6CB6619E71CD100710654 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B01D70815B2F4CF002D5007 /* libz.dylib */; }; - 4BD6CB6719E71CD100710654 /* libzip.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B01D68B15B2F3F1002D5007 /* libzip.framework */; }; - 4BD6CB6F19E71D6900710654 /* hole.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BD6CB5E19E71B3B00710654 /* hole.c */; }; - 4BDC724415B1B25E00236D3C /* zip_add_dir.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71F115B1B25E00236D3C /* zip_add_dir.c */; }; - 4BDC724515B1B25E00236D3C /* zip_add_entry.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71F215B1B25E00236D3C /* zip_add_entry.c */; }; - 4BDC724615B1B25E00236D3C /* zip_add.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71F315B1B25E00236D3C /* zip_add.c */; }; - 4BDC724715B1B25E00236D3C /* zip_close.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71F415B1B25E00236D3C /* zip_close.c */; }; - 4BDC724815B1B25E00236D3C /* zip_delete.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71F515B1B25E00236D3C /* zip_delete.c */; }; - 4BDC724915B1B25E00236D3C /* zip_dir_add.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71F615B1B25E00236D3C /* zip_dir_add.c */; }; - 4BDC724A15B1B25E00236D3C /* zip_dirent.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71F715B1B25E00236D3C /* zip_dirent.c */; }; - 4BDC724B15B1B25E00236D3C /* zip_discard.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71F815B1B25E00236D3C /* zip_discard.c */; }; - 4BDC724C15B1B25E00236D3C /* zip_entry.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71F915B1B25E00236D3C /* zip_entry.c */; }; - 4BDC724D15B1B25E00236D3C /* zip_err_str.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71FA15B1B25E00236D3C /* zip_err_str.c */; }; - 4BDC724E15B1B25E00236D3C /* zip_error_clear.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71FB15B1B25E00236D3C /* zip_error_clear.c */; }; - 4BDC724F15B1B25E00236D3C /* zip_error_get_sys_type.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71FC15B1B25E00236D3C /* zip_error_get_sys_type.c */; }; - 4BDC725015B1B25E00236D3C /* zip_error_get.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71FD15B1B25E00236D3C /* zip_error_get.c */; }; - 4BDC725115B1B25E00236D3C /* zip_error_strerror.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71FE15B1B25E00236D3C /* zip_error_strerror.c */; }; - 4BDC725215B1B25E00236D3C /* zip_error_to_str.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC71FF15B1B25E00236D3C /* zip_error_to_str.c */; }; - 4BDC725315B1B25E00236D3C /* zip_error.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720015B1B25E00236D3C /* zip_error.c */; }; - 4BDC725415B1B25E00236D3C /* zip_extra_field_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720115B1B25E00236D3C /* zip_extra_field_api.c */; }; - 4BDC725515B1B25E00236D3C /* zip_extra_field.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720215B1B25E00236D3C /* zip_extra_field.c */; }; - 4BDC725615B1B25E00236D3C /* zip_fclose.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720315B1B25E00236D3C /* zip_fclose.c */; }; - 4BDC725715B1B25E00236D3C /* zip_fdopen.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720415B1B25E00236D3C /* zip_fdopen.c */; }; - 4BDC725815B1B25E00236D3C /* zip_file_add.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720515B1B25E00236D3C /* zip_file_add.c */; }; - 4BDC725915B1B25E00236D3C /* zip_file_error_clear.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720615B1B25E00236D3C /* zip_file_error_clear.c */; }; - 4BDC725A15B1B25E00236D3C /* zip_file_error_get.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720715B1B25E00236D3C /* zip_file_error_get.c */; }; - 4BDC725B15B1B25E00236D3C /* zip_file_get_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720815B1B25E00236D3C /* zip_file_get_comment.c */; }; - 4BDC725C15B1B25E00236D3C /* zip_file_get_offset.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720915B1B25E00236D3C /* zip_file_get_offset.c */; }; - 4BDC725D15B1B25E00236D3C /* zip_file_rename.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720A15B1B25E00236D3C /* zip_file_rename.c */; }; - 4BDC725E15B1B25E00236D3C /* zip_file_replace.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720B15B1B25E00236D3C /* zip_file_replace.c */; }; - 4BDC725F15B1B25E00236D3C /* zip_file_set_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720C15B1B25E00236D3C /* zip_file_set_comment.c */; }; - 4BDC726015B1B25E00236D3C /* zip_file_strerror.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720D15B1B25E00236D3C /* zip_file_strerror.c */; }; - 4BDC726115B1B25E00236D3C /* zip_filerange_crc.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720E15B1B25E00236D3C /* zip_filerange_crc.c */; }; - 4BDC726215B1B25E00236D3C /* zip_fopen_encrypted.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC720F15B1B25E00236D3C /* zip_fopen_encrypted.c */; }; - 4BDC726315B1B25E00236D3C /* zip_fopen_index_encrypted.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721015B1B25E00236D3C /* zip_fopen_index_encrypted.c */; }; - 4BDC726415B1B25E00236D3C /* zip_fopen_index.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721115B1B25E00236D3C /* zip_fopen_index.c */; }; - 4BDC726515B1B25E00236D3C /* zip_fopen.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721215B1B25E00236D3C /* zip_fopen.c */; }; - 4BDC726615B1B25E00236D3C /* zip_fread.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721315B1B25E00236D3C /* zip_fread.c */; }; - 4BDC726715B1B25E00236D3C /* zip_get_archive_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721415B1B25E00236D3C /* zip_get_archive_comment.c */; }; - 4BDC726815B1B25E00236D3C /* zip_get_archive_flag.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721515B1B25E00236D3C /* zip_get_archive_flag.c */; }; - 4BDC726915B1B25E00236D3C /* zip_get_compression_implementation.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721615B1B25E00236D3C /* zip_get_compression_implementation.c */; }; - 4BDC726A15B1B25E00236D3C /* zip_get_encryption_implementation.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721715B1B25E00236D3C /* zip_get_encryption_implementation.c */; }; - 4BDC726B15B1B25E00236D3C /* zip_get_file_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721815B1B25E00236D3C /* zip_get_file_comment.c */; }; - 4BDC726C15B1B25E00236D3C /* zip_get_name.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721915B1B25E00236D3C /* zip_get_name.c */; }; - 4BDC726D15B1B25E00236D3C /* zip_get_num_entries.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721A15B1B25E00236D3C /* zip_get_num_entries.c */; }; - 4BDC726E15B1B25E00236D3C /* zip_get_num_files.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721B15B1B25E00236D3C /* zip_get_num_files.c */; }; - 4BDC726F15B1B25E00236D3C /* zip_memdup.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721C15B1B25E00236D3C /* zip_memdup.c */; }; - 4BDC727015B1B25E00236D3C /* zip_name_locate.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721D15B1B25E00236D3C /* zip_name_locate.c */; }; - 4BDC727115B1B25E00236D3C /* zip_new.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721E15B1B25E00236D3C /* zip_new.c */; }; - 4BDC727215B1B25E00236D3C /* zip_open.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC721F15B1B25E00236D3C /* zip_open.c */; }; - 4BDC727315B1B25E00236D3C /* zip_rename.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722015B1B25E00236D3C /* zip_rename.c */; }; - 4BDC727415B1B25E00236D3C /* zip_replace.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722115B1B25E00236D3C /* zip_replace.c */; }; - 4BDC727515B1B25E00236D3C /* zip_set_archive_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722215B1B25E00236D3C /* zip_set_archive_comment.c */; }; - 4BDC727615B1B25E00236D3C /* zip_set_archive_flag.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722315B1B25E00236D3C /* zip_set_archive_flag.c */; }; - 4BDC727715B1B25E00236D3C /* zip_set_default_password.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722415B1B25E00236D3C /* zip_set_default_password.c */; }; - 4BDC727815B1B25E00236D3C /* zip_set_file_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722515B1B25E00236D3C /* zip_set_file_comment.c */; }; - 4BDC727915B1B25E00236D3C /* zip_set_file_compression.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722615B1B25E00236D3C /* zip_set_file_compression.c */; }; - 4BDC727A15B1B25E00236D3C /* zip_set_name.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722715B1B25E00236D3C /* zip_set_name.c */; }; - 4BDC727B15B1B25E00236D3C /* zip_source_buffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722815B1B25E00236D3C /* zip_source_buffer.c */; }; - 4BDC727C15B1B25E00236D3C /* zip_source_close.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722915B1B25E00236D3C /* zip_source_close.c */; }; - 4BDC727D15B1B25E00236D3C /* zip_source_crc.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722A15B1B25E00236D3C /* zip_source_crc.c */; }; - 4BDC727E15B1B25E00236D3C /* zip_source_deflate.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722B15B1B25E00236D3C /* zip_source_deflate.c */; }; - 4BDC727F15B1B25E00236D3C /* zip_source_error.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722C15B1B25E00236D3C /* zip_source_error.c */; }; - 4BDC728015B1B25E00236D3C /* zip_source_file.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722D15B1B25E00236D3C /* zip_source_file.c */; }; - 4BDC728115B1B25E00236D3C /* zip_source_filep.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722E15B1B25E00236D3C /* zip_source_filep.c */; }; - 4BDC728215B1B25E00236D3C /* zip_source_free.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC722F15B1B25E00236D3C /* zip_source_free.c */; }; - 4BDC728315B1B25E00236D3C /* zip_source_function.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723015B1B25E00236D3C /* zip_source_function.c */; }; - 4BDC728415B1B25E00236D3C /* zip_source_layered.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723115B1B25E00236D3C /* zip_source_layered.c */; }; - 4BDC728515B1B25E00236D3C /* zip_source_open.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723215B1B25E00236D3C /* zip_source_open.c */; }; - 4BDC728615B1B25E00236D3C /* zip_source_pkware.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723315B1B25E00236D3C /* zip_source_pkware.c */; }; - 4BDC728815B1B25E00236D3C /* zip_source_read.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723515B1B25E00236D3C /* zip_source_read.c */; }; - 4BDC728915B1B25E00236D3C /* zip_source_stat.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723615B1B25E00236D3C /* zip_source_stat.c */; }; - 4BDC728A15B1B25E00236D3C /* zip_source_window.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723715B1B25E00236D3C /* zip_source_window.c */; }; - 4BDC728B15B1B25E00236D3C /* zip_source_zip_new.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723815B1B25E00236D3C /* zip_source_zip_new.c */; }; - 4BDC728C15B1B25E00236D3C /* zip_source_zip.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723915B1B25E00236D3C /* zip_source_zip.c */; }; - 4BDC728D15B1B25E00236D3C /* zip_stat_index.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723A15B1B25E00236D3C /* zip_stat_index.c */; }; - 4BDC728E15B1B25E00236D3C /* zip_stat_init.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723B15B1B25E00236D3C /* zip_stat_init.c */; }; - 4BDC728F15B1B25E00236D3C /* zip_stat.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723C15B1B25E00236D3C /* zip_stat.c */; }; - 4BDC729015B1B25E00236D3C /* zip_strerror.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723D15B1B25E00236D3C /* zip_strerror.c */; }; - 4BDC729115B1B25E00236D3C /* zip_string.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723E15B1B25E00236D3C /* zip_string.c */; }; - 4BDC729215B1B25E00236D3C /* zip_unchange_all.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC723F15B1B25E00236D3C /* zip_unchange_all.c */; }; - 4BDC729315B1B25E00236D3C /* zip_unchange_archive.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC724015B1B25E00236D3C /* zip_unchange_archive.c */; }; - 4BDC729415B1B25E00236D3C /* zip_unchange_data.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC724115B1B25E00236D3C /* zip_unchange_data.c */; }; - 4BDC729515B1B25E00236D3C /* zip_unchange.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC724215B1B25E00236D3C /* zip_unchange.c */; }; - 4BDC729615B1B25E00236D3C /* zip_utf-8.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BDC724315B1B25E00236D3C /* zip_utf-8.c */; }; - 4BDC729B15B1B2C400236D3C /* zip.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BDC729815B1B2A600236D3C /* zip.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4BDC729F15B1B4E900236D3C /* zipconf.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BDC729E15B1B4E900236D3C /* zipconf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 736ED9BB1E3D6B6B00C36873 /* zip_source_winzip_aes_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = 736ED9B91E3D688C00C36873 /* zip_source_winzip_aes_decode.c */; }; - 736ED9BC1E3D6B6F00C36873 /* zip_source_winzip_aes_encode.c in Sources */ = {isa = PBXBuildFile; fileRef = 736ED9BA1E3D688C00C36873 /* zip_source_winzip_aes_encode.c */; }; - 736ED9BD1E3D6B7200C36873 /* zip_random_unix.c in Sources */ = {isa = PBXBuildFile; fileRef = 736ED9B81E3D688C00C36873 /* zip_random_unix.c */; }; - 736ED9BE1E3D6B7C00C36873 /* zip_file_set_encryption.c in Sources */ = {isa = PBXBuildFile; fileRef = 736ED9B71E3D688C00C36873 /* zip_file_set_encryption.c */; }; - 736ED9BF1E3D6B7C00C36873 /* zip_file_set_encryption.c in Sources */ = {isa = PBXBuildFile; fileRef = 736ED9B71E3D688C00C36873 /* zip_file_set_encryption.c */; }; - 736ED9C01E3D6B8000C36873 /* zip_random_unix.c in Sources */ = {isa = PBXBuildFile; fileRef = 736ED9B81E3D688C00C36873 /* zip_random_unix.c */; }; - 736ED9C11E3D6B8300C36873 /* zip_source_winzip_aes_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = 736ED9B91E3D688C00C36873 /* zip_source_winzip_aes_decode.c */; }; - 736ED9C21E3D6B8600C36873 /* zip_source_winzip_aes_encode.c in Sources */ = {isa = PBXBuildFile; fileRef = 736ED9BA1E3D688C00C36873 /* zip_source_winzip_aes_encode.c */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 3D7E35441B33064500022624 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4B01D68A15B2F3F1002D5007; - remoteInfo = libzip; - }; - 4B01D72C15B2F5AC002D5007 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4B01D6FC15B2F4B1002D5007; - remoteInfo = zipmerge; - }; - 4B01D72E15B2F5AC002D5007 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4B01D70A15B2F4EB002D5007; - remoteInfo = zipcmp; - }; - 4B01D73515B2F639002D5007 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4B01D68A15B2F3F1002D5007; - remoteInfo = "libzip Mac"; - }; - 4B01D73715B2F643002D5007 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4B01D68A15B2F3F1002D5007; - remoteInfo = "libzip Mac"; - }; - 4B2CADAB1C50D57800291DE6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4BACD58815BC2CEA00920691; - remoteInfo = ziptool; - }; - 4B54447E15C977AF0067BA33 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4B01D72815B2F5A2002D5007; - remoteInfo = "command line tools"; - }; - 4B54448015C977B10067BA33 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4BACD5A715BC2D8200920691; - remoteInfo = "test programs"; - }; - 4BACD59615BC2D3800920691 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4B01D68A15B2F3F1002D5007; - remoteInfo = "libzip Mac"; - }; - 4BACD5B715BC2DC900920691 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4B01D68A15B2F3F1002D5007; - remoteInfo = "libzip Mac"; - }; - 4BACD5C615BC2DF200920691 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4B01D68A15B2F3F1002D5007; - remoteInfo = "libzip Mac"; - }; - 4BACD5D515BC2F3700920691 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4B01D68A15B2F3F1002D5007; - remoteInfo = "libzip Mac"; - }; - 4BACD64715BC301300920691 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4B01D68A15B2F3F1002D5007; - remoteInfo = "libzip Mac"; - }; - 4BACD65415BC303B00920691 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4BACD5B515BC2DC900920691; - remoteInfo = add_from_filep; - }; - 4BACD65615BC303B00920691 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4BACD5C415BC2DF200920691; - remoteInfo = fopen_unchanged; - }; - 4BACD65815BC303B00920691 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4BACD5D315BC2F3700920691; - remoteInfo = fread; - }; - 4BACD66815BC303B00920691 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4BACD64515BC301300920691; - remoteInfo = tryopen; - }; - 4BCF6A781C3BDDF900F036E9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3D7E35361B3305FB00022624; - remoteInfo = "in-memory"; - }; - 4BCF6A7A1C3BDDFF00F036E9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4BCF6A681C3BDDD500F036E9; - remoteInfo = examples; - }; - 4BD6CB6119E71CD100710654 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4B01D68A15B2F3F1002D5007; - remoteInfo = "libzip Mac"; - }; - 4BD6CB6D19E71D0800710654 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BDC71BF15B181DA00236D3C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4BD6CB5F19E71CD100710654; - remoteInfo = hole; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 3D7E35351B3305FB00022624 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; - 4B01D6FB15B2F4B1002D5007 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; - 4B01D70F15B2F4EB002D5007 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; - 4BACD58715BC2CEA00920691 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BACD5BD15BC2DC900920691 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BACD5CC15BC2DF200920691 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BACD5DB15BC2F3700920691 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BACD64C15BC301300920691 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BD6CB6819E71CD100710654 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 3D77B86517009AA1000A5794 /* extract-version.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "extract-version.sh"; sourceTree = SOURCE_ROOT; }; - 3D7E35371B3305FB00022624 /* in-memory */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "in-memory"; sourceTree = BUILT_PRODUCTS_DIR; }; - 3D7E35401B33063600022624 /* in-memory.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "in-memory.c"; sourceTree = ""; }; - 3D7E35421B33063600022624 /* windows-open.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "windows-open.c"; sourceTree = ""; }; - 3D7E35471B33076C00022624 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; - 3D9284801C309510001EABA7 /* zip_hash.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_hash.c; sourceTree = ""; }; - 4B01D68B15B2F3F1002D5007 /* libzip.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = libzip.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 4B01D6FD15B2F4B1002D5007 /* zipmerge */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = zipmerge; sourceTree = BUILT_PRODUCTS_DIR; }; - 4B01D70815B2F4CF002D5007 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/lib/libz.dylib; sourceTree = DEVELOPER_DIR; }; - 4B01D71315B2F4EB002D5007 /* zipcmp */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = zipcmp; sourceTree = BUILT_PRODUCTS_DIR; }; - 4B01D72115B2F572002D5007 /* zipcmp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zipcmp.c; sourceTree = ""; }; - 4B01D72215B2F572002D5007 /* zipmerge.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zipmerge.c; sourceTree = ""; }; - 4B01D73D15B2FB6B002D5007 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = SOURCE_ROOT; }; - 4B1ABD1A1A2E5DA700C93867 /* links */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = links; sourceTree = ""; }; - 4B1ABD1B1A2E5E4D00C93867 /* handle_links */ = {isa = PBXFileReference; explicitFileType = text.script.perl; fileEncoding = 4; path = handle_links; sourceTree = ""; }; - 4B1E46E51A08CB7600A376D2 /* zip_error_code_system.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_error_code_system.mdoc; sourceTree = ""; }; - 4B1E46E61A08CB7600A376D2 /* zip_error_code_zip.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_error_code_zip.mdoc; sourceTree = ""; }; - 4B1E46E71A08CB7600A376D2 /* zip_error_fini.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_error_fini.mdoc; sourceTree = ""; }; - 4B1E46E81A08CB7600A376D2 /* zip_error_init.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_error_init.mdoc; sourceTree = ""; }; - 4B1E46E91A08CB7600A376D2 /* zip_error_set.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_error_set.mdoc; sourceTree = ""; }; - 4B1E46EA1A08CB7600A376D2 /* zip_error_strerror.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_error_strerror.mdoc; sourceTree = ""; }; - 4B1E46EB1A08CB7600A376D2 /* zip_error_system_type.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_error_system_type.mdoc; sourceTree = ""; }; - 4B26FF141A07DF1A000E9788 /* Makefile.am */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; indentWidth = 8; path = Makefile.am; sourceTree = ""; usesTabs = 1; }; - 4B26FF151A07DF1A000E9788 /* zip_file_get_external_attributes.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_file_get_external_attributes.mdoc; sourceTree = ""; }; - 4B26FF161A07DF1A000E9788 /* zip_file_set_external_attributes.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_file_set_external_attributes.mdoc; sourceTree = ""; }; - 4B26FF171A07DF1A000E9788 /* zip_file_set_mtime.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_file_set_mtime.mdoc; sourceTree = ""; }; - 4B26FF181A07DFEA000E9788 /* mkdocset.pl */ = {isa = PBXFileReference; lastKnownFileType = text.script.perl; path = mkdocset.pl; sourceTree = ""; }; - 4B28A9EC15BACC3900D0C17D /* libzip.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = libzip.mdoc; sourceTree = ""; }; - 4B28A9ED15BACC3900D0C17D /* zip_add_dir.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_add_dir.mdoc; sourceTree = ""; }; - 4B28A9EE15BACC3900D0C17D /* zip_add.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_add.mdoc; sourceTree = ""; }; - 4B28A9EF15BACC3900D0C17D /* zip_close.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_close.mdoc; sourceTree = ""; }; - 4B28A9F015BACC3900D0C17D /* zip_delete.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_delete.mdoc; sourceTree = ""; }; - 4B28A9F115BACC3900D0C17D /* zip_dir_add.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_dir_add.mdoc; sourceTree = ""; }; - 4B28A9F215BACC3900D0C17D /* zip_discard.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_discard.mdoc; sourceTree = ""; }; - 4B28A9F315BACC3900D0C17D /* zip_error_clear.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_error_clear.mdoc; sourceTree = ""; }; - 4B28A9F415BACC3900D0C17D /* zip_error_get_sys_type.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_error_get_sys_type.mdoc; sourceTree = ""; }; - 4B28A9F515BACC3900D0C17D /* zip_error_get.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_error_get.mdoc; sourceTree = ""; }; - 4B28A9F615BACC3900D0C17D /* zip_error_to_str.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_error_to_str.mdoc; sourceTree = ""; }; - 4B28A9F715BACC3900D0C17D /* zip_errors.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_errors.mdoc; sourceTree = ""; }; - 4B28A9F815BACC3900D0C17D /* zip_fclose.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_fclose.mdoc; sourceTree = ""; }; - 4B28A9F915BACC3900D0C17D /* zip_fdopen.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_fdopen.mdoc; sourceTree = ""; }; - 4B28A9FA15BACC3900D0C17D /* zip_file_add.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_file_add.mdoc; sourceTree = ""; }; - 4B28A9FB15BACC3900D0C17D /* zip_file_extra_field_delete.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_file_extra_field_delete.mdoc; sourceTree = ""; }; - 4B28A9FC15BACC3900D0C17D /* zip_file_extra_field_get.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_file_extra_field_get.mdoc; sourceTree = ""; }; - 4B28A9FD15BACC3900D0C17D /* zip_file_extra_field_set.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_file_extra_field_set.mdoc; sourceTree = ""; }; - 4B28A9FE15BACC3900D0C17D /* zip_file_extra_fields_count.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_file_extra_fields_count.mdoc; sourceTree = ""; }; - 4B28A9FF15BACC3900D0C17D /* zip_file_get_comment.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_file_get_comment.mdoc; sourceTree = ""; }; - 4B28AA0015BACC3900D0C17D /* zip_file_rename.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_file_rename.mdoc; sourceTree = ""; }; - 4B28AA0115BACC3900D0C17D /* zip_file_set_comment.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_file_set_comment.mdoc; sourceTree = ""; }; - 4B28AA0215BACC3900D0C17D /* zip_file_strerror.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_file_strerror.mdoc; sourceTree = ""; }; - 4B28AA0315BACC3900D0C17D /* zip_fopen_encrypted.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_fopen_encrypted.mdoc; sourceTree = ""; }; - 4B28AA0415BACC3900D0C17D /* zip_fopen.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_fopen.mdoc; sourceTree = ""; }; - 4B28AA0515BACC3900D0C17D /* zip_fread.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_fread.mdoc; sourceTree = ""; }; - 4B28AA0615BACC3900D0C17D /* zip_get_archive_comment.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_get_archive_comment.mdoc; sourceTree = ""; }; - 4B28AA0715BACC3900D0C17D /* zip_get_archive_flag.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_get_archive_flag.mdoc; sourceTree = ""; }; - 4B28AA0815BACC3900D0C17D /* zip_get_file_comment.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_get_file_comment.mdoc; sourceTree = ""; }; - 4B28AA0915BACC3900D0C17D /* zip_get_name.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_get_name.mdoc; sourceTree = ""; }; - 4B28AA0A15BACC3900D0C17D /* zip_get_num_entries.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_get_num_entries.mdoc; sourceTree = ""; }; - 4B28AA0B15BACC3900D0C17D /* zip_get_num_files.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_get_num_files.mdoc; sourceTree = ""; }; - 4B28AA0C15BACC3900D0C17D /* zip_name_locate.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_name_locate.mdoc; sourceTree = ""; }; - 4B28AA0D15BACC3900D0C17D /* zip_open.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_open.mdoc; sourceTree = ""; }; - 4B28AA0E15BACC3900D0C17D /* zip_rename.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_rename.mdoc; sourceTree = ""; }; - 4B28AA0F15BACC3900D0C17D /* zip_set_archive_comment.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_set_archive_comment.mdoc; sourceTree = ""; }; - 4B28AA1015BACC3900D0C17D /* zip_set_archive_flag.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_set_archive_flag.mdoc; sourceTree = ""; }; - 4B28AA1115BACC3900D0C17D /* zip_set_default_password.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_set_default_password.mdoc; sourceTree = ""; }; - 4B28AA1215BACC3900D0C17D /* zip_set_file_comment.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_set_file_comment.mdoc; sourceTree = ""; }; - 4B28AA1315BACC3900D0C17D /* zip_set_file_compression.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_set_file_compression.mdoc; sourceTree = ""; }; - 4B28AA1415BACC3900D0C17D /* zip_source_buffer.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_buffer.mdoc; sourceTree = ""; }; - 4B28AA1515BACC3900D0C17D /* zip_source_file.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_file.mdoc; sourceTree = ""; }; - 4B28AA1615BACC3900D0C17D /* zip_source_filep.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_filep.mdoc; sourceTree = ""; }; - 4B28AA1715BACC3900D0C17D /* zip_source_free.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_free.mdoc; sourceTree = ""; }; - 4B28AA1815BACC3900D0C17D /* zip_source_function.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_function.mdoc; sourceTree = ""; }; - 4B28AA1915BACC3900D0C17D /* zip_source_zip.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_zip.mdoc; sourceTree = ""; }; - 4B28AA1A15BACC3900D0C17D /* zip_stat_init.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_stat_init.mdoc; sourceTree = ""; }; - 4B28AA1B15BACC3900D0C17D /* zip_stat.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_stat.mdoc; sourceTree = ""; }; - 4B28AA1C15BACC3900D0C17D /* zip_unchange_all.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_unchange_all.mdoc; sourceTree = ""; }; - 4B28AA1D15BACC3900D0C17D /* zip_unchange_archive.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_unchange_archive.mdoc; sourceTree = ""; }; - 4B28AA1E15BACC3900D0C17D /* zip_unchange.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_unchange.mdoc; sourceTree = ""; }; - 4B28AA1F15BACC3900D0C17D /* zipcmp.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zipcmp.mdoc; sourceTree = ""; }; - 4B28AA2015BACC3900D0C17D /* zipmerge.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zipmerge.mdoc; sourceTree = ""; }; - 4B28AA2115BACC3900D0C17D /* ziptorrent.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = ziptorrent.mdoc; sourceTree = ""; }; - 4B28AA2215BAD4E200D0C17D /* API-CHANGES */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "API-CHANGES"; sourceTree = ""; }; - 4B28AA2315BAD4E200D0C17D /* AUTHORS */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AUTHORS; sourceTree = ""; }; - 4B28AA2415BAD4E200D0C17D /* NEWS */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = NEWS; sourceTree = ""; }; - 4B28AA2515BAD4E200D0C17D /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = ""; }; - 4B28AA2615BAD4E200D0C17D /* THANKS */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = THANKS; sourceTree = ""; }; - 4B28AA2715BAD4E200D0C17D /* TODO */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TODO; sourceTree = ""; }; - 4B3A5F4A1DF96D83005A53A1 /* gladman-fcrypt */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "gladman-fcrypt"; sourceTree = ""; }; - 4B3A5F4B1DF96D83005A53A1 /* gladman-fcrypt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "gladman-fcrypt.c"; sourceTree = ""; }; - 4B3A5F4C1DF96D83005A53A1 /* gladman-fcrypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gladman-fcrypt.h"; sourceTree = ""; }; - 4B3A5F4D1DF96D83005A53A1 /* zip_fseek.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_fseek.c; sourceTree = ""; }; - 4B3A5F4E1DF96D83005A53A1 /* zip_ftell.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_ftell.c; sourceTree = ""; }; - 4B82CED319915F360097BC18 /* zip_file_set_mtime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_file_set_mtime.c; sourceTree = ""; }; - 4B97204D188EBE85002FAFAD /* zip_file_get_external_attributes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_file_get_external_attributes.c; sourceTree = ""; }; - 4B97204E188EBE85002FAFAD /* zip_file_set_external_attributes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_file_set_external_attributes.c; sourceTree = ""; }; - 4BACD57715BC2AEF00920691 /* add_from_filep.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = add_from_filep.c; path = ../regress/add_from_filep.c; sourceTree = ""; }; - 4BACD57A15BC2AEF00920691 /* fopen_unchanged.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = fopen_unchanged.c; path = ../regress/fopen_unchanged.c; sourceTree = ""; }; - 4BACD57B15BC2AEF00920691 /* fread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = fread.c; path = ../regress/fread.c; sourceTree = ""; }; - 4BACD57C15BC2AEF00920691 /* ziptool.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ziptool.c; sourceTree = ""; }; - 4BACD58415BC2AEF00920691 /* tryopen.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = tryopen.c; path = ../regress/tryopen.c; sourceTree = ""; }; - 4BACD58915BC2CEA00920691 /* ziptool */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = ziptool; sourceTree = BUILT_PRODUCTS_DIR; }; - 4BACD5C115BC2DC900920691 /* add_from_filep */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = add_from_filep; sourceTree = BUILT_PRODUCTS_DIR; }; - 4BACD5D015BC2DF200920691 /* fopen_unchanged */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = fopen_unchanged; sourceTree = BUILT_PRODUCTS_DIR; }; - 4BACD5DF15BC2F3700920691 /* fread */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = fread; sourceTree = BUILT_PRODUCTS_DIR; }; - 4BACD65015BC301300920691 /* tryopen */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = tryopen; sourceTree = BUILT_PRODUCTS_DIR; }; - 4BC3863E1A1BE00E00CDCAAC /* zip_get_error.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_get_error.mdoc; sourceTree = ""; }; - 4BC3863F1A1BE00E00CDCAAC /* zip_source_begin_write.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_begin_write.mdoc; sourceTree = ""; }; - 4BC386401A1BE00E00CDCAAC /* zip_source_close.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_close.mdoc; sourceTree = ""; }; - 4BC386411A1BE00E00CDCAAC /* zip_source_commit_write.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_commit_write.mdoc; sourceTree = ""; }; - 4BC386421A1BE00E00CDCAAC /* zip_source_error.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_error.mdoc; sourceTree = ""; }; - 4BC386431A1BE00E00CDCAAC /* ZIP_SOURCE_GET_ARGS.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = ZIP_SOURCE_GET_ARGS.mdoc; sourceTree = ""; }; - 4BC386441A1BE00E00CDCAAC /* zip_source_is_deleted.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_is_deleted.mdoc; sourceTree = ""; }; - 4BC386451A1BE00E00CDCAAC /* zip_source_keep.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_keep.mdoc; sourceTree = ""; }; - 4BC386461A1BE00E00CDCAAC /* zip_source_make_command_bitmap.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_make_command_bitmap.mdoc; sourceTree = ""; }; - 4BC386471A1BE00E00CDCAAC /* zip_source_open.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_open.mdoc; sourceTree = ""; }; - 4BC386481A1BE00E00CDCAAC /* zip_source_read.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_read.mdoc; sourceTree = ""; }; - 4BC386491A1BE00E00CDCAAC /* zip_source_rollback_write.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_rollback_write.mdoc; sourceTree = ""; }; - 4BC3864A1A1BE00E00CDCAAC /* zip_source_seek_write.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_seek_write.mdoc; sourceTree = ""; }; - 4BC3864B1A1BE00E00CDCAAC /* zip_source_seek.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_seek.mdoc; sourceTree = ""; }; - 4BC3864C1A1BE00E00CDCAAC /* zip_source_stat.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_stat.mdoc; sourceTree = ""; }; - 4BC3864D1A1BE00E00CDCAAC /* zip_source_tell_write.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_tell_write.mdoc; sourceTree = ""; }; - 4BC3864E1A1BE00E00CDCAAC /* zip_source_tell.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_tell.mdoc; sourceTree = ""; }; - 4BC3864F1A1BE00E00CDCAAC /* zip_source_write.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source_write.mdoc; sourceTree = ""; }; - 4BC386501A1BE00E00CDCAAC /* zip_source.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_source.mdoc; sourceTree = ""; }; - 4BC386511A1BE04700CDCAAC /* fix-man-links.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "fix-man-links.sh"; sourceTree = ""; }; - 4BC386521A1BE04700CDCAAC /* make_zip_errors.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = make_zip_errors.sh; sourceTree = ""; }; - 4BC386531A1BE04700CDCAAC /* nih-man.css */ = {isa = PBXFileReference; lastKnownFileType = text.css; path = "nih-man.css"; sourceTree = ""; }; - 4BC972001A0A1D85003A2981 /* zip_error_to_data.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_error_to_data.mdoc; sourceTree = ""; }; - 4BCB434119E9347E0067FAA3 /* zip_buffer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_buffer.c; sourceTree = ""; }; - 4BCD54C41AB05AA90003D379 /* zip_source_win32a.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_source_win32a.c; sourceTree = ""; }; - 4BCD54C61AB05AA90003D379 /* zip_source_win32utf8.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_source_win32utf8.c; sourceTree = ""; }; - 4BCD54C71AB05AA90003D379 /* zip_source_win32w.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_source_win32w.c; sourceTree = ""; }; - 4BCD54C81AB05AA90003D379 /* zipwin32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = zipwin32.h; sourceTree = ""; }; - 4BCD77A71A14E404001A9F55 /* zip_file_get_error.mdoc */ = {isa = PBXFileReference; lastKnownFileType = text; path = zip_file_get_error.mdoc; sourceTree = ""; }; - 4BCD77A81A14E921001A9F55 /* zip_source_seek_compute_offset.mdoc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = zip_source_seek_compute_offset.mdoc; sourceTree = ""; }; - 4BCD77A91A14ED5C001A9F55 /* CMakeLists.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - 4BCF3019199A2F820064207B /* zip_io_util.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_io_util.c; sourceTree = ""; }; - 4BCF301A199A2F820064207B /* zip_source_begin_write.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_begin_write.c; sourceTree = ""; }; - 4BCF301B199A2F820064207B /* zip_source_commit_write.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_commit_write.c; sourceTree = ""; }; - 4BCF301C199A2F820064207B /* zip_source_rollback_write.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_rollback_write.c; sourceTree = ""; }; - 4BCF301D199A2F820064207B /* zip_source_seek.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_seek.c; sourceTree = ""; }; - 4BCF301E199A2F820064207B /* zip_source_supports.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_supports.c; sourceTree = ""; }; - 4BCF301F199A2F820064207B /* zip_source_tell.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_tell.c; sourceTree = ""; }; - 4BCF3020199A2F820064207B /* zip_source_write.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_write.c; sourceTree = ""; }; - 4BCF3031199ABD3A0064207B /* zip_source_remove.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_remove.c; sourceTree = ""; }; - 4BCF3034199ABDDA0064207B /* zip_source_seek_write.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_seek_write.c; sourceTree = ""; }; - 4BCF3035199ABDDA0064207B /* zip_source_tell_write.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_tell_write.c; sourceTree = ""; }; - 4BD155CE191CD28D0046F012 /* NiHTest.pm */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = text.script.perl; path = NiHTest.pm; sourceTree = ""; tabWidth = 4; usesTabs = 1; }; - 4BD155CF191CD28D0046F012 /* runtest.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = runtest.in; sourceTree = ""; }; - 4BD25DA51CF58790005A9EC4 /* compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compat.h; sourceTree = ""; }; - 4BD35E411A33366200256CB7 /* add_dir.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = add_dir.test; sourceTree = ""; }; - 4BD35E421A33366200256CB7 /* add_from_buffer.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = add_from_buffer.test; sourceTree = ""; }; - 4BD35E431A33366200256CB7 /* add_from_file_duplicate.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = add_from_file_duplicate.test; sourceTree = ""; }; - 4BD35E441A33366200256CB7 /* add_from_file_twice_duplicate.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = add_from_file_twice_duplicate.test; sourceTree = ""; }; - 4BD35E451A33366200256CB7 /* add_from_file.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = add_from_file.test; sourceTree = ""; }; - 4BD35E461A33366200256CB7 /* add_from_filep.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = add_from_filep.test; sourceTree = ""; }; - 4BD35E471A33366200256CB7 /* add_from_stdin.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = add_from_stdin.test; sourceTree = ""; }; - 4BD35E481A33366200256CB7 /* add_from_zip_closed.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = add_from_zip_closed.test; sourceTree = ""; }; - 4BD35E491A33366200256CB7 /* add_from_zip_deflated.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = add_from_zip_deflated.test; sourceTree = ""; }; - 4BD35E4A1A33366200256CB7 /* add_from_zip_partial_deflated.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = add_from_zip_partial_deflated.test; sourceTree = ""; }; - 4BD35E4B1A33366200256CB7 /* add_from_zip_partial_stored.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = add_from_zip_partial_stored.test; sourceTree = ""; }; - 4BD35E4C1A33366200256CB7 /* add_from_zip_stored.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = add_from_zip_stored.test; sourceTree = ""; }; - 4BD35E4D1A33366200256CB7 /* add_from_zip.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = add_from_zip.test; sourceTree = ""; }; - 4BD35E4E1A33366200256CB7 /* add_stored_in_memory.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = add_stored_in_memory.test; sourceTree = ""; }; - 4BD35E4F1A33366200256CB7 /* add_stored.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = add_stored.test; sourceTree = ""; }; - 4BD35E501A33366200256CB7 /* cm-default.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "cm-default.test"; sourceTree = ""; }; - 4BD35E511A33366200256CB7 /* delete_add_same.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = delete_add_same.test; sourceTree = ""; }; - 4BD35E521A33366200256CB7 /* delete_invalid.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = delete_invalid.test; sourceTree = ""; }; - 4BD35E531A33366200256CB7 /* delete_last.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = delete_last.test; sourceTree = ""; }; - 4BD35E541A33366200256CB7 /* delete_multiple_last.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = delete_multiple_last.test; sourceTree = ""; }; - 4BD35E551A33366200256CB7 /* delete_multiple_partial.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = delete_multiple_partial.test; sourceTree = ""; }; - 4BD35E561A33366200256CB7 /* delete_renamed_rename.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = delete_renamed_rename.test; sourceTree = ""; }; - 4BD35E5B1A33366200256CB7 /* encrypt.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = encrypt.test; sourceTree = ""; }; - 4BD35E5C1A33366200256CB7 /* extra_add_multiple.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = extra_add_multiple.test; sourceTree = ""; }; - 4BD35E5D1A33366200256CB7 /* extra_add.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = extra_add.test; sourceTree = ""; }; - 4BD35E5E1A33366200256CB7 /* extra_count_by_id.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = extra_count_by_id.test; sourceTree = ""; }; - 4BD35E5F1A33366200256CB7 /* extra_count_ignore_zip64.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = extra_count_ignore_zip64.test; sourceTree = ""; }; - 4BD35E601A33366200256CB7 /* extra_count.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = extra_count.test; sourceTree = ""; }; - 4BD35E611A33366200256CB7 /* extra_delete_by_id.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = extra_delete_by_id.test; sourceTree = ""; }; - 4BD35E621A33366200256CB7 /* extra_delete.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = extra_delete.test; sourceTree = ""; }; - 4BD35E631A33366200256CB7 /* extra_get_by_id.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = extra_get_by_id.test; sourceTree = ""; }; - 4BD35E641A33366200256CB7 /* extra_get.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = extra_get.test; sourceTree = ""; }; - 4BD35E651A33366200256CB7 /* extra_set_modify_c.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = extra_set_modify_c.test; sourceTree = ""; }; - 4BD35E661A33366200256CB7 /* extra_set_modify_l.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = extra_set_modify_l.test; sourceTree = ""; }; - 4BD35E671A33366200256CB7 /* extra_set.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = extra_set.test; sourceTree = ""; }; - 4BD35E681A33366200256CB7 /* file_comment_encmismatch.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = file_comment_encmismatch.test; sourceTree = ""; }; - 4BD35E691A33366200256CB7 /* fopen_unchanged.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = fopen_unchanged.test; sourceTree = ""; }; - 4BD35E6A1A33366200256CB7 /* fread.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = fread.test; sourceTree = ""; }; - 4BD35E6B1A33366200256CB7 /* get_comment.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = get_comment.test; sourceTree = ""; }; - 4BD35E8E1A33366200256CB7 /* name_locate.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = name_locate.test; sourceTree = ""; }; - 4BD35E8F1A33366200256CB7 /* open_cons_extrabytes.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = open_cons_extrabytes.test; sourceTree = ""; }; - 4BD35E901A33366200256CB7 /* open_empty_2.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = open_empty_2.test; sourceTree = ""; }; - 4BD35E911A33366200256CB7 /* open_empty.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = open_empty.test; sourceTree = ""; }; - 4BD35E921A33366200256CB7 /* open_extrabytes.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = open_extrabytes.test; sourceTree = ""; }; - 4BD35E931A33366200256CB7 /* open_filename_duplicate_consistency.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = open_filename_duplicate_consistency.test; sourceTree = ""; }; - 4BD35E941A33366200256CB7 /* open_filename_duplicate_empty_consistency.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = open_filename_duplicate_empty_consistency.test; sourceTree = ""; }; - 4BD35E951A33366200256CB7 /* open_filename_duplicate_empty.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = open_filename_duplicate_empty.test; sourceTree = ""; }; - 4BD35E961A33366200256CB7 /* open_filename_duplicate.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = open_filename_duplicate.test; sourceTree = ""; }; - 4BD35E971A33366200256CB7 /* open_filename_empty.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = open_filename_empty.test; sourceTree = ""; }; - 4BD35E981A33366200256CB7 /* open_incons.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = open_incons.test; sourceTree = ""; }; - 4BD35E991A33366200256CB7 /* open_many_ok.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = open_many_ok.test; sourceTree = ""; }; - 4BD35E9A1A33366200256CB7 /* open_new_but_exists.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = open_new_but_exists.test; sourceTree = ""; }; - 4BD35E9B1A33366200256CB7 /* open_new_ok.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = open_new_ok.test; sourceTree = ""; }; - 4BD35E9C1A33366200256CB7 /* open_nonarchive.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = open_nonarchive.test; sourceTree = ""; }; - 4BD35E9D1A33366200256CB7 /* open_nosuchfile.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = open_nosuchfile.test; sourceTree = ""; }; - 4BD35E9E1A33366200256CB7 /* open_ok.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = open_ok.test; sourceTree = ""; }; - 4BD35E9F1A33366200256CB7 /* open_too_short.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = open_too_short.test; sourceTree = ""; }; - 4BD35EA01A33366200256CB7 /* open_truncate.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = open_truncate.test; sourceTree = ""; }; - 4BD35EA11A33366200256CB7 /* open_zip64_ok.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = open_zip64_ok.test; sourceTree = ""; }; - 4BD35EA21A33366200256CB7 /* rename_ascii.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rename_ascii.test; sourceTree = ""; }; - 4BD35EA31A33366200256CB7 /* rename_cp437.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rename_cp437.test; sourceTree = ""; }; - 4BD35EA41A33366200256CB7 /* rename_deleted.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rename_deleted.test; sourceTree = ""; }; - 4BD35EA51A33366200256CB7 /* rename_fail.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rename_fail.test; sourceTree = ""; }; - 4BD35EA61A33366200256CB7 /* rename_ok.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rename_ok.test; sourceTree = ""; }; - 4BD35EA81A33366200256CB7 /* rename_utf8_encmismatch.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rename_utf8_encmismatch.test; sourceTree = ""; }; - 4BD35EA91A33366200256CB7 /* rename_utf8.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rename_utf8.test; sourceTree = ""; }; - 4BD35EAA1A33366200256CB7 /* set_comment_all.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = set_comment_all.test; sourceTree = ""; }; - 4BD35EAB1A33366200256CB7 /* set_comment_localonly.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = set_comment_localonly.test; sourceTree = ""; }; - 4BD35EAC1A33366200256CB7 /* set_comment_removeglobal.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = set_comment_removeglobal.test; sourceTree = ""; }; - 4BD35EAD1A33366200256CB7 /* set_comment_revert.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = set_comment_revert.test; sourceTree = ""; }; - 4BD35EAE1A33366200256CB7 /* set_compression_deflate_to_deflate.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = set_compression_deflate_to_deflate.test; sourceTree = ""; }; - 4BD35EAF1A33366200256CB7 /* set_compression_deflate_to_store.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = set_compression_deflate_to_store.test; sourceTree = ""; }; - 4BD35EB01A33366200256CB7 /* set_compression_store_to_deflate.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = set_compression_store_to_deflate.test; sourceTree = ""; }; - 4BD35EB11A33366200256CB7 /* set_compression_store_to_store.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = set_compression_store_to_store.test; sourceTree = ""; }; - 4BD35EB21A33366200256CB7 /* set_compression_unknown.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = set_compression_unknown.test; sourceTree = ""; }; - 4BD35EB31A33366200256CB7 /* set_mtime.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = set_mtime.test; sourceTree = ""; }; - 4BD35EB41A33366200256CB7 /* stat_index_cp437_guess.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = stat_index_cp437_guess.test; sourceTree = ""; }; - 4BD35EB51A33366200256CB7 /* stat_index_cp437_raw.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = stat_index_cp437_raw.test; sourceTree = ""; }; - 4BD35EB61A33366200256CB7 /* stat_index_cp437_strict.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = stat_index_cp437_strict.test; sourceTree = ""; }; - 4BD35EB71A33366200256CB7 /* stat_index_fileorder.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = stat_index_fileorder.test; sourceTree = ""; }; - 4BD35EB81A33366200256CB7 /* stat_index_streamed_zip64.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = stat_index_streamed_zip64.test; sourceTree = ""; }; - 4BD35EB91A33366200256CB7 /* stat_index_streamed.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = stat_index_streamed.test; sourceTree = ""; }; - 4BD35EBA1A33366200256CB7 /* stat_index_utf8_guess.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = stat_index_utf8_guess.test; sourceTree = ""; }; - 4BD35EBB1A33366200256CB7 /* stat_index_utf8_raw.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = stat_index_utf8_raw.test; sourceTree = ""; }; - 4BD35EBC1A33366200256CB7 /* stat_index_utf8_strict.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = stat_index_utf8_strict.test; sourceTree = ""; }; - 4BD35EBD1A33366200256CB7 /* stat_index_utf8_unmarked_strict.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = stat_index_utf8_unmarked_strict.test; sourceTree = ""; }; - 4BD35EBE1A33366200256CB7 /* stat_index_zip64.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = stat_index_zip64.test; sourceTree = ""; }; - 4BD35EDD1A33366300256CB7 /* torrent-already.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "torrent-already.test"; sourceTree = ""; }; - 4BD35EDE1A33366300256CB7 /* torrent-new.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "torrent-new.test"; sourceTree = ""; }; - 4BD35EE11A33366300256CB7 /* utf-8-standardization.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "utf-8-standardization.test"; sourceTree = ""; }; - 4BD35EE31A33366300256CB7 /* zip64_creation.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = zip64_creation.test; sourceTree = ""; }; - 4BD35EE41A33366300256CB7 /* zip64_stored_creation.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = zip64_stored_creation.test; sourceTree = ""; }; - 4BD35EE61A33407200256CB7 /* Makefile.am */ = {isa = PBXFileReference; indentWidth = 8; lastKnownFileType = text; path = Makefile.am; sourceTree = ""; usesTabs = 1; }; - 4BD5053219A0116D007DD28A /* zip_source_call.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_call.c; sourceTree = ""; }; - 4BD6CB5C19E6A5D900710654 /* source_hole.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = source_hole.c; sourceTree = ""; }; - 4BD6CB5E19E71B3B00710654 /* hole.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = hole.c; sourceTree = ""; }; - 4BD6CB6C19E71CD100710654 /* hole */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = hole; sourceTree = BUILT_PRODUCTS_DIR; }; - 4BDC71E015B182B200236D3C /* libzip_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = libzip_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 4BDC71F115B1B25E00236D3C /* zip_add_dir.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_add_dir.c; path = ../lib/zip_add_dir.c; sourceTree = ""; }; - 4BDC71F215B1B25E00236D3C /* zip_add_entry.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_add_entry.c; path = ../lib/zip_add_entry.c; sourceTree = ""; }; - 4BDC71F315B1B25E00236D3C /* zip_add.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_add.c; path = ../lib/zip_add.c; sourceTree = ""; }; - 4BDC71F415B1B25E00236D3C /* zip_close.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_close.c; path = ../lib/zip_close.c; sourceTree = ""; }; - 4BDC71F515B1B25E00236D3C /* zip_delete.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_delete.c; path = ../lib/zip_delete.c; sourceTree = ""; }; - 4BDC71F615B1B25E00236D3C /* zip_dir_add.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_dir_add.c; path = ../lib/zip_dir_add.c; sourceTree = ""; }; - 4BDC71F715B1B25E00236D3C /* zip_dirent.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_dirent.c; path = ../lib/zip_dirent.c; sourceTree = ""; }; - 4BDC71F815B1B25E00236D3C /* zip_discard.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_discard.c; path = ../lib/zip_discard.c; sourceTree = ""; }; - 4BDC71F915B1B25E00236D3C /* zip_entry.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_entry.c; path = ../lib/zip_entry.c; sourceTree = ""; }; - 4BDC71FA15B1B25E00236D3C /* zip_err_str.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_err_str.c; path = ../lib/zip_err_str.c; sourceTree = ""; }; - 4BDC71FB15B1B25E00236D3C /* zip_error_clear.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_error_clear.c; path = ../lib/zip_error_clear.c; sourceTree = ""; }; - 4BDC71FC15B1B25E00236D3C /* zip_error_get_sys_type.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_error_get_sys_type.c; path = ../lib/zip_error_get_sys_type.c; sourceTree = ""; }; - 4BDC71FD15B1B25E00236D3C /* zip_error_get.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_error_get.c; path = ../lib/zip_error_get.c; sourceTree = ""; }; - 4BDC71FE15B1B25E00236D3C /* zip_error_strerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_error_strerror.c; path = ../lib/zip_error_strerror.c; sourceTree = ""; }; - 4BDC71FF15B1B25E00236D3C /* zip_error_to_str.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_error_to_str.c; path = ../lib/zip_error_to_str.c; sourceTree = ""; }; - 4BDC720015B1B25E00236D3C /* zip_error.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_error.c; path = ../lib/zip_error.c; sourceTree = ""; }; - 4BDC720115B1B25E00236D3C /* zip_extra_field_api.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_extra_field_api.c; path = ../lib/zip_extra_field_api.c; sourceTree = ""; }; - 4BDC720215B1B25E00236D3C /* zip_extra_field.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_extra_field.c; path = ../lib/zip_extra_field.c; sourceTree = ""; }; - 4BDC720315B1B25E00236D3C /* zip_fclose.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_fclose.c; path = ../lib/zip_fclose.c; sourceTree = ""; }; - 4BDC720415B1B25E00236D3C /* zip_fdopen.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_fdopen.c; path = ../lib/zip_fdopen.c; sourceTree = ""; }; - 4BDC720515B1B25E00236D3C /* zip_file_add.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_file_add.c; path = ../lib/zip_file_add.c; sourceTree = ""; }; - 4BDC720615B1B25E00236D3C /* zip_file_error_clear.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_file_error_clear.c; path = ../lib/zip_file_error_clear.c; sourceTree = ""; }; - 4BDC720715B1B25E00236D3C /* zip_file_error_get.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_file_error_get.c; path = ../lib/zip_file_error_get.c; sourceTree = ""; }; - 4BDC720815B1B25E00236D3C /* zip_file_get_comment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_file_get_comment.c; path = ../lib/zip_file_get_comment.c; sourceTree = ""; }; - 4BDC720915B1B25E00236D3C /* zip_file_get_offset.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_file_get_offset.c; path = ../lib/zip_file_get_offset.c; sourceTree = ""; }; - 4BDC720A15B1B25E00236D3C /* zip_file_rename.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_file_rename.c; path = ../lib/zip_file_rename.c; sourceTree = ""; }; - 4BDC720B15B1B25E00236D3C /* zip_file_replace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_file_replace.c; path = ../lib/zip_file_replace.c; sourceTree = ""; }; - 4BDC720C15B1B25E00236D3C /* zip_file_set_comment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_file_set_comment.c; path = ../lib/zip_file_set_comment.c; sourceTree = ""; }; - 4BDC720D15B1B25E00236D3C /* zip_file_strerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_file_strerror.c; path = ../lib/zip_file_strerror.c; sourceTree = ""; }; - 4BDC720E15B1B25E00236D3C /* zip_filerange_crc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_filerange_crc.c; path = ../lib/zip_filerange_crc.c; sourceTree = ""; }; - 4BDC720F15B1B25E00236D3C /* zip_fopen_encrypted.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_fopen_encrypted.c; path = ../lib/zip_fopen_encrypted.c; sourceTree = ""; }; - 4BDC721015B1B25E00236D3C /* zip_fopen_index_encrypted.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_fopen_index_encrypted.c; path = ../lib/zip_fopen_index_encrypted.c; sourceTree = ""; }; - 4BDC721115B1B25E00236D3C /* zip_fopen_index.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_fopen_index.c; path = ../lib/zip_fopen_index.c; sourceTree = ""; }; - 4BDC721215B1B25E00236D3C /* zip_fopen.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_fopen.c; path = ../lib/zip_fopen.c; sourceTree = ""; }; - 4BDC721315B1B25E00236D3C /* zip_fread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_fread.c; path = ../lib/zip_fread.c; sourceTree = ""; }; - 4BDC721415B1B25E00236D3C /* zip_get_archive_comment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_get_archive_comment.c; path = ../lib/zip_get_archive_comment.c; sourceTree = ""; }; - 4BDC721515B1B25E00236D3C /* zip_get_archive_flag.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_get_archive_flag.c; path = ../lib/zip_get_archive_flag.c; sourceTree = ""; }; - 4BDC721615B1B25E00236D3C /* zip_get_compression_implementation.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_get_compression_implementation.c; path = ../lib/zip_get_compression_implementation.c; sourceTree = ""; }; - 4BDC721715B1B25E00236D3C /* zip_get_encryption_implementation.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_get_encryption_implementation.c; path = ../lib/zip_get_encryption_implementation.c; sourceTree = ""; }; - 4BDC721815B1B25E00236D3C /* zip_get_file_comment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_get_file_comment.c; path = ../lib/zip_get_file_comment.c; sourceTree = ""; }; - 4BDC721915B1B25E00236D3C /* zip_get_name.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_get_name.c; path = ../lib/zip_get_name.c; sourceTree = ""; }; - 4BDC721A15B1B25E00236D3C /* zip_get_num_entries.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_get_num_entries.c; path = ../lib/zip_get_num_entries.c; sourceTree = ""; }; - 4BDC721B15B1B25E00236D3C /* zip_get_num_files.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_get_num_files.c; path = ../lib/zip_get_num_files.c; sourceTree = ""; }; - 4BDC721C15B1B25E00236D3C /* zip_memdup.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_memdup.c; path = ../lib/zip_memdup.c; sourceTree = ""; }; - 4BDC721D15B1B25E00236D3C /* zip_name_locate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_name_locate.c; path = ../lib/zip_name_locate.c; sourceTree = ""; }; - 4BDC721E15B1B25E00236D3C /* zip_new.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_new.c; path = ../lib/zip_new.c; sourceTree = ""; }; - 4BDC721F15B1B25E00236D3C /* zip_open.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_open.c; path = ../lib/zip_open.c; sourceTree = ""; }; - 4BDC722015B1B25E00236D3C /* zip_rename.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_rename.c; path = ../lib/zip_rename.c; sourceTree = ""; }; - 4BDC722115B1B25E00236D3C /* zip_replace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_replace.c; path = ../lib/zip_replace.c; sourceTree = ""; }; - 4BDC722215B1B25E00236D3C /* zip_set_archive_comment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_set_archive_comment.c; path = ../lib/zip_set_archive_comment.c; sourceTree = ""; }; - 4BDC722315B1B25E00236D3C /* zip_set_archive_flag.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_set_archive_flag.c; path = ../lib/zip_set_archive_flag.c; sourceTree = ""; }; - 4BDC722415B1B25E00236D3C /* zip_set_default_password.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_set_default_password.c; path = ../lib/zip_set_default_password.c; sourceTree = ""; }; - 4BDC722515B1B25E00236D3C /* zip_set_file_comment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_set_file_comment.c; path = ../lib/zip_set_file_comment.c; sourceTree = ""; }; - 4BDC722615B1B25E00236D3C /* zip_set_file_compression.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_set_file_compression.c; path = ../lib/zip_set_file_compression.c; sourceTree = ""; }; - 4BDC722715B1B25E00236D3C /* zip_set_name.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_set_name.c; path = ../lib/zip_set_name.c; sourceTree = ""; }; - 4BDC722815B1B25E00236D3C /* zip_source_buffer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_source_buffer.c; path = ../lib/zip_source_buffer.c; sourceTree = ""; }; - 4BDC722915B1B25E00236D3C /* zip_source_close.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_source_close.c; path = ../lib/zip_source_close.c; sourceTree = ""; }; - 4BDC722A15B1B25E00236D3C /* zip_source_crc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_source_crc.c; path = ../lib/zip_source_crc.c; sourceTree = ""; }; - 4BDC722B15B1B25E00236D3C /* zip_source_deflate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_source_deflate.c; path = ../lib/zip_source_deflate.c; sourceTree = ""; }; - 4BDC722C15B1B25E00236D3C /* zip_source_error.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_source_error.c; path = ../lib/zip_source_error.c; sourceTree = ""; }; - 4BDC722D15B1B25E00236D3C /* zip_source_file.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_source_file.c; path = ../lib/zip_source_file.c; sourceTree = ""; }; - 4BDC722E15B1B25E00236D3C /* zip_source_filep.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_source_filep.c; path = ../lib/zip_source_filep.c; sourceTree = ""; }; - 4BDC722F15B1B25E00236D3C /* zip_source_free.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_source_free.c; path = ../lib/zip_source_free.c; sourceTree = ""; }; - 4BDC723015B1B25E00236D3C /* zip_source_function.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_source_function.c; path = ../lib/zip_source_function.c; sourceTree = ""; }; - 4BDC723115B1B25E00236D3C /* zip_source_layered.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_source_layered.c; path = ../lib/zip_source_layered.c; sourceTree = ""; }; - 4BDC723215B1B25E00236D3C /* zip_source_open.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_source_open.c; path = ../lib/zip_source_open.c; sourceTree = ""; }; - 4BDC723315B1B25E00236D3C /* zip_source_pkware.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_source_pkware.c; path = ../lib/zip_source_pkware.c; sourceTree = ""; }; - 4BDC723515B1B25E00236D3C /* zip_source_read.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_source_read.c; path = ../lib/zip_source_read.c; sourceTree = ""; }; - 4BDC723615B1B25E00236D3C /* zip_source_stat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_source_stat.c; path = ../lib/zip_source_stat.c; sourceTree = ""; }; - 4BDC723715B1B25E00236D3C /* zip_source_window.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_source_window.c; path = ../lib/zip_source_window.c; sourceTree = ""; }; - 4BDC723815B1B25E00236D3C /* zip_source_zip_new.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_source_zip_new.c; path = ../lib/zip_source_zip_new.c; sourceTree = ""; }; - 4BDC723915B1B25E00236D3C /* zip_source_zip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_source_zip.c; path = ../lib/zip_source_zip.c; sourceTree = ""; }; - 4BDC723A15B1B25E00236D3C /* zip_stat_index.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_stat_index.c; path = ../lib/zip_stat_index.c; sourceTree = ""; }; - 4BDC723B15B1B25E00236D3C /* zip_stat_init.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_stat_init.c; path = ../lib/zip_stat_init.c; sourceTree = ""; }; - 4BDC723C15B1B25E00236D3C /* zip_stat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_stat.c; path = ../lib/zip_stat.c; sourceTree = ""; }; - 4BDC723D15B1B25E00236D3C /* zip_strerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_strerror.c; path = ../lib/zip_strerror.c; sourceTree = ""; }; - 4BDC723E15B1B25E00236D3C /* zip_string.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_string.c; path = ../lib/zip_string.c; sourceTree = ""; }; - 4BDC723F15B1B25E00236D3C /* zip_unchange_all.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_unchange_all.c; path = ../lib/zip_unchange_all.c; sourceTree = ""; }; - 4BDC724015B1B25E00236D3C /* zip_unchange_archive.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_unchange_archive.c; path = ../lib/zip_unchange_archive.c; sourceTree = ""; }; - 4BDC724115B1B25E00236D3C /* zip_unchange_data.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_unchange_data.c; path = ../lib/zip_unchange_data.c; sourceTree = ""; }; - 4BDC724215B1B25E00236D3C /* zip_unchange.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip_unchange.c; path = ../lib/zip_unchange.c; sourceTree = ""; }; - 4BDC724315B1B25E00236D3C /* zip_utf-8.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "zip_utf-8.c"; path = "../lib/zip_utf-8.c"; sourceTree = ""; }; - 4BDC729815B1B2A600236D3C /* zip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = zip.h; path = ../lib/zip.h; sourceTree = ""; }; - 4BDC729915B1B2A600236D3C /* zipint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = zipint.h; path = ../lib/zipint.h; sourceTree = ""; }; - 4BDC729E15B1B4E900236D3C /* zipconf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zipconf.h; sourceTree = SOURCE_ROOT; }; - 4BDC72A015B1B56400236D3C /* config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = SOURCE_ROOT; }; - 4BE402AC19D94AE400298248 /* zip_source_is_deleted.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_is_deleted.c; sourceTree = ""; }; - 4BEF35C31AF4D92D00974F28 /* zip_source_win32handle.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_win32handle.c; sourceTree = ""; }; - 736ED9B71E3D688C00C36873 /* zip_file_set_encryption.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_file_set_encryption.c; sourceTree = ""; }; - 736ED9B81E3D688C00C36873 /* zip_random_unix.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_random_unix.c; sourceTree = ""; }; - 736ED9B91E3D688C00C36873 /* zip_source_winzip_aes_decode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_winzip_aes_decode.c; sourceTree = ""; }; - 736ED9BA1E3D688C00C36873 /* zip_source_winzip_aes_encode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_winzip_aes_encode.c; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 3D7E35341B3305FB00022624 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 3D7E35481B33076C00022624 /* libz.dylib in Frameworks */, - 3D7E35461B33064B00022624 /* libzip.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4B01D68715B2F3F1002D5007 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 4B01D73C15B2F6AF002D5007 /* libz.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4B01D6FA15B2F4B1002D5007 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 4B01D70915B2F4CF002D5007 /* libz.dylib in Frameworks */, - 4B01D70715B2F4C5002D5007 /* libzip.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4B01D70C15B2F4EB002D5007 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 4B01D70D15B2F4EB002D5007 /* libz.dylib in Frameworks */, - 4B01D70E15B2F4EB002D5007 /* libzip.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BACD58615BC2CEA00920691 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 4BACD59415BC2D0800920691 /* libz.dylib in Frameworks */, - 4BACD59315BC2CFA00920691 /* libzip.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BACD5BA15BC2DC900920691 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 4BACD5BB15BC2DC900920691 /* libz.dylib in Frameworks */, - 4BACD5BC15BC2DC900920691 /* libzip.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BACD5C915BC2DF200920691 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 4BACD5CA15BC2DF200920691 /* libz.dylib in Frameworks */, - 4BACD5CB15BC2DF200920691 /* libzip.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BACD5D815BC2F3700920691 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 4BACD5D915BC2F3700920691 /* libz.dylib in Frameworks */, - 4BACD5DA15BC2F3700920691 /* libzip.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BACD64915BC301300920691 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 4BACD64A15BC301300920691 /* libz.dylib in Frameworks */, - 4BACD64B15BC301300920691 /* libzip.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BD6CB6519E71CD100710654 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 4BD6CB6619E71CD100710654 /* libz.dylib in Frameworks */, - 4BD6CB6719E71CD100710654 /* libzip.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BDC71DD15B182B200236D3C /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 3D7E353E1B33063600022624 /* examples */ = { - isa = PBXGroup; - children = ( - 3D7E35401B33063600022624 /* in-memory.c */, - 3D7E35421B33063600022624 /* windows-open.c */, - ); - name = examples; - path = ../examples; - sourceTree = ""; - }; - 4B01D72015B2F54C002D5007 /* src */ = { - isa = PBXGroup; - children = ( - 4B01D72115B2F572002D5007 /* zipcmp.c */, - 4B01D72215B2F572002D5007 /* zipmerge.c */, - 4BD6CB5E19E71B3B00710654 /* hole.c */, - 4BACD57C15BC2AEF00920691 /* ziptool.c */, - 4BD6CB5C19E6A5D900710654 /* source_hole.c */, - ); - name = src; - path = ../src; - sourceTree = ""; - }; - 4B28A9EA15BACBE100D0C17D /* man */ = { - isa = PBXGroup; - children = ( - 4BCD77A91A14ED5C001A9F55 /* CMakeLists.txt */, - 4B1ABD1B1A2E5E4D00C93867 /* handle_links */, - 4B1ABD1A1A2E5DA700C93867 /* links */, - 4B26FF141A07DF1A000E9788 /* Makefile.am */, - 4BC386511A1BE04700CDCAAC /* fix-man-links.sh */, - 4BC386521A1BE04700CDCAAC /* make_zip_errors.sh */, - 4B26FF181A07DFEA000E9788 /* mkdocset.pl */, - 4BC386531A1BE04700CDCAAC /* nih-man.css */, - 4B28A9EC15BACC3900D0C17D /* libzip.mdoc */, - 4B28A9ED15BACC3900D0C17D /* zip_add_dir.mdoc */, - 4B28A9EE15BACC3900D0C17D /* zip_add.mdoc */, - 4B28A9EF15BACC3900D0C17D /* zip_close.mdoc */, - 4B28A9F015BACC3900D0C17D /* zip_delete.mdoc */, - 4B28A9F115BACC3900D0C17D /* zip_dir_add.mdoc */, - 4B28A9F215BACC3900D0C17D /* zip_discard.mdoc */, - 4B28A9F315BACC3900D0C17D /* zip_error_clear.mdoc */, - 4B1E46E51A08CB7600A376D2 /* zip_error_code_system.mdoc */, - 4B1E46E61A08CB7600A376D2 /* zip_error_code_zip.mdoc */, - 4B1E46E71A08CB7600A376D2 /* zip_error_fini.mdoc */, - 4B28A9F415BACC3900D0C17D /* zip_error_get_sys_type.mdoc */, - 4B28A9F515BACC3900D0C17D /* zip_error_get.mdoc */, - 4B1E46E81A08CB7600A376D2 /* zip_error_init.mdoc */, - 4B1E46E91A08CB7600A376D2 /* zip_error_set.mdoc */, - 4B1E46EA1A08CB7600A376D2 /* zip_error_strerror.mdoc */, - 4B1E46EB1A08CB7600A376D2 /* zip_error_system_type.mdoc */, - 4BC972001A0A1D85003A2981 /* zip_error_to_data.mdoc */, - 4B28A9F615BACC3900D0C17D /* zip_error_to_str.mdoc */, - 4B28A9F715BACC3900D0C17D /* zip_errors.mdoc */, - 4B28A9F815BACC3900D0C17D /* zip_fclose.mdoc */, - 4B28A9F915BACC3900D0C17D /* zip_fdopen.mdoc */, - 4B28A9FA15BACC3900D0C17D /* zip_file_add.mdoc */, - 4B28A9FB15BACC3900D0C17D /* zip_file_extra_field_delete.mdoc */, - 4B28A9FC15BACC3900D0C17D /* zip_file_extra_field_get.mdoc */, - 4B28A9FD15BACC3900D0C17D /* zip_file_extra_field_set.mdoc */, - 4B28A9FE15BACC3900D0C17D /* zip_file_extra_fields_count.mdoc */, - 4B28A9FF15BACC3900D0C17D /* zip_file_get_comment.mdoc */, - 4BCD77A71A14E404001A9F55 /* zip_file_get_error.mdoc */, - 4B26FF151A07DF1A000E9788 /* zip_file_get_external_attributes.mdoc */, - 4B28AA0015BACC3900D0C17D /* zip_file_rename.mdoc */, - 4B28AA0115BACC3900D0C17D /* zip_file_set_comment.mdoc */, - 4B26FF161A07DF1A000E9788 /* zip_file_set_external_attributes.mdoc */, - 4B26FF171A07DF1A000E9788 /* zip_file_set_mtime.mdoc */, - 4B28AA0215BACC3900D0C17D /* zip_file_strerror.mdoc */, - 4B28AA0315BACC3900D0C17D /* zip_fopen_encrypted.mdoc */, - 4B28AA0415BACC3900D0C17D /* zip_fopen.mdoc */, - 4B28AA0515BACC3900D0C17D /* zip_fread.mdoc */, - 4B28AA0615BACC3900D0C17D /* zip_get_archive_comment.mdoc */, - 4B28AA0715BACC3900D0C17D /* zip_get_archive_flag.mdoc */, - 4BC3863E1A1BE00E00CDCAAC /* zip_get_error.mdoc */, - 4B28AA0815BACC3900D0C17D /* zip_get_file_comment.mdoc */, - 4B28AA0915BACC3900D0C17D /* zip_get_name.mdoc */, - 4B28AA0A15BACC3900D0C17D /* zip_get_num_entries.mdoc */, - 4B28AA0B15BACC3900D0C17D /* zip_get_num_files.mdoc */, - 4B28AA0C15BACC3900D0C17D /* zip_name_locate.mdoc */, - 4B28AA0D15BACC3900D0C17D /* zip_open.mdoc */, - 4B28AA0E15BACC3900D0C17D /* zip_rename.mdoc */, - 4B28AA0F15BACC3900D0C17D /* zip_set_archive_comment.mdoc */, - 4B28AA1015BACC3900D0C17D /* zip_set_archive_flag.mdoc */, - 4B28AA1115BACC3900D0C17D /* zip_set_default_password.mdoc */, - 4B28AA1215BACC3900D0C17D /* zip_set_file_comment.mdoc */, - 4B28AA1315BACC3900D0C17D /* zip_set_file_compression.mdoc */, - 4BC3863F1A1BE00E00CDCAAC /* zip_source_begin_write.mdoc */, - 4B28AA1415BACC3900D0C17D /* zip_source_buffer.mdoc */, - 4BC386401A1BE00E00CDCAAC /* zip_source_close.mdoc */, - 4BC386411A1BE00E00CDCAAC /* zip_source_commit_write.mdoc */, - 4BC386421A1BE00E00CDCAAC /* zip_source_error.mdoc */, - 4B28AA1515BACC3900D0C17D /* zip_source_file.mdoc */, - 4B28AA1615BACC3900D0C17D /* zip_source_filep.mdoc */, - 4B28AA1715BACC3900D0C17D /* zip_source_free.mdoc */, - 4B28AA1815BACC3900D0C17D /* zip_source_function.mdoc */, - 4BC386431A1BE00E00CDCAAC /* ZIP_SOURCE_GET_ARGS.mdoc */, - 4BC386441A1BE00E00CDCAAC /* zip_source_is_deleted.mdoc */, - 4BC386451A1BE00E00CDCAAC /* zip_source_keep.mdoc */, - 4BC386461A1BE00E00CDCAAC /* zip_source_make_command_bitmap.mdoc */, - 4BC386471A1BE00E00CDCAAC /* zip_source_open.mdoc */, - 4BC386481A1BE00E00CDCAAC /* zip_source_read.mdoc */, - 4BC386491A1BE00E00CDCAAC /* zip_source_rollback_write.mdoc */, - 4BCD77A81A14E921001A9F55 /* zip_source_seek_compute_offset.mdoc */, - 4BC3864A1A1BE00E00CDCAAC /* zip_source_seek_write.mdoc */, - 4BC3864B1A1BE00E00CDCAAC /* zip_source_seek.mdoc */, - 4BC3864C1A1BE00E00CDCAAC /* zip_source_stat.mdoc */, - 4BC3864D1A1BE00E00CDCAAC /* zip_source_tell_write.mdoc */, - 4BC3864E1A1BE00E00CDCAAC /* zip_source_tell.mdoc */, - 4BC3864F1A1BE00E00CDCAAC /* zip_source_write.mdoc */, - 4B28AA1915BACC3900D0C17D /* zip_source_zip.mdoc */, - 4BC386501A1BE00E00CDCAAC /* zip_source.mdoc */, - 4B28AA1A15BACC3900D0C17D /* zip_stat_init.mdoc */, - 4B28AA1B15BACC3900D0C17D /* zip_stat.mdoc */, - 4B28AA1C15BACC3900D0C17D /* zip_unchange_all.mdoc */, - 4B28AA1D15BACC3900D0C17D /* zip_unchange_archive.mdoc */, - 4B28AA1E15BACC3900D0C17D /* zip_unchange.mdoc */, - 4B28AA1F15BACC3900D0C17D /* zipcmp.mdoc */, - 4B28AA2015BACC3900D0C17D /* zipmerge.mdoc */, - 4B28AA2115BACC3900D0C17D /* ziptorrent.mdoc */, - ); - name = man; - path = ../man; - sourceTree = ""; - }; - 4B28AA2815BAD4F800D0C17D /* info */ = { - isa = PBXGroup; - children = ( - 4B28AA2215BAD4E200D0C17D /* API-CHANGES */, - 4B28AA2315BAD4E200D0C17D /* AUTHORS */, - 4B28AA2415BAD4E200D0C17D /* NEWS */, - 4B28AA2515BAD4E200D0C17D /* README */, - 4B28AA2615BAD4E200D0C17D /* THANKS */, - 4B28AA2715BAD4E200D0C17D /* TODO */, - ); - name = info; - path = ..; - sourceTree = ""; - }; - 4BACD57415BC2AA100920691 /* regress */ = { - isa = PBXGroup; - children = ( - 4BD35EE61A33407200256CB7 /* Makefile.am */, - 4BD155CE191CD28D0046F012 /* NiHTest.pm */, - 4BD155CF191CD28D0046F012 /* runtest.in */, - 4BACD57715BC2AEF00920691 /* add_from_filep.c */, - 4BACD57A15BC2AEF00920691 /* fopen_unchanged.c */, - 4BACD57B15BC2AEF00920691 /* fread.c */, - 4BACD58415BC2AEF00920691 /* tryopen.c */, - 4BD35E401A33362A00256CB7 /* test cases */, - ); - name = regress; - path = ../regress; - sourceTree = ""; - }; - 4BD35E401A33362A00256CB7 /* test cases */ = { - isa = PBXGroup; - children = ( - 4BD35E411A33366200256CB7 /* add_dir.test */, - 4BD35E421A33366200256CB7 /* add_from_buffer.test */, - 4BD35E431A33366200256CB7 /* add_from_file_duplicate.test */, - 4BD35E441A33366200256CB7 /* add_from_file_twice_duplicate.test */, - 4BD35E451A33366200256CB7 /* add_from_file.test */, - 4BD35E461A33366200256CB7 /* add_from_filep.test */, - 4BD35E471A33366200256CB7 /* add_from_stdin.test */, - 4BD35E481A33366200256CB7 /* add_from_zip_closed.test */, - 4BD35E491A33366200256CB7 /* add_from_zip_deflated.test */, - 4BD35E4A1A33366200256CB7 /* add_from_zip_partial_deflated.test */, - 4BD35E4B1A33366200256CB7 /* add_from_zip_partial_stored.test */, - 4BD35E4C1A33366200256CB7 /* add_from_zip_stored.test */, - 4BD35E4D1A33366200256CB7 /* add_from_zip.test */, - 4BD35E4E1A33366200256CB7 /* add_stored_in_memory.test */, - 4BD35E4F1A33366200256CB7 /* add_stored.test */, - 4BD35E501A33366200256CB7 /* cm-default.test */, - 4BD35E511A33366200256CB7 /* delete_add_same.test */, - 4BD35E521A33366200256CB7 /* delete_invalid.test */, - 4BD35E531A33366200256CB7 /* delete_last.test */, - 4BD35E541A33366200256CB7 /* delete_multiple_last.test */, - 4BD35E551A33366200256CB7 /* delete_multiple_partial.test */, - 4BD35E561A33366200256CB7 /* delete_renamed_rename.test */, - 4BD35E5B1A33366200256CB7 /* encrypt.test */, - 4BD35E5C1A33366200256CB7 /* extra_add_multiple.test */, - 4BD35E5D1A33366200256CB7 /* extra_add.test */, - 4BD35E5E1A33366200256CB7 /* extra_count_by_id.test */, - 4BD35E5F1A33366200256CB7 /* extra_count_ignore_zip64.test */, - 4BD35E601A33366200256CB7 /* extra_count.test */, - 4BD35E611A33366200256CB7 /* extra_delete_by_id.test */, - 4BD35E621A33366200256CB7 /* extra_delete.test */, - 4BD35E631A33366200256CB7 /* extra_get_by_id.test */, - 4BD35E641A33366200256CB7 /* extra_get.test */, - 4BD35E651A33366200256CB7 /* extra_set_modify_c.test */, - 4BD35E661A33366200256CB7 /* extra_set_modify_l.test */, - 4BD35E671A33366200256CB7 /* extra_set.test */, - 4BD35E681A33366200256CB7 /* file_comment_encmismatch.test */, - 4BD35E691A33366200256CB7 /* fopen_unchanged.test */, - 4BD35E6A1A33366200256CB7 /* fread.test */, - 4BD35E6B1A33366200256CB7 /* get_comment.test */, - 4BD35E8E1A33366200256CB7 /* name_locate.test */, - 4BD35E8F1A33366200256CB7 /* open_cons_extrabytes.test */, - 4BD35E901A33366200256CB7 /* open_empty_2.test */, - 4BD35E911A33366200256CB7 /* open_empty.test */, - 4BD35E921A33366200256CB7 /* open_extrabytes.test */, - 4BD35E931A33366200256CB7 /* open_filename_duplicate_consistency.test */, - 4BD35E941A33366200256CB7 /* open_filename_duplicate_empty_consistency.test */, - 4BD35E951A33366200256CB7 /* open_filename_duplicate_empty.test */, - 4BD35E961A33366200256CB7 /* open_filename_duplicate.test */, - 4BD35E971A33366200256CB7 /* open_filename_empty.test */, - 4BD35E981A33366200256CB7 /* open_incons.test */, - 4BD35E991A33366200256CB7 /* open_many_ok.test */, - 4BD35E9A1A33366200256CB7 /* open_new_but_exists.test */, - 4BD35E9B1A33366200256CB7 /* open_new_ok.test */, - 4BD35E9C1A33366200256CB7 /* open_nonarchive.test */, - 4BD35E9D1A33366200256CB7 /* open_nosuchfile.test */, - 4BD35E9E1A33366200256CB7 /* open_ok.test */, - 4BD35E9F1A33366200256CB7 /* open_too_short.test */, - 4BD35EA01A33366200256CB7 /* open_truncate.test */, - 4BD35EA11A33366200256CB7 /* open_zip64_ok.test */, - 4BD35EA21A33366200256CB7 /* rename_ascii.test */, - 4BD35EA31A33366200256CB7 /* rename_cp437.test */, - 4BD35EA41A33366200256CB7 /* rename_deleted.test */, - 4BD35EA51A33366200256CB7 /* rename_fail.test */, - 4BD35EA61A33366200256CB7 /* rename_ok.test */, - 4BD35EA81A33366200256CB7 /* rename_utf8_encmismatch.test */, - 4BD35EA91A33366200256CB7 /* rename_utf8.test */, - 4BD35EAA1A33366200256CB7 /* set_comment_all.test */, - 4BD35EAB1A33366200256CB7 /* set_comment_localonly.test */, - 4BD35EAC1A33366200256CB7 /* set_comment_removeglobal.test */, - 4BD35EAD1A33366200256CB7 /* set_comment_revert.test */, - 4BD35EAE1A33366200256CB7 /* set_compression_deflate_to_deflate.test */, - 4BD35EAF1A33366200256CB7 /* set_compression_deflate_to_store.test */, - 4BD35EB01A33366200256CB7 /* set_compression_store_to_deflate.test */, - 4BD35EB11A33366200256CB7 /* set_compression_store_to_store.test */, - 4BD35EB21A33366200256CB7 /* set_compression_unknown.test */, - 4BD35EB31A33366200256CB7 /* set_mtime.test */, - 4BD35EB41A33366200256CB7 /* stat_index_cp437_guess.test */, - 4BD35EB51A33366200256CB7 /* stat_index_cp437_raw.test */, - 4BD35EB61A33366200256CB7 /* stat_index_cp437_strict.test */, - 4BD35EB71A33366200256CB7 /* stat_index_fileorder.test */, - 4BD35EB81A33366200256CB7 /* stat_index_streamed_zip64.test */, - 4BD35EB91A33366200256CB7 /* stat_index_streamed.test */, - 4BD35EBA1A33366200256CB7 /* stat_index_utf8_guess.test */, - 4BD35EBB1A33366200256CB7 /* stat_index_utf8_raw.test */, - 4BD35EBC1A33366200256CB7 /* stat_index_utf8_strict.test */, - 4BD35EBD1A33366200256CB7 /* stat_index_utf8_unmarked_strict.test */, - 4BD35EBE1A33366200256CB7 /* stat_index_zip64.test */, - 4BD35EDD1A33366300256CB7 /* torrent-already.test */, - 4BD35EDE1A33366300256CB7 /* torrent-new.test */, - 4BD35EE11A33366300256CB7 /* utf-8-standardization.test */, - 4BD35EE31A33366300256CB7 /* zip64_creation.test */, - 4BD35EE41A33366300256CB7 /* zip64_stored_creation.test */, - ); - name = "test cases"; - sourceTree = ""; - }; - 4BDC71BD15B181DA00236D3C = { - isa = PBXGroup; - children = ( - 4B28AA2815BAD4F800D0C17D /* info */, - 4BDC71E415B182B200236D3C /* Supporting Files */, - 3D7E353E1B33063600022624 /* examples */, - 4BDC71E315B182B200236D3C /* libzip */, - 4B01D72015B2F54C002D5007 /* src */, - 4BACD57415BC2AA100920691 /* regress */, - 4B28A9EA15BACBE100D0C17D /* man */, - 4BDC71CA15B181DA00236D3C /* Frameworks */, - 4BDC71C915B181DA00236D3C /* Products */, - ); - sourceTree = ""; - tabWidth = 8; - }; - 4BDC71C915B181DA00236D3C /* Products */ = { - isa = PBXGroup; - children = ( - 4BDC71E015B182B200236D3C /* libzip_iOS.framework */, - 4B01D68B15B2F3F1002D5007 /* libzip.framework */, - 4B01D6FD15B2F4B1002D5007 /* zipmerge */, - 4B01D71315B2F4EB002D5007 /* zipcmp */, - 4BACD58915BC2CEA00920691 /* ziptool */, - 4BACD5C115BC2DC900920691 /* add_from_filep */, - 4BACD5D015BC2DF200920691 /* fopen_unchanged */, - 4BACD5DF15BC2F3700920691 /* fread */, - 4BACD65015BC301300920691 /* tryopen */, - 4BD6CB6C19E71CD100710654 /* hole */, - 3D7E35371B3305FB00022624 /* in-memory */, - ); - name = Products; - sourceTree = ""; - }; - 4BDC71CA15B181DA00236D3C /* Frameworks */ = { - isa = PBXGroup; - children = ( - 3D7E35471B33076C00022624 /* libz.dylib */, - 4B01D70815B2F4CF002D5007 /* libz.dylib */, - ); - name = Frameworks; - sourceTree = ""; - }; - 4BDC71E315B182B200236D3C /* libzip */ = { - isa = PBXGroup; - children = ( - 4BDC72A015B1B56400236D3C /* config.h */, - 4BD25DA51CF58790005A9EC4 /* compat.h */, - 4BDC729E15B1B4E900236D3C /* zipconf.h */, - 4BDC729815B1B2A600236D3C /* zip.h */, - 4BDC729915B1B2A600236D3C /* zipint.h */, - 4BCD54C81AB05AA90003D379 /* zipwin32.h */, - 4B3A5F4A1DF96D83005A53A1 /* gladman-fcrypt */, - 4B3A5F4B1DF96D83005A53A1 /* gladman-fcrypt.c */, - 4B3A5F4C1DF96D83005A53A1 /* gladman-fcrypt.h */, - 4BDC71F115B1B25E00236D3C /* zip_add_dir.c */, - 4BDC71F215B1B25E00236D3C /* zip_add_entry.c */, - 4BDC71F315B1B25E00236D3C /* zip_add.c */, - 4BCB434119E9347E0067FAA3 /* zip_buffer.c */, - 4BDC71F415B1B25E00236D3C /* zip_close.c */, - 4BDC71F515B1B25E00236D3C /* zip_delete.c */, - 4BDC71F615B1B25E00236D3C /* zip_dir_add.c */, - 4BDC71F715B1B25E00236D3C /* zip_dirent.c */, - 4BDC71F815B1B25E00236D3C /* zip_discard.c */, - 4BDC71F915B1B25E00236D3C /* zip_entry.c */, - 4BDC71FA15B1B25E00236D3C /* zip_err_str.c */, - 4BDC71FB15B1B25E00236D3C /* zip_error_clear.c */, - 4BDC71FC15B1B25E00236D3C /* zip_error_get_sys_type.c */, - 4BDC71FD15B1B25E00236D3C /* zip_error_get.c */, - 4BDC71FE15B1B25E00236D3C /* zip_error_strerror.c */, - 4BDC71FF15B1B25E00236D3C /* zip_error_to_str.c */, - 4BDC720015B1B25E00236D3C /* zip_error.c */, - 4BDC720115B1B25E00236D3C /* zip_extra_field_api.c */, - 4BDC720215B1B25E00236D3C /* zip_extra_field.c */, - 4BDC720315B1B25E00236D3C /* zip_fclose.c */, - 4BDC720415B1B25E00236D3C /* zip_fdopen.c */, - 4BDC720515B1B25E00236D3C /* zip_file_add.c */, - 4BDC720615B1B25E00236D3C /* zip_file_error_clear.c */, - 4BDC720715B1B25E00236D3C /* zip_file_error_get.c */, - 4BDC720815B1B25E00236D3C /* zip_file_get_comment.c */, - 4B97204D188EBE85002FAFAD /* zip_file_get_external_attributes.c */, - 4BDC720915B1B25E00236D3C /* zip_file_get_offset.c */, - 4BDC720A15B1B25E00236D3C /* zip_file_rename.c */, - 4BDC720B15B1B25E00236D3C /* zip_file_replace.c */, - 4BDC720C15B1B25E00236D3C /* zip_file_set_comment.c */, - 736ED9B71E3D688C00C36873 /* zip_file_set_encryption.c */, - 4B97204E188EBE85002FAFAD /* zip_file_set_external_attributes.c */, - 4B82CED319915F360097BC18 /* zip_file_set_mtime.c */, - 4BDC720D15B1B25E00236D3C /* zip_file_strerror.c */, - 4BDC720E15B1B25E00236D3C /* zip_filerange_crc.c */, - 4BDC720F15B1B25E00236D3C /* zip_fopen_encrypted.c */, - 4BDC721015B1B25E00236D3C /* zip_fopen_index_encrypted.c */, - 4BDC721115B1B25E00236D3C /* zip_fopen_index.c */, - 4BDC721215B1B25E00236D3C /* zip_fopen.c */, - 4BDC721315B1B25E00236D3C /* zip_fread.c */, - 4B3A5F4D1DF96D83005A53A1 /* zip_fseek.c */, - 4B3A5F4E1DF96D83005A53A1 /* zip_ftell.c */, - 4BDC721415B1B25E00236D3C /* zip_get_archive_comment.c */, - 4BDC721515B1B25E00236D3C /* zip_get_archive_flag.c */, - 4BDC721615B1B25E00236D3C /* zip_get_compression_implementation.c */, - 4BDC721715B1B25E00236D3C /* zip_get_encryption_implementation.c */, - 4BDC721815B1B25E00236D3C /* zip_get_file_comment.c */, - 4BDC721915B1B25E00236D3C /* zip_get_name.c */, - 4BDC721A15B1B25E00236D3C /* zip_get_num_entries.c */, - 4BDC721B15B1B25E00236D3C /* zip_get_num_files.c */, - 3D9284801C309510001EABA7 /* zip_hash.c */, - 4BCF3019199A2F820064207B /* zip_io_util.c */, - 4BDC721C15B1B25E00236D3C /* zip_memdup.c */, - 4BDC721D15B1B25E00236D3C /* zip_name_locate.c */, - 4BDC721E15B1B25E00236D3C /* zip_new.c */, - 4BDC721F15B1B25E00236D3C /* zip_open.c */, - 736ED9B81E3D688C00C36873 /* zip_random_unix.c */, - 4BDC722015B1B25E00236D3C /* zip_rename.c */, - 4BDC722115B1B25E00236D3C /* zip_replace.c */, - 4BDC722215B1B25E00236D3C /* zip_set_archive_comment.c */, - 4BDC722315B1B25E00236D3C /* zip_set_archive_flag.c */, - 4BDC722415B1B25E00236D3C /* zip_set_default_password.c */, - 4BDC722515B1B25E00236D3C /* zip_set_file_comment.c */, - 4BDC722615B1B25E00236D3C /* zip_set_file_compression.c */, - 4BDC722715B1B25E00236D3C /* zip_set_name.c */, - 4BCF301A199A2F820064207B /* zip_source_begin_write.c */, - 4BDC722815B1B25E00236D3C /* zip_source_buffer.c */, - 4BD5053219A0116D007DD28A /* zip_source_call.c */, - 4BDC722915B1B25E00236D3C /* zip_source_close.c */, - 4BCF301B199A2F820064207B /* zip_source_commit_write.c */, - 4BDC722A15B1B25E00236D3C /* zip_source_crc.c */, - 4BDC722B15B1B25E00236D3C /* zip_source_deflate.c */, - 4BDC722C15B1B25E00236D3C /* zip_source_error.c */, - 4BDC722D15B1B25E00236D3C /* zip_source_file.c */, - 4BDC722E15B1B25E00236D3C /* zip_source_filep.c */, - 4BDC722F15B1B25E00236D3C /* zip_source_free.c */, - 4BDC723015B1B25E00236D3C /* zip_source_function.c */, - 4BE402AC19D94AE400298248 /* zip_source_is_deleted.c */, - 4BDC723115B1B25E00236D3C /* zip_source_layered.c */, - 4BDC723215B1B25E00236D3C /* zip_source_open.c */, - 4BDC723315B1B25E00236D3C /* zip_source_pkware.c */, - 4BDC723515B1B25E00236D3C /* zip_source_read.c */, - 4BCF3031199ABD3A0064207B /* zip_source_remove.c */, - 4BCF301C199A2F820064207B /* zip_source_rollback_write.c */, - 4BCF301D199A2F820064207B /* zip_source_seek.c */, - 4BCF3034199ABDDA0064207B /* zip_source_seek_write.c */, - 4BDC723615B1B25E00236D3C /* zip_source_stat.c */, - 4BCF301E199A2F820064207B /* zip_source_supports.c */, - 4BCF301F199A2F820064207B /* zip_source_tell.c */, - 4BCF3035199ABDDA0064207B /* zip_source_tell_write.c */, - 4BDC723715B1B25E00236D3C /* zip_source_window.c */, - 736ED9B91E3D688C00C36873 /* zip_source_winzip_aes_decode.c */, - 736ED9BA1E3D688C00C36873 /* zip_source_winzip_aes_encode.c */, - 4BCF3020199A2F820064207B /* zip_source_write.c */, - 4BDC723815B1B25E00236D3C /* zip_source_zip_new.c */, - 4BDC723915B1B25E00236D3C /* zip_source_zip.c */, - 4BDC723A15B1B25E00236D3C /* zip_stat_index.c */, - 4BDC723B15B1B25E00236D3C /* zip_stat_init.c */, - 4BDC723C15B1B25E00236D3C /* zip_stat.c */, - 4BDC723D15B1B25E00236D3C /* zip_strerror.c */, - 4BDC723E15B1B25E00236D3C /* zip_string.c */, - 4BDC723F15B1B25E00236D3C /* zip_unchange_all.c */, - 4BCD54C41AB05AA90003D379 /* zip_source_win32a.c */, - 4BEF35C31AF4D92D00974F28 /* zip_source_win32handle.c */, - 4BCD54C61AB05AA90003D379 /* zip_source_win32utf8.c */, - 4BCD54C71AB05AA90003D379 /* zip_source_win32w.c */, - 4BDC724015B1B25E00236D3C /* zip_unchange_archive.c */, - 4BDC724115B1B25E00236D3C /* zip_unchange_data.c */, - 4BDC724215B1B25E00236D3C /* zip_unchange.c */, - 4BDC724315B1B25E00236D3C /* zip_utf-8.c */, - ); - name = libzip; - path = ../lib; - sourceTree = ""; - }; - 4BDC71E415B182B200236D3C /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 3D77B86517009AA1000A5794 /* extract-version.sh */, - 4B01D73D15B2FB6B002D5007 /* Info.plist */, - ); - name = "Supporting Files"; - path = libzip; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 4B01D68815B2F3F1002D5007 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 4B01D73215B2F5EE002D5007 /* zipconf.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BDC729A15B1B2B100236D3C /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 4BDC729B15B1B2C400236D3C /* zip.h in Headers */, - 4BDC729F15B1B4E900236D3C /* zipconf.h in Headers */, - 4B01D73415B2F5F4002D5007 /* config.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 3D7E35361B3305FB00022624 /* in-memory */ = { - isa = PBXNativeTarget; - buildConfigurationList = 3D7E353D1B3305FB00022624 /* Build configuration list for PBXNativeTarget "in-memory" */; - buildPhases = ( - 3D7E35331B3305FB00022624 /* Sources */, - 3D7E35341B3305FB00022624 /* Frameworks */, - 3D7E35351B3305FB00022624 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - 3D7E35451B33064500022624 /* PBXTargetDependency */, - ); - name = "in-memory"; - productName = "in-memory-example"; - productReference = 3D7E35371B3305FB00022624 /* in-memory */; - productType = "com.apple.product-type.tool"; - }; - 4B01D68A15B2F3F1002D5007 /* libzip */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4B01D69E15B2F3F1002D5007 /* Build configuration list for PBXNativeTarget "libzip" */; - buildPhases = ( - 4B01D68615B2F3F1002D5007 /* Sources */, - 4B01D68715B2F3F1002D5007 /* Frameworks */, - 4B01D68815B2F3F1002D5007 /* Headers */, - 4B01D68915B2F3F1002D5007 /* Resources */, - 3D77B86617009AC5000A5794 /* Copy Version Info from config.h */, - 4B972053188EBEB8002FAFAD /* Fix zipconf.h include. */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = libzip; - productName = "libzip Mac"; - productReference = 4B01D68B15B2F3F1002D5007 /* libzip.framework */; - productType = "com.apple.product-type.framework"; - }; - 4B01D6FC15B2F4B1002D5007 /* zipmerge */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4B01D70415B2F4B1002D5007 /* Build configuration list for PBXNativeTarget "zipmerge" */; - buildPhases = ( - 4B01D6F915B2F4B1002D5007 /* Sources */, - 4B01D6FA15B2F4B1002D5007 /* Frameworks */, - 4B01D6FB15B2F4B1002D5007 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - 4B01D73615B2F639002D5007 /* PBXTargetDependency */, - ); - name = zipmerge; - productName = zipmerge; - productReference = 4B01D6FD15B2F4B1002D5007 /* zipmerge */; - productType = "com.apple.product-type.tool"; - }; - 4B01D70A15B2F4EB002D5007 /* zipcmp */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4B01D71015B2F4EB002D5007 /* Build configuration list for PBXNativeTarget "zipcmp" */; - buildPhases = ( - 4B01D70B15B2F4EB002D5007 /* Sources */, - 4B01D70C15B2F4EB002D5007 /* Frameworks */, - 4B01D70F15B2F4EB002D5007 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - 4B01D73815B2F643002D5007 /* PBXTargetDependency */, - ); - name = zipcmp; - productName = zipcmp; - productReference = 4B01D71315B2F4EB002D5007 /* zipcmp */; - productType = "com.apple.product-type.tool"; - }; - 4BACD58815BC2CEA00920691 /* ziptool */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4BACD59015BC2CEA00920691 /* Build configuration list for PBXNativeTarget "ziptool" */; - buildPhases = ( - 4BACD58515BC2CEA00920691 /* Sources */, - 4BACD58615BC2CEA00920691 /* Frameworks */, - 4BACD58715BC2CEA00920691 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - 4BACD59715BC2D3800920691 /* PBXTargetDependency */, - ); - name = ziptool; - productName = ziptool; - productReference = 4BACD58915BC2CEA00920691 /* ziptool */; - productType = "com.apple.product-type.tool"; - }; - 4BACD5B515BC2DC900920691 /* add_from_filep */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4BACD5BE15BC2DC900920691 /* Build configuration list for PBXNativeTarget "add_from_filep" */; - buildPhases = ( - 4BACD5B815BC2DC900920691 /* Sources */, - 4BACD5BA15BC2DC900920691 /* Frameworks */, - 4BACD5BD15BC2DC900920691 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - 4BACD5B615BC2DC900920691 /* PBXTargetDependency */, - ); - name = add_from_filep; - productName = add_from_filep; - productReference = 4BACD5C115BC2DC900920691 /* add_from_filep */; - productType = "com.apple.product-type.tool"; - }; - 4BACD5C415BC2DF200920691 /* fopen_unchanged */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4BACD5CD15BC2DF200920691 /* Build configuration list for PBXNativeTarget "fopen_unchanged" */; - buildPhases = ( - 4BACD5C715BC2DF200920691 /* Sources */, - 4BACD5C915BC2DF200920691 /* Frameworks */, - 4BACD5CC15BC2DF200920691 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - 4BACD5C515BC2DF200920691 /* PBXTargetDependency */, - ); - name = fopen_unchanged; - productName = fopen_unchanged; - productReference = 4BACD5D015BC2DF200920691 /* fopen_unchanged */; - productType = "com.apple.product-type.tool"; - }; - 4BACD5D315BC2F3700920691 /* fread */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4BACD5DC15BC2F3700920691 /* Build configuration list for PBXNativeTarget "fread" */; - buildPhases = ( - 4BACD5D615BC2F3700920691 /* Sources */, - 4BACD5D815BC2F3700920691 /* Frameworks */, - 4BACD5DB15BC2F3700920691 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - 4BACD5D415BC2F3700920691 /* PBXTargetDependency */, - ); - name = fread; - productName = fread; - productReference = 4BACD5DF15BC2F3700920691 /* fread */; - productType = "com.apple.product-type.tool"; - }; - 4BACD64515BC301300920691 /* tryopen */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4BACD64D15BC301300920691 /* Build configuration list for PBXNativeTarget "tryopen" */; - buildPhases = ( - 4BACD64815BC301300920691 /* Sources */, - 4BACD64915BC301300920691 /* Frameworks */, - 4BACD64C15BC301300920691 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - 4BACD64615BC301300920691 /* PBXTargetDependency */, - ); - name = tryopen; - productName = tryopen; - productReference = 4BACD65015BC301300920691 /* tryopen */; - productType = "com.apple.product-type.tool"; - }; - 4BD6CB5F19E71CD100710654 /* hole */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4BD6CB6919E71CD100710654 /* Build configuration list for PBXNativeTarget "hole" */; - buildPhases = ( - 4BD6CB6219E71CD100710654 /* Sources */, - 4BD6CB6519E71CD100710654 /* Frameworks */, - 4BD6CB6819E71CD100710654 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - 4BD6CB6019E71CD100710654 /* PBXTargetDependency */, - ); - name = hole; - productName = hole; - productReference = 4BD6CB6C19E71CD100710654 /* hole */; - productType = "com.apple.product-type.tool"; - }; - 4BDC71DF15B182B200236D3C /* libzip_iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4BDC71EA15B182B200236D3C /* Build configuration list for PBXNativeTarget "libzip_iOS" */; - buildPhases = ( - 4BDC71DC15B182B200236D3C /* Sources */, - 4BDC71DD15B182B200236D3C /* Frameworks */, - 4BDC71DE15B182B200236D3C /* Resources */, - 4BDC729A15B1B2B100236D3C /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = libzip_iOS; - productName = libzip; - productReference = 4BDC71E015B182B200236D3C /* libzip_iOS.framework */; - productType = "com.apple.product-type.bundle"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 4BDC71BF15B181DA00236D3C /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0810; - ORGANIZATIONNAME = NiH; - TargetAttributes = { - 3D7E35361B3305FB00022624 = { - CreatedOnToolsVersion = 6.3.2; - }; - }; - }; - buildConfigurationList = 4BDC71C215B181DA00236D3C /* Build configuration list for PBXProject "libzip" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 4BDC71BD15B181DA00236D3C; - productRefGroup = 4BDC71C915B181DA00236D3C /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 4B54447915C977A20067BA33 /* all */, - 4BDC71DF15B182B200236D3C /* libzip_iOS */, - 4BDC72A115B1B6EA00236D3C /* Build iOS Framework */, - 4B01D68A15B2F3F1002D5007 /* libzip */, - 4B01D72815B2F5A2002D5007 /* command line tools */, - 4B01D6FC15B2F4B1002D5007 /* zipmerge */, - 4B01D70A15B2F4EB002D5007 /* zipcmp */, - 4BCF6A681C3BDDD500F036E9 /* examples */, - 3D7E35361B3305FB00022624 /* in-memory */, - 4BACD5A715BC2D8200920691 /* test programs */, - 4BACD5B515BC2DC900920691 /* add_from_filep */, - 4BACD5C415BC2DF200920691 /* fopen_unchanged */, - 4BACD5D315BC2F3700920691 /* fread */, - 4BD6CB5F19E71CD100710654 /* hole */, - 4BACD58815BC2CEA00920691 /* ziptool */, - 4BACD64515BC301300920691 /* tryopen */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 4B01D68915B2F3F1002D5007 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BDC71DE15B182B200236D3C /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 3D77B86617009AC5000A5794 /* Copy Version Info from config.h */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Version Info from config.h"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "./extract-version.sh \"config.h\" \"Info.plist\" "; - }; - 4B972053188EBEB8002FAFAD /* Fix zipconf.h include. */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Fix zipconf.h include."; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "sed \"s,,<$EXECUTABLE_NAME/zipconf.h>,\" ../lib/zip.h > \"$BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/Headers/zip.h\""; - }; - 4BDC72A515B1B71500236D3C /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=libzip_iOS\nFMK_VERSION=A\n\n# Install dir will be the final output to the framework.\n# The following line create it in the root folder of the current project.\nINSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework\nSIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.framework\n\n# Building both architectures.\nxcodebuild -configuration \"Release\" -target \"${FMK_NAME}\" -sdk iphoneos\nxcodebuild -configuration \"Release\" -target \"${FMK_NAME}\" -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\n rm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Versions\"\nmkdir -p \"${INSTALL_DIR}/Versions/${FMK_VERSION}\"\nmkdir -p \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources\"\nmkdir -p \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers\"\n\n# Creates the internal links.\n# It MUST uses relative path, otherwise will not work when the folder is copied/moved.\nln -s \"${FMK_VERSION}\" \"${INSTALL_DIR}/Versions/Current\"\nln -s \"Versions/Current/Headers\" \"${INSTALL_DIR}/Headers\"\nln -s \"Versions/Current/Resources\" \"${INSTALL_DIR}/Resources\"\nln -s \"Versions/Current/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${DEVICE_DIR}/Headers/\" \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/\"\ncp -R \"${DEVICE_DIR}/\" \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources/\"\n\n# Removes the binary and header from the resources folder.\nrm -r \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources/Headers\" \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources/${FMK_NAME}\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/${FMK_NAME}\" \"${SIMULATOR_DIR}/${FMK_NAME}\" -output \"${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 3D7E35331B3305FB00022624 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3D7E35431B33063F00022624 /* in-memory.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4B01D68615B2F3F1002D5007 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3D7E35491B330AD500022624 /* zip_source_is_deleted.c in Sources */, - 4BCF3039199ABDDA0064207B /* zip_source_tell_write.c in Sources */, - 4B01D6A615B2F46B002D5007 /* zip_add_dir.c in Sources */, - 4B972052188EBE85002FAFAD /* zip_file_set_external_attributes.c in Sources */, - 4BCF3024199A2F820064207B /* zip_source_begin_write.c in Sources */, - 4B01D6A715B2F46B002D5007 /* zip_add_entry.c in Sources */, - 4B01D6A815B2F46B002D5007 /* zip_add.c in Sources */, - 4B01D6A915B2F46B002D5007 /* zip_close.c in Sources */, - 4B01D6AA15B2F46B002D5007 /* zip_delete.c in Sources */, - 4B01D6AB15B2F46B002D5007 /* zip_dir_add.c in Sources */, - 4B01D6AC15B2F46B002D5007 /* zip_dirent.c in Sources */, - 4B01D6AD15B2F46B002D5007 /* zip_discard.c in Sources */, - 4B01D6AE15B2F46B002D5007 /* zip_entry.c in Sources */, - 4B01D6AF15B2F46B002D5007 /* zip_err_str.c in Sources */, - 4B3A5F521DF96EB4005A53A1 /* zip_fseek.c in Sources */, - 4B01D6B015B2F46B002D5007 /* zip_error_clear.c in Sources */, - 4B01D6B115B2F46B002D5007 /* zip_error_get_sys_type.c in Sources */, - 4B01D6B215B2F46B002D5007 /* zip_error_get.c in Sources */, - 4B01D6B315B2F46B002D5007 /* zip_error_strerror.c in Sources */, - 4B01D6B415B2F46B002D5007 /* zip_error_to_str.c in Sources */, - 4B01D6B515B2F46B002D5007 /* zip_error.c in Sources */, - 736ED9BB1E3D6B6B00C36873 /* zip_source_winzip_aes_decode.c in Sources */, - 4B01D6B615B2F46B002D5007 /* zip_extra_field_api.c in Sources */, - 4B3A5F531DF96EB4005A53A1 /* zip_ftell.c in Sources */, - 736ED9BD1E3D6B7200C36873 /* zip_random_unix.c in Sources */, - 4B01D6B715B2F46B002D5007 /* zip_extra_field.c in Sources */, - 4B01D6B815B2F46B002D5007 /* zip_fclose.c in Sources */, - 4B01D6B915B2F46B002D5007 /* zip_fdopen.c in Sources */, - 4B01D6BA15B2F46B002D5007 /* zip_file_add.c in Sources */, - 4B01D6BB15B2F46B002D5007 /* zip_file_error_clear.c in Sources */, - 4BCF3026199A2F820064207B /* zip_source_commit_write.c in Sources */, - 4B3A5F501DF96EA8005A53A1 /* gladman-fcrypt.c in Sources */, - 4B01D6BC15B2F46B002D5007 /* zip_file_error_get.c in Sources */, - 4B01D6BD15B2F46B002D5007 /* zip_file_get_comment.c in Sources */, - 4B01D6BE15B2F46B002D5007 /* zip_file_get_offset.c in Sources */, - 4B01D6BF15B2F46B002D5007 /* zip_file_rename.c in Sources */, - 4B01D6C015B2F46B002D5007 /* zip_file_replace.c in Sources */, - 4B01D6C115B2F46B002D5007 /* zip_file_set_comment.c in Sources */, - 4BCF3033199ABD3A0064207B /* zip_source_remove.c in Sources */, - 4B01D6C215B2F46B002D5007 /* zip_file_strerror.c in Sources */, - 4B01D6C315B2F46B002D5007 /* zip_filerange_crc.c in Sources */, - 4B01D6C415B2F46B002D5007 /* zip_fopen_encrypted.c in Sources */, - 4BCF302A199A2F820064207B /* zip_source_seek.c in Sources */, - 4B01D6C515B2F46B002D5007 /* zip_fopen_index_encrypted.c in Sources */, - 4B01D6C615B2F46B002D5007 /* zip_fopen_index.c in Sources */, - 4B01D6C715B2F46B002D5007 /* zip_fopen.c in Sources */, - 3D9284821C309510001EABA7 /* zip_hash.c in Sources */, - 4B01D6C815B2F46B002D5007 /* zip_fread.c in Sources */, - 736ED9BF1E3D6B7C00C36873 /* zip_file_set_encryption.c in Sources */, - 4B01D6C915B2F46B002D5007 /* zip_get_archive_comment.c in Sources */, - 4B01D6CA15B2F46B002D5007 /* zip_get_archive_flag.c in Sources */, - 736ED9BC1E3D6B6F00C36873 /* zip_source_winzip_aes_encode.c in Sources */, - 4B01D6CB15B2F46B002D5007 /* zip_get_compression_implementation.c in Sources */, - 4BD5053419A01BB0007DD28A /* zip_source_call.c in Sources */, - 4BCF3030199A2F820064207B /* zip_source_write.c in Sources */, - 4B01D6CC15B2F46B002D5007 /* zip_get_encryption_implementation.c in Sources */, - 4B01D6CD15B2F46B002D5007 /* zip_get_file_comment.c in Sources */, - 4B01D6CE15B2F46B002D5007 /* zip_get_name.c in Sources */, - 4B01D6CF15B2F46B002D5007 /* zip_get_num_entries.c in Sources */, - 4B01D6D015B2F46B002D5007 /* zip_get_num_files.c in Sources */, - 4B01D6D115B2F46B002D5007 /* zip_memdup.c in Sources */, - 4B01D6D215B2F46B002D5007 /* zip_name_locate.c in Sources */, - 4B01D6D315B2F46B002D5007 /* zip_new.c in Sources */, - 4B01D6D415B2F46B002D5007 /* zip_open.c in Sources */, - 4B01D6D515B2F46B002D5007 /* zip_rename.c in Sources */, - 4BCF302E199A2F820064207B /* zip_source_tell.c in Sources */, - 4B972050188EBE85002FAFAD /* zip_file_get_external_attributes.c in Sources */, - 4B01D6D615B2F46B002D5007 /* zip_replace.c in Sources */, - 4B01D6D715B2F46B002D5007 /* zip_set_archive_comment.c in Sources */, - 4B01D6D815B2F46B002D5007 /* zip_set_archive_flag.c in Sources */, - 4B01D6D915B2F46B002D5007 /* zip_set_default_password.c in Sources */, - 4B01D6DA15B2F46B002D5007 /* zip_set_file_comment.c in Sources */, - 4B01D6DB15B2F46B002D5007 /* zip_set_file_compression.c in Sources */, - 4B01D6DC15B2F46B002D5007 /* zip_set_name.c in Sources */, - 4B01D6DD15B2F46B002D5007 /* zip_source_buffer.c in Sources */, - 4BCB434319E9347E0067FAA3 /* zip_buffer.c in Sources */, - 4B01D6DE15B2F46B002D5007 /* zip_source_close.c in Sources */, - 4B01D6DF15B2F46B002D5007 /* zip_source_crc.c in Sources */, - 4B01D6E015B2F46B002D5007 /* zip_source_deflate.c in Sources */, - 4B01D6E115B2F46B002D5007 /* zip_source_error.c in Sources */, - 4B01D6E215B2F46B002D5007 /* zip_source_file.c in Sources */, - 4B01D6E315B2F46B002D5007 /* zip_source_filep.c in Sources */, - 4B01D6E415B2F46B002D5007 /* zip_source_free.c in Sources */, - 4B01D6E515B2F46B002D5007 /* zip_source_function.c in Sources */, - 4BCF3022199A2F820064207B /* zip_io_util.c in Sources */, - 4B01D6E615B2F46B002D5007 /* zip_source_layered.c in Sources */, - 4B01D6E715B2F46B002D5007 /* zip_source_open.c in Sources */, - 4B01D6E815B2F46B002D5007 /* zip_source_pkware.c in Sources */, - 4B01D6EA15B2F46B002D5007 /* zip_source_read.c in Sources */, - 4B01D6EB15B2F46B002D5007 /* zip_source_stat.c in Sources */, - 4BCF302C199A2F820064207B /* zip_source_supports.c in Sources */, - 4B01D6EC15B2F46B002D5007 /* zip_source_window.c in Sources */, - 4B01D6ED15B2F46B002D5007 /* zip_source_zip_new.c in Sources */, - 4B01D6EE15B2F46B002D5007 /* zip_source_zip.c in Sources */, - 4B01D6EF15B2F46B002D5007 /* zip_stat_index.c in Sources */, - 4B01D6F015B2F46B002D5007 /* zip_stat_init.c in Sources */, - 4B82CED519915F360097BC18 /* zip_file_set_mtime.c in Sources */, - 4B01D6F115B2F46B002D5007 /* zip_stat.c in Sources */, - 4B01D6F215B2F46B002D5007 /* zip_strerror.c in Sources */, - 4B01D6F315B2F46B002D5007 /* zip_string.c in Sources */, - 4B01D6F415B2F46B002D5007 /* zip_unchange_all.c in Sources */, - 4B01D6F515B2F46B002D5007 /* zip_unchange_archive.c in Sources */, - 4BCF3028199A2F820064207B /* zip_source_rollback_write.c in Sources */, - 4BCF3037199ABDDA0064207B /* zip_source_seek_write.c in Sources */, - 4B01D6F615B2F46B002D5007 /* zip_unchange_data.c in Sources */, - 4B01D6F715B2F46B002D5007 /* zip_unchange.c in Sources */, - 4B01D6F815B2F46B002D5007 /* zip_utf-8.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4B01D6F915B2F4B1002D5007 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4B01D72615B2F57F002D5007 /* zipmerge.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4B01D70B15B2F4EB002D5007 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4B01D72515B2F57B002D5007 /* zipcmp.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BACD58515BC2CEA00920691 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4BACD59515BC2D1C00920691 /* ziptool.c in Sources */, - 4BD6CB5D19E6A5D900710654 /* source_hole.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BACD5B815BC2DC900920691 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4BACD5C315BC2DE000920691 /* add_from_filep.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BACD5C715BC2DF200920691 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4BACD5D215BC2EFE00920691 /* fopen_unchanged.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BACD5D615BC2F3700920691 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4BACD5E115BC2F4500920691 /* fread.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BACD64815BC301300920691 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4BACD65315BC302500920691 /* tryopen.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BD6CB6219E71CD100710654 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4BD6CB6F19E71D6900710654 /* hole.c in Sources */, - 4BD6CB6419E71CD100710654 /* source_hole.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4BDC71DC15B182B200236D3C /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3D7E354A1B330BCD00022624 /* zip_source_is_deleted.c in Sources */, - 4BCF3038199ABDDA0064207B /* zip_source_tell_write.c in Sources */, - 4BDC724415B1B25E00236D3C /* zip_add_dir.c in Sources */, - 4B972051188EBE85002FAFAD /* zip_file_set_external_attributes.c in Sources */, - 4BCF3023199A2F820064207B /* zip_source_begin_write.c in Sources */, - 4BDC724515B1B25E00236D3C /* zip_add_entry.c in Sources */, - 4BDC724615B1B25E00236D3C /* zip_add.c in Sources */, - 736ED9C11E3D6B8300C36873 /* zip_source_winzip_aes_decode.c in Sources */, - 4BDC724715B1B25E00236D3C /* zip_close.c in Sources */, - 4BDC724815B1B25E00236D3C /* zip_delete.c in Sources */, - 736ED9C21E3D6B8600C36873 /* zip_source_winzip_aes_encode.c in Sources */, - 4BDC724915B1B25E00236D3C /* zip_dir_add.c in Sources */, - 4BDC724A15B1B25E00236D3C /* zip_dirent.c in Sources */, - 4BDC724B15B1B25E00236D3C /* zip_discard.c in Sources */, - 4BDC724C15B1B25E00236D3C /* zip_entry.c in Sources */, - 4BDC724D15B1B25E00236D3C /* zip_err_str.c in Sources */, - 4B3A5F541DF96EB5005A53A1 /* zip_fseek.c in Sources */, - 4BDC724E15B1B25E00236D3C /* zip_error_clear.c in Sources */, - 4BDC724F15B1B25E00236D3C /* zip_error_get_sys_type.c in Sources */, - 4BDC725015B1B25E00236D3C /* zip_error_get.c in Sources */, - 4BDC725115B1B25E00236D3C /* zip_error_strerror.c in Sources */, - 4BDC725215B1B25E00236D3C /* zip_error_to_str.c in Sources */, - 4BDC725315B1B25E00236D3C /* zip_error.c in Sources */, - 4BDC725415B1B25E00236D3C /* zip_extra_field_api.c in Sources */, - 4B3A5F551DF96EB5005A53A1 /* zip_ftell.c in Sources */, - 4BDC725515B1B25E00236D3C /* zip_extra_field.c in Sources */, - 4BDC725615B1B25E00236D3C /* zip_fclose.c in Sources */, - 4BDC725715B1B25E00236D3C /* zip_fdopen.c in Sources */, - 4BDC725815B1B25E00236D3C /* zip_file_add.c in Sources */, - 4BDC725915B1B25E00236D3C /* zip_file_error_clear.c in Sources */, - 4BCF3025199A2F820064207B /* zip_source_commit_write.c in Sources */, - 4B3A5F511DF96EA9005A53A1 /* gladman-fcrypt.c in Sources */, - 4BDC725A15B1B25E00236D3C /* zip_file_error_get.c in Sources */, - 4BDC725B15B1B25E00236D3C /* zip_file_get_comment.c in Sources */, - 4BDC725C15B1B25E00236D3C /* zip_file_get_offset.c in Sources */, - 4BDC725D15B1B25E00236D3C /* zip_file_rename.c in Sources */, - 4BDC725E15B1B25E00236D3C /* zip_file_replace.c in Sources */, - 4BDC725F15B1B25E00236D3C /* zip_file_set_comment.c in Sources */, - 4BCF3032199ABD3A0064207B /* zip_source_remove.c in Sources */, - 4BDC726015B1B25E00236D3C /* zip_file_strerror.c in Sources */, - 4BDC726115B1B25E00236D3C /* zip_filerange_crc.c in Sources */, - 4BDC726215B1B25E00236D3C /* zip_fopen_encrypted.c in Sources */, - 4BCF3029199A2F820064207B /* zip_source_seek.c in Sources */, - 4BDC726315B1B25E00236D3C /* zip_fopen_index_encrypted.c in Sources */, - 4BDC726415B1B25E00236D3C /* zip_fopen_index.c in Sources */, - 4BDC726515B1B25E00236D3C /* zip_fopen.c in Sources */, - 3D9284811C309510001EABA7 /* zip_hash.c in Sources */, - 4BDC726615B1B25E00236D3C /* zip_fread.c in Sources */, - 4BDC726715B1B25E00236D3C /* zip_get_archive_comment.c in Sources */, - 4BDC726815B1B25E00236D3C /* zip_get_archive_flag.c in Sources */, - 4BDC726915B1B25E00236D3C /* zip_get_compression_implementation.c in Sources */, - 736ED9C01E3D6B8000C36873 /* zip_random_unix.c in Sources */, - 4BD5053319A0116D007DD28A /* zip_source_call.c in Sources */, - 4BCF302F199A2F820064207B /* zip_source_write.c in Sources */, - 4BDC726A15B1B25E00236D3C /* zip_get_encryption_implementation.c in Sources */, - 4BDC726B15B1B25E00236D3C /* zip_get_file_comment.c in Sources */, - 4BDC726C15B1B25E00236D3C /* zip_get_name.c in Sources */, - 4BDC726D15B1B25E00236D3C /* zip_get_num_entries.c in Sources */, - 4BDC726E15B1B25E00236D3C /* zip_get_num_files.c in Sources */, - 4BDC726F15B1B25E00236D3C /* zip_memdup.c in Sources */, - 4BDC727015B1B25E00236D3C /* zip_name_locate.c in Sources */, - 4BDC727115B1B25E00236D3C /* zip_new.c in Sources */, - 4BDC727215B1B25E00236D3C /* zip_open.c in Sources */, - 4BDC727315B1B25E00236D3C /* zip_rename.c in Sources */, - 4BCF302D199A2F820064207B /* zip_source_tell.c in Sources */, - 4B97204F188EBE85002FAFAD /* zip_file_get_external_attributes.c in Sources */, - 4BDC727415B1B25E00236D3C /* zip_replace.c in Sources */, - 4BDC727515B1B25E00236D3C /* zip_set_archive_comment.c in Sources */, - 736ED9BE1E3D6B7C00C36873 /* zip_file_set_encryption.c in Sources */, - 4BDC727615B1B25E00236D3C /* zip_set_archive_flag.c in Sources */, - 4BDC727715B1B25E00236D3C /* zip_set_default_password.c in Sources */, - 4BDC727815B1B25E00236D3C /* zip_set_file_comment.c in Sources */, - 4BDC727915B1B25E00236D3C /* zip_set_file_compression.c in Sources */, - 4BDC727A15B1B25E00236D3C /* zip_set_name.c in Sources */, - 4BDC727B15B1B25E00236D3C /* zip_source_buffer.c in Sources */, - 4BCB434219E9347E0067FAA3 /* zip_buffer.c in Sources */, - 4BDC727C15B1B25E00236D3C /* zip_source_close.c in Sources */, - 4BDC727D15B1B25E00236D3C /* zip_source_crc.c in Sources */, - 4BDC727E15B1B25E00236D3C /* zip_source_deflate.c in Sources */, - 4BDC727F15B1B25E00236D3C /* zip_source_error.c in Sources */, - 4BDC728015B1B25E00236D3C /* zip_source_file.c in Sources */, - 4BDC728115B1B25E00236D3C /* zip_source_filep.c in Sources */, - 4BDC728215B1B25E00236D3C /* zip_source_free.c in Sources */, - 4BDC728315B1B25E00236D3C /* zip_source_function.c in Sources */, - 4BCF3021199A2F820064207B /* zip_io_util.c in Sources */, - 4BDC728415B1B25E00236D3C /* zip_source_layered.c in Sources */, - 4BDC728515B1B25E00236D3C /* zip_source_open.c in Sources */, - 4BDC728615B1B25E00236D3C /* zip_source_pkware.c in Sources */, - 4BDC728815B1B25E00236D3C /* zip_source_read.c in Sources */, - 4BDC728915B1B25E00236D3C /* zip_source_stat.c in Sources */, - 4BCF302B199A2F820064207B /* zip_source_supports.c in Sources */, - 4BDC728A15B1B25E00236D3C /* zip_source_window.c in Sources */, - 4BDC728B15B1B25E00236D3C /* zip_source_zip_new.c in Sources */, - 4BDC728C15B1B25E00236D3C /* zip_source_zip.c in Sources */, - 4BDC728D15B1B25E00236D3C /* zip_stat_index.c in Sources */, - 4BDC728E15B1B25E00236D3C /* zip_stat_init.c in Sources */, - 4B82CED419915F360097BC18 /* zip_file_set_mtime.c in Sources */, - 4BDC728F15B1B25E00236D3C /* zip_stat.c in Sources */, - 4BDC729015B1B25E00236D3C /* zip_strerror.c in Sources */, - 4BDC729115B1B25E00236D3C /* zip_string.c in Sources */, - 4BDC729215B1B25E00236D3C /* zip_unchange_all.c in Sources */, - 4BDC729315B1B25E00236D3C /* zip_unchange_archive.c in Sources */, - 4BCF3027199A2F820064207B /* zip_source_rollback_write.c in Sources */, - 4BCF3036199ABDDA0064207B /* zip_source_seek_write.c in Sources */, - 4BDC729415B1B25E00236D3C /* zip_unchange_data.c in Sources */, - 4BDC729515B1B25E00236D3C /* zip_unchange.c in Sources */, - 4BDC729615B1B25E00236D3C /* zip_utf-8.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 3D7E35451B33064500022624 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4B01D68A15B2F3F1002D5007 /* libzip */; - targetProxy = 3D7E35441B33064500022624 /* PBXContainerItemProxy */; - }; - 4B01D72D15B2F5AC002D5007 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4B01D6FC15B2F4B1002D5007 /* zipmerge */; - targetProxy = 4B01D72C15B2F5AC002D5007 /* PBXContainerItemProxy */; - }; - 4B01D72F15B2F5AC002D5007 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4B01D70A15B2F4EB002D5007 /* zipcmp */; - targetProxy = 4B01D72E15B2F5AC002D5007 /* PBXContainerItemProxy */; - }; - 4B01D73615B2F639002D5007 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4B01D68A15B2F3F1002D5007 /* libzip */; - targetProxy = 4B01D73515B2F639002D5007 /* PBXContainerItemProxy */; - }; - 4B01D73815B2F643002D5007 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4B01D68A15B2F3F1002D5007 /* libzip */; - targetProxy = 4B01D73715B2F643002D5007 /* PBXContainerItemProxy */; - }; - 4B2CADAC1C50D57800291DE6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4BACD58815BC2CEA00920691 /* ziptool */; - targetProxy = 4B2CADAB1C50D57800291DE6 /* PBXContainerItemProxy */; - }; - 4B54447F15C977AF0067BA33 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4B01D72815B2F5A2002D5007 /* command line tools */; - targetProxy = 4B54447E15C977AF0067BA33 /* PBXContainerItemProxy */; - }; - 4B54448115C977B10067BA33 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4BACD5A715BC2D8200920691 /* test programs */; - targetProxy = 4B54448015C977B10067BA33 /* PBXContainerItemProxy */; - }; - 4BACD59715BC2D3800920691 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4B01D68A15B2F3F1002D5007 /* libzip */; - targetProxy = 4BACD59615BC2D3800920691 /* PBXContainerItemProxy */; - }; - 4BACD5B615BC2DC900920691 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4B01D68A15B2F3F1002D5007 /* libzip */; - targetProxy = 4BACD5B715BC2DC900920691 /* PBXContainerItemProxy */; - }; - 4BACD5C515BC2DF200920691 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4B01D68A15B2F3F1002D5007 /* libzip */; - targetProxy = 4BACD5C615BC2DF200920691 /* PBXContainerItemProxy */; - }; - 4BACD5D415BC2F3700920691 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4B01D68A15B2F3F1002D5007 /* libzip */; - targetProxy = 4BACD5D515BC2F3700920691 /* PBXContainerItemProxy */; - }; - 4BACD64615BC301300920691 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4B01D68A15B2F3F1002D5007 /* libzip */; - targetProxy = 4BACD64715BC301300920691 /* PBXContainerItemProxy */; - }; - 4BACD65515BC303B00920691 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4BACD5B515BC2DC900920691 /* add_from_filep */; - targetProxy = 4BACD65415BC303B00920691 /* PBXContainerItemProxy */; - }; - 4BACD65715BC303B00920691 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4BACD5C415BC2DF200920691 /* fopen_unchanged */; - targetProxy = 4BACD65615BC303B00920691 /* PBXContainerItemProxy */; - }; - 4BACD65915BC303B00920691 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4BACD5D315BC2F3700920691 /* fread */; - targetProxy = 4BACD65815BC303B00920691 /* PBXContainerItemProxy */; - }; - 4BACD66915BC303B00920691 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4BACD64515BC301300920691 /* tryopen */; - targetProxy = 4BACD66815BC303B00920691 /* PBXContainerItemProxy */; - }; - 4BCF6A791C3BDDF900F036E9 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 3D7E35361B3305FB00022624 /* in-memory */; - targetProxy = 4BCF6A781C3BDDF900F036E9 /* PBXContainerItemProxy */; - }; - 4BCF6A7B1C3BDDFF00F036E9 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4BCF6A681C3BDDD500F036E9 /* examples */; - targetProxy = 4BCF6A7A1C3BDDFF00F036E9 /* PBXContainerItemProxy */; - }; - 4BD6CB6019E71CD100710654 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4B01D68A15B2F3F1002D5007 /* libzip */; - targetProxy = 4BD6CB6119E71CD100710654 /* PBXContainerItemProxy */; - }; - 4BD6CB6E19E71D0800710654 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4BD6CB5F19E71CD100710654 /* hole */; - targetProxy = 4BD6CB6D19E71D0800710654 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 3D7E353B1B3305FB00022624 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 3D7E353C1B3305FB00022624 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; - 4B01D69C15B2F3F1002D5007 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES; - CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES; - COMBINE_HIDPI_IMAGES = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - FRAMEWORK_VERSION = A; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREFIX_HEADER = ""; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_PEDANTIC = YES; - GCC_WARN_SHADOW = YES; - GCC_WARN_SIGN_COMPARE = YES; - HEADER_SEARCH_PATHS = "../lib/gladman-fcrypt"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "@rpath"; - PRODUCT_BUNDLE_IDENTIFIER = "at.nih.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - VERSION_INFO_BUILDER = ""; - VERSION_INFO_FILE = ""; - WRAPPER_EXTENSION = framework; - }; - name = Debug; - }; - 4B01D69D15B2F3F1002D5007 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES; - CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - FRAMEWORK_VERSION = A; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREFIX_HEADER = ""; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_PEDANTIC = YES; - GCC_WARN_SHADOW = YES; - GCC_WARN_SIGN_COMPARE = YES; - HEADER_SEARCH_PATHS = "../lib/gladman-fcrypt"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "@rpath"; - PRODUCT_BUNDLE_IDENTIFIER = "at.nih.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - VERSION_INFO_BUILDER = ""; - VERSION_INFO_FILE = ""; - WRAPPER_EXTENSION = framework; - }; - name = Release; - }; - 4B01D70515B2F4B1002D5007 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES; - CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_PEDANTIC = YES; - GCC_WARN_SHADOW = YES; - GCC_WARN_SIGN_COMPARE = YES; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 4B01D70615B2F4B1002D5007 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES; - CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_PEDANTIC = YES; - GCC_WARN_SHADOW = YES; - GCC_WARN_SIGN_COMPARE = YES; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; - 4B01D71115B2F4EB002D5007 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/"; - PRODUCT_NAME = zipcmp; - }; - name = Debug; - }; - 4B01D71215B2F4EB002D5007 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/"; - PRODUCT_NAME = zipcmp; - }; - name = Release; - }; - 4B01D72A15B2F5A2002D5007 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 4B01D72B15B2F5A2002D5007 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; - 4B54447A15C977A20067BA33 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 4B54447B15C977A20067BA33 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; - 4BACD59115BC2CEA00920691 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 4BACD59215BC2CEA00920691 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; - 4BACD5AF15BC2D8200920691 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - PRODUCT_NAME = "command line tools copy"; - }; - name = Debug; - }; - 4BACD5B015BC2D8200920691 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - PRODUCT_NAME = "command line tools copy"; - }; - name = Release; - }; - 4BACD5BF15BC2DC900920691 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/"; - PRODUCT_NAME = add_from_filep; - }; - name = Debug; - }; - 4BACD5C015BC2DC900920691 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/"; - PRODUCT_NAME = add_from_filep; - }; - name = Release; - }; - 4BACD5CE15BC2DF200920691 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/"; - PRODUCT_NAME = fopen_unchanged; - }; - name = Debug; - }; - 4BACD5CF15BC2DF200920691 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/"; - PRODUCT_NAME = fopen_unchanged; - }; - name = Release; - }; - 4BACD5DD15BC2F3700920691 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/"; - PRODUCT_NAME = fread; - }; - name = Debug; - }; - 4BACD5DE15BC2F3700920691 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/"; - PRODUCT_NAME = fread; - }; - name = Release; - }; - 4BACD64E15BC301300920691 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/"; - PRODUCT_NAME = tryopen; - }; - name = Debug; - }; - 4BACD64F15BC301300920691 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/"; - PRODUCT_NAME = tryopen; - }; - name = Release; - }; - 4BCF6A761C3BDDD500F036E9 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 4BCF6A771C3BDDD500F036E9 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; - 4BD6CB6A19E71CD100710654 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/"; - PRODUCT_NAME = hole; - }; - name = Debug; - }; - 4BD6CB6B19E71CD100710654 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/"; - PRODUCT_NAME = hole; - }; - name = Release; - }; - 4BDC71D315B181DA00236D3C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = "HAVE_CONFIG_H=1"; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_SHADOW = YES; - GCC_WARN_SIGN_COMPARE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.6; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - }; - name = Debug; - }; - 4BDC71D415B181DA00236D3C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = "HAVE_CONFIG_H=1"; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_SHADOW = YES; - GCC_WARN_SIGN_COMPARE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.6; - SDKROOT = macosx; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 4BDC71EB15B182B200236D3C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES; - COPY_PHASE_STRIP = YES; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_PEDANTIC = YES; - GCC_WARN_SIGN_COMPARE = YES; - HEADER_SEARCH_PATHS = "../lib/gladman-fcrypt"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - LINK_WITH_STANDARD_LIBRARIES = NO; - MACH_O_TYPE = mh_object; - PRODUCT_BUNDLE_IDENTIFIER = "at.nih.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - RUN_CLANG_STATIC_ANALYZER = YES; - SDKROOT = iphoneos; - WRAPPER_EXTENSION = framework; - }; - name = Debug; - }; - 4BDC71EC15B182B200236D3C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_PEDANTIC = YES; - GCC_WARN_SIGN_COMPARE = YES; - HEADER_SEARCH_PATHS = "../lib/gladman-fcrypt"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - LINK_WITH_STANDARD_LIBRARIES = NO; - MACH_O_TYPE = mh_object; - PRODUCT_BUNDLE_IDENTIFIER = "at.nih.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - RUN_CLANG_STATIC_ANALYZER = YES; - SDKROOT = iphoneos; - WRAPPER_EXTENSION = framework; - }; - name = Release; - }; - 4BDC72A315B1B6EA00236D3C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 4BDC72A415B1B6EA00236D3C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 3D7E353D1B3305FB00022624 /* Build configuration list for PBXNativeTarget "in-memory" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3D7E353B1B3305FB00022624 /* Debug */, - 3D7E353C1B3305FB00022624 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4B01D69E15B2F3F1002D5007 /* Build configuration list for PBXNativeTarget "libzip" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4B01D69C15B2F3F1002D5007 /* Debug */, - 4B01D69D15B2F3F1002D5007 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4B01D70415B2F4B1002D5007 /* Build configuration list for PBXNativeTarget "zipmerge" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4B01D70515B2F4B1002D5007 /* Debug */, - 4B01D70615B2F4B1002D5007 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4B01D71015B2F4EB002D5007 /* Build configuration list for PBXNativeTarget "zipcmp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4B01D71115B2F4EB002D5007 /* Debug */, - 4B01D71215B2F4EB002D5007 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4B01D72915B2F5A2002D5007 /* Build configuration list for PBXAggregateTarget "command line tools" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4B01D72A15B2F5A2002D5007 /* Debug */, - 4B01D72B15B2F5A2002D5007 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4B54447C15C977A20067BA33 /* Build configuration list for PBXAggregateTarget "all" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4B54447A15C977A20067BA33 /* Debug */, - 4B54447B15C977A20067BA33 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4BACD59015BC2CEA00920691 /* Build configuration list for PBXNativeTarget "ziptool" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4BACD59115BC2CEA00920691 /* Debug */, - 4BACD59215BC2CEA00920691 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4BACD5AE15BC2D8200920691 /* Build configuration list for PBXAggregateTarget "test programs" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4BACD5AF15BC2D8200920691 /* Debug */, - 4BACD5B015BC2D8200920691 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4BACD5BE15BC2DC900920691 /* Build configuration list for PBXNativeTarget "add_from_filep" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4BACD5BF15BC2DC900920691 /* Debug */, - 4BACD5C015BC2DC900920691 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4BACD5CD15BC2DF200920691 /* Build configuration list for PBXNativeTarget "fopen_unchanged" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4BACD5CE15BC2DF200920691 /* Debug */, - 4BACD5CF15BC2DF200920691 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4BACD5DC15BC2F3700920691 /* Build configuration list for PBXNativeTarget "fread" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4BACD5DD15BC2F3700920691 /* Debug */, - 4BACD5DE15BC2F3700920691 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4BACD64D15BC301300920691 /* Build configuration list for PBXNativeTarget "tryopen" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4BACD64E15BC301300920691 /* Debug */, - 4BACD64F15BC301300920691 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4BCF6A751C3BDDD500F036E9 /* Build configuration list for PBXAggregateTarget "examples" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4BCF6A761C3BDDD500F036E9 /* Debug */, - 4BCF6A771C3BDDD500F036E9 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4BD6CB6919E71CD100710654 /* Build configuration list for PBXNativeTarget "hole" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4BD6CB6A19E71CD100710654 /* Debug */, - 4BD6CB6B19E71CD100710654 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4BDC71C215B181DA00236D3C /* Build configuration list for PBXProject "libzip" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4BDC71D315B181DA00236D3C /* Debug */, - 4BDC71D415B181DA00236D3C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4BDC71EA15B182B200236D3C /* Build configuration list for PBXNativeTarget "libzip_iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4BDC71EB15B182B200236D3C /* Debug */, - 4BDC71EC15B182B200236D3C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4BDC72A215B1B6EA00236D3C /* Build configuration list for PBXAggregateTarget "Build iOS Framework" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4BDC72A315B1B6EA00236D3C /* Debug */, - 4BDC72A415B1B6EA00236D3C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 4BDC71BF15B181DA00236D3C /* Project object */; -} diff --git a/libzip-1.2.0/xcode/libzip.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/libzip-1.2.0/xcode/libzip.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index a3025873b..000000000 --- a/libzip-1.2.0/xcode/libzip.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/libzip-1.2.0/xcode/zipconf.h b/libzip-1.2.0/xcode/zipconf.h deleted file mode 100644 index 763f0ec7d..000000000 --- a/libzip-1.2.0/xcode/zipconf.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef _HAD_ZIPCONF_H -#define _HAD_ZIPCONF_H - -/* - zipconf.h -- platform specific include file - - This file was generated automatically by ./make_zipconf.sh - based on ../config.h. - */ - -#define LIBZIP_VERSION "0.11" -#define LIBZIP_VERSION_MAJOR 0 -#define LIBZIP_VERSION_MINOR 11 -#define LIBZIP_VERSION_MICRO 0 - -#include - -typedef int8_t zip_int8_t; -#define ZIP_INT8_MIN INT8_MIN -#define ZIP_INT8_MAX INT8_MAX - -typedef uint8_t zip_uint8_t; -#define ZIP_UINT8_MAX UINT8_MAX - -typedef int16_t zip_int16_t; -#define ZIP_INT16_MIN INT16_MIN -#define ZIP_INT16_MAX INT16_MAX - -typedef uint16_t zip_uint16_t; -#define ZIP_UINT16_MAX UINT16_MAX - -typedef int32_t zip_int32_t; -#define ZIP_INT32_MIN INT32_MIN -#define ZIP_INT32_MAX INT32_MAX - -typedef uint32_t zip_uint32_t; -#define ZIP_UINT32_MAX UINT32_MAX - -typedef int64_t zip_int64_t; -#define ZIP_INT64_MIN INT64_MIN -#define ZIP_INT64_MAX INT64_MAX - -typedef uint64_t zip_uint64_t; -#define ZIP_UINT64_MAX UINT64_MAX - - -#endif /* zipconf.h */

    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