source: trunk/INSTALL @ 540

Last change on this file since 540 was 519, checked in by Jari Häkkinen, 15 years ago

trac moved to new location.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-trac-wiki
File size: 11.9 KB
RevLine 
[96]1$Id: INSTALL 519 2007-12-23 20:14:50Z jari $
[340]2{{{
[96]3Copyright (C) 2006 Jari Häkkinen
[408]4Copyright (C) 2007 Jari Häkkinen, Peter Johansson
[96]5
[519]6This file is part of svndigest, http://trac.thep.lu.se/svndigest
[96]7
[149]8svndigest is free software; you can redistribute it and/or modify it
[96]9under the terms of the GNU General Public License as published by the
10Free Software Foundation; either version 2 of the License, or (at your
11option) any later version.
12
[149]13svndigest is distributed in the hope that it will be useful, but
14WITHOUT ANY WARRANTY; without even the implied warranty of
[160]15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
[149]16General Public License for more details.
[96]17
18You should have received a copy of the GNU General Public License
19along with this program; if not, write to the Free Software
20Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
21USA.
[340]22}}}
23----------------------------------------------------------------------
[96]24
[340]25= Svndigest Installation Guide =
[96]26
[385]27Svndigest is a tool to extract development information and statistics
[340]28from a subversion repository. Svndigest is written in C++ and extracts
29repository history using the subversion API. The resulting report is
30written 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]55Below you'll find the generic FSF install instructions. To compile
[149]56and 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]68The `./configure` script accepts a few options of interest for
69svndigest. You can provide `./configure` with APR and subversion API
70location information with `--with-apr=DIR` and `--with-svn=DIR`,
71respectively. `--enable-staticbin` will create a static
[171]72svndigest binary. (Actually as static as the underlying program
[219]73libraries allows it to be, i.e., some external libraries might not
[281]74have been created/installed in static versions.)
[96]75
[137]76If you grabbed the source from the subversion repository you need to
[386]77run `./bootstrap` to setup autoconf files (see README.developer).
[96]78
79
[340]80== FSF generic install documentation ==
[96]81
82Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004 Free
83Software Foundation, Inc.
84
85This file is free documentation; the Free Software Foundation gives
86unlimited permission to copy, distribute and modify it.
87
[340]88=== Basic Installation ===
[96]89
90These are generic installation instructions.
91
[340]92The `configure` shell script attempts to guess correct values for
[96]93various system-dependent variables used during compilation.  It uses
[340]94those values to create a `Makefile` in each directory of the package.
95It may also create one or more `.h` files containing system-dependent
96definitions.  Finally, it creates a shell script `config.status` that
[96]97you can run in the future to recreate the current configuration, and a
[340]98file `config.log` containing compiler output (useful mainly for
99debugging `configure`).
[96]100
[340]101It can also use an optional file (typically called `config.cache`
102and enabled with `--cache-file=config.cache` or simply `-C`) that saves
[96]103the results of its tests to speed up reconfiguring.  (Caching is
104disabled by default to prevent problems with accidental use of stale
105cache files.)
106
[340]107If you need to do unusual things to compile the package, please try
108to figure out how `configure` could check whether to do them, and mail
109diffs or instructions to the address given in the `README` so they can
[96]110be considered for the next release.  If you are using the cache, and at
[340]111some point `config.cache` contains results you don't want to keep, you
[96]112may remove or edit it.
113
[340]114The 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
117a newer version of `autoconf`.
[96]118
119The 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
149Some systems require unusual options for compilation or linking that the
[340]150`configure` script does not know about.  Run `./configure --help` for
[96]151details on some of the pertinent environment variables.
152
[340]153You can give `configure` initial values for configuration parameters
[96]154by setting variables in the command line or in the environment.  Here
155is 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
163You can compile the package for more than one kind of computer at the
164same time, by placing the object files for each architecture in their
[340]165own directory.  To do this, you must use a version of `make` that
166supports the `VPATH` variable, such as GNU `make`.  `cd` to the
[96]167directory where you want the object files and executables to go and run
[340]168the `configure` script.  `configure` automatically checks for the
169source code in the directory that `configure` is in and in `..`.
[96]170
[340]171If you have to use a `make` that does not support the `VPATH`
[96]172variable, you have to compile the package for one architecture at a
173time in the source code directory.  After you have installed the
[340]174package for one architecture, use `make distclean` before reconfiguring
[96]175for another architecture.
176
[340]177=== Installation Names ===
[96]178
[340]179By default, `make install` will install the package's files in
180`/usr/local/bin`, `/usr/local/man`, etc.  You can specify an
181installation prefix other than `/usr/local` by giving `configure` the
182option `--prefix=PREFIX`.
[96]183
[340]184You can specify separate installation prefixes for
[96]185architecture-specific files and architecture-independent files.  If you
[340]186give `configure` the option `--exec-prefix=PREFIX`, the package will
[96]187use PREFIX as the prefix for installing programs and libraries.
188Documentation and other data files will still use the regular prefix.
189
[340]190In addition, if you use an unusual directory layout you can give
191options like `--bindir=DIR` to specify different values for particular
192kinds of files.  Run `configure --help` for a list of the directories
[96]193you can set and what kinds of files go in them.
194
[340]195If the package supports it, you can cause programs to be installed
196with an extra prefix or suffix on their names by giving `configure` the
197option `--program-prefix=PREFIX` or `--program-suffix=SUFFIX`.
[96]198
[340]199=== Optional Features ===
[96]200
[340]201Some packages pay attention to `--enable-FEATURE` options to
202`configure`, where FEATURE indicates an optional part of the package.
203They may also pay attention to `--with-PACKAGE` options, where PACKAGE
204is something like `gnu-as` or `x` (for the X Window System).  The
205`README` should mention any `--enable-` and `--with-` options that the
[96]206package recognizes.
207
[340]208For packages that use the X Window System, `configure` can usually
[96]209find the X include and library files automatically, but if it doesn't,
[340]210you 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]215There may be some features `configure` cannot figure out automatically,
[96]216but needs to determine by the type of machine the package will run on.
217Usually, assuming the package is built to be run on the _same_
[340]218architectures, `configure` can figure that out, but if it prints a
[96]219message 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
221type, such as `sun4`, or a canonical name which has the form:
[96]222
223     CPU-COMPANY-SYSTEM
224
225where SYSTEM can have one of these forms:
226
227     OS KERNEL-OS
228
[340]229See 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]231need to know the machine type.
232
[340]233If you are _building_ compiler tools for cross-compiling, you should
234use the `--target=TYPE` option to select the type of system they will
[96]235produce code for.
236
[340]237If you want to _use_ a cross compiler, that generates code for a
[96]238platform different from the build platform, you should specify the
239"host" platform (i.e., that on which the generated programs will
[340]240eventually be run) with `--host=TYPE`.
[96]241
[340]242=== Sharing Defaults ===
[96]243
[340]244If you want to set default values for `configure` scripts to share, you
245can create a site shell script called `config.site` that gives default
246values 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.
250A warning: not all `configure` scripts look for a site script.
[96]251
[340]252=== Defining Variables ===
[96]253
254Variables not defined in a site shell script can be set in the
[340]255environment passed to `configure`.  However, some packages may run
[96]256configure again during the build, and the customized values of these
257variables may be lost.  In order to avoid this problem, you should set
[340]258them in the `configure` command line, using `VAR=value`.  For example:
[96]259
260     ./configure CC=/usr/local2/bin/gcc
261
262will cause the specified gcc to be used as the C compiler (unless it is
263overridden 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.
Note: See TracBrowser for help on using the repository browser.