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