1This 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 7the mcabber/ directory after the build procedure) 8 9You will need the Loudmouth library, version >= 1.4.3 is recommended. 10 11We have a Loudmouth repository on github, if you want to have the latest 12features and bugfixes: <http://github.com/mcabber/loudmouth> 13 14MCabber needs ncurses and ncurses development packages to build correctly. 15For UTF-8 terminal support, use ncursesw instead. 16Note: On FreeBSD (and maybe other BSD systems as well), it is recommended 17that you install ncurses from ports before compiling mcabber. 18You should also export LDFLAGS='-L/usr/local/lib' before running 19mcabber's configure to ensure that mcabber uses the ncurses installed 20from ports. This is necessary as the version of ncurses included in 21the base system does not provide unicode support. 22 23If you want PGP support, install libgpgme (with dev package), 24version >= 1.0.0. 25 26You may want to have a look at the wiki: 27 <http://wiki.mcabber.com/> 28and if you're using the development version (from the repository): 29 <http://wiki.mcabber.com/index.php/Building_mcabber_from_Mercurial> 30 31Please have a look at the README file before launching mcabber. 32 33Please send me a message (mcabber AT lilotux DOT net) if you have 34questions, suggestions or even patches... 35Our MUC room is there: <mcabber AT conf DOT lilotux DOT net> 36 37Mikael 38 39 40Installation Instructions 41************************* 42 43Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 442006, 2007, 2008, 2009 Free Software Foundation, Inc. 45 46 Copying and distribution of this file, with or without modification, 47are permitted in any medium without royalty provided the copyright 48notice and this notice are preserved. This file is offered as-is, 49without warranty of any kind. 50 51Basic Installation 52================== 53 54 Briefly, the shell commands `./configure; make; make install' should 55configure, build, and install this package. The following 56more-detailed instructions are generic; see the `README' file for 57instructions specific to this package. Some packages provide this 58`INSTALL' file but do not implement all of the features documented 59below. The lack of an optional feature in a given package is not 60necessarily a bug. More recommendations for GNU packages can be found 61in *note Makefile Conventions: (standards)Makefile Conventions. 62 63 The `configure' shell script attempts to guess correct values for 64various system-dependent variables used during compilation. It uses 65those values to create a `Makefile' in each directory of the package. 66It may also create one or more `.h' files containing system-dependent 67definitions. Finally, it creates a shell script `config.status' that 68you can run in the future to recreate the current configuration, and a 69file `config.log' containing compiler output (useful mainly for 70debugging `configure'). 71 72 It can also use an optional file (typically called `config.cache' 73and enabled with `--cache-file=config.cache' or simply `-C') that saves 74the results of its tests to speed up reconfiguring. Caching is 75disabled by default to prevent problems with accidental use of stale 76cache files. 77 78 If you need to do unusual things to compile the package, please try 79to figure out how `configure' could check whether to do them, and mail 80diffs or instructions to the address given in the `README' so they can 81be considered for the next release. If you are using the cache, and at 82some point `config.cache' contains results you don't want to keep, you 83may remove or edit it. 84 85 The file `configure.ac' (or `configure.in') is used to create 86`configure' by a program called `autoconf'. You need `configure.ac' if 87you want to change it or regenerate `configure' using a newer version 88of `autoconf'. 89 90 The simplest way to compile this package is: 91 92 1. `cd' to the directory containing the package's source code and type 93 `./configure' to configure the package for your system. 94 95 Running `configure' might take a while. While running, it prints 96 some messages telling which features it is checking for. 97 98 2. Type `make' to compile the package. 99 100 3. Optionally, type `make check' to run any self-tests that come with 101 the package, generally using the just-built uninstalled binaries. 102 103 4. Type `make install' to install the programs and any data files and 104 documentation. When installing into a prefix owned by root, it is 105 recommended that the package be configured and built as a regular 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 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 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 135Compilers and Options 136===================== 137 138 Some systems require unusual options for compilation or linking that 139the `configure' script does not know about. Run `./configure --help' 140for details on some of the pertinent environment variables. 141 142 You can give `configure' initial values for configuration parameters 143by setting variables in the command line or in the environment. Here 144is an example: 145 146 ./configure CC=c99 CFLAGS=-g LIBS=-lposix 147 148 *Note Defining Variables::, for more details. 149 150Compiling For Multiple Architectures 151==================================== 152 153 You can compile the package for more than one kind of computer at the 154same time, by placing the object files for each architecture in their 155own directory. To do this, you can use GNU `make'. `cd' to the 156directory where you want the object files and executables to go and run 157the `configure' script. `configure' automatically checks for the 158source code in the directory that `configure' is in and in `..'. This 159is known as a "VPATH" build. 160 161 With a non-GNU `make', it is safer to compile the package for one 162architecture at a time in the source code directory. After you have 163installed the package for one architecture, use `make distclean' before 164reconfiguring for another architecture. 165 166 On MacOS X 10.5 and later systems, you can create libraries and 167executables that work on multiple system types--known as "fat" or 168"universal" binaries--by specifying multiple `-arch' options to the 169compiler but only a single `-arch' option to the preprocessor. Like 170this: 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 177may have to build one architecture at a time and combine the results 178using the `lipo' tool if you have problems. 179 180Installation Names 181================== 182 183 By default, `make install' installs the package's commands under 184`/usr/local/bin', include files under `/usr/local/include', etc. You 185can specify an installation prefix other than `/usr/local' by giving 186`configure' the option `--prefix=PREFIX', where PREFIX must be an 187absolute file name. 188 189 You can specify separate installation prefixes for 190architecture-specific files and architecture-independent files. If you 191pass the option `--exec-prefix=PREFIX' to `configure', the package uses 192PREFIX as the prefix for installing programs and libraries. 193Documentation and other data files still use the regular prefix. 194 195 In addition, if you use an unusual directory layout you can give 196options like `--bindir=DIR' to specify different values for particular 197kinds of files. Run `configure --help' for a list of the directories 198you can set and what kinds of files go in them. In general, the 199default for these options is expressed in terms of `${prefix}', so that 200specifying just `--prefix' will affect all of the other directory 201specifications that were not explicitly provided. 202 203 The most portable way to affect installation locations is to pass the 204correct locations to `configure'; however, many packages provide one or 205both of the following shortcuts of passing variable assignments to the 206`make install' command line to change installation locations without 207having to reconfigure or recompile. 208 209 The first method involves providing an override variable for each 210affected directory. For example, `make install 211prefix=/alternate/directory' will choose an alternate location for all 212directory configuration variables that were expressed in terms of 213`${prefix}'. Any directories that were specified during `configure', 214but not in terms of `${prefix}', must each be overridden at install 215time for the entire installation to be relocated. The approach of 216makefile variable overrides for each directory variable is required by 217the GNU Coding Standards, and ideally causes no recompilation. 218However, some platforms have known limitations with the semantics of 219shared libraries that end up requiring recompilation when using this 220method, particularly noticeable in packages that use GNU Libtool. 221 222 The second method involves providing the `DESTDIR' variable. For 223example, `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 226does not work on platforms that have drive letters. On the other hand, 227it does better at avoiding recompilation issues, and works well even 228when some directory options were not specified in terms of `${prefix}' 229at `configure' time. 230 231Optional Features 232================= 233 234 If the package supports it, you can cause programs to be installed 235with an extra prefix or suffix on their names by giving `configure' the 236option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 237 238 Some packages pay attention to `--enable-FEATURE' options to 239`configure', where FEATURE indicates an optional part of the package. 240They may also pay attention to `--with-PACKAGE' options, where PACKAGE 241is something like `gnu-as' or `x' (for the X Window System). The 242`README' should mention any `--enable-' and `--with-' options that the 243package recognizes. 244 245 For packages that use the X Window System, `configure' can usually 246find the X include and library files automatically, but if it doesn't, 247you can use the `configure' options `--x-includes=DIR' and 248`--x-libraries=DIR' to specify their locations. 249 250 Some packages offer the ability to configure how verbose the 251execution of `make' will be. For these packages, running `./configure 252--enable-silent-rules' sets the default to minimal output, which can be 253overridden with `make V=1'; while running `./configure 254--disable-silent-rules' sets the default to verbose, which can be 255overridden with `make V=0'. 256 257Particular systems 258================== 259 260 On HP-UX, the default C compiler is not ANSI C compatible. If GNU 261CC is not installed, it is recommended to use the following options in 262order to use an ANSI C compiler: 263 264 ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" 265 266and 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 269parse its `<wchar.h>' header file. The option `-nodtk' can be used as 270a workaround. If GNU CC is not installed, it is therefore recommended 271to try 272 273 ./configure CC="cc" 274 275and 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 280directory contains several dysfunctional programs; working variants of 281these programs are available in `/usr/bin'. So, if you need `/usr/ucb' 282in your `PATH', put it _after_ `/usr/bin'. 283 284 On Haiku, software installed for all users goes in `/boot/common', 285not `/usr/local'. It is recommended to use the following options: 286 287 ./configure --prefix=/boot/common 288 289Specifying the System Type 290========================== 291 292 There may be some features `configure' cannot figure out 293automatically, but needs to determine by the type of machine the package 294will run on. Usually, assuming the package is built to be run on the 295_same_ architectures, `configure' can figure that out, but if it prints 296a message saying it cannot guess the machine type, give it the 297`--build=TYPE' option. TYPE can either be a short name for the system 298type, such as `sun4', or a canonical name which has the form: 299 300 CPU-COMPANY-SYSTEM 301 302where SYSTEM can have one of these forms: 303 304 OS 305 KERNEL-OS 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 309need to know the machine type. 310 311 If you are _building_ compiler tools for cross-compiling, you should 312use the option `--target=TYPE' to select the type of system they will 313produce code for. 314 315 If you want to _use_ a cross compiler, that generates code for a 316platform different from the build platform, you should specify the 317"host" platform (i.e., that on which the generated programs will 318eventually be run) with `--host=TYPE'. 319 320Sharing Defaults 321================ 322 323 If you want to set default values for `configure' scripts to share, 324you can create a site shell script called `config.site' that gives 325default values for variables like `CC', `cache_file', and `prefix'. 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. 329A warning: not all `configure' scripts look for a site script. 330 331Defining Variables 332================== 333 334 Variables not defined in a site shell script can be set in the 335environment passed to `configure'. However, some packages may run 336configure again during the build, and the customized values of these 337variables may be lost. In order to avoid this problem, you should set 338them in the `configure' command line, using `VAR=value'. For example: 339 340 ./configure CC=/usr/local2/bin/gcc 341 342causes the specified `gcc' to be used as the C compiler (unless it is 343overridden in the site shell script). 344 345Unfortunately, this technique does not work for `CONFIG_SHELL' due to 346an Autoconf bug. Until the bug is fixed you can use this workaround: 347 348 CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 349 350`configure' Invocation 351====================== 352 353 `configure' recognizes the following options to control how it 354operates. 355 356`--help' 357`-h' 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. 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 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 402`configure' also accepts some other, not widely useful, options. Run 403`configure --help' for more details. 404 405