[96] | 1 | $Id: INSTALL 519 2007-12-23 20:14:50Z jari $ |
---|
[340] | 2 | {{{ |
---|
[96] | 3 | Copyright (C) 2006 Jari Häkkinen |
---|
[408] | 4 | Copyright (C) 2007 Jari Häkkinen, Peter Johansson |
---|
[96] | 5 | |
---|
[519] | 6 | This file is part of svndigest, http://trac.thep.lu.se/svndigest |
---|
[96] | 7 | |
---|
[149] | 8 | svndigest is free software; you can redistribute it and/or modify it |
---|
[96] | 9 | under the terms of the GNU General Public License as published by the |
---|
| 10 | Free Software Foundation; either version 2 of the License, or (at your |
---|
| 11 | option) any later version. |
---|
| 12 | |
---|
[149] | 13 | svndigest is distributed in the hope that it will be useful, but |
---|
| 14 | WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
[160] | 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
---|
[149] | 16 | General Public License for more details. |
---|
[96] | 17 | |
---|
| 18 | You should have received a copy of the GNU General Public License |
---|
| 19 | along with this program; if not, write to the Free Software |
---|
| 20 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
---|
| 21 | USA. |
---|
[340] | 22 | }}} |
---|
| 23 | ---------------------------------------------------------------------- |
---|
[96] | 24 | |
---|
[340] | 25 | = Svndigest Installation Guide = |
---|
[96] | 26 | |
---|
[385] | 27 | Svndigest is a tool to extract development information and statistics |
---|
[340] | 28 | from a subversion repository. Svndigest is written in C++ and extracts |
---|
| 29 | repository history using the subversion API. The resulting report is |
---|
| 30 | written to a user specifiable directory in HTML format. |
---|
[96] | 31 | |
---|
[340] | 32 | == Requirements == |
---|
| 33 | |
---|
| 34 | * Subversion development files, i.e., header files and program |
---|
| 35 | libraries, version 1.4 or later. |
---|
| 36 | |
---|
| 37 | * This item should not be an issue if item above is fulfilled; the |
---|
| 38 | Apache Portable Runtime (APR) should be available if the subversion |
---|
[385] | 39 | API was successfully compiled. Subversion depends on APR and in |
---|
[340] | 40 | consequence, the dependency is inherited by svndigest. |
---|
| 41 | |
---|
| 42 | * Gnuplot. |
---|
| 43 | |
---|
| 44 | * A standard C++ compliant compiler with one extension: svndigest |
---|
| 45 | must be compiled with a C++ compiler that supports 'long long' |
---|
[386] | 46 | types - GCC does this. This requirement arises from the fact that |
---|
| 47 | one of the underlying libraries, APR, is using 'long long'. APR is |
---|
| 48 | written in C and the C standard allows 'long long'. |
---|
[340] | 49 | Even though the source is compiled with the -pedantic flag (which |
---|
| 50 | should catch the non C++ standard 'long long') there is another |
---|
| 51 | flag to suppress 'long long' diagnostics, -Wno-long-long. |
---|
| 52 | |
---|
| 53 | == Installing svndigest == |
---|
| 54 | |
---|
[96] | 55 | Below you'll find the generic FSF install instructions. To compile |
---|
[149] | 56 | and install svndigest you can follow the usual autoconf path: |
---|
[96] | 57 | |
---|
[340] | 58 | * `./configure` |
---|
[96] | 59 | |
---|
[340] | 60 | * `make` |
---|
[96] | 61 | |
---|
[386] | 62 | * Optionally, `make check` to run test programs. Some test programs |
---|
| 63 | are not enabled by default and the disabled tests should only be |
---|
| 64 | run by developers. |
---|
[96] | 65 | |
---|
[340] | 66 | * `make install` |
---|
[219] | 67 | |
---|
[340] | 68 | The `./configure` script accepts a few options of interest for |
---|
| 69 | svndigest. You can provide `./configure` with APR and subversion API |
---|
| 70 | location information with `--with-apr=DIR` and `--with-svn=DIR`, |
---|
| 71 | respectively. `--enable-staticbin` will create a static |
---|
[171] | 72 | svndigest binary. (Actually as static as the underlying program |
---|
[219] | 73 | libraries allows it to be, i.e., some external libraries might not |
---|
[281] | 74 | have been created/installed in static versions.) |
---|
[96] | 75 | |
---|
[137] | 76 | If you grabbed the source from the subversion repository you need to |
---|
[386] | 77 | run `./bootstrap` to setup autoconf files (see README.developer). |
---|
[96] | 78 | |
---|
| 79 | |
---|
[340] | 80 | == FSF generic install documentation == |
---|
[96] | 81 | |
---|
| 82 | Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004 Free |
---|
| 83 | Software Foundation, Inc. |
---|
| 84 | |
---|
| 85 | This file is free documentation; the Free Software Foundation gives |
---|
| 86 | unlimited permission to copy, distribute and modify it. |
---|
| 87 | |
---|
[340] | 88 | === Basic Installation === |
---|
[96] | 89 | |
---|
| 90 | These are generic installation instructions. |
---|
| 91 | |
---|
[340] | 92 | The `configure` shell script attempts to guess correct values for |
---|
[96] | 93 | various system-dependent variables used during compilation. It uses |
---|
[340] | 94 | those values to create a `Makefile` in each directory of the package. |
---|
| 95 | It may also create one or more `.h` files containing system-dependent |
---|
| 96 | definitions. Finally, it creates a shell script `config.status` that |
---|
[96] | 97 | you can run in the future to recreate the current configuration, and a |
---|
[340] | 98 | file `config.log` containing compiler output (useful mainly for |
---|
| 99 | debugging `configure`). |
---|
[96] | 100 | |
---|
[340] | 101 | It can also use an optional file (typically called `config.cache` |
---|
| 102 | and enabled with `--cache-file=config.cache` or simply `-C`) that saves |
---|
[96] | 103 | the results of its tests to speed up reconfiguring. (Caching is |
---|
| 104 | disabled by default to prevent problems with accidental use of stale |
---|
| 105 | cache files.) |
---|
| 106 | |
---|
[340] | 107 | If you need to do unusual things to compile the package, please try |
---|
| 108 | to figure out how `configure` could check whether to do them, and mail |
---|
| 109 | diffs or instructions to the address given in the `README` so they can |
---|
[96] | 110 | be considered for the next release. If you are using the cache, and at |
---|
[340] | 111 | some point `config.cache` contains results you don't want to keep, you |
---|
[96] | 112 | may remove or edit it. |
---|
| 113 | |
---|
[340] | 114 | The file `configure.ac` (or `configure.in`) is used to create |
---|
| 115 | `configure` by a program called `autoconf`. You only need |
---|
| 116 | `configure.ac` if you want to change it or regenerate `configure` using |
---|
| 117 | a newer version of `autoconf`. |
---|
[96] | 118 | |
---|
| 119 | The simplest way to compile this package is: |
---|
| 120 | |
---|
[340] | 121 | * `cd` to the directory containing the package's source code and type |
---|
| 122 | `./configure` to configure the package for your system. If you're |
---|
| 123 | using `csh` on an old version of System V, you might need to type |
---|
| 124 | `sh ./configure` instead to prevent `csh` from trying to execute |
---|
| 125 | `configure` itself. |
---|
[96] | 126 | |
---|
[340] | 127 | Running `configure` takes awhile. While running, it prints some |
---|
[96] | 128 | messages telling which features it is checking for. |
---|
| 129 | |
---|
[340] | 130 | * Type `make` to compile the package. |
---|
[96] | 131 | |
---|
[340] | 132 | * Optionally, type `make check` to run any self-tests that come with |
---|
[96] | 133 | the package. |
---|
| 134 | |
---|
[340] | 135 | * Type `make install` to install the programs and any data files and |
---|
[96] | 136 | documentation. |
---|
| 137 | |
---|
[340] | 138 | * You can remove the program binaries and object files from the |
---|
| 139 | source code directory by typing `make clean`. To also remove the |
---|
| 140 | files that `configure` created (so you can compile the package for |
---|
| 141 | a different kind of computer), type `make distclean`. There is |
---|
| 142 | also a `make maintainer-clean` target, but that is intended mainly |
---|
[96] | 143 | for the package's developers. If you use it, you may have to get |
---|
| 144 | all sorts of other programs in order to regenerate files that came |
---|
| 145 | with the distribution. |
---|
| 146 | |
---|
[340] | 147 | === Compilers and Options === |
---|
[96] | 148 | |
---|
| 149 | Some systems require unusual options for compilation or linking that the |
---|
[340] | 150 | `configure` script does not know about. Run `./configure --help` for |
---|
[96] | 151 | details on some of the pertinent environment variables. |
---|
| 152 | |
---|
[340] | 153 | You can give `configure` initial values for configuration parameters |
---|
[96] | 154 | by setting variables in the command line or in the environment. Here |
---|
| 155 | is an example: |
---|
| 156 | |
---|
[340] | 157 | `./configure CC=c89 CFLAGS=-O2 LIBS=-lposix` |
---|
[96] | 158 | |
---|
| 159 | *Note Defining Variables::, for more details. |
---|
| 160 | |
---|
[340] | 161 | === Compiling For Multiple Architectures === |
---|
[96] | 162 | |
---|
| 163 | You can compile the package for more than one kind of computer at the |
---|
| 164 | same time, by placing the object files for each architecture in their |
---|
[340] | 165 | own directory. To do this, you must use a version of `make` that |
---|
| 166 | supports the `VPATH` variable, such as GNU `make`. `cd` to the |
---|
[96] | 167 | directory where you want the object files and executables to go and run |
---|
[340] | 168 | the `configure` script. `configure` automatically checks for the |
---|
| 169 | source code in the directory that `configure` is in and in `..`. |
---|
[96] | 170 | |
---|
[340] | 171 | If you have to use a `make` that does not support the `VPATH` |
---|
[96] | 172 | variable, you have to compile the package for one architecture at a |
---|
| 173 | time in the source code directory. After you have installed the |
---|
[340] | 174 | package for one architecture, use `make distclean` before reconfiguring |
---|
[96] | 175 | for another architecture. |
---|
| 176 | |
---|
[340] | 177 | === Installation Names === |
---|
[96] | 178 | |
---|
[340] | 179 | By default, `make install` will install the package's files in |
---|
| 180 | `/usr/local/bin`, `/usr/local/man`, etc. You can specify an |
---|
| 181 | installation prefix other than `/usr/local` by giving `configure` the |
---|
| 182 | option `--prefix=PREFIX`. |
---|
[96] | 183 | |
---|
[340] | 184 | You can specify separate installation prefixes for |
---|
[96] | 185 | architecture-specific files and architecture-independent files. If you |
---|
[340] | 186 | give `configure` the option `--exec-prefix=PREFIX`, the package will |
---|
[96] | 187 | use PREFIX as the prefix for installing programs and libraries. |
---|
| 188 | Documentation and other data files will still use the regular prefix. |
---|
| 189 | |
---|
[340] | 190 | In addition, if you use an unusual directory layout you can give |
---|
| 191 | options like `--bindir=DIR` to specify different values for particular |
---|
| 192 | kinds of files. Run `configure --help` for a list of the directories |
---|
[96] | 193 | you can set and what kinds of files go in them. |
---|
| 194 | |
---|
[340] | 195 | If the package supports it, you can cause programs to be installed |
---|
| 196 | with an extra prefix or suffix on their names by giving `configure` the |
---|
| 197 | option `--program-prefix=PREFIX` or `--program-suffix=SUFFIX`. |
---|
[96] | 198 | |
---|
[340] | 199 | === Optional Features === |
---|
[96] | 200 | |
---|
[340] | 201 | Some packages pay attention to `--enable-FEATURE` options to |
---|
| 202 | `configure`, where FEATURE indicates an optional part of the package. |
---|
| 203 | They may also pay attention to `--with-PACKAGE` options, where PACKAGE |
---|
| 204 | is something like `gnu-as` or `x` (for the X Window System). The |
---|
| 205 | `README` should mention any `--enable-` and `--with-` options that the |
---|
[96] | 206 | package recognizes. |
---|
| 207 | |
---|
[340] | 208 | For packages that use the X Window System, `configure` can usually |
---|
[96] | 209 | find the X include and library files automatically, but if it doesn't, |
---|
[340] | 210 | you can use the `configure` options `--x-includes=DIR` and |
---|
| 211 | `--x-libraries=DIR` to specify their locations. |
---|
[96] | 212 | |
---|
[340] | 213 | === Specifying the System Type === |
---|
[96] | 214 | |
---|
[340] | 215 | There may be some features `configure` cannot figure out automatically, |
---|
[96] | 216 | but needs to determine by the type of machine the package will run on. |
---|
| 217 | Usually, assuming the package is built to be run on the _same_ |
---|
[340] | 218 | architectures, `configure` can figure that out, but if it prints a |
---|
[96] | 219 | message saying it cannot guess the machine type, give it the |
---|
[340] | 220 | `--build=TYPE` option. TYPE can either be a short name for the system |
---|
| 221 | type, such as `sun4`, or a canonical name which has the form: |
---|
[96] | 222 | |
---|
| 223 | CPU-COMPANY-SYSTEM |
---|
| 224 | |
---|
| 225 | where SYSTEM can have one of these forms: |
---|
| 226 | |
---|
| 227 | OS KERNEL-OS |
---|
| 228 | |
---|
[340] | 229 | See the file `config.sub` for the possible values of each field. If |
---|
| 230 | `config.sub` isn't included in this package, then this package doesn't |
---|
[96] | 231 | need to know the machine type. |
---|
| 232 | |
---|
[340] | 233 | If you are _building_ compiler tools for cross-compiling, you should |
---|
| 234 | use the `--target=TYPE` option to select the type of system they will |
---|
[96] | 235 | produce code for. |
---|
| 236 | |
---|
[340] | 237 | If you want to _use_ a cross compiler, that generates code for a |
---|
[96] | 238 | platform different from the build platform, you should specify the |
---|
| 239 | "host" platform (i.e., that on which the generated programs will |
---|
[340] | 240 | eventually be run) with `--host=TYPE`. |
---|
[96] | 241 | |
---|
[340] | 242 | === Sharing Defaults === |
---|
[96] | 243 | |
---|
[340] | 244 | If you want to set default values for `configure` scripts to share, you |
---|
| 245 | can create a site shell script called `config.site` that gives default |
---|
| 246 | values for variables like `CC`, `cache_file`, and `prefix`. |
---|
| 247 | `configure` looks for `PREFIX/share/config.site` if it exists, then |
---|
| 248 | `PREFIX/etc/config.site` if it exists. Or, you can set the |
---|
| 249 | `CONFIG_SITE` environment variable to the location of the site script. |
---|
| 250 | A warning: not all `configure` scripts look for a site script. |
---|
[96] | 251 | |
---|
[340] | 252 | === Defining Variables === |
---|
[96] | 253 | |
---|
| 254 | Variables not defined in a site shell script can be set in the |
---|
[340] | 255 | environment passed to `configure`. However, some packages may run |
---|
[96] | 256 | configure again during the build, and the customized values of these |
---|
| 257 | variables may be lost. In order to avoid this problem, you should set |
---|
[340] | 258 | them in the `configure` command line, using `VAR=value`. For example: |
---|
[96] | 259 | |
---|
| 260 | ./configure CC=/usr/local2/bin/gcc |
---|
| 261 | |
---|
| 262 | will cause the specified gcc to be used as the C compiler (unless it is |
---|
| 263 | overridden in the site shell script). |
---|
| 264 | |
---|
[340] | 265 | === `configure` Invocation === |
---|
[96] | 266 | |
---|
[340] | 267 | `configure` recognizes the following options to control how it operates. |
---|
[96] | 268 | |
---|
[340] | 269 | `--help` |
---|
| 270 | `-h` |
---|
| 271 | Print a summary of the options to `configure`, and exit. |
---|
[96] | 272 | |
---|
[340] | 273 | `--version` |
---|
| 274 | `-V` |
---|
| 275 | Print the version of Autoconf used to generate the `configure` |
---|
[96] | 276 | script, and exit. |
---|
| 277 | |
---|
[340] | 278 | `--cache-file=FILE` |
---|
[96] | 279 | Enable the cache: use and save the results of the tests in FILE, |
---|
[340] | 280 | traditionally `config.cache`. FILE defaults to `/dev/null` to |
---|
[96] | 281 | disable caching. |
---|
| 282 | |
---|
[340] | 283 | `--config-cache` |
---|
| 284 | `-C` |
---|
| 285 | Alias for `--cache-file=config.cache`. |
---|
[96] | 286 | |
---|
[340] | 287 | `--quiet` |
---|
| 288 | `--silent` |
---|
| 289 | `-q` |
---|
[96] | 290 | Do not print messages saying which checks are being made. To |
---|
[340] | 291 | suppress all normal output, redirect it to `/dev/null` (any error |
---|
[96] | 292 | messages will still be shown). |
---|
| 293 | |
---|
[340] | 294 | `--srcdir=DIR` |
---|
[96] | 295 | Look for the package's source code in directory DIR. Usually |
---|
[340] | 296 | `configure` can determine that directory automatically. |
---|
[96] | 297 | |
---|
[340] | 298 | `configure` also accepts some other, not widely useful, options. Run |
---|
| 299 | `configure --help` for more details. |
---|