@c -*- texinfo -*-
@chapter Installation

@ifset TEXT-ONLY
@include version.texi
@end ifset

This file documents the installation of GNUstep, @samp{gnustep}.  
Copyright (C) 1998 Free Software
Foundation, Inc.  You may copy, distribute, and modify it freely as long
as you preserve this copyright notice and permission notice.

This is version @value{GNUSTEP-VERSION} of GNUstep.

This package contains the core GNUstep libraries. You may need to
install other packages in order to use GNUstep. Read the file
GNUstep-HOWTO for instructions on how to install a complete GNUstep
system.  GNUstep-HOWTO is located in this distribution in
@file{base/GNUstep-HOWTO} and also is located at the same ftp sites as
this package.

@section Installing @samp{gnustep}

Here is a quick-and-dirty example of installation commands:

@example
./configure --prefix=/usr/GNUstep
make
make install
@end example

Here are more detailed instructions.

@enumerate
@item
Install @samp{gcc}.  The library requires gcc version
@value{GNUSTEP-GCC} or later.

@item
Install the @samp{TIFF} library.  This library requires the header files
in the TIFF library to compile; the TIFF library is used for the NSImage
and associated classes for reading, writing, and manipulating tiff files.
You should have at least version @value{GNUSTEP-LIBTIFF} of libtiff.

@item
Install @samp{DGS}.  You should have at least version 
@value{GNUSTEP-DGS}; likewise, you could just install the DPS client
library itself in which use version @value{GNUSTEP-DPSCLIENT}. You
system may already come with a Display PostScript system.  In that case
GNUstep will use that system if you desire.

@item
Configure the package for your system.  In the directory that this
file is in, type @file{./configure}.  If you're using @file{csh} on an old
version of System V, you might need to type @samp{sh configure} instead
to prevent @samp{csh} from trying to execute @file{configure} itself.

By default, @samp{make install} will install the package's files in
@file{/usr/GNUstep}, unless the environment variable
@samp{$GNUSTEP_SYSTEM_ROOT} is set.  You can specify an installation
prefix other than this by giving @file{configure} the option
@samp{--prefix=PATH}.

If your system requires unusual options for compilation or linking
that @file{configure} doesn't know about, you can give
@file{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:
@smallexample
CC='gcc -traditional' LIBS=-lpthread ./configure
@end smallexample
     
The @samp{make} variables that you might want to override with
environment variables when running @file{configure} are:

(For these variables, any value given in the environment overrides
the value that `configure' would choose:)
@table @samp

@item CC
C compiler program.  Default is @samp{cc}, or @samp{gcc} if @samp{gcc} is in
your PATH.

@item INSTALL
Program to use to install files.  Default is @samp{install} if you
have it, @samp{install.sh} otherwise.
@end table

(For these variables, any value given in the environment is added
to the value that @file{configure} chooses:)
@table @samp

@item LIBS
Libraries to link with, in the form @samp{-lfoo -lbar ...}.
@end table

If you need to do unusual things to compile the package, we
encourage you to figure out how @file{configure.in} could check whether to
do them, and mail diffs or instructions to the address given in
the @file{README} so we can include them in the next release.

@item
Type @samp{make} to compile the package.  Alternatively, if you are
short on disk space, you can @samp{make}, @samp{make install}, and
@samp{make clean} each library individually (be sure you do it in the
correct order -- see the GNUmakefile for the correct order).

@item
Type @samp{make install} to install the library, data files, header
files, and documentation.

@item
You can remove the program binaries and object files from the
source directory by typing @samp{make clean}.  To also remove the
Makefile(s), and @file{config.status} (all the files that @file{configure}
created), type @samp{make distclean}.

@end enumerate


