Home | History | Annotate | Download | only in dbus
      1            DBus Installation
      2            =================
      3 
      4 Quick start
      5 ===========
      6 
      7 DBus could be build with GNU AutoTools or with cmake for its build system,
      8 thus the basic install procedure can be summarized as:
      9 
     10 with autotools:
     11 
     12     ./configure --prefix=/usr
     13     make
     14     su make install
     15 
     16 The configure script will automatically determine whether to try and
     17 build bindings for GLib, Qt, Qt3, Python and Mono based on what tools
     18 are installed on the host system. The default build behaviour can be
     19 overridden using the --enable-XXX/--disable-XXX arguments to configure.
     20 A typical scenario in which it is desirable to override automatic
     21 detection, is during packaging of binary builds, where a predictable
     22 dependancy chain is required. For more details on GNU AutoTools
     23 installation, consult the generic instructions later in this document
     24 
     25 with cmake:
     26     mkdir dbus-build-dir
     27     cd dbus-build-dir
     28     cmake -G <makefile-generator-name> [-D<option>] <dbus-src-root>/cmake
     29     make
     30     make install
     31 
     32 cmake will automatically determine whether to build some features
     33 based on what tools and/or libraries are installed on the host system. 
     34 The default build behaviour can be overridden using the 
     35 -DENABLE_<XXX> arguments to cmake.
     36 A typical scenario in which it is desirable to override automatic
     37 detection, is during packaging of binary builds, where a predictable
     38 dependancy chain is required. For more details on cmake installation, 
     39 consult http://www.cmake.org/cmake/help/help.html. 
     40 
     41 External software dependancies
     42 ==============================
     43 
     44 The only fundamental requirement to build DBus is an XML parser,
     45 however, there are a number of other software packages which (if
     46 present) will enhance functionality.
     47 
     48 Core library
     49 ------------
     50 
     51  Requisite:
     52 
     53   - Gettext
     54   - expat or libxml-2
     55 
     56  NB, expat is the recommended XML parser because it has more robust
     57  handling of OOM conditions.
     58 
     59  Optional:
     60 
     61   - libselinux           (for SELinux integration)
     62   - dnotify              (for automatic service file reload)
     63   - doxygen              (for API documentation)
     64   - xmlto or meinproc4   (for Spec & other XML documentation)
     65 
     66 ====================================================================
     67 
     68 The rest of this document contains the generic GNU AutoTools install
     69 insructions....
     70 
     71 Basic Installation
     72 ==================
     73 
     74    These are generic installation instructions.
     75 
     76    The `configure' shell script attempts to guess correct values for
     77 various system-dependent variables used during compilation.  It uses
     78 those values to create a `Makefile' in each directory of the package.
     79 It may also create one or more `.h' files containing system-dependent
     80 definitions.  Finally, it creates a shell script `config.status' that
     81 you can run in the future to recreate the current configuration, a file
     82 `config.cache' that saves the results of its tests to speed up
     83 reconfiguring, and a file `config.log' containing compiler output
     84 (useful mainly for debugging `configure').
     85 
     86    If you need to do unusual things to compile the package, please try
     87 to figure out how `configure' could check whether to do them, and mail
     88 diffs or instructions to the address given in the `README' so they can
     89 be considered for the next release.  If at some point `config.cache'
     90 contains results you don't want to keep, you may remove or edit it.
     91 
     92    The file `configure.in' is used to create `configure' by a program
     93 called `autoconf'.  You only need `configure.in' if you want to change
     94 it or regenerate `configure' using a newer version of `autoconf'.
     95 
     96 The simplest way to compile this package is:
     97 
     98   1. `cd' to the directory containing the package's source code and type
     99      `./configure' to configure the package for your system.  If you're
    100      using `csh' on an old version of System V, you might need to type
    101      `sh ./configure' instead to prevent `csh' from trying to execute
    102      `configure' itself.
    103 
    104      Running `configure' takes awhile.  While running, it prints some
    105      messages telling which features it is checking for.
    106 
    107   2. Type `make' to compile the package.
    108 
    109   3. Optionally, type `make check' to run any self-tests that come with
    110      the package.
    111 
    112   4. Type `make install' to install the programs and any data files and
    113      documentation.
    114 
    115   5. You can remove the program binaries and object files from the
    116      source code directory by typing `make clean'.  To also remove the
    117      files that `configure' created (so you can compile the package for
    118      a different kind of computer), type `make distclean'.  There is
    119      also a `make maintainer-clean' target, but that is intended mainly
    120      for the package's developers.  If you use it, you may have to get
    121      all sorts of other programs in order to regenerate files that came
    122      with the distribution.
    123 
    124 Compilers and Options
    125 =====================
    126 
    127    Some systems require unusual options for compilation or linking that
    128 the `configure' script does not know about.  You can give `configure'
    129 initial values for variables by setting them in the environment.  Using
    130 a Bourne-compatible shell, you can do that on the command line like
    131 this:
    132      CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
    133 
    134 Or on systems that have the `env' program, you can do it like this:
    135      env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
    136 
    137 Compiling For Multiple Architectures
    138 ====================================
    139 
    140    You can compile the package for more than one kind of computer at the
    141 same time, by placing the object files for each architecture in their
    142 own directory.  To do this, you must use a version of `make' that
    143 supports the `VPATH' variable, such as GNU `make'.  `cd' to the
    144 directory where you want the object files and executables to go and run
    145 the `configure' script.  `configure' automatically checks for the
    146 source code in the directory that `configure' is in and in `..'.
    147 
    148    If you have to use a `make' that does not supports the `VPATH'
    149 variable, you have to compile the package for one architecture at a time
    150 in the source code directory.  After you have installed the package for
    151 one architecture, use `make distclean' before reconfiguring for another
    152 architecture.
    153 
    154 Installation Names
    155 ==================
    156 
    157    By default, `make install' will install the package's files in
    158 `/usr/local/bin', `/usr/local/man', etc.  You can specify an
    159 installation prefix other than `/usr/local' by giving `configure' the
    160 option `--prefix=PATH'.
    161 
    162    You can specify separate installation prefixes for
    163 architecture-specific files and architecture-independent files.  If you
    164 give `configure' the option `--exec-prefix=PATH', the package will use
    165 PATH as the prefix for installing programs and libraries.
    166 Documentation and other data files will still use the regular prefix.
    167 
    168    In addition, if you use an unusual directory layout you can give
    169 options like `--bindir=PATH' to specify different values for particular
    170 kinds of files.  Run `configure --help' for a list of the directories
    171 you can set and what kinds of files go in them.
    172 
    173    If the package supports it, you can cause programs to be installed
    174 with an extra prefix or suffix on their names by giving `configure' the
    175 option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
    176 
    177 Optional Features
    178 =================
    179 
    180    Some packages pay attention to `--enable-FEATURE' options to
    181 `configure', where FEATURE indicates an optional part of the package.
    182 They may also pay attention to `--with-PACKAGE' options, where PACKAGE
    183 is something like `gnu-as' or `x' (for the X Window System).  The
    184 `README' should mention any `--enable-' and `--with-' options that the
    185 package recognizes.
    186 
    187    For packages that use the X Window System, `configure' can usually
    188 find the X include and library files automatically, but if it doesn't,
    189 you can use the `configure' options `--x-includes=DIR' and
    190 `--x-libraries=DIR' to specify their locations.
    191 
    192 Specifying the System Type
    193 ==========================
    194 
    195    There may be some features `configure' can not figure out
    196 automatically, but needs to determine by the type of host the package
    197 will run on.  Usually `configure' can figure that out, but if it prints
    198 a message saying it can not guess the host type, give it the
    199 `--host=TYPE' option.  TYPE can either be a short name for the system
    200 type, such as `sun4', or a canonical name with three fields:
    201      CPU-COMPANY-SYSTEM
    202 
    203 See the file `config.sub' for the possible values of each field.  If
    204 `config.sub' isn't included in this package, then this package doesn't
    205 need to know the host type.
    206 
    207    If you are building compiler tools for cross-compiling, you can also
    208 use the `--target=TYPE' option to select the type of system they will
    209 produce code for and the `--build=TYPE' option to select the type of
    210 system on which you are compiling the package.
    211 
    212 Sharing Defaults
    213 ================
    214 
    215    If you want to set default values for `configure' scripts to share,
    216 you can create a site shell script called `config.site' that gives
    217 default values for variables like `CC', `cache_file', and `prefix'.
    218 `configure' looks for `PREFIX/share/config.site' if it exists, then
    219 `PREFIX/etc/config.site' if it exists.  Or, you can set the
    220 `CONFIG_SITE' environment variable to the location of the site script.
    221 A warning: not all `configure' scripts look for a site script.
    222 
    223 Operation Controls
    224 ==================
    225 
    226    `configure' recognizes the following options to control how it
    227 operates.
    228 
    229 `--cache-file=FILE'
    230      Use and save the results of the tests in FILE instead of
    231      `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
    232      debugging `configure'.
    233 
    234 `--help'
    235      Print a summary of the options to `configure', and exit.
    236 
    237 `--quiet'
    238 `--silent'
    239 `-q'
    240      Do not print messages saying which checks are being made.  To
    241      suppress all normal output, redirect it to `/dev/null' (any error
    242      messages will still be shown).
    243 
    244 `--srcdir=DIR'
    245      Look for the package's source code in directory DIR.  Usually
    246      `configure' can determine that directory automatically.
    247 
    248 `--version'
    249      Print the version of Autoconf used to generate the `configure'
    250      script, and exit.
    251 
    252 `configure' also accepts some other, not widely useful, options.
    253