~7-luca/skylable/master

2 by Tomasz Kojm
update docs; add README and INSTALL files
1
Installation Instructions
2
*************************
3
4
Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
5
Inc.
6
7
   Copying and distribution of this file, with or without modification,
8
are permitted in any medium without royalty provided the copyright
9
notice and this notice are preserved.  This file is offered as-is,
10
without warranty of any kind.
11
12
Basic Installation
13
==================
14
15
   Briefly, the shell command `./configure && make && make install'
16
should configure, build, and install this package.  The following
783 by Tomasz Kojm
add QUCKSTART (place holder right now)
17
more-detailed instructions are generic; see the `README', 'QUICKSTART'
18
and `doc/manual/manual.pdf' files for instructions specific to
2 by Tomasz Kojm
update docs; add README and INSTALL files
19
this package.  Some packages provide this `INSTALL' file but do not
20
implement all of the features documented below.  The lack of an optional
21
feature in a given package is not necessarily a bug. More recommendations
22
for GNU packages can be found in *note Makefile Conventions:
23
(standards)Makefile Conventions.
24
25
   The `configure' shell script attempts to guess correct values for
26
various system-dependent variables used during compilation.  It uses
27
those values to create a `Makefile' in each directory of the package.
28
It may also create one or more `.h' files containing system-dependent
29
definitions.  Finally, it creates a shell script `config.status' that
30
you can run in the future to recreate the current configuration, and a
31
file `config.log' containing compiler output (useful mainly for
32
debugging `configure').
33
34
   It can also use an optional file (typically called `config.cache'
35
and enabled with `--cache-file=config.cache' or simply `-C') that saves
36
the results of its tests to speed up reconfiguring.  Caching is
37
disabled by default to prevent problems with accidental use of stale
38
cache files.
39
40
   If you need to do unusual things to compile the package, please try
41
to figure out how `configure' could check whether to do them, and mail
42
diffs or instructions to the address given in the `README' so they can
43
be considered for the next release.  If you are using the cache, and at
44
some point `config.cache' contains results you don't want to keep, you
45
may remove or edit it.
46
47
   The file `configure.ac' (or `configure.in') is used to create
48
`configure' by a program called `autoconf'.  You need `configure.ac' if
49
you want to change it or regenerate `configure' using a newer version
50
of `autoconf'.
51
52
   The simplest way to compile this package is:
53
54
  1. `cd' to the directory containing the package's source code and type
55
     `./configure' to configure the package for your system.
56
57
     Running `configure' might take a while.  While running, it prints
58
     some messages telling which features it is checking for.
59
60
  2. Type `make' to compile the package.
61
62
  3. Optionally, type `make check' to run any self-tests that come with
63
     the package, generally using the just-built uninstalled binaries.
64
65
  4. Type `make install' to install the programs and any data files and
66
     documentation.  When installing into a prefix owned by root, it is
67
     recommended that the package be configured and built as a regular
68
     user, and only the `make install' phase executed with root
69
     privileges.
70
71
  5. Optionally, type `make installcheck' to repeat any self-tests, but
72
     this time using the binaries in their final installed location.
73
     This target does not install anything.  Running this target as a
74
     regular user, particularly if the prior `make install' required
75
     root privileges, verifies that the installation completed
76
     correctly.
77
78
  6. You can remove the program binaries and object files from the
79
     source code directory by typing `make clean'.  To also remove the
80
     files that `configure' created (so you can compile the package for
81
     a different kind of computer), type `make distclean'.  There is
82
     also a `make maintainer-clean' target, but that is intended mainly
83
     for the package's developers.  If you use it, you may have to get
84
     all sorts of other programs in order to regenerate files that came
85
     with the distribution.
86
87
  7. Often, you can also type `make uninstall' to remove the installed
88
     files again.  In practice, not all packages have tested that
89
     uninstallation works correctly, even though it is required by the
90
     GNU Coding Standards.
91
92
  8. Some packages, particularly those that use Automake, provide `make
93
     distcheck', which can by used by developers to test that all other
94
     targets like `make install' and `make uninstall' work correctly.
95
     This target is generally not run by end users.
96
97
Compilers and Options
98
=====================
99
100
   Some systems require unusual options for compilation or linking that
