You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by John Peacock <jo...@havurah-software.org> on 2008/06/05 02:33:39 UTC

Minor nit with Makefile

I downloaded RC9, just to compile and test the bindings, and I tripped over the 
issue that I seem to always forget - this sequence of commands doesn't work:

	$ ./Configure
	$ make check

but this does

	$ ./Configure
	$ make && make check

Is there some subtle reason why 'make check' doesn't depend on the implied 'all' 
target?  Would that cause unnecessary recompilation?  Am I just being stupid??? :(

John

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

Re: Minor nit with Makefile

Posted by John Peacock <jo...@havurah-software.org>.
John Peacock wrote:
> I'll start from a clean copy and do 'make check' and then compare that 
> to another copy where I did 'make && make check' and report the 
> differences.

Attached is a directory diff of all of the files missing from 'make check' 
without an initial 'make'.  It looks to me at first glance like all of the 
targets listed in build-outputs.mk are missing when 'make check' is done by 
itself...

John

Re: Minor nit with Makefile

Posted by "C. Michael Pilato" <cm...@collab.net>.
Well, I wonder if the right (as in, "most conservative") thing to do would be:

   check: bin $(TEST_DEPS) @BDB_TEST_DEPS@

(because 'bin' is the rule that builds 'svn', 'svnadmin', 'svnlook', etc.)

?

John Peacock wrote:
> C. Michael Pilato wrote:
>> +1 to 'check' depending on 'all'.
>>
> 
> Is this all that is required?  Does that fall under the "obvious" rule?
> 
>> Index: Makefile.in
>> ===================================================================
>> --- Makefile.in (revision 31610)
>> +++ Makefile.in (working copy)
>> @@ -376,7 +376,7 @@
>>  # "make check CLEANUP=true" will clean up directories for successful 
>> tests.
>>  # "make check TESTS=subversion/tests/cmdline/basic_tests.py"
>>  #  will perform only basic tests (likewise for other tests).
>> -check: $(TEST_DEPS) @BDB_TEST_DEPS@
>> +check: $(TEST_DEPS) @BDB_TEST_DEPS@ all
>>         @if test "$(PYTHON)" != "none"; 
>> then                                 \
>>           
>> flags="--verbose";                                                 \
>>           if test "$(CLEANUP)" != ""; 
>> then                                   \
>>
> 
> John


-- 
C. Michael Pilato <cm...@collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand


Re: [PATCH] was Re: Minor nit with Makefile

Posted by "C. Michael Pilato" <cm...@collab.net>.
Committed in r31656.


John Peacock wrote:
> Sorry, I had a server outage and one of my MX's was misconfigured, so I 
> didn't see this response:
> 
>> C. Michael Pilato wrote:
>>
>> Well, I wonder if the right (as in, "most conservative") thing to do 
>> would be:
>>
>>    check: bin $(TEST_DEPS) @BDB_TEST_DEPS@
>>
>> (because 'bin' is the rule that builds 'svn', 'svnadmin', 'svnlook', 
>> etc.)
>>
>> ? 
> 
> Yeah, that seems better and it works too!
> 
> [[[
> 
> 'make check' should build all binaries if not already built
> 
> * Makefile.in
>   add 'bin' to check: target of top level Makefile
> 
> ]]]
> 
> Index: Makefile.in
> ===================================================================
> --- Makefile.in (revision 31610)
> +++ Makefile.in (working copy)
> @@ -376,7 +376,7 @@
>  # "make check CLEANUP=true" will clean up directories for successful 
> tests.
>  # "make check TESTS=subversion/tests/cmdline/basic_tests.py"
>  #  will perform only basic tests (likewise for other tests).
> -check: $(TEST_DEPS) @BDB_TEST_DEPS@
> +check: bin $(TEST_DEPS) @BDB_TEST_DEPS@
>         @if test "$(PYTHON)" != "none"; 
> then                                 \
>           
> flags="--verbose";                                                 \
>           if test "$(CLEANUP)" != ""; 
> then                                   \
> 


-- 
C. Michael Pilato <cm...@collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand


[PATCH] was Re: Minor nit with Makefile

Posted by John Peacock <jo...@havurah-software.org>.
Sorry, I had a server outage and one of my MX's was misconfigured, so I didn't 
see this response:

> C. Michael Pilato wrote:
> 
> Well, I wonder if the right (as in, "most conservative") thing to do would be:
> 
>    check: bin $(TEST_DEPS) @BDB_TEST_DEPS@
> 
> (because 'bin' is the rule that builds 'svn', 'svnadmin', 'svnlook', etc.)
> 
> ? 

Yeah, that seems better and it works too!

[[[

'make check' should build all binaries if not already built

* Makefile.in
   add 'bin' to check: target of top level Makefile

]]]

Index: Makefile.in
===================================================================
--- Makefile.in (revision 31610)
+++ Makefile.in (working copy)
@@ -376,7 +376,7 @@
  # "make check CLEANUP=true" will clean up directories for successful tests.
  # "make check TESTS=subversion/tests/cmdline/basic_tests.py"
  #  will perform only basic tests (likewise for other tests).
-check: $(TEST_DEPS) @BDB_TEST_DEPS@
+check: bin $(TEST_DEPS) @BDB_TEST_DEPS@
         @if test "$(PYTHON)" != "none"; then                                 \
           flags="--verbose";                                                 \
           if test "$(CLEANUP)" != ""; then                                   \


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

Re: Minor nit with Makefile

Posted by John Peacock <jo...@havurah-software.org>.
John Peacock wrote:
> C. Michael Pilato wrote:
>> +1 to 'check' depending on 'all'.
>>
> 
> Is this all that is required?  Does that fall under the "obvious" rule?

PING!  I'd be happy to commit the below fragment to trunk (and nominate it for 
1.5.x as obvious) if some full committer  would give me an OK.

