You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Ben Collins-Sussman <su...@collab.net> on 2001/06/04 19:36:22 UTC

build rules

Question for gstein.

In the old days, if I changed a single C file and ran 'make' in a
subdir, it would recompile the one file and then relink the particular
libsvn_ library I was working in.  I would then deliberately go into
client/ and run 'make clean && make', because I wanted a fresh
timestamp on the svn binary.

To be clear:  the issue here is that I (and others) have become very
dependent on running 'svn -v' and seeing *exactly* when the binary was
built.  That timestamp is hardcoded into help-cmd.c, I believe... so
the only way to get a "fresh" binary was to 'make clean'.

In the new build system, if I change one C file and run 'make' from
the top level, then

  * the C file is recompiled
  * the library is re-linked
  * 'svn' is relinked.

Which is perfectly correct.  But the problem is that I need a rule to
'make clean' *only* in the client/ directory.  I've lately just been
going into client and doing an 'rm -rf *.o'.  Kinda silly?

So what's the solution?  Can we have a rule which forcibly rebuilds
the entire command-client client?


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: build rules

Posted by Greg Stein <gs...@lyra.org>.
Per our phone conversation and David Ascher's comments, let's defer "fixing"
this until we figure out the desired requirements. Once we have that, then
we can fix things.

I have thought about targeted clean rules, but it gets hard to name them
properly (since it pretty much has to be by-directory). So... no go for now.

Cheers,
-g

On Mon, Jun 04, 2001 at 02:36:22PM -0500, Ben Collins-Sussman wrote:
> 
> Question for gstein.
> 
> In the old days, if I changed a single C file and ran 'make' in a
> subdir, it would recompile the one file and then relink the particular
> libsvn_ library I was working in.  I would then deliberately go into
> client/ and run 'make clean && make', because I wanted a fresh
> timestamp on the svn binary.
> 
> To be clear:  the issue here is that I (and others) have become very
> dependent on running 'svn -v' and seeing *exactly* when the binary was
> built.  That timestamp is hardcoded into help-cmd.c, I believe... so
> the only way to get a "fresh" binary was to 'make clean'.
> 
> In the new build system, if I change one C file and run 'make' from
> the top level, then
> 
>   * the C file is recompiled
>   * the library is re-linked
>   * 'svn' is relinked.
> 
> Which is perfectly correct.  But the problem is that I need a rule to
> 'make clean' *only* in the client/ directory.  I've lately just been
> going into client and doing an 'rm -rf *.o'.  Kinda silly?
> 
> So what's the solution?  Can we have a rule which forcibly rebuilds
> the entire command-client client?
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: dev-help@subversion.tigris.org

-- 
Greg Stein, http://www.lyra.org/

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: build rules

Posted by David Ascher <Da...@ActiveState.com>.
Ben Collins-Sussman wrote:
> 
> Question for gstein.
> 
> In the old days, if I changed a single C file and ran 'make' in a
> subdir, it would recompile the one file and then relink the particular
> libsvn_ library I was working in.  I would then deliberately go into
> client/ and run 'make clean && make', because I wanted a fresh
> timestamp on the svn binary.
> 
> To be clear:  the issue here is that I (and others) have become very
> dependent on running 'svn -v' and seeing *exactly* when the binary was
> built.  

A side question from an observer - why do you need to know that
timestamp?  Can't you just do 'ls -l' to find the date of the latest
relink?  There's a user requirement here that I don't understand, and I
just hate those =).

-- David Ascher
   ActiveState

   New! ASPN - ActiveState Programmer Network
   Essential programming tools and information
   http://www.ActiveState.com/ASPN

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org