101
the `configure' script does not know about.  Run `./configure --help'
102
for details on some of the pertinent environment variables.
103
104
   You can give `configure' initial values for configuration parameters
105
by setting variables in the command line or in the environment.  Here
106
is an example:
107
108
     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
109
110
   *Note Defining Variables::, for more details.
111
112
Compiling For Multiple Architectures
113
====================================
114
115
   You can compile the package for more than one kind of computer at the
116
same time, by placing the object files for each architecture in their
117
own directory.  To do this, you can use GNU `make'.  `cd' to the
118
directory where you want the object files and executables to go and run
119
the `configure' script.  `configure' automatically checks for the
120
source code in the directory that `configure' is in and in `..'.  This
121
is known as a "VPATH" build.
122
123
   With a non-GNU `make', it is safer to compile the package for one
124
architecture at a time in the source code directory.  After you have
125
installed the package for one architecture, use `make distclean' before
126
reconfiguring for another architecture.
127
128
   On MacOS X 10.5 and later systems, you can create libraries and
129
executables that work on multiple system types--known as "fat" or
130
"universal" binaries--by specifying multiple `-arch' options to the
131
compiler but only a single `-arch' option to the preprocessor.  Like
132
this:
133
134
     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
135
                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
136
                 CPP="gcc -E" CXXCPP="g++ -E"
137
138
   This is not guaranteed to produce working output in all cases, you
139
may have to build one architecture at a time and combine the results
140
using the `lipo' tool if you have problems.
141
142
Installation Names
143
==================
144
145
   By default, `make install' installs the package's commands under
146
`/usr/local/bin', include files under `/usr/local/include', etc.  You
147
can specify an installation prefix other than `/usr/local' by giving
148
`configure' the option `--prefix=PREFIX', where PREFIX must be an
149
absolute file name.
150
151
   You can specify separate installation prefixes for
152
architecture-specific files and architecture-independent files.  If you
153
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
154
PREFIX as the prefix for installing programs and libraries.
155
Documentation and other data files still use the regular prefix.
156
157
   In addition, if you use an unusual directory layout you can give
158
options like `--bindir=DIR' to specify different values for particular
159
kinds of files.  Run `configure --help' for a list of the directories
160
you can set and what kinds of files go in them.  In general, the
161
default for these options is expressed in terms of `${prefix}', so that
162
specifying just `--prefix' will affect all of the other directory
163
specifications that were not explicitly provided.
164
165
   The most portable way to affect installation locations is to pass the
166
correct locations to `configure'; however, many packages provide one or
167
both of the following shortcuts of passing variable assignments to the
168
`make install' command line to change installation locations without
169
having to reconfigure or recompile.
170
171
   The first method involves providing an override variable for each
172
affected directory.  For example, `make install
173
prefix=/alternate/directory' will choose an alternate location for all
174
directory configuration variables that were expressed in terms of
175
`${prefix}'.  Any directories that were specified during `configure',
176
but not in terms of `${prefix}', must each be overridden at install
177
time for the entire installation to be relocated.  The approach of
178
makefile variable overrides for each directory variable is required by
179
the GNU Coding Standards, and ideally causes no recompilation.
180
However, some platforms have known limitations with the semantics of
181
shared libraries that end up requiring recompilation when using this
182
method, particularly noticeable in packages that use GNU Libtool.
183
184
   The second method involves providing the `DESTDIR' variable.  For
185
example, `make install DESTDIR=/alternate/directory' will prepend
186
`/alternate/directory' before all installation names.  The approach of
187
`DESTDIR' overrides is not required by the GNU Coding Standards, and
188
does not work on platforms that have drive letters.  On the other hand,
189
it does better at avoiding recompilation issues, and works well even
190
when some directory options were not specified in terms of `${prefix}'
191
at `configure' time.
192
193
Optional Features
194
=================
195
196
   If the package supports it, you can cause programs to be installed
197
with an extra prefix or suffix on their names by giving `configure' the
198
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
199
200
   Some packages pay attention to `--enable-FEATURE' options to
201
`configure', where FEATURE indicates an optional part of the package.
202
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
203
is something like `gnu-as' or `x' (for the X Window System).  The
204
`README' should mention any `--enable-' and `--with-' options that the
205
package recognizes.
206
207
   For packages that use the X Window System, `configure' can usually
208
find the X include and library files automatically, but if it doesn't,
209
you can use the `configure' options `--x-includes=DIR' and
210
`--x-libraries=DIR' to specify their locations.
211
212
   Some packages offer the ability to configure how verbose the
213
execution of `make' will be.  For these packages, running `./configure
214
--enable-silent-rules' sets the default to minimal output, which can be
215
overridden with `make V=1'; while running `./configure
216
--disable-silent-rules' sets the default to verbose, which can be
217
overridden with `make V=0'.
218
219
Particular systems
220
==================
221
222
   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
223
CC is not installed, it is recommended to use the following options in
224
order to use an ANSI C compiler:
225
226
     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
227
228
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
229
230
   HP-UX `make' updates targets which have the same time stamps as