[[[

make check should depend on 'all' target for simplicity's sake

* Makefile.in
   add 'all' to check: target of top level Makefile

]]]

Index: Makefile.in
===================================================================
--- Makefile.in (revision 31610)
+++ Makefile.in (working copy)
@@ -376,7 +376,7 @@
  # "make check CLEANUP=true" will clean up directories for successful tests.
  # "make check TESTS=subversion/tests/cmdline/basic_tests.py"
  #  will perform only basic tests (likewise for other tests).
-check: $(TEST_DEPS) @BDB_TEST_DEPS@
+check: $(TEST_DEPS) @BDB_TEST_DEPS@ all
         @if test "$(PYTHON)" != "none"; then                                 \
           flags="--verbose";                                                 \
           if test "$(CLEANUP)" != ""; then                                   \


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

Re: Minor nit with Makefile

Posted by John Peacock <jo...@havurah-software.org>.
C. Michael Pilato wrote:
> +1 to 'check' depending on 'all'.
> 

Is this all that is required?  Does that fall under the "obvious" rule?

> Index: Makefile.in
> ===================================================================
> --- Makefile.in (revision 31610)
> +++ Makefile.in (working copy)
> @@ -376,7 +376,7 @@
>  # "make check CLEANUP=true" will clean up directories for successful tests.
>  # "make check TESTS=subversion/tests/cmdline/basic_tests.py"
>  #  will perform only basic tests (likewise for other tests).
> -check: $(TEST_DEPS) @BDB_TEST_DEPS@
> +check: $(TEST_DEPS) @BDB_TEST_DEPS@ all
>         @if test "$(PYTHON)" != "none"; then                                 \
>           flags="--verbose";                                                 \
>           if test "$(CLEANUP)" != ""; then                                   \
> 

John

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

Re: Minor nit with Makefile

Posted by "C. Michael Pilato" <cm...@collab.net>.
John Peacock wrote:
> Karl Fogel wrote:
>> I'm Confused by the Capital "C" in your "Configure" Command, but leaving
>> that aside:
> 
> Sorry, misplaced shift key...
> 
>> 'make check' ought to build Subversion first if it's not already built,
>> yes.  When you say "doesn't work", what actually happens?
> 
> What happens is that some targets build but others don't.  In 
> particular, svnadmin didn't get built, so obviously all of the Python 
> tests that rely on creating a repository fail. ;-)

Yeah, the 'check' rule currently depends only on the tests we have to build. 
   That usually gets most of the libraries but not the command-line 
binaries. Unfortunately, the bulk of the test suite (the Python tests) 
requires svnadmin, svnlook, svnsync, and svn, and those -- since they aren't 
required by the C tests that we *do* build -- aren't built by the 'check' rule.

+1 to 'check' depending on 'all'.

-- 
C. Michael Pilato <cm...@collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand


Re: Minor nit with Makefile

Posted by John Peacock <jo...@havurah-software.org>.
Karl Fogel wrote:
> I'm Confused by the Capital "C" in your "Configure" Command, but leaving
> that aside:

Sorry, misplaced shift key...

> 'make check' ought to build Subversion first if it's not already built,
> yes.  When you say "doesn't work", what actually happens?

What happens is that some targets build but others don't.  In particular, 
svnadmin didn't get built, so obviously all of the Python tests that rely on 
creating a repository fail. ;-)

I'll start from a clean copy and do 'make check' and then compare that to 
another copy where I did 'make && make check' and report the differences.

John

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

Re: Minor nit with Makefile

Posted by Karl Fogel <kf...@red-bean.com>.
John Peacock <jo...@havurah-software.org> writes:
> I downloaded RC9, just to compile and test the bindings, and I tripped
> over the issue that I seem to always forget - this sequence of
> commands doesn't work:
>
> 	$ ./Configure
> 	$ make check
>
> but this does
>
> 	$ ./Configure
> 	$ make && make check
>
> Is there some subtle reason why 'make check' doesn't depend on the
> implied 'all' target?  Would that cause unnecessary recompilation?  Am
> I just being stupid??? :(

I'm Confused by the Capital "C" in your "Configure" Command, but leaving
that aside:

'make check' ought to build Subversion first if it's not already built,
yes.  When you say "doesn't work", what actually happens?

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