mirror of https://github.com/BOINC/boinc.git
604 lines
32 KiB
Plaintext
604 lines
32 KiB
Plaintext
__________________________________________________________________________
|
|
|
|
This is the Info-ZIP file INSTALL (for UnZip), last updated 28 Apr 2001.
|
|
__________________________________________________________________________
|
|
|
|
Yes, this is a rather long file, but don't be intimidated: much of its
|
|
length is due to coverage of multiple operating systems and of optional
|
|
customization features, large portions of which may be skipped.
|
|
__________________________________________________________________________
|
|
|
|
|
|
|
|
To compile UnZip, UnZipSFX and/or fUnZip (quick-start instructions):
|
|
========================================
|
|
|
|
(1) Unpack everything into a work directory somewhere, and make sure you're
|
|
in the main UnZip directory (the one with this file in it).
|
|
* (See note below concerning line termination format used in the source
|
|
distribution)
|
|
|
|
(2) Copy the appropriate makefile into the current directory, except under
|
|
OS/2.
|
|
|
|
(3) Run your "make" utility on the makefile (e.g., "nmake -f makefile.msc").
|
|
|
|
(4) Try out your new UnZip the way you would any new utility: read the
|
|
docs first.
|
|
|
|
Ah ha ha ha!! Oh, that kills me. But seriously...for VMS, UnZip must
|
|
be installed as a "foreign symbol"; see the Install section below or
|
|
[.vms]readme.vms for details. (It basically involves adding a line
|
|
sort of like this to login.com: $ unzip == "$disk:[dir]unzip.exe")
|
|
|
|
For DOS and other OSes without explicit timezone support (i.e., everybody
|
|
but Unix, Windows 95 and NT), make sure the "TZ" environment variable is
|
|
set to a valid and reasonable value; see your compiler docs for details.
|
|
|
|
(*) The unzip sources as well as other Info-ZIP source archives are packaged
|
|
in Unix format. All text files use single LF (Ascii 0x0a) characters as
|
|
line terminators. On systems that use different conventions for plain text
|
|
files (e.g.:DOS,Win9x,WinNT,OS/2 -> combined CR+LF; MacOS -> single CR),
|
|
some utilities (editors, compilers, etc.) may not accept source files
|
|
with LF line terminators.
|
|
For these systems, we recommend to use Info-ZIP's UnZip utility for
|
|
extraction of our distribution archives, applying the command option
|
|
"-a" (= translate text files to native format) in the extraction command.
|
|
In case this procedure is not applicable, an appropiate third-party
|
|
conversion utility may be used to achieve the desired line termination
|
|
style (examples: "flip", available for Unix, DOS, OS/2; or "tr" on Unix).
|
|
|
|
|
|
To compile UnZip, UnZipSFX and/or fUnZip (detailed instructions):
|
|
========================================
|
|
|
|
(1) Unpack *.c and *.h (the actual source files), preserving the directory
|
|
structure (e.g., ./unix/unix.c). The sole exception is TOPS-20, where
|
|
tops20/* should be unpacked into the current directory, but TOPS-20
|
|
is no longer fully supported anyway.
|
|
|
|
As of UnZip 5.41, full decryption support has been integrated in the
|
|
UnZip source distribution. If you wish to compile binaries without
|
|
decryption support, you must define the preprocessor flag NO_CRYPT.
|
|
For many environments, you may add this flag to the custom compilation
|
|
flags supplied by the environment variable LOCAL_UNZIP. For more
|
|
details, see the make procedures and accompanied documentation for your
|
|
particular target OS.
|
|
|
|
|
|
(2) Choose the appropriate makefile based on the description in the Con-
|
|
tents file for your OS (that is, there's only one for Unix or OS/2, but
|
|
MS-DOS and several other OSes have several, depending on the compiler).
|
|
Copy it into the current directory and rename if necessary or desired.
|
|
(Some makefiles can be invoked in place; see (5) below.)
|
|
|
|
Don't be afraid to read the makefile! Many options will be explained only
|
|
in the comments contained therein. The defaults may not quite suit your
|
|
system. When making changes, remember that some "make" utilities expect
|
|
tabs as part of the makefile syntax. Failure with cryptic error messages
|
|
will result if your editor quietly replaces those tabs with spaces.
|
|
|
|
Special point of confusion: some non-MSDOS makefiles contain MS-DOS
|
|
targets (useful for cross-compilations). An example is the OS/2 makefile
|
|
os2/makefile.os2 that contains the gccdos target for DOS emx+gcc and
|
|
some more DOS related targets for Watcom C and MSC. But since version 5.3,
|
|
the msdos subdirectory contains makefiles for all supported DOS compilers.
|
|
[The old djgpp, djgpp1 and gcc_dos targets in unix/Makefile have been
|
|
removed in 5.3; use msdos/makefile.dj* instead.]
|
|
|
|
Extra-special point of confusion: makefile.os2 expects to remain in
|
|
the os2 subdirectory. Invoke it via "nmake -f os2/makefile.os2 gcc",
|
|
for example.
|
|
|
|
|
|
(3) If you want a non-standard version of UnZip, define one or more of the
|
|
following optional macros, either by adding them to the LOCAL_UNZIP
|
|
environment variable or by editing your makefile as appropriate. The
|
|
syntax differs from compiler to compiler, but macros are often defined
|
|
via "-DMACRO_NAME" or similar (for one called MACRO_NAME). Note that
|
|
some of these may not be fully supported in future releases (or even
|
|
in the current release). Note also that very short command lines in
|
|
MS-DOS (128 characters) may place severe limits on how many of these
|
|
can be used; if need be, the definitions can be placed at the top of
|
|
unzip.h instead (it is included in all source files)--for example,
|
|
"#define MACRO_NAME", one macro per line.
|
|
|
|
DOSWILD (MS-DOS only)
|
|
Treat trailing "*.*" like Unix "*" (i.e., matches anything); treat
|
|
trailing "*." as match for files without a dot (i.e., matches any-
|
|
thing, as long as no dots in name). Special treatment only occurs
|
|
if patterns are at end of arguments; i.e., "a*.*" matches all files
|
|
starting with "a", but "*.*c" matches all files ending in "c" *only*
|
|
if they have a dot somewhere before the "c". [The default method of
|
|
specifying files without a dot would be "* -x *.*", making use of
|
|
UnZip's exclude-files option.] The matching is actually the same as
|
|
Unix, if you assume that undotted filenames really have an invisible
|
|
dot at the end, which is how DOS and related systems treat filenames
|
|
in general. All other regular expressions (including "?" and
|
|
"[range_of_chars]") retain their Unix-like behavior.
|
|
|
|
WILD_STOP_AT_DIR
|
|
Modifies the pattern matching routine so that both '?' (single-char
|
|
wildcard) and '*' (multi-char wildcard) do not match the directory
|
|
separator character '/'. Examples:
|
|
"*.c" matches "foo.c" but not "mydir/foo.c"
|
|
"*/*.c" matches "bar/foo.c" but not "baz/bar/foo.c"
|
|
"??*/*" matches "ab/foo" and "abc/foo" but not "a/foo" or "a/b/foo"
|
|
This modified behaviour is equivalent to the pattern matching style
|
|
used by the shells of some of UnZip's supported target OSs (one
|
|
example is Acorn RISC OS).
|
|
|
|
VMSWILD (VMS only)
|
|
Use parentheses rather than brackets to delimit sets (ranges), and
|
|
use '%' instead of '?' as the single-character wildcard for internal
|
|
filename matching. (External matching of zipfile names always uses
|
|
the standard VMS wildcard facilities; character sets are disallowed.)
|
|
|
|
VMSCLI (VMS only)
|
|
Use VMS-style "slash options" (/FOOBAR) instead of the default Unix-
|
|
style hyphenated options (-f). This capability does not affect options
|
|
stored in environment variables (UNZIP_OPTS or ZIPINFO_OPTS); those use
|
|
the Unix style regardless. Beginning with UnZip 5.32, the supplied
|
|
VMS Makefiles and make procedures generate both VMS-style and default
|
|
"UNIX style" executables; you should NOT add VMSCLI to the custom
|
|
options.
|
|
|
|
CHECK_VERSIONS (VMS only)
|
|
UnZip "extra fields" are used to store VMS (RMS) filesystem info,
|
|
and the format of this information may differ in various versions
|
|
of VMS. Defining this option will enable UnZip warnings when the
|
|
stored extra-field VMS version(s) do(es) not match the version of
|
|
VMS currently being used. This is a common occurrence in zipfiles
|
|
received from other sites, but since the format of the filesystem
|
|
does not seem to have changed in years (including on Alpha and Open-
|
|
VMS systems), the warnings are not enabled by default.
|
|
|
|
RETURN_CODES (VMS only)
|
|
VMS interprets return codes according to a rigid set of guidelines,
|
|
which means it misinterprets normal UnZip return codes as all sorts
|
|
of really nasty errors. Therefore VMS UnZip returns an alternate set
|
|
of return codes; since these may be difficult to interpret, define
|
|
RETURN_CODES for human-readable explanations.
|
|
|
|
VMS_TEXT_CONV (everybody except VMS)
|
|
VMS text files archived with the "-V" option are only semi-readable at
|
|
best when extracted on other systems. Defining this option enables
|
|
UnZip's -aa option to attempt to convert such files to native text
|
|
format. Non-VMS UnZips don't actually detect the precise VMS format
|
|
of the files, however, but instead rely on some reasonably good
|
|
heuristics (i.e., guesses). Therefore this option is not enabled by
|
|
default, but it can be extremely useful on those rare occasions when
|
|
a VMS text file must be extracted as normal text.
|
|
|
|
USE_DJGPP_ENV (MS-DOS DJGPP 2.0x only)
|
|
Regular DJGPP v2.0x compiled programs which use ENVIRONMENT are
|
|
able to read from the file "djgpp.env" as well as those set in the
|
|
environment. This adds about 1KB to the size of the executable.
|
|
This option is disabled by default in Info-ZIP source. If you are
|
|
able to use "djgpp.env" and don't like to clutter the environment
|
|
with many special purpose variables, you may want to compile with
|
|
this option set.
|
|
|
|
USE_DJGPP_GLOB (MS-DOS DJGPP 2.0x only)
|
|
If you like to get UnZip binaries that handle command line arguments
|
|
similar to Unix tools which are run in an Unix shell, you might want
|
|
to set this compilation option. This option enables the support for
|
|
globbing command line arguments containing wild card that is built
|
|
into the DJGPP startup code. When using a binary compiled with this
|
|
option, you may have to enclose wildcard arguments in double quotes
|
|
to get them passed to the program unmodified. Enabling this option
|
|
is not recommended, because it results in Info-Zip binaries that do
|
|
not behave as expected for MS-DOS programs.
|
|
|
|
USE_VFAT (MS-DOS only, for using same executable under DOS and Win95/NT)
|
|
djgpp 2.x and emx/gcc+RSX 5.1 can detect when they are running under a
|
|
Win32 DOS box and will accordingly enable long-filename support. For
|
|
now only djgpp 2.x and emx/gcc with RSX 5.1 or later have this feature
|
|
(and it is defined by default in msdos/makefile.dj2 and makefile.emx),
|
|
but if/when other compilers build in similar support, define this
|
|
macro to enable its use. See also msdos/doscfg.h. [Note that djgpp
|
|
2.0's LFN support is flaky; users should upgrade to 2.01 or later.]
|
|
|
|
NOTIMESTAMP
|
|
This option disables the -T option, which basically does exactly what
|
|
Zip's -go options do (i.e., set the timestamp of the zipfile to that of
|
|
the newest file in the archive without rewriting the archive). Unlike
|
|
Zip, however, UnZip supports wildcard specifications for the archive
|
|
name; for example, "unzip -T *.zip" will set the dates of all zipfiles
|
|
in the current directory. (UnZip's option is also much faster.)
|
|
|
|
DATE_FORMAT=DF_DMY or DF_MDY or DF_YMD
|
|
This option controls the order in which date components are printed
|
|
in listings: day-month-year or month-day-year or year-month-day.
|
|
For DOS derivatives the format is automatically obtained from the
|
|
operating system; most others default to DF_MDY.
|
|
|
|
ACORN_FTYPE_NFS (needs support for long filenames with embedded commas)
|
|
This option enables a -F option that instructs UnZip to interpret the
|
|
filetype information extracted from Acorn RiscOS extra field blocks.
|
|
The filetype IDs are translated into "NFS filetype extensions" and
|
|
appended to the names of the extracted files. This feature facilitates
|
|
maintance of Unix-based NFS volumes that are exported to Acorn RiscOS
|
|
systems.
|
|
|
|
QLZIP (Unix only)
|
|
Add some support for QDOS extra fields. This option enables Unix
|
|
UnZip to append "datalen info" to QDOS exec type files in the same
|
|
format as used by QDOS cross-compilers on Unix or the qltools v2.2(+).
|
|
|
|
UNIXBACKUP (Unix only)
|
|
This option enables a -B option that instructs UnZip to rename files
|
|
that would normally be overwritten. The renamed files are given a
|
|
tilde suffix (`~'). Note that previously renamed files may be over-
|
|
written without notice, even if the -n option is given.
|
|
|
|
OS2_EAS
|
|
List the sizes of OS/2 EAs and ACLs for each file as two extra columns
|
|
in "unzip -l" output. This is primarily useful for OS/2 systems, but
|
|
because zipfiles are portable, OS2_EAS can be defined for any system.
|
|
(May be extended someday to show sizes of Mac resource forks, RISCOS
|
|
and VMS file info, etc.)
|
|
|
|
DELETE_IF_FULL (anybody with unlink() function)
|
|
If a write error is encountered (most likely due to a full disk),
|
|
enabling this option will cause the incomplete file to be deleted
|
|
instead of closed normally. This is particularly useful for the
|
|
Windows CE port, which must generally contend with extremely limited
|
|
resources.
|
|
|
|
ASM_CRC (Amiga/Aztec C; many x86 systems: DOS, OS/2, Win32, Unix)
|
|
Use an assembler routine to calculate the CRC for each file (speed).
|
|
|
|
ASM_INFLATECODES (Amiga/Aztec C only, for now)
|
|
Use an assembler version of inflate_codes() for speed.
|
|
|
|
OLD_EXDIR
|
|
No longer supported.
|
|
|
|
SFX_EXDIR
|
|
Enable the "-d <extract_dir>" option for UnZipSFX. This is now
|
|
enabled by default (since UnZip 5.5) to facilitate use with
|
|
automated installation scripts and the like. For disabling
|
|
this feature, see the NO_SFX_EXDIR option.
|
|
|
|
NO_SFX_EXDIR
|
|
Disables the "-d <extract_dir>" option for UnZipSFX to generate the
|
|
smallest possible executable stub. (Prior to the UnZip 5.5 release,
|
|
this was the default.)
|
|
|
|
CHEAP_SFX_AUTORUN
|
|
Enable a simple "run command after extraction" feature for
|
|
the (command line) UnZipSFX stub. This feature is currently
|
|
incompatible with the "-d <extract_dir>" command line option,
|
|
therefore CHEAP_SFX_AUTORUN implicitely sets the NO_SFX_EXDIR
|
|
option.
|
|
|
|
NO_ZIPINFO
|
|
Compile without ZipInfo mode (-Z) enabled; makes a smaller executable
|
|
because many text strings are left out. Automatically enabled for
|
|
some small-model compiles under MS-DOS and OS/2, so ordinarily there
|
|
is no need to specify this explicitly. (Note that even with this
|
|
defined, the resulting executable may still be too big to extract
|
|
some zipfiles correctly, if compiled with the small memory model.)
|
|
|
|
USE_DEFLATE64 (default for UnZip and fUnZip)
|
|
NO_DEFLATE64 (default for UnZipSFX stub)
|
|
The "deflate64" algorithm from PKZIP 4.0 (or newer) is an enhanced
|
|
variant of the deflate algorithm that achieves slightly better
|
|
compression ratios on highly redundant data. Normally, UnZip should
|
|
be compiled with support for this compression algorithm enabled.
|
|
However, this results in significantly larger memory requirements
|
|
to run the program. For 16-bit executables (DOS and OS/2), the
|
|
special memory management to support the 64k history buffer results
|
|
in a slight performance (= speed) penalty. And for the SFX stub,
|
|
"deflate64" support might be unnessessary as long as the Info-ZIP
|
|
Zip utility does not support it (quite likely, this will never
|
|
get implemented). So, the NO_DEFLATE64 option is provided to allow
|
|
exclusion of the deflate64 support.
|
|
|
|
MULT_VOLUME (experimental for 5.5x, do NOT use in production versions!)
|
|
NO_MULT_VOLUME (default)
|
|
The symbol MULT_VOLUME is used to flag code portions needed for
|
|
support of multi-volume archives. For now, this flag MUST NOT be
|
|
used to compile a production versions of UnZip. This flag has been
|
|
introduced to allow integration of experimental code for multi-volume
|
|
support in the master source tree. This feature will become a default
|
|
option in the future 6.0 release of UnZip.
|
|
|
|
LZW_CLEAN (now default)
|
|
USE_UNSHRINK
|
|
The "shrinking" algorithm from PKZIP 1.0 is an LZW variant. Unisys
|
|
patented the Lempel-Ziv-Welch algorithm in 1985 and has publicly
|
|
claimed that decompression is covered by it. (IBM also patented the
|
|
same thing in a filing 3 weeks prior to Unisys's.) Therefore un-
|
|
shrinking is disabled by default, but those with LZW licenses can
|
|
enable it by defining USE_UNSHRINK. (Unshrinking was used by PKZIP
|
|
1.0 and 1.1, and Zip 1.0 and 1.1. All newer archives use only the
|
|
deflation method.)
|
|
|
|
COPYRIGHT_CLEAN (now default)
|
|
USE_SMITH_CODE
|
|
The last chunk of code in UnZip that was blatantly derived from Sam
|
|
Smith's unzip 2.0 (as in, "substantially similar") is in unreduce.c.
|
|
Since reducing was only used by very early PKZIP beta versions (0.9x),
|
|
support for it is now omitted by default (COPYRIGHT_CLEAN). To in-
|
|
clude unreducing capability, define USE_SMITH_CODE. Note that this
|
|
subjects UnZip to any and all restrictions in Smith's copyright; see
|
|
the UnZip COPYING file for details.
|
|
|
|
USE_CRYPT
|
|
Enable decryption support for all binaries. The default setting
|
|
is to disable decryption support for the SFX stub to keep its size
|
|
as small as possible. For other binaries of the UnZip distribution,
|
|
decryption support is enabled by default.
|
|
|
|
NO_CRYPT
|
|
Disable decryption support for all binaries.
|
|
|
|
PASSWD_FROM_STDIN (with full crypt sources only; Unix, VMS only)
|
|
Used to allow the password on encrypted files to be read from stdin
|
|
rather than the default stderr. This was useful for those who wished
|
|
to automate the testing or decoding of encrypted archives (say, in a
|
|
shell script via ``echo "password" | unzip -tq archive''), but as of
|
|
version 5.3, UnZip has a -P option for passing a password directly to
|
|
the program. PASSWD_FROM_STDIN will therefore probably be phased out
|
|
in future versions. Note that the same security warnings given in the
|
|
description of the -P option apply here as well.
|
|
|
|
DEBUG
|
|
Used for debugging purposes; enables Trace() statements. Generally
|
|
it's best to compile only one or two modules this way.
|
|
|
|
DEBUG_TIME
|
|
Used for debugging the timezone code in fileio.c; enables TTrace()
|
|
statements. This code is only used for the freshen/update options
|
|
(-f and -u), and non-Unix compilers often get it wrong.
|
|
|
|
|
|
(4) If you regularly compile new versions of UnZip and always want the same
|
|
non-standard option(s), you may wish to add it (them) to the LOCAL_UNZIP
|
|
environment variable (assuming it's supported in your makefile). Under
|
|
MS-DOS, for example, add this to AUTOEXEC.BAT:
|
|
|
|
set LOCAL_UNZIP=-DDOSWILD -DDATE_FORMAT=DF_DMY
|
|
|
|
You can also use the variable to hold special compiler options (e.g.,
|
|
-FPi87 for Microsoft C, if the x87 libraries are the only ones on your
|
|
disk and they follow Microsoft's default naming conventions; MSC also
|
|
supports the CL environment variable, however).
|
|
|
|
|
|
(5) Run the make utility on your chosen makefile:
|
|
|
|
Unix
|
|
For most systems it's possible to invoke the makefile in place, at
|
|
the possible cost of an ignorable warning; do "make -f unix/Makefile
|
|
list" to get a list of possible system targets, and then "make -f
|
|
unix/Makefile target" for your chosen target. The "generic" target
|
|
works for most systems, but if it fails with a message about ftime()
|
|
unresolved or timezone redefined, do "make clean", "make help", and
|
|
then either "make generic2" or "make generic3" as instructed. If all
|
|
else fails, read the makefile itself; it contains numerous comments.
|
|
(One of these days we'll make a configure script that automates this
|
|
procedure better.)
|
|
|
|
VMS
|
|
For a one-time build of the default UnZip, simply run the supplied
|
|
command file MAKE_UNZ.COM. To use either DEC C on an Alpha or the
|
|
default compiler (DEC C if available, else VAX C) on a VAX, type
|
|
"@make_unz" (after copying make_unz.com into the current directory;
|
|
otherwise do "@[.vms]make_unz" to invoke it in place).
|
|
If you want to force the use of VAX C when both VAX C and DEC C are
|
|
available, do "@make_unz vaxc" (or "@[.vms]make_unz vaxc").
|
|
To use GNU C (gcc) on either platform, do "@make_unz gnuc".
|
|
(NOTE: Currently, gcc for VMS(AXP) is not yet available!)
|
|
The command procedure MAKE_UNZ.COM now recognizes custom feature
|
|
options supplied in the logical name LOCAL_UNZIP; details are
|
|
explained in the comments at the top of MAKE_UNZ.COM.
|
|
|
|
For repeated makes or other hacker-like tinkering with the sources,
|
|
or to create a custom version of UnZip, you may use the included "MMS"
|
|
makefile, DESCRIP.MMS. Copy it into the current directory, read the
|
|
comments at the top of it and run MadGoat's free MMS clone "MMK" on it.
|
|
Newer versions of DEC's MMS should work, too, but older ones apparently
|
|
choke on some MMK-specific extensions in DESCRIP.MMS. (If somebody
|
|
has an "older" version that works, let us know and we'll remove this
|
|
caveat.)
|
|
|
|
MS-DOS
|
|
See the msdos\Contents file for notes regarding which makefile(s) to
|
|
use with which compiler. In summary: pick one of msdos\makefile.*
|
|
as appropriate, or (as noted above) use the OS/2 gccdos target for
|
|
emx+gcc. There is also an mscdos cross-compilation target in
|
|
os2\makefile.os2 and a sco_dos cross-compilation target in the Unix
|
|
makefile. For Watcom 16-bit or 32-bit versions, see the comments in
|
|
the OS/2 section below.
|
|
|
|
After choosing the appropriate makefile and editing as necessary or
|
|
desired, invoke the corresponding make utility. Microsoft's NMAKE
|
|
and the free dmake and GNU make utilities are generally the most
|
|
versatile. The makefiles in the msdos directory can be invoked in
|
|
place ("nmake -f msdos\makefile.msc", for example).
|
|
|
|
OS/2
|
|
Either GNU make, nmake or dmake may be used with the OS/2 makefile;
|
|
all are freely available on the net. Do "nmake -f os2\makefile.os2",
|
|
for example, to get a list of supported targets. More generally,
|
|
read the comments at the top of the makefile for an explanation of
|
|
the differences between some of the same-compiler targets.
|
|
|
|
Win32 (WinNT or Win95)
|
|
You will need Microsoft Visual C++ 2.x for Win95 or NT (Intel, MIPS,
|
|
Alpha, PowerPC?), or Watcom C++ for Win95 or NT (Intel only). As an
|
|
alternative for Intel platforms, GNU C (the emx/rsxnt port) is now
|
|
supported as well. DEC C/C++ for NT/Alpha may or may not still work.
|
|
For the Watcom compiler, use WMAKE and win32\makefile.wat; for the
|
|
others, use NMAKE and win32\Makefile. With emx+gcc, a good choice is
|
|
GNUMake 3.75 from the djgpp V2.01 distribution.
|
|
|
|
WinCE (WinCE or WinNT)
|
|
Only Microsoft Visual C++ 5.0 or later is supported. Use the included
|
|
project file and check wince\README for details.
|
|
|
|
AmigaDOS
|
|
SAS/Lattice C and Manx Aztec C are supported. For SAS C 6.x do "smake
|
|
-f amiga/smakefile all"; for Aztec C do "make -f amiga/makefile.azt
|
|
all". The Aztec C version supports assembly-language versions of two
|
|
routines; these are enabled by default.
|
|
|
|
Atari TOS
|
|
Turbo C is no longer supported; use gcc and the MiNT libraries, and
|
|
do "make". Note that all versions of gcc prior to 2.5.8 have a bug
|
|
affecting 68000-based machines (optimizer adds 68020 instructions).
|
|
See atari\README for comments on using other compilers.
|
|
|
|
Macintosh
|
|
Metrowerks CodeWarrior Pro 4 with Universal Interfaces 3.1 is the only
|
|
currently supported compiler, although the Mac Programmer's Workbench
|
|
(MPW) and Think C were supported at one time and still have some hooks.
|
|
Other Compilers may work too, no compiler specific instructions
|
|
(pragma, header, macros, ...) were used in the code.
|
|
For CodeWarrior Pro 4, un-BinHex the CodeWarrior project file and
|
|
UnZip resource file (using Stuffit Expander or BinHex 4.0 or later),
|
|
then open the project and click on the compile button.
|
|
See ":macos:Contents" for the possible project targets.
|
|
Link order of the standard libraries is very important: Link all
|
|
sources first and all standard libraries last.
|
|
|
|
Acorn (RISC OS)
|
|
Extract the files from the archive and place in standard 'Acorn' C
|
|
form (i.e., *.c, *.h and *.s become c.*, h.* and s.*, respectively),
|
|
either using the UNZIP$EXTS environment variable and a pre-built UnZip
|
|
binary, or using Spark[FS] and doing it manually. Then copy the
|
|
Acorn.Makefile to the main UnZip directory and either type 'amu' or
|
|
use the desktop make utility.
|
|
|
|
VM/CMS
|
|
Unpack all the files and transfer them with ASCII -> EBCDIC conver-
|
|
sion to an appropriate directory/minidisk/whatever, then execute
|
|
UNZVMC to compile and link all the sources. This may require C/370
|
|
version 2.1 or later and certain `nucleus extensions,' although
|
|
UnZip 5.3 has been reported to compile fine with the `ADCYCLE C/370
|
|
v1.2 compiler.' Note that it will abend without access to the C/370
|
|
runtime library. See the README.CMS file for more details.
|
|
|
|
MVS
|
|
Unpack all the files and transfer them to an appropriate PDS with
|
|
ASCII -> EBCDIC conversion enabled, then edit UNZMVSC.JOB as required,
|
|
and execute it to compile and link all the sources. C/370 2.1 or
|
|
later is required. See README.MVS for further details. [This is a
|
|
new port and may need a little more work even to compile.]
|
|
|
|
Human68K
|
|
[This is a Japanese machine and OS.] It appears that GNU make and
|
|
gcc are required; presumably just do "gmake -f human68k/Makefile.gcc"
|
|
to build everything. This port has not been tested since the 5.12
|
|
release.
|
|
|
|
TOPS-20
|
|
[No longer fully supported due to new, unported features, although
|
|
patches are always accepted.] Unpack all files into the current
|
|
directory only (including those in the zipfile's tops20 directory),
|
|
then use make.mic and "do make".
|
|
|
|
BeOS
|
|
You can run the BeOS makefile in place by typing "make -f
|
|
beos/Makefile". In fact, this is how the author tests it.
|
|
|
|
Running the appropriate make utility should produce three executables on
|
|
most systems, one for UnZip/ZipInfo, one for UnZipSFX, and one for fUnZip.
|
|
(VMS is one prominent exception: fUnZip makes no sense on it. The Amiga
|
|
produces a fourth executable called MakeSFX, which is necessary because
|
|
Amiga self-extracting archives cannot be created by simple concatenation.
|
|
If necessary the source amiga/makesfx.c can be compiled on other systems.)
|
|
Read any OS-specific README files for notes on setting things up for
|
|
normal use (especially for VMS) and for warnings about known quirks and
|
|
bugs in various compilers (especially for MS-DOS).
|
|
|
|
Also note that many OSes require a timezone variable to be set correctly
|
|
(often "TZ"); Unix and VMS generally do so by default, Win95/NT do if set
|
|
up properly, but other OSes generally do not. See the discussion of the
|
|
-f and -u options in the UnZip man page (or unzip.txt). BeOS doesn't
|
|
currently support timezone information at all, but this will probably be
|
|
added soon.
|
|
|
|
Then test your new UnZip on a few archives and let us know if there are
|
|
problems (but *please* first make certain that the archives aren't actu-
|
|
ally corrupted and that you didn't make one of the silly mistakes dis-
|
|
cussed in the documentation). If possible, double-check any problems
|
|
with PKUNZIP or with a previous version of UnZip prior to reporting a
|
|
"bug." The zipfile itself may be damaged.
|
|
|
|
|
|
|
|
To install:
|
|
===========
|
|
|
|
Unix
|
|
The default prefix for the installation location is /usr/local (things
|
|
go into the bin and man/man1 subdirectories beneath the prefix), and
|
|
the default man-page extension is "1" (corresponding to man/man1, above).
|
|
To install as per the defaults, do "make install"; otherwise do "make
|
|
prefix=/your/path manext=your_extension install". (For Intel Unix flavors
|
|
where the assembler CRC routines were used [ASM_CRC], use the install_asm
|
|
target instead of the regular install target.) For example, to install
|
|
in your home directory with "l" as the man-page extension (for "local"),
|
|
do "make prefix=$HOME manext=l install". Permissions will be 755 for the
|
|
executables and 644 for the man pages. In general root must perform in-
|
|
stallation into a public directory. Do "rehash" if your shell requires
|
|
it in order to find the new executables.
|
|
|
|
VMS
|
|
Install UnZip as foreign symbol by adding this to login.com:
|
|
|
|
$ unzip == "$disk:[dir]unzip.exe"
|
|
$ zipinfo == "$disk:[dir]unzip.exe ""-Z"""
|
|
|
|
where "disk" and "dir" are the location of the UnZip executable; the "$"
|
|
before the disk name is important, as are the double-double-quotes around
|
|
the -Z. Some people, including the author, prefer a short alias such as
|
|
"ii" instead of "zipinfo"; edit to taste. Optionally also install unzipsfx
|
|
for use with the MAKESFX.COM command file. See vms/README (or [.VMS]README.)
|
|
for details on this and for notes/warnings about zipfiles and UnZip under
|
|
VMS.
|
|
|
|
OS/2, MS-DOS, NT, Atari, Amiga
|
|
Move or copy unzip.exe (or unzip.ttp, or UnZip, or whatever) to a direc-
|
|
tory in your path; also possibly copy the UnZip executable to zipinfo.exe
|
|
(or ii.exe), or else create an alias or a batch/command file for ZipInfo
|
|
("@unzip -Z %1 %2 %3 %4 %5 %6 %7 %8 %9" under MS-DOS). The latter is only
|
|
relevant if NO_ZIPINFO was *not* defined, obviously... Under djgpp 2.x,
|
|
zipinfo.exe is a 2K stub symbolically linked to unzip.exe.
|
|
|
|
Acorn RISC OS
|
|
Copy the executables unzip, funzip and zipinfo to somewhere in your
|
|
Run$Path. See your Welcome manual if you don't know about Run$Path.
|
|
|
|
BeOS
|
|
The default prefix for the installation location is /boot/usr/local
|
|
(things go into the bin and man/man1 subdirectories beneath the prefix),
|
|
and the default man-page extension is "1" (corresponding to the man/man1,
|
|
above). Of course, these Unix man-pages aren't useful until someone ports
|
|
something that can format them... plain text versions are also installed
|
|
with an extension of ".txt". To install, do a "make install", or to
|
|
change the prefix, do "make prefix=/your/path install". For example, to
|
|
install in /boot/bin, do "make prefix=/boot/bin install".
|
|
|
|
Macintosh
|
|
MacZip requires at least System 7 and a Macintosh with a minimum of a
|
|
Motorola 68020 or PowerPC 601 processor. Other configurations may work
|
|
but it is not tested at all.
|
|
The application (MacZip) is distributed as a combination of zip and unzip
|
|
in one program. The offical release is a fat binary with both regular 68K
|
|
and native PowerPC versions included.
|
|
Move the executable(s) somewhere--for example, drag it (or them) to your
|
|
Applications folder. For easy access, make an alias in the Launcher Control
|
|
Panel or directly on your desktop.
|
|
This port supports also Apple-event.So you can install it in your
|
|
WWW-Browser as a helper-app.
|
|
Look into "macos/README.TXT" (or ":macos:README.TXT" on Mac) for further
|
|
info.
|
|
|
|
Human68K, TOPS-20, AOS/VS, MVS, VM/CMS, etc.
|
|
Dunno, sorry...
|