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