release 0.2.9
[libgcrypt.git] / INSTALL
1
2 Please read the Basic Installation section somewhere below.
3
4 Configure options for GNUPG
5 ===========================
6
7 --with-zlib         Forces usage of the local zlib sources. Default is
8                     to use the (sahred) library of the system.
9
10 --disable-nls       Disable NLS support
11
12 --enable-m-debug    Compile with the integrated malloc debugging stuff.
13                     This makes the program slower but is checks every
14                     free operation and can be used to create statistics
15                     of memory usage. If this option is used the program
16                     option "--debug 32" displays every call to a a malloc
17                     function (this makes the program *really* slow), the
18                     option "--debug 128" displays a memory statistic after
19                     the program run.
20
21 Problems
22 ========
23
24 If you have compile problems, use the configure options "--with-zlib" and
25 "--disable-nls".
26
27 I cant check alls assembles files; so if you have problems assembling them
28 (or the program crashes), simply delete the files in the mpi/<cpu> directory.
29 The configure scripts may consider several subdirectories to get all
30 available assembler files; be sure to delete the correct ones. The
31 assembler replacements are in C and in mpi/generic; never delete udiv-qrnnd.S
32 in any CPU directory, because there maybe no C substitute.
33 Don't forget to delete "config.cache" and run "./config.status --recheck".
34
35
36 The Random Device
37 =================
38 The current version of GNUPG needs the support of a random device.
39 If there is no such device, it uses a very simple RNG, which does
40 not generate strong random numbers.
41 Random devices are available in Linux, FreeBSD and OpenBSD.
42 The device files may not exist on your system, please check this
43 and create them if needed.
44
45 The Linux files should look like this:
46     cr--r--r--   1 root     sys        1,   8 May 28  1997 /dev/random
47     cr--r--r--   1 root     sys        1,   9 Feb 16 08:23 /dev/urandom
48 You can create them with:
49     mknod /dev/random c 1 8
50     mknod /dev/random c 1 8
51
52 The FreeBSD files [from the 970202 snapshot]:
53     crw-r--r--  1 root  wheel    2,   3 Feb 25 16:54 /dev/random
54     crw-r--r--  1 root  wheel    2,   4 Feb 25 16:54 /dev/urandom
55 You can create them with:
56     mknod /dev/random  c 2 3
57     mknod /dev/urandom c 2 4
58
59
60
61 Installation
62 ============
63 gpg is not installed as suid:root; if you want to do it, do it manually.
64
65 The ~/.gnupg directory will be created if it does not exist.  Your first
66 action should be to create a key pair: "gpg --gen-key".
67
68
69
70 Basic Installation
71 ==================
72
73    These are generic installation instructions.
74
75    The `configure' shell script attempts to guess correct values for
76 various system-dependent variables used during compilation.  It uses
77 those values to create a `Makefile' in each directory of the package.
78 It may also create one or more `.h' files containing system-dependent
79 definitions.  Finally, it creates a shell script `config.status' that
80 you can run in the future to recreate the current configuration, a file
81 `config.cache' that saves the results of its tests to speed up
82 reconfiguring, and a file `config.log' containing compiler output
83 (useful mainly for debugging `configure').
84
85    If you need to do unusual things to compile the package, please try
86 to figure out how `configure' could check whether to do them, and mail
87 diffs or instructions to the address given in the `README' so they can
88 be considered for the next release.  If at some point `config.cache'
89 contains results you don't want to keep, you may remove or edit it.
90
91    The file `configure.in' is used to create `configure' by a program
92 called `autoconf'.  You only need `configure.in' if you want to change
93 it or regenerate `configure' using a newer version of `autoconf'.
94
95 The simplest way to compile this package is:
96
97   1. `cd' to the directory containing the package's source code and type
98      `./configure' to configure the package for your system.  If you're
99      using `csh' on an old version of System V, you might need to type
100      `sh ./configure' instead to prevent `csh' from trying to execute
101      `configure' itself.
102
103      Running `configure' takes awhile.  While running, it prints some
104      messages telling which features it is checking for.
105
106   2. Type `make' to compile the package.
107
108   3. Optionally, type `make check' to run any self-tests that come with
109      the package.
110
111   4. Type `make install' to install the programs and any data files and
112      documentation.
113
114   5. You can remove the program binaries and object files from the
115      source code directory by typing `make clean'.  To also remove the
116      files that `configure' created (so you can compile the package for
117      a different kind of computer), type `make distclean'.  There is
118      also a `make maintainer-clean' target, but that is intended mainly
119      for the package's developers.  If you use it, you may have to get
120      all sorts of other programs in order to regenerate files that came
121      with the distribution.
122
123 Compilers and Options
124 =====================
125
126    Some systems require unusual options for compilation or linking that
127 the `configure' script does not know about.  You can give `configure'
128 initial values for variables by setting them in the environment.  Using
129 a Bourne-compatible shell, you can do that on the command line like
130 this:
131      CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
132
133 Or on systems that have the `env' program, you can do it like this:
134      env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
135
136 Compiling For Multiple Architectures
137 ====================================
138
139    You can compile the package for more than one kind of computer at the
140 same time, by placing the object files for each architecture in their
141 own directory.  To do this, you must use a version of `make' that
142 supports the `VPATH' variable, such as GNU `make'.  `cd' to the
143 directory where you want the object files and executables to go and run
144 the `configure' script.  `configure' automatically checks for the
145 source code in the directory that `configure' is in and in `..'.
146
147    If you have to use a `make' that does not supports the `VPATH'
148 variable, you have to compile the package for one architecture at a time
149 in the source code directory.  After you have installed the package for
150 one architecture, use `make distclean' before reconfiguring for another
151 architecture.
152
153 Installation Names
154 ==================
155
156    By default, `make install' will install the package's files in
157 `/usr/local/bin', `/usr/local/man', etc.  You can specify an
158 installation prefix other than `/usr/local' by giving `configure' the
159 option `--prefix=PATH'.
160
161    You can specify separate installation prefixes for
162 architecture-specific files and architecture-independent files.  If you
163 give `configure' the option `--exec-prefix=PATH', the package will use
164 PATH as the prefix for installing programs and libraries.
165 Documentation and other data files will still use the regular prefix.
166
167    In addition, if you use an unusual directory layout you can give
168 options like `--bindir=PATH' to specify different values for particular
169 kinds of files.  Run `configure --help' for a list of the directories
170 you can set and what kinds of files go in them.
171
172    If the package supports it, you can cause programs to be installed
173 with an extra prefix or suffix on their names by giving `configure' the
174 option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
175
176 Optional Features
177 =================
178
179    Some packages pay attention to `--enable-FEATURE' options to
180 `configure', where FEATURE indicates an optional part of the package.
181 They may also pay attention to `--with-PACKAGE' options, where PACKAGE
182 is something like `gnu-as' or `x' (for the X Window System).  The
183 `README' should mention any `--enable-' and `--with-' options that the
184 package recognizes.
185
186    For packages that use the X Window System, `configure' can usually
187 find the X include and library files automatically, but if it doesn't,
188 you can use the `configure' options `--x-includes=DIR' and
189 `--x-libraries=DIR' to specify their locations.
190
191 Specifying the System Type
192 ==========================
193
194    There may be some features `configure' can not figure out
195 automatically, but needs to determine by the type of host the package
196 will run on.  Usually `configure' can figure that out, but if it prints
197 a message saying it can not guess the host type, give it the
198 `--host=TYPE' option.  TYPE can either be a short name for the system
199 type, such as `sun4', or a canonical name with three fields:
200      CPU-COMPANY-SYSTEM
201
202 See the file `config.sub' for the possible values of each field.  If
203 `config.sub' isn't included in this package, then this package doesn't
204 need to know the host type.
205
206    If you are building compiler tools for cross-compiling, you can also
207 use the `--target=TYPE' option to select the type of system they will
208 produce code for and the `--build=TYPE' option to select the type of
209 system on which you are compiling the package.
210
211 Sharing Defaults
212 ================
213
214    If you want to set default values for `configure' scripts to share,
215 you can create a site shell script called `config.site' that gives
216 default values for variables like `CC', `cache_file', and `prefix'.
217 `configure' looks for `PREFIX/share/config.site' if it exists, then
218 `PREFIX/etc/config.site' if it exists.  Or, you can set the
219 `CONFIG_SITE' environment variable to the location of the site script.
220 A warning: not all `configure' scripts look for a site script.
221
222 Operation Controls
223 ==================
224
225    `configure' recognizes the following options to control how it
226 operates.
227
228 `--cache-file=FILE'
229      Use and save the results of the tests in FILE instead of
230      `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
231      debugging `configure'.
232
233 `--help'
234      Print a summary of the options to `configure', and exit.
235
236 `--quiet'
237 `--silent'
238 `-q'
239      Do not print messages saying which checks are being made.  To
240      suppress all normal output, redirect it to `/dev/null' (any error
241      messages will still be shown).
242
243 `--srcdir=DIR'
244      Look for the package's source code in directory DIR.  Usually
245      `configure' can determine that directory automatically.
246
247 `--version'
248      Print the version of Autoconf used to generate the `configure'
249      script, and exit.
250
251 `configure' also accepts some other, not widely useful, options.
252