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