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