On Tue, 29 Jan 2002 18:54:12 -0800
Colin Putney <cputney@whistler.net> wrote:
> Another, similar, annoyance that I've found is that the command line
> client doesn't depend on libapr (not sure if this is the case with
> libneon). If I make a change in apr, the library gets rebuilt because
> the top level Makefile descends into the apr tree automatically, but the
> svn binary doesn't get rebuilt as a result.
I took a quick look at this problem, but the right solution was not immediately
clear.
>From build-outputs.mk:
svn_DEPS = ...
subversion/clients/cmdline/svn: $(svn_DEPS)
$(LINK) -o svn ... $(SVN_APR_LIBS)
>From Makefile:
SVN_APR_LIBS = $(abs_builddir)/apr/libapr.la
So if we added $(SVN_APR_LIBS) to the svn_DEPS variable
it should work as expected.
I then took a shot a changing the Makefile generation
script so that unknown kinds of lib names are included
in the deps for a target.
% svn diff gen-make.py
Index: ./gen-make.py
===================================================================
--- ./gen-make.py
+++ ./gen-make.py Thu Jan 31 17:42:18 2002
@@ -112,6 +112,7 @@
libs.append(retreat + os.path.join(tlib.path, lib + '.la'))
else:
# something we don't know, so just include it directly
+ deps.append(lib)
libs.append(lib)
for man in string.split(parser.get(target, 'manpages')):
Unfortunately, this did not work because NEON_LIBS seems to include
a -L argument in addition to the .la file.
NEON_LIBS = $(abs_builddir)/neon/src/libneon.la -L/usr/local/project/install/subversion/lib -lz
This will generate the following error when make is run:
make: *** No rule to make target `-L/usr/local/project/install/subversion/lib', needed by `subversion/libsvn_ra/libsvn_ra.la'. Stop.
At that point, I just tried to add the dep to the one target without
changing the parsing code. The following seemed to fix the problem.
% svn diff build.conf
Index: ./build.conf
===================================================================
--- ./build.conf
+++ ./build.conf Thu Jan 31 17:57:45 2002
@@ -64,6 +64,7 @@
path = subversion/clients/cmdline
libs = libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_subr
$(SVN_APR_LIBS) libexpat
+add-deps = $(SVN_APR_LIBS)
manpages = subversion/clients/cmdline/man/svn.1
infopages = doc/user/manual/svn-manual.info
doc/user/svn_for_cvs_users/svn_for_cvs_users.info
I am not sure if this is correct since it could break in the same
way if a -L flag were added to SVN_APR_LIBS. This same change
would also need to be added to the other executable targets.
Is this a "better" fix than changing the Makefile generation
code or is the right solution to add a new variable that
would be like SVN_RA_LIB_DEPS (with no -L flags in it)?
cheers
Mo DeJong
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:37:03 2006