summaryrefslogtreecommitdiff
path: root/tools/dev/unix-build/README
blob: 6110d8ef4ca4ba0e52902efcecb04e7ba89c7556 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Introduction
============
Makefile.svn aids Subversion developers on unix-like systems set up an
SVN development environment without requiring root priviliges. It does
this by fetching Subversion along with many of its dependencies from
the internet and building them using sane defaults suitable for
development (for example, it invokes --enable-maintainer-mode while
compiling Subversion itself). However, indirect dependencies are not
covered; you need OpenSSL installed to get SSL support in neon and
serf for example. Also, it doesn't build all the bindings by default
(javahl for example).

This README only covers basic usage. Please read Makefile.svn for more
details.

Requirements
============
In addition to the usual GNU buildtools including a sane compiler and
GNU autotools, some version of Subversion is required to be in
$PATH. It is used to fetch the desired version of Subversion from the
repository.

Usage
=====
First, choose a directory $(SVN_DEV) to set up the environment. Note
that this directory cannot be changed later because the script
hardcodes build and link paths relative to the current working
directory.

To fetch and build trunk, simply don't pass anything.
Pass the branch you want to build in BRANCH, e.g.
	$ make BRANCH="1.5.x"
You can also pass a tag to build: 
	$ make TAG="1.6.6"
And you can specify a working copy to use, in case you need more
than one working copy of the same branch:
	$ make BRANCH="1.6.x" WC="1.6.x-test2"

When the script has finished fetching and building, it uses
$(SVN_DEV)/prefix to install Subversion libraries and
binaries. $(SVN_DEV)/prefix/svn-trunk (or whatever you choose to
build) will contain the latest Subversion binaries: you should add
$(SVN_DEV)/prefix/svn-trunk/bin to your $PATH to use them. The
Makefile in $(SVN_DEV)/svn-trunk is configured to build with sane
options: while developing Subversion, simply `svn up` to pull the
latest changes, `make` and `make install` to install the binaries in
$(SVN_DEV)/prefix/svn-trunk.

If at any point, you want to re-configure any of the packages to the
default configuration in Makefile.svn, just run the "<PACKAGE>-reset"
target in Makefile.svn before trying to rebuild again. If, in the
extreme case, you want to remove everything including the installed
binaries effectively returning to the starting point, use the "nuke"
target.

Extended usage
==============
The script can also run Subversion's regression test suite via all
repository backends and RA methods. It generates the necessary
configuration files and starts svnserve and httpd daemons
automatically on non-privileged ports. The default test target to test
everything is "svn-check".

Notes
=====
The script currently doesn't build Ctypes Python bindings.