source: trunk/INSTALL @ 373

Last change on this file since 373 was 340, checked in by Peter Johansson, 15 years ago

moving requirements from README to INSTALL. Also made INSTALL text/x-trac-wiki and modified the text to look good in the browser. Refs #111

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