[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

building against subversion using autoconf

From: Jack Bates <ms419_at_freezone.co.uk>
Date: Sat, 08 Mar 2008 11:42:54 -0800

I'm working on an Apache module, like mod_dav_svn, but using mod_atom to
support Subversion repository access with the Atom Publishing Protocol,
RFC 5023: http://code.google.com/p/mod-atom-svn/

I was inspired by the last paragraph of the Repository Access Layer
section of the Subversion book:

I'm following mod_dav_svn's example, but confess I'm stuck linking with
Subversion's shared libraries. In general, is there a resource anywhere
suggesting how projects can use autoconf to build against Subversion?

To build against Apache, I stole the autoconf / automake setup from
mod-skeleton: http://code.google.com/p/modskeleton/

First, on Debian Subversion's headers are installed
in /usr/include/subversion-1. Not sure if this is typical? Is it
preferable to use #include <subversion-1/svn_fs.h> or use #include
<svn_fs.h> and -I/usr/include/subversion-1? After reading the autoconf
manual, I wonder if we should use AC_CHECK_HEADER(svn_fs.h)? I guess the
former has consequences if one wants to build against a Subversion build
directory, instead of where Subversion is installed on the system?

Second, on Debian Subversion's shared libraries are split into
libsvn_fs-1.so, libsvn_ra-1.so, etc. Again, not sure if this is typical
or if our autoconf setup should anticipate building against an
amalgamated libsvn-1.so on some systems? And again, I guess we should
use AC_CHECK_LIB(libsvn_fs-1)?

I'll continue studying my autoconf references, but if anyone with more
experience can point out the "right" way to build against Subversion,
it'd be much appreciated! A resource suggesting how projects can use
autoconf to build against Subversion would be ideal...

Incidentally, I'm not using mod_dav, but I am trying to follow
mod_dav_svn's example, and struggling to understand the mod_dav
repository interface. The best documentation I found is mod_dav.h, but
I'm still struggling for a high level picture of how mod_dav's interface
works. For instance, how is the root_dir which is passed to get_resource
of dav_hooks_repository calculated? How are get_resource and deliver
related? Where in mod_dav_svn is dav_resource_private defined?

Nick Kew's Apache Modules Book has been a great reference, but
unfortunately it doesn't touch on mod_dav. I'll continue reading the
source, but if anyone can suggest a faster way of getting up to speed on
mod_dav_svn, it'd also be much appreciated!

Thanks and best wishes, Jack

Received on 2008-03-08 20:43:18 CET

This is an archived mail posted to the Subversion Dev mailing list.