comparison mcabber/INSTALL @ 1825:cce89772ea94

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