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