Acorn-specific compile instructions
-----------------------------------

The default makefile is configured without the support for the
Extended Timestamp Extra Field. If you wan to enable it you have to
add "-DUSE_EF_UT_TIME" to CFLAGS (see makefile). Without the Extended
Timestamp Field support, zipfiles created by zip are identical to the
zipfiles created by SparkFS. However, the Extended Timestamp Field can
be useful if you are going to unzip your zipfiles on a non-RISC OS machine
since the correct time stamp will be preserved across different timezones.
Note that in this case, both the SparkFS Extra Field and the Extended
Timestamp Extra Field will be used, so the zipfiles will still be fully
compatible with SparkFS and with the RISC OS version of unzip.

The executables-only distributions will be compiled without the support for
the Extended Timestamp Extra Field. If you need it but you can't compile zip
yourself, you can contact the authors at the Info-ZIP address who will do it
for you.

Compilation under GCC on RISC OS
--------------------------------

It is recommended that you use gcc 3.4.6 release 3 or higher and the corresponding
'make' utility. Both are available from <URL:http://gccsdk.riscos.info/>.

Use the "RunMe1st" file (it is an Obey file) to convert all the files from
"filename/[chs]" to "[chs].filename" (so that zip could be easily compiled
under RISC OS). It will also set the correct makefile.

To compile just set the CSD to the main zip directory and run 'make'.

Compilation under Acorn C/C++
-----------------------------

Currently only the Acorn C V5 compiler has been tested but probably also
Acorn C V4 and the Acorn Assembler V2 will be able to compile zip.

First check RunMe1st for a few lines that need uncommenting, in order to install
the Acorn C/C++ makefile as opposed to the GCC one. Then run RunMe1st as normal
(i.e. set type to 'Obey' and then double-click). The source tree should then be
renamed and the makefile installed in the right place.

To compile just set the CSD to the main zip directory and run 'amu'.

Cross-compilation under GCCSDK
------------------------------

Use of RunMe1st is not required when using GCCSDK 3.4 or GCCSDK 4
(<URL:http://gccsdk.riscos.info/). Instead copy the GCC makefile to the right
place (e.g. 'cp acorn/GMakefile makefile') and then start the cross compiler:

  $ /home/riscos/env/ro-make E=,ff8

Or when using GCCSDK 4:

  $ /home/riscos/env/ro-make E=,ff8 CC=arm-unknown-riscos-gcc

Acorn-specific usage instructions
---------------------------------

An extra option ('I') has been added to the Acorn port: if it is specified
zip will not consider Image files (eg. DOS partitions or Spark archives when
SparkFS is loaded) as directories but will store them as single files. This
means that if you have, say, SparkFS loaded, zipping a Spark archive will
result in a zipfile containing a directory (and its content) while using the
'I' option will result in a zipfile containing a Spark archive. Obviously
this second case will also be obtained (without the 'I' option) if SparkFS
isn't loaded.

When adding files to a zipfile; to maintain FileSwitch compliance, all
files named "file/ext" will be added to the archive as "file.ext".
This presents no problem if you wish to use unzip to extract them on any
other machine, as the files are correctly named. This also presents no
problem if you use unzip for RISC OS, as the files are converted back to
"file/ext" format. The only problem appears when you use SparkFS to
decompress the files, as a file called "file.ext" will be extracted as
"file_ext", not what it was added as. You must be careful about this.

Case Specific. Depending on how you type the command, files will be added
exactly as named; in this example:
*zip new/zip newfile
*zip new/zip NewFile
*zip new/zip NEWFILE
will create an archive containing 3 copies of the same RISC OS file 'newfile'
called 'newfile', 'NewFile' and 'NEWFILE'. Please be careful.

The Acorn port conserves file attributes, including filetype, so if you
zip on an Acorn, and unzip on another Acorn, filetypes will be maintained
precisely as if you used uncompressed files. If you de-archive on another
machine (PC, Mac, Unix etc..), filetypes will be ignored, but the files
will be identical despite this. This feature is fully compatible with
SparkFS, so zipfiles created by zip will be correctly uncompressed (including
filetype, etc.) by SparkFS.

An additional feature went into this port to cope better with C-code
and extensions. This allows the acorn files "c.foo" to be added to the
archive as "foo/c", eventually appearing in the archive as "foo.c", allowing
for better handling of C or C++ code. Example:
*Set Zip$Exts "dir1:dir2:dir3"
*zip new/zip dir1.file
*zip new/zip dir2.help
*zip new/zip dir3.textfile
Creates a zipfile new/zip, with entries file.dir1, help.dir2, textfile.dir3.
The usual settings for Zip$Exts are "h:o:s:c", allowing C code to be added
to the archive in standard form.

A final note about the Acorn port regards the use of the 'n' option: this is
used to specify a list of suffixes that will not be compressed (eg. .ZIP,
since it is already a compressed file). Since RISC OS uses filetypes instead
of suffixes, this list of suffixes is actually considered as a list of
filetypes (3 hex digit format). By default, zip doesn't compress filetypes
DDC (Archive, Spark or Zip), D96 (CFS files) and 68E (PackDir).
