| 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. |
| For example, $(SVN_DEV) could be the directory "~/svn". |
| Note that this directory cannot be changed later because the script |
| hardcodes build and link paths relative to the current working directory. |
| |
| $ mkdir $(SVN_DEV) |
| |
| Now change into this directory and make the Makefile available in it: |
| |
| $ cd $(SVN_DEV) |
| $ svn checkout https://svn.apache.org/repos/asf/subversion/trunk/tools/dev/unix-build |
| $ ln -s unix-build/Makefile.svn Makefile |
| |
| To fetch and build trunk, simply don't pass anything, just run 'make': |
| |
| $ cd $(SVN_DEV) |
| $ make |
| |
| 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 can add |
| $(SVN_DEV)/prefix/svn-trunk/bin to your $PATH to use them: |
| |
| $ export PATH="$(SVN_DEV)/prefix/svn-trunk/bin:$PATH" |
| |
| 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. This usually works fine. If not, you may |
| need to use the 'svn-reset' target and recompile everything. |
| |
| If at any point, you want to recompile any of the packages with the |
| default configuration in Makefile.svn, use the *-clean and *-reset |
| target in Makefile.svn before trying to rebuild again. For example: |
| |
| $ make svn-clean |
| $ make svn-reset |
| $ make |
| |
| Or, if you want to recompile svn and all dependencies: |
| |
| $ make clean |
| $ make reset |
| $ make |
| |
| If you want to remove everything including the installed binaries effectively |
| returning to the starting point, use the "nuke" target (BE CAREFUL, this will |
| remove the 'svn' binary compiled from trunk which you might need to manage |
| existing working copies): |
| |
| $ make nuke |
| |
| 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. |