This patch solves issue #2040 by fixing JavaHL so that it can be
tested before it is installed. I've revised this patch in response to
feedback from Justin Erenkrantz and I hope that this version is much
improved.
* Makefile.in
(check-javahl): Instead of using the installed version of JavaHL, use
the version compiled by libtool in the @JAVAHL_OBJDIR@ directory.
We use FIX_JAVAHL_LIB to link libsvnjavahl-1.jnilib to
libsvnjavahl-1.dylib on Mac OS X. We also replace the hardcoded
path to the javahl classes directory with $(javahl_tests_PATH).
* configure.in
(JAVAHL_OBJDIR): Get the directory where the compiled version of the
JavaHL library is stored and save it as @JAVAHL_OBJDIR@
(FIX_JAVAHL_LIB): On Mac OS X, substitute @FIX_JAVAHL_LIB@ for code
to link libsvnjavahl-1.jnilib to libsvnjavahl-1.dylib
* build/generator/gen_make.py
(Generator.write): Output the name of the directory where each target
generates its files as %s_PATH. E.g., for the libsvnjavahl target,
we create a variable called libsvnjavahl_PATH. Also, by setting
path = target_ob.output_dir for TargetJava objects, we ensure that
targets of type TargetJavaHeaders output the correct output
directory into the %s_PATH variable.
Discussion:
- For why we need to link libsvnjavahl-1.jnilib to libsvnjavahl-1.dylib
on Mac OS X, see Issue 1632:
<http://subversion.tigris.org/issues/show_bug.cgi?id=1632>
- We assume that libtool stores its libraries in
'$(libsvnjavahl_PATH)'/$objdir
According to the libtool documentation, the $objdir variable
specifies the name of the directory where the compiled versions
of the library are stored. I also checked the libtool source code and
found that regardless of your platform, when you try to run an
uninstalled program using libtool, it simply adds the location of the
$objdir directory to the variable specified by $shlibpath_var.
Therefore there is no need for complex code to extract this directory
by running libtool and checking $shlibpath_var; all we need to do is
look in $objdir. So that's what we do.
- For discussion regarding the best method for retrieving the $objdir
variable from libtool, see
<http://svn.haxx.se/dev/archive-2004-11/1074.shtml>
- If my change "path = target_ob.output_dir" is controversial, feel
free to omit it. It is only a cosmetic fix to the output of %s_PATH.
- This patch has been substantially improved from previous versions
thanks to feedback from Justin Erenkrantz, Ben Reser, and Greg
Hudson. For full history of the development of this patch see issue
#2040: <http://subversion.tigris.org/issues/show_bug.cgi?id=2040>
- Let me know if you have any feedback. I am always happy to revise my
patches to meet your needs.
Cheers,
David
--
http://www.cs.toronto.edu/~james
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Nov 25 09:38:53 2004