274 lines
11 KiB
Plaintext
274 lines
11 KiB
Plaintext
This is a generic INSTALL file for utilities distributions.
|
|
Some features specific to gzip have been added.
|
|
|
|
To compile this package:
|
|
|
|
1. Configure the package for your system. In the directory that this
|
|
file is in, type `./configure'. 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. If you
|
|
are using Ultrix, you might need to type `sh5 configure' to avoid
|
|
bugs in /bin/sh. Note that 'sh -x configure' may give different results
|
|
than 'sh configure', making it difficult to debug configure scripts.
|
|
|
|
The `configure' shell script attempts to guess correct values for
|
|
various system-dependent variables used during compilation, and
|
|
creates the Makefile(s) (one in each subdirectory of the source
|
|
directory). In some packages it creates a C header file containing
|
|
system-dependent definitions. It also creates a file `config.status'
|
|
that you can run in the future to recreate the current configuration.
|
|
|
|
Running `configure' takes a minute or two. While it is running, it
|
|
prints some messages that tell what it is doing. If you don't want to
|
|
see the messages, run `configure' with its standard output redirected
|
|
to `/dev/null'; for example, `./configure >/dev/null'.
|
|
|
|
To compile the package in a different directory from the one
|
|
containing the source code, 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
|
|
`configure'. `configure' automatically checks for the source code in
|
|
the directory that `configure' is in and in `..'. If for some reason
|
|
`configure' is not in the source code directory that you are
|
|
configuring, then it will report that it can't find the source code.
|
|
In that case, run `configure' with the option `--srcdir=DIR', where
|
|
DIR is the directory that contains the source code.
|
|
|
|
By default, `make install' will install the package's files in
|
|
/usr/local/bin, /usr/local/lib, /usr/local/man, etc. You can specify an
|
|
installation prefix other than /usr/local by giving `configure' the option
|
|
`--prefix=PATH'. Alternately, you can do so by consistently giving a value
|
|
for the `prefix' variable when you run `make', e.g.,
|
|
make prefix=/usr/gnu
|
|
make prefix=/usr/gnu install
|
|
|
|
You can specify separate installation prefixes for
|
|
architecture-specific files and architecture-independent files. If
|
|
you give `configure' the option `--exec-prefix=PATH' or set the
|
|
`make' variable `exec_prefix' to PATH, the package will use PATH as
|
|
the prefix for installing programs and libraries. Data files and
|
|
documentation will still use the regular prefix. Normally, all files
|
|
are installed using the regular prefix.
|
|
|
|
Another `configure' option is useful mainly in `Makefile' rules for
|
|
updating `config.status' and `Makefile'. The `--no-create' option
|
|
figures out the configuration for your system and records it in
|
|
`config.status', without actually configuring the package (creating
|
|
`Makefile's and perhaps a configuration header file). Later, you can
|
|
run `./config.status' to actually configure the package. You can also
|
|
give `config.status' the `--recheck' option, which makes it re-run
|
|
`configure' with the same arguments you used before. This option is
|
|
useful if you change `configure'.
|
|
|
|
`configure' ignores any other arguments that you give it.
|
|
|
|
If your system requires unusual options for compilation or linking
|
|
that `configure' doesn't know about, you can give `configure' initial
|
|
values for some variables by setting them in the environment. In
|
|
Bourne-compatible shells, you can do that on the command line like
|
|
this:
|
|
CC='gcc -traditional' DEFS=-D_POSIX_SOURCE ./configure
|
|
|
|
For csh compatible shells, you can do something like this:
|
|
|
|
(setenv CC 'gcc -traditional' ; ./configure)
|
|
|
|
The `make' variables that you might want to override with environment
|
|
variables when running `configure' are:
|
|
|
|
(For these variables, any value given in the environment overrides the
|
|
value that `configure' would choose:)
|
|
CC C compiler program.
|
|
Default is `cc', or `gcc' if `gcc' is in your PATH.
|
|
INSTALL Program to use to install files.
|
|
Default is `install' if you have it, `cp' otherwise.
|
|
If you have an non-standard `install', use INSTALL="cp -p"
|
|
|
|
(For these variables, any value given in the environment is added to
|
|
the value that `configure' chooses:)
|
|
DEFS Configuration options, in the form `-Dfoo -Dbar ...'
|
|
CFLAGS Compiler options, such as `-O -g ...'
|
|
LIBS Libraries to link with, in the form `-lfoo -lbar ...'
|
|
|
|
If you need to do unusual things to compile the package, we encourage
|
|
you to figure out how `configure' could check whether to do them, and
|
|
mail diffs or instructions to the address given in the README so we
|
|
can include them in the next release.
|
|
|
|
2. Type `make' to compile the package. If you want, you can override
|
|
the `make' variables CFLAGS and LDFLAGS like this:
|
|
|
|
make CFLAGS=-O2 LDFLAGS=-s
|
|
|
|
3. The package comes with self-tests. If you want to run them,
|
|
type `make check'.
|
|
|
|
4. Type `make install' to install programs, data files, and
|
|
documentation. This creates links between gzip, gunzip and zcat.
|
|
You can create additional links uncompress, ungzip and gzcat if
|
|
you prefer these names. You can also create links to unpack and pcat
|
|
if your system uses packed files by default and you want to transform
|
|
them transparently to gzip'ed files.
|
|
|
|
If you wish to use only the name gzcat and not overwrite an existing zcat, use:
|
|
|
|
make ZCAT=gzcat install
|
|
|
|
The man pages are installed by default with an extension `.1' (one).
|
|
If you want the extension `.l' (lower case L) use:
|
|
|
|
make manext=l install
|
|
|
|
If you are using csh or tcsh, you must type `rehash' after `make install'
|
|
to make sure that the command `gzip' will invoke the new executable.
|
|
|
|
5. You can remove the program binaries and object files from the
|
|
source directory by typing `make clean'. To also remove the
|
|
Makefile(s), the header file containing system-dependent definitions
|
|
(if the package uses one), and `config.status' (all the files that
|
|
`configure' created), type `make distclean'.
|
|
|
|
The file `configure.in' is used as a template to create `configure' by
|
|
a program called `autoconf'. You will only need it if you want to
|
|
regenerate `configure' using a newer version of `autoconf'.
|
|
|
|
6. You can add the following lines to your /etc/magic file so that
|
|
file(1), if your system supports it, will recognize files created by
|
|
gzip:
|
|
|
|
0 string \037\213 gzip compressed data
|
|
>2 byte 8 - deflate method
|
|
>3 byte &0x1 , ascii
|
|
>3 byte &0x2 , continuation
|
|
>3 byte &0x4 , extra field
|
|
>3 byte &0x8 , original file name
|
|
>3 byte &0x10 , comment
|
|
>3 byte &0x20 , encrypted
|
|
>8 byte 2 , max compression
|
|
>8 byte 4 , max speed
|
|
|
|
If your version of 'file' does not accept octal numbers in strings, replace the
|
|
first line with one of these:
|
|
|
|
0 short 0x8b1f gzip compressed data
|
|
0 short 0105437 gzip compressed data
|
|
|
|
0 short 0x1f8b gzip compressed data
|
|
0 short 017613 gzip compressed data
|
|
|
|
Use the first or second form if your machine is a 386 or a Vax or a
|
|
MIPS configured in little-endian mode or any other little-endian
|
|
machine. Use the third or fourth form on big-endian machines.
|
|
On some systems, the field separators must contain only tabs (no spaces).
|
|
|
|
7. To rename .z files with the new .gz suffix, you can use or adapt
|
|
the following shell script:
|
|
|
|
#!/bin/sh
|
|
find . -name '*.z' -type f -print | while read i
|
|
do
|
|
new=`echo "$i" | sed 's/\.z$/.gz/'`
|
|
mv "$i" "$new" || echo Failed renaming $i to $new
|
|
done
|
|
|
|
If you wish to keep the old .z suffix as default without setting the
|
|
GZIP environment variable to "--suffix .z", you can compile gzip with:
|
|
|
|
make CFLAGS='-DZ_SUFFIX=\".z\"'
|
|
|
|
|
|
8. Special targets
|
|
|
|
- For MSDOS, OS/2, VMS, Atari, Amiga, Primos, use the makefile or command
|
|
file provided in the appropriate subdirectory. For Turbo C++ 1.0, read
|
|
the warning at the top of Makefile.bor.
|
|
|
|
- On some systems memcpy() may not work as expected. (Problem found on
|
|
Pyramid only so far.) If you get "crc error" on some .gz files, add
|
|
-DNOMEMCPY to CFLAGS and recompile inflate.o. For example:
|
|
rm -f inflate.o
|
|
make CFLAGS="-O2 -DNOMEMCPY"
|
|
|
|
The memcpy problem affects only gunzip, not gzip. You can safely define
|
|
-DNOMEMCPY on all systems, but this may degrade performance of gunzip.
|
|
|
|
- If your system is a pure BSD system but incorrectly links string.h to
|
|
strings.h, you may get undefined mem* and str* symbols. Try recompiling with
|
|
|
|
make clean
|
|
make CFLAGS="-DNO_STRING_H"
|
|
|
|
- On some systems (reported on Dec Ultrix), "cc -E" and /lib/cpp behave
|
|
differently. If you have trouble with the default configuration, try:
|
|
|
|
CPP=/lib/cpp ./configure
|
|
make clean
|
|
make
|
|
|
|
- On Ultrix, /bin/sh is too buggy. Use "sh5 configure" instead of "configure".
|
|
|
|
- On Mips Dec Ultrix, gunzip behaves non-deterministically with regard
|
|
to some .gz files. The same command either succeeds or gives a CRC error.
|
|
This problem is still being investigated. The files produced by gzip
|
|
are correct (can reliably be extracted on other systems).
|
|
|
|
- On Xenix, some preprocessors do not define M_XENIX. You may have to do:
|
|
|
|
DEFS='-DM_XENIX' ./configure
|
|
|
|
- On Xenix 2.3.2 for 286, do: make xenix_286
|
|
|
|
- On Coherent, do: make coherent
|
|
|
|
- On NeXTstep 3.1, many people (but not all) have had trouble with
|
|
configure. Try first
|
|
|
|
(setenv DEFS -DNO_UTIME_H; ./configure)
|
|
make test
|
|
|
|
If this fails, then try "make next". configure should work correctly
|
|
on NeXTstep versions up to 3.0.
|
|
|
|
To build a gzip package that can run on either the m68k or i386 family,
|
|
use configure then "make next-fat".
|
|
|
|
On some versions of NeXT, either "cc -finline-functions" or "cc -O4"
|
|
is broken. gzip produces valid .gz files but they are much too large
|
|
because the string matching code misses most matches. Use "cc -O" instead.
|
|
|
|
- There is an optimization bug in the IRIX 4.0.5 IDO 4.1 assembler which is
|
|
triggered by GCC -O. IDO 4.1.1 should fix this. If you have to use IDO 4.1
|
|
then you can avoid the bug in one of the following ways:
|
|
|
|
1. Use SGI CC
|
|
2. Add the -noasmopt flag to GCC
|
|
3. Reconfigure GCC with the "mips-sgi-irix4loser" target which effectively
|
|
does the same as specifying "-noasmopt" all by default.
|
|
4. Don't use -O at all with GCC.
|
|
|
|
- On Solaris 2.1 for x86, the January 1993 "OEM" compiler release
|
|
generates bad code. This is fixed in the June 1993 "FCS" release.
|
|
|
|
- on Sparc with SunOS 4.1.1 and the SC1.0 compiler, the optimizer
|
|
works up to -O3 but -O4 does not work.
|
|
|
|
- MSC 5.1 with -Ox and -DDYN_ALLOC generates bad code in inflate.c.
|
|
The default is static allocation (no DYN_ALLOC) and -Ox works on inflate.c.
|
|
But -Ox does not work on util.c and unlzh.c, so you must use -Oait -Gs.
|
|
|
|
- The exit() function in Turbo C++ 1.0 seems to be broken. gzip crashes
|
|
even if exit(0) is the first statement in main(). The problem is avoided
|
|
by adding -Dexit=_exit to CFLAGS in Makefile.bor.
|
|
|
|
- On dnix 5.3 2.2 cc version 2.37c is buggy. Version 2.38d works.
|
|
|
|
- On an Alliant running Concentrix, cc (even without optimization) generates
|
|
incorrect code. You have to use gcc.
|
|
|
|
- On Cray running CSOS 1.0 with compiler version dev-125, you must compile
|
|
with the flag "-hnoopt" to avoid an optimizer bug.
|
|
|
|
- On HPUX, configure can't find a correct install. Use:
|
|
|
|
INSTALL=/usr/local/bin/bsdinst ./configure
|