1Basic Installation
2==================
3
4    For more information specific to this package, please read the README
5file. This source code distribution  is autoconfiguring and you should be
6able to compile it and install it without manual interventions such as
7editing Makefiles, configuration files, and so on. These are generic
8instructions for people who are not familiar with installing autoconfiguring
9software.
10
11The simplest way to compile this package is to enter the source code
12main directory and do the following:
13
14  1. Configure the source code by typing:
15        % sh ./configure
16
17     If you're planning to install the package into your home directory
18     or to a location other than `/usr/local' then add the flag
19     `--prefix=PATH' to `configure'. For example, if your home directory
20     is `/home/luser' you can configure the package to install itself there
21     by invoking:
22        % sh ./configure --prefix=/home/luser
23
24     While running, `configure' prints some messages telling which
25     features is it checking for.
26
27  2. Compile the package by typing:
28        % make
29     Running `make' takes a while. If this is a very large package, now
30     is the time to go make some coffee.
31
32  3. Some packages are bundled with self-tests for source-code
33     verification. If this package includes such tests, you can
34     optionally run them after compilation by typing
35        % make check
36
37  4. Type `make install' to install the programs and any data files and
38     documentation. Type `make uninstall' to undo the installation.
39     During installation, the following files go to the following directories:
40        Executables          -> /prefix/bin
41        Libraries            -> /prefix/lib
42        Public header files  -> /prefix/include
43        Man pages            -> /prefix/man/man?
44        Info files           -> /prefix/info
45     where `prefix' is either `/usr/local' or the PATH that you specified
46     in the `--prefix' flag.
47
48     If any of these directories do not presently exist, they will be
49     created on demand.
50
51     If you are installing in your home directory make sure that
52     `/home/luser/bin' is in your path. If you're using the bash shell
53     add this line at the end of your .cshrc file:
54        PATH="/home/luser/bin:${PATH}"
55        export PATH
56     If you are using csh or tcsh, then use this line instead:
57        setenv PATH /home/luser/bin:${PATH}
58     By prepending your home directory to the rest of the PATH you can
59     override systemwide installed software with your own custom installation.
60
61  5. You can remove the program binaries and object files from the
62     source code directory by typing `make clean'.  To also remove the
63     files that `configure' created (so you can compile the package for
64     a different kind of computer), type `make distclean'.
65
66Compiler configuration
67======================
68
69   The `configure' shell script is responsible for choosing and configuring
70the compiler(s).
71
72The following options allow you to specify whether you
73want to enable or disable various debugging mechanisms:
74
75`--with-warnings'
76      Make the compilers very picky about warnings. Try this whenever you
77      write new code since it may catch a few bugs. This is not active by
78      default because all too often warnings can be too picky and scare
79      the end-user.
80
81`--disable-assert'
82      Compile without using assertions. This results in faster code,
83      but should not be used during developerment, or to run `make check'
84      which depends on assertions. It should only be used for production
85      runs on code that you believe is bug free.
86
87All programs are compiled with optimization level 2 by default (-O2).
88Occasionally that confuses the debugger when code is inlined. To disable
89optimization and enable debugging, set the shell environment variables
90CFLAGS, CXXFLAGS, FFLAGS to `-g'. On the bash shell, you can do this
91like this:
92  $ export CFLAGS="-g"
93  $ export CXXFLAGS="-g"
94  $ export FFLAGS="-g"
95On the tcsh shell, use the `setenv' command instead:
96  % setenv CFLAGS "-g"
97  ...etc...
98For other shell, please consult your shell's documentation.
99
100Similarly, you can increase the optimization level by assigning these
101variables to "-g -O3".
102
103The following options allow you to reconsider the `configure' shell script's
104choice of Fortran compilers.
105
106`--with-f2c'
107      Compile the Fortran code by translating it to C, even if a native
108      Fortran compiler is available. A copy of the f2c translator should be
109      bundled in the distribution. It will be compiled and then used to
110      compile your Fortran code.
111`--with-g77'
112      Compile the Fortran code with g77 even if a proprietary Fortran
113      compiler is available
114`--with-f77=F77'
115      Compile the Fortran code with the specified Fortran compiler.
116
117Depending on what languages the package uses, some of these options may
118or may not be available. To see what is available, type:
119    % sh ./configure --help
120
121About the configure script
122==========================
123
124   The `configure' shell script attempts to guess correct values for
125various system-dependent variables used during compilation.  It uses
126those values to create a `Makefile' in each directory of the package.
127It may also create one or more `.h' files containing system-dependent
128definitions.  Finally, it creates a shell script `config.status' that
129you can run in the future to recreate the current configuration, a file
130`config.cache' that saves the results of its tests to speed up
131reconfiguring, and a file `config.log' containing compiler output
132(useful mainly for debugging `configure').
133
134   If you need to do unusual things to compile the package, please try
135to figure out how `configure' could check whether to do them, and mail
136diffs or instructions to the address given in the `README' so they can
137be considered for the next release.  If at some point `config.cache'
138contains results you don't want to keep, you may remove or edit it.
139
140   The file `configure.in' is used to create `configure' by a program
141called `autoconf'.  You only need `configure.in' if you want to change
142it or regenerate `configure' using a newer version of `autoconf'.
143
144Advanced installation options.
145==============================
146
147   The `configure' script also understands the following more advanced
148options, to handle situations for which `--prefix' alone is not sufficient.
149
150   You can specify separate installation prefixes for
151architecture-specific files and architecture-independent files.  If you
152give `configure' the option `--exec-prefix=PATH', the package will use
153PATH as the prefix for installing programs and libraries.
154Documentation and other data files will still use the regular prefix.
155
156   In addition, if you use an unusual directory layout you can give
157options like `--bindir=PATH' to specify different values for particular
158kinds of files.  Run `configure --help' for a list of the directories
159you can set and what kinds of files go in them.
160
161   If the package supports it, you can cause programs to be installed
162with an extra prefix or suffix on their names by giving `configure' the
163option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
164
165Optional Features
166=================
167
168   Some packages pay attention to `--enable-FEATURE' options to
169`configure', where FEATURE indicates an optional part of the package.
170They may also pay attention to `--with-PACKAGE' options, where PACKAGE
171is something like `gnu-as' or `x' (for the X Window System).  The
172`README' should mention any `--enable-' and `--with-' options that the
173package recognizes.
174
175   For packages that use the X Window System, `configure' can usually
176find the X include and library files automatically, but if it doesn't,
177you can use the `configure' options `--x-includes=DIR' and
178`--x-libraries=DIR' to specify their locations.
179
180