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