231
their prerequisites, which makes it generally unusable when shipped
232
generated files such as `configure' are involved.  Use GNU `make'
233
instead.
234
235
   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
236
parse its `<wchar.h>' header file.  The option `-nodtk' can be used as
237
a workaround.  If GNU CC is not installed, it is therefore recommended
238
to try
239
240
     ./configure CC="cc"
241
242
and if that doesn't work, try
243
244
     ./configure CC="cc -nodtk"
245
246
   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
247
directory contains several dysfunctional programs; working variants of
248
these programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
249
in your `PATH', put it _after_ `/usr/bin'.
250
251
   On Haiku, software installed for all users goes in `/boot/common',
252
not `/usr/local'.  It is recommended to use the following options:
253
254
     ./configure --prefix=/boot/common
255
256
Specifying the System Type
257
==========================
258
259
   There may be some features `configure' cannot figure out
260
automatically, but needs to determine by the type of machine the package
261
will run on.  Usually, assuming the package is built to be run on the
262
_same_ architectures, `configure' can figure that out, but if it prints
263
a message saying it cannot guess the machine type, give it the
264
`--build=TYPE' option.  TYPE can either be a short name for the system
265
type, such as `sun4', or a canonical name which has the form:
266
267
     CPU-COMPANY-SYSTEM
268
269
where SYSTEM can have one of these forms:
270
271
     OS
272
     KERNEL-OS
273
274
   See the file `config.sub' for the possible values of each field.  If
275
`config.sub' isn't included in this package, then this package doesn't
276
need to know the machine type.
277
278
   If you are _building_ compiler tools for cross-compiling, you should
279
use the option `--target=TYPE' to select the type of system they will
280
produce code for.
281
282
   If you want to _use_ a cross compiler, that generates code for a
283
platform different from the build platform, you should specify the
284
"host" platform (i.e., that on which the generated programs will
285
eventually be run) with `--host=TYPE'.
286
287
Sharing Defaults
288
================
289
290
   If you want to set default values for `configure' scripts to share,
291
you can create a site shell script called `config.site' that gives
292
default values for variables like `CC', `cache_file', and `prefix'.
293
`configure' looks for `PREFIX/share/config.site' if it exists, then
294
`PREFIX/etc/config.site' if it exists.  Or, you can set the
295
`CONFIG_SITE' environment variable to the location of the site script.
296
A warning: not all `configure' scripts look for a site script.
297
298
Defining Variables
299
==================
300
301
   Variables not defined in a site shell script can be set in the
302
environment passed to `configure'.  However, some packages may run
303
configure again during the build, and the customized values of these
304
variables may be lost.  In order to avoid this problem, you should set
305
them in the `configure' command line, using `VAR=value'.  For example:
306
307
     ./configure CC=/usr/local2/bin/gcc
308
309
causes the specified `gcc' to be used as the C compiler (unless it is
310
overridden in the site shell script).
311
312
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
313
an Autoconf limitation.  Until the limitation is lifted, you can use
314
this workaround:
315
316
     CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
317
318
`configure' Invocation
319
======================
320
321
   `configure' recognizes the following options to control how it
322
operates.
323
324
`--help'
325
`-h'
326
     Print a summary of all of the options to `configure', and exit.
327
328
`--help=short'
329
`--help=recursive'
330
     Print a summary of the options unique to this package's
331
     `configure', and exit.  The `short' variant lists options used
332
     only in the top level, while the `recursive' variant lists options
333
     also present in any nested packages.
334
335
`--version'
336
`-V'
337
     Print the version of Autoconf used to generate the `configure'
338
     script, and exit.
339
340
`--cache-file=FILE'
341
     Enable the cache: use and save the results of the tests in FILE,
342
     traditionally `config.cache'.  FILE defaults to `/dev/null' to
343
     disable caching.
344
345
`--config-cache'
346
`-C'
347
     Alias for `--cache-file=config.cache'.
348
349
`--quiet'
350
`--silent'
351
`-q'
352
     Do not print messages saying which checks are being made.  To
353
     suppress all normal output, redirect it to `/dev/null' (any error
354
     messages will still be shown).
355
356
`--srcdir=DIR'
357
     Look for the package's source code in directory DIR.  Usually
358
     `configure' can determine that directory automatically.
359
360
`--prefix=DIR'
361
     Use DIR as the installation prefix.  *note Installation Names::
362
     for more details, including other options available for fine-tuning
363
     the installation locations.
364
365
`--no-create'
366
`-n'
367
     Run the configure checks, but stop before creating any output
368
     files.
369
370
`configure' also accepts some other, not widely useful, options.  Run
371
`configure --help' for more details.