• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

Makefile.svnH A D12-Mar-202084.7 KiB2,3611,868

READMEH A D24-Dec-20194.1 KiB11690

README

1Introduction
2============
3Makefile.svn aids Subversion developers on unix-like systems set up an
4SVN development environment without requiring root privileges. It does
5this by fetching Subversion along with many of its dependencies from
6the internet and building them using sane defaults suitable for
7development (for example, it invokes --enable-maintainer-mode while
8compiling Subversion itself). However, indirect dependencies are not
9covered; you need OpenSSL installed to get SSL support in neon and
10serf for example. Also, it doesn't build all the bindings by default
11(javahl for example).
12
13This README only covers basic usage. Please read Makefile.svn for more
14details.
15
16Requirements
17============
18In addition to the usual GNU buildtools including a sane compiler and
19GNU autotools, some version of Subversion is required to be in
20$PATH. It is used to fetch the desired version of Subversion from the
21repository.
22
23Usage
24=====
25First, choose a directory $(SVN_DEV) to set up the environment.
26For example, $(SVN_DEV) could be the directory "~/svn".
27Note that this directory cannot be changed later because the script
28hardcodes build and link paths relative to the current working directory.
29
30  $ mkdir $(SVN_DEV)
31
32Now change into this directory and make the Makefile available in it:
33
34  $ cd $(SVN_DEV)
35  $ svn checkout https://svn.apache.org/repos/asf/subversion/trunk/tools/dev/unix-build
36  $ ln -s unix-build/Makefile.svn Makefile
37
38To fetch and build trunk, simply don't pass anything, just run 'make':
39
40  $ cd $(SVN_DEV)
41  $ make
42
43Pass the branch you want to build in BRANCH, e.g.
44	$ make BRANCH="1.5.x"
45You can also pass a tag to build:
46	$ make TAG="1.6.6"
47And you can specify a working copy to use, in case you need more
48than one working copy of the same branch:
49	$ make BRANCH="1.6.x" WC="1.6.x-test2"
50
51When the script has finished fetching and building, it uses
52$(SVN_DEV)/prefix to install Subversion libraries and
53binaries. $(SVN_DEV)/prefix/svn-trunk (or whatever you choose to
54build) will contain the latest Subversion binaries. You can add
55$(SVN_DEV)/prefix/svn-trunk/bin to your $PATH to use them:
56
57  $ export PATH="$(SVN_DEV)/prefix/svn-trunk/bin:$PATH"
58
59The Makefile in $(SVN_DEV)/svn-trunk is configured to build with sane
60options: while developing Subversion, simply `svn up` to pull the
61latest changes, `make` and `make install` to install the binaries in
62$(SVN_DEV)/prefix/svn-trunk. This usually works fine. If not, you may
63need to use the 'svn-reset' target and recompile everything.
64
65If at any point, you want to recompile any of the packages with the
66default configuration in Makefile.svn, use the *-clean and *-reset
67target in Makefile.svn before trying to rebuild again. For example:
68
69  $ make svn-clean
70  $ make svn-reset
71  $ make
72
73Or, if you want to recompile svn and all dependencies:
74
75  $ make clean
76  $ make reset
77  $ make
78
79If you want to remove everything including the installed binaries effectively
80returning to the starting point, use the "nuke" target (BE CAREFUL, this will
81remove the 'svn' binary compiled from trunk which you might need to manage
82existing working copies):
83
84  $ make nuke
85
86Extended usage
87==============
88The script can also run Subversion's regression test suite via all
89repository backends and RA methods. It generates the necessary
90configuration files and starts svnserve and httpd daemons
91automatically on non-privileged ports. The default test target to test
92everything is "svn-check".
93
94Notes
95=====
96The script currently doesn't build Ctypes Python bindings.
97
98OpenBSD-specific notes
99======================
100On OpenBSD install the following packages to get dependencies and
101tools not covered by this Makefile:
102
103pkg_add autoconf automake bison coreutils gmake gperf groff libtool \
104	python ruby scons subversion swig wget
105
106Some of these packages are available in several versions. Tested at time
107of writing were: autoconf-2.68 automake-1.19 python-2.7.14 ruby-2.4.2
108
109OpenBSD's autoconf and automake wrappers require desired versions in
110environment variables and will raise errors if these aren't set:
111export AUTOCONF_VERSION=2.68
112export AUTOMAKE_VERSION=1.19
113
114A 'python' symlink is required; follow instructions printed by pkg_add
115when the python package is installed.
116