1HOW TO INSTALL ZIP 2 3 Zip is distributed as C source code that can be compiled on a 4 wide range of systems: Unix, VMS, MSDOS, OS/2, NT, Amiga, Atari, 5 BeOS, VM/CMS, ... You will need Unzip 5.0p1 or later (under any 6 system) or PKUNZIP 2.04g or later (under MSDOS) to unpack the 7 distribution file, in this case zip30.zip. But since you read this, 8 you have unpacked it already, or you cheated and got a tar.Z file... 9 10 Note: Zip 3.0 distribution kits (unlike previously distributed 11 Zip 2.x kits) are created with a top-level directory ("zip30") in 12 the archive, making the creating of the zipsrc directory optional. 13 14Installation on Unix (see below for installation on other systems) 15 16 Let's assume that you start from scratch and have not yet unpacked 17 the sources. First step, then, is to unpack Zip. The following 18 assumes that you have zip30.zip in the current directory. 19 20 For example, to extract to a new zipsrc directory (assuming 21 zip30.zip is in the current directory): 22 23 mkdir zipsrc 24 cd zipsrc 25 cp ../zip30.zip . 26 unzip zip30.zip 27 cd zip30 28 29 To extract in an existing directory, such as /usr/local/src/zip: 30 31 cd /usr/local/src/zip 32 (copy zip30.zip here) 33 unzip zip30.zip 34 cd zip30 35 36 The first extracts all source files and documentation to the 37 directory "zipsrc/zip30". The second places the zip30 directory 38 in the "/usr/local/src/zip" directory. Both then cd in to the 39 zip30 directory where Zip will be built. 40 41 Note: This release now includes the standard encryption code 42 previously in the separate package zcrypt29.zip, but you still 43 can decide whether to activate the crypt code or not. Crypt is 44 enabled by default, but you may disable it by specifying the 45 option -DNO_CRYPT in the LOCAL_ZIP environment variable (or by 46 adding this option to the compilation options in the appropiate 47 makefile). See README.CR for more on crypt. 48 49 You then do: 50 51 make -f unix/Makefile system 52 53 where "system" is one of: generic, generic_gcc, 54 att6300, coherent, cray_v3, minix, sco_x286, xenix, zilog. 55 56 For Unix systems where "cc" is the preferred C compiler command, 57 try 58 59 make -f unix/Makefile generic 60 61 first. If "gcc" is preferred, specify "generic_gcc" instead of 62 "generic". This should work on most systems and automatically 63 selects compilation options based on a set of tests (in 64 unix/configure), including detection of large file support 65 sufficient to enable Zip64 large archive features. If "generic" 66 (or "generic_gcc" if that is used) fail, then one of the special 67 targets given above may work. 68 69 Among other special systems are Cray Unicos, Zilog Zeus and MINIX. 70 71 The optimization settings for many systems should be close, but 72 if you see optimization for your system is not ideal, send in 73 the changes so we can improve it. 74 75 By default, Zip uses the "deflate" compression method. To add 76 the additional optional "bzip2" compression method, see the file 77 bzip2/install.txt. Note that bzip2 support is provided by 78 compiling or linking in the bzip2 library. See the bzip2 site 79 (http://www.bzip.org/) for more on bzip2. 80 81 If you get error messages such as "constant expected" in 82 deflate.c, add -DDYN_ALLOC to CFLAGS in your makefile entry. 83 84 If you have lots of memory, try compiling with -DBIG_MEM. If your 85 system supports mmap(), try compiling with -DMMAP. This generally 86 gives faster compression but uses more memory. See the unix/Makefile 87 entry mmap_gcc for an example. 88 89 If none of these compiles, links, and functions properly on 90 your Unix system, then your system apparently has specific 91 requirements we did not account for. See the file README for how 92 to get help. 93 94 If the appropriate system was selected, then the executables zip, 95 zipnote, zipcloak, and zipsplit will be created. You can copy 96 them to an appropriate directory in the search path using: 97 98 make -f unix/Makefile install 99 100 The defaults are /usr/local/bin for the executables and 101 /usr/local/man/man1 for the manual pages. Change the macros 102 BINDIR and MANDIR in makefile to change these if needed. 103 104 If necessary, add the directory with the Zip executables to your 105 shell's PATH (or "path") variable. (C-shell users may need to 106 use the "rehash" command so csh can find the new command in the 107 path.) You should now be ready to use Zip. 108 109 You can get rid of the now unnecessary source and object files 110 with: 111 112 cd .. 113 rm -r zip30 114 115 This will remove the directory zip30 and its contents created 116 by unzip. You should keep the zip30.zip file around though, 117 in case you need to build it again or want to give it to a 118 colleague. 119 120 You can add the following lines to the file /etc/magic for 121 usage by the 'file' command: 122 1230 string PK Zip archive 124>4 byte 011 (at least v0.9 to extract) 125>4 byte 012 (at least v1.0 to extract) 126>4 byte 013 (at least v1.1 to extract) 127>4 byte 024 (at least v2.0 to extract) 128>4 byte 025 (at least v2.1 to extract) 129 130 131Installation on other systems 132 133 The steps for installation under VMS, MSDOS, OS/2, NT, Amiga and 134 Atari are similar to the above: first unzip the distribution 135 files into their own directory. The system-dependent files are 136 stored in special subdirectories. 137 138 For all the non-Unix ports which support the creation of "UT" extra 139 fields (these ports contain USE_EF_UT_TIME in the list of optional 140 features displayed with "zip -v"), the timezone environment variable TZ 141 should be set according to the local timezone in order for the -f, -u, 142 -o, and similar options to work correctly. This is not needed for the 143 WIN32 and WinDLL ports, since they get the timezone information from 144 the OS by other means. 145 146 147 MSDOS: 148 149 Do one of: 150 151 make msdos\makefile.msc (Microsoft C 5.1) 152 nmake -f msdos\makefile.msc (Microsoft C 6.0 and newer) 153 make -fmsdos\makefile.bor -DCC_REV=1 (Borland Turbo C++ 1.0) 154 make -fmsdos\makefile.bor (Borland C++ 2.0 and newer) 155 make -fmsdos\makefile.tc (Borland Turbo C 2.0x) 156 make -f msdos/makefile.dj1 (DJGPP v1.12m4) 157 make -f msdos/makefile.dj2 (DJGPP v2.01 and newer) 158 make -f msdos/makefile.emx (gcc/emx 0.9b and newer) 159 make -f os2/makefile.os2 gccdos (gcc/emx 0.9b and newer) 160 wmake -f msdos\makefile.wat (Watcom C 11.x 16-bit) 161 wmake -f msdos\makefile.wat PM=1 (Watcom C 11.x 32-bit, PMODE/W) 162 163 for Microsoft, Borland C++ and Turbo C, Watcom C/C++ and the various 164 free GNU C implementations, respectively. More detailed instructions 165 can be found in the respective makefiles. 166 167 168 WIN32 (Windows NT/2K/XP/2K3 and Windows 95/98/ME): 169 170 Supported compilers are Microsoft Visual C++, Borland C++, Watcom C/C++, 171 and miscellaneous free GNU C implementations (gcc/mingw, CygWin, ...). 172 The makefiles supplied in the win32/ subdirectory contain further 173 information. 174 175 176 Windows DLL (WIN32): 177 178 Supported environments are Visual C++ (32-bit only, 5.x and newer). 179 For instructions how to build the DLLs and where find the makefiles, 180 look into windll/contents. 181 182 183 OS/2: 184 185 Type 186 187 {make} -f os2/makefile.os2 188 189 to get a list of supported targets/compiling environments. 190 (replace "{make}" with the name of your OS/2 make utility.) 191 192 To initiate the actual compiling process, you have to specify 193 a system target: 194 195 {make} -f os2/makefile.os2 {system} 196 197 An example: type 198 199 nmake -f os2/makefile.os2 msc 200 201 for Microsoft C 6.00. 202 203 204 VMS (OpenVMS): 205 206 The most complete information on building and installing Zip on VMS 207 is in [.vms]install_vms.txt. Optimists in a hurry may wish to try 208 commands like these: 209 210 @ [.VMS]BUILD_ZIP.COM 211 or: 212 MMS /DESCRIP = [.VMS]DESCRIP.MMS CLEAN ! Or MMK ... 213 MMS /DESCRIP = [.VMS]DESCRIP.MMS ! Or MMK ... 214 215 When the executables have been created (or located if already installed), 216 most users define foreign command symbols for the Zip executables, like 217 this: 218 219 ZIP :== $ dev:[dir]ZIP.EXE ! UNIX-like command line. 220 or: 221 ZIP :== $ dev:[dir]ZIP_CLI.EXE ! VMS-like command line. 222 223 Such symbol definitions are often added to a user's 224 SYS$LOGIN:LOGIN.COM procedure, or to a common, site-specific 225 procedure, like SYS$MANAGER:SYLOGIN.COM. 226 227 Additional installation options are described in install_vms.txt. 228 229 The builders create help text files, ZIP.HLP and ZIP_CLI.HLP. Also 230 see install_vms.txt for how to create the help libraries. 231 232 233Mac OS: 234 235 Mac OS X is part of the Unix port, so use the Unix installation above. 236 237 Mac OS before Mac OS X use the Mac OS port, though little testing has 238 been done for that port recently. See macos/README.TXT for more on 239 this port. 240 241 242Compiler Flags 243 244 Zip should compile fine out of the box for your port. In particular, 245 for Unix the command 246 make -f unix/Makefile generic 247 should automatically detect the features available on your system and 248 set the flags appropriately. In some cases, however, you may need to 249 set one or more compiler flags yourself to get Zip to compile or to 250 add features you want or remove features that cause trouble for your 251 port. Below are the more common compiler macros you can set. 252 253 LARGE_FILE_SUPPORT 254 Tell Zip that the OS supports large files (generally files larger 255 than 4 GB). Zip will try to compile in the large file calls 256 (typically 64-bit) for the OS instead of using the standard 257 (typically 32-bit) file calls. On Unix Zip tries to switch over to 258 the 64-bit file environment. If setting this flag causes errors 259 or Zip still can't handle large files on that port, then probably 260 either Zip doesn't have the code to support large files on your OS 261 (write a patch and send it in to us) or your OS doesn't support large 262 files. 263 264 Note that the flag ZIP64_SUPPORT must also be set to create archives 265 with large files. 266 267 This flag should be set automatically on Unix, Win32, and some 268 other ports. Setting NO_LARGE_FILE_SUPPORT turns this flag off. 269 270 ZIP64_SUPPORT 271 Enable the Zip64 code in Zip that supports the Zip64 extensions noted 272 in the PKWare AppNote. These extensions allow storing files larger 273 than 4 GB in archives and the creating of archives larger than 4 GB. 274 They also allow storing more than 64K files in an archive. Currently 275 Zip does not handle archives of PKZip version 4.5 or later unless 276 this flag is set. 277 278 To enable large file support in Zip, you generally need to set both 279 LARGE_FILE_SUPPORT (to read and write large files) and ZIP64_SUPPORT 280 (to store them in and read them from archives). Files larger than 281 4 GB may be invisible to Zip (directory scans don't see them) if 282 LARGE_FILE_SUPPORT is not enabled. 283 284 Keeping LARGE_FILE_SUPPORT and ZIP64_SUPPORT separate allows easier 285 debugging of these features. When testing large file support on an 286 OS, first set just LARGE_FILE_SUPPORT to test the file calls (all 287 should compile and work as before with small files), then turn on 288 ZIP64_SUPPORT to let Zip recognize and handle large files. 289 290 This flag should be set automatically on most ports if 291 LARGE_FILE_SUPPORT is set. Setting NO_ZIP64_SUPPORT turns this flag 292 off. 293 294 UNICODE_SUPPORT 295 Enable storing and using UTF-8 paths. These paths are stored in 296 a backward-compatible way so that archives with UTF-8 paths still 297 work on zips and unzips that don't support Unicode. This support 298 follows the recent additions to the PKWare AppNote for Unicode 299 support, except that Unicode comments on systems where UTF-8 is 300 not the current character set is not implemented in this release. 301 302 On some ports UNICODE_SUPPORT is set automatically if wide characters 303 are supported. Setting NO_UNICODE_SUPPORT turns off this flag. 304 305 USE_EF_UT_TIME 306 Enables storing UT time in an extra field. This becomes useful 307 for ports that normally store file times as local time, resulting 308 in problems when files are moved across time zones and when 309 there are daylight savings time changes. Zip and UnZip will 310 automatically correct for time zone changes when UT time is stored. 311 312 This is usually set by default. Use NO_EF_UT_TIME to turn this off. 313 314 NTSD_EAS (Win32 only) 315 Enable storing Windows NT file security descriptors. This allows 316 restoring the descriptors (file ACL's, etc.). 317 318 This is on by default for Win32. Use NO_NTSD_EAS to turn this off. 319 320 BZIP2_SUPPORT 321 Enable compressing zip entries using the bzip2 library. You must get 322 the bzip2 library from somewhere else as we only provide a way to 323 compile or link the library in and compress files using bzip2. Enables 324 a new compression method, bzip2, that can be used instead of the default 325 Zip compression method deflate. 326 327 This flag is set on Unix, including Mac OS X, when compiling using 328 generic if the bzip2 library is found. Set on Win32 if the bzip2 329 projects are used. See the VMS documentation for when VMS sets this 330 flag. Setting NO_BZIP2_SUPPORT turns this off. 331 332 See bzip2/install.txt for more on installing bzip2 support. 333 334 WIN32_OEM (Win32 only) 335 Enable saving paths on Win32 in the OEM character set. Zip has stored 336 paths using the standard ANSI local character set, but other zips have 337 used the OEM character set on MSDOS and Win32. This flag should make 338 Zip more compatible with other DOS and Win32 zips and unzips. It also 339 enables the translation of OEM paths in DOS archives to ANSI and should 340 eliminate some problems with funny characters showing up in path names. 341 342 If Unicode is enabled and used, Unicode paths generally override 343 local paths using OEM character sets. 344 345 This flag is on by default on most Win32 ports. Some ports apparently 346 have problems with OEM conversions. If your port or compiler does 347 funny things with file names, you may want to turn this off. Defining 348 NO_WIN32_OEM turns this flag off. 349 350 NO_STREAMING_STORE 351 Because storing zip archives inside a zip entry adds "false" signatures 352 and this causes problems when using data descriptors if the archive 353 needs fixing, this option is provided to force deflating when streaming. 354 This version of Zip includes an advanced algorithm for correctly finding 355 these signatures, but if an archive is "broke", there is no telling 356 what's where. This is only a problem if an archive becomes broke for 357 some reason, but to be safe define this. 358 359 ALLOW_REGEX 360 For MSDOS and Windows, now "[list]" wildcard matching (where any 361 character between [ and ] can be used to match the character at that 362 position) is turned off unless the new -RE option is used. Defining 363 this flag forces "[list]" matching to be always on as in previous 364 releases. 365 366 367For command help on any of the zip* utilities, simply enter 368the name with no arguments. 369