Index: Makefile.in =================================================================== --- Makefile.in (revision 12021) +++ Makefile.in (working copy) @@ -326,8 +326,9 @@ # JavaHL target aliases javahl: javahl-java javahl-javah javahl-lib @JAVAHL_TESTS_TARGET@ install-javahl: install-javahl-java install-javahl-javah install-javahl-lib -check-javahl: - $(JAVA) -Djava.library.path=$(libdir) -classpath subversion/bindings/java/javahl/classes:$(javahl_tests_CLASSPATH) org.tigris.subversion.javahl.tests.BasicTests +check-javahl: javahl + @FIX_JAVAHL_LIB@ + $(JAVA) -Djava.library.path=@JAVAHL_OBJDIR@:$(libdir) -classpath $(javahl_tests_PATH):$(javahl_tests_CLASSPATH) org.tigris.subversion.javahl.tests.BasicTests # Different versions of SWIG generate the Java source files in # different directories. Index: configure.in =================================================================== --- configure.in (revision 12021) +++ configure.in (working copy) @@ -648,15 +648,24 @@ fi ]) +JAVAHL_OBJDIR="" INSTALL_EXTRA_JAVAHL_LIB="" +FIX_JAVAHL_LIB="" JAVAHL_TESTS_TARGET="" LT_CXX_LIBADD="" if test "$do_javahl_build" = "yes"; then AC_PROG_CXX + + dnl The temporary directory where libtool compiles libsvnjavahl. + dnl N.B. objdir is "the name of the directory that contains temporary + dnl libtool files" and it is set by libtool.m4 + JAVAHL_OBJDIR='$(libsvnjavahl_PATH)'/$objdir + os_arch=`uname` if test "$os_arch" = "Darwin"; then dnl On Darwin, JNI libs must be installed as .jnilib INSTALL_EXTRA_JAVAHL_LIB='ln -sf $(libdir)/libsvnjavahl-1.dylib $(libdir)/libsvnjavahl-1.jnilib' + FIX_JAVAHL_LIB="ln -sf libsvnjavahl-1.dylib $JAVAHL_OBJDIR/libsvnjavahl-1.jnilib" fi # This segment (and the rest of r10800) is very likely unnecessary # with libtool 1.5, which automatically adds libstdc++ as a @@ -672,6 +681,8 @@ fi fi AC_SUBST(INSTALL_EXTRA_JAVAHL_LIB) +AC_SUBST(JAVAHL_OBJDIR) +AC_SUBST(FIX_JAVAHL_LIB) AC_SUBST(LT_CXX_LIBADD) AC_ARG_WITH(junit, Index: build/generator/gen_make.py =================================================================== --- build/generator/gen_make.py (revision 12021) +++ build/generator/gen_make.py (working copy) @@ -52,7 +52,7 @@ target = target_ob.name if isinstance(target_ob, gen_base.TargetJava): - path = target_ob.classes + path = target_ob.output_dir else: path = target_ob.path @@ -99,6 +99,9 @@ targ_varname = string.replace(target, '-', '_') objnames = string.join(build_path_strip(path, objects)) + # Output value of path variable + self.ofile.write('%s_PATH = %s\n' % (targ_varname, path)) + # Add additional install dependencies if necessary if target_ob.add_install_deps: self.ofile.write('install-%s: %s\n'