On Tue, May  5, 2015 at 03:02:50PM -0300, Alvaro Herrera wrote:
> Peter Eisentraut wrote:
> > Improve speed of make check-world
> > 
> > Before, make check-world would create a new temporary installation for
> > each test suite, which is slow and wasteful.  Instead, we now create one
> > test installation that is used by all test suites that are part of a
> > make run.
> 
> Maybe I'm confused, but now "make -C doc/src/sgml check" seems to build
> the whole backend; it didn't do so before, and I think that's quite
> pointless.  I take it that's unintended?  Can we get the old behavior
> back?

Yes, I found this odd too.  It is caused by this commit:

        commit dcae5faccab64776376d354decda0017c648bb53
        Author: Peter Eisentraut <[email protected]>
        Date:   Thu Apr 23 08:59:52 2015 -0400
        
            Improve speed of make check-world

It basically added a'check' target dependency of 'temp-install' to
Makefile.global.in, which added it to every Makefile containing a
'check' target.

While you can't easily add rule action to an existing target, you can
easily add dependencies by just mentioning the target multiple times,
e.g.

        check: dep1
        
        check: dep2
        
        dep1:
                echo 1
        
        dep2:
                echo 2


Running 'make check' will output '1 2'.

Now, of course many check's need temp-install, but the SGML build does
not.  The attached diff uses a symbol defined in doc/src/sgml/Makefile
(GENERATED_SGML) to supress the temp-install target rule action.

-- 
  Bruce Momjian  <[email protected]>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + Everyone has their own god. +
diff --git a/src/Makefile.global.in b/src/Makefile.global.in
new file mode 100644
index f8b7b35..3ec1fa3
*** a/src/Makefile.global.in
--- b/src/Makefile.global.in
*************** check: temp-install
*** 303,313 ****
--- 303,315 ----
  
  .PHONY: temp-install
  temp-install:
+ ifdef GENERATED_SGML
  ifeq ($(MAKELEVEL),0)
  	rm -rf '$(abs_top_builddir)'/tmp_install
  	$(MAKE) -C '$(top_builddir)' DESTDIR='$(abs_top_builddir)'/tmp_install install
  endif
  	$(if $(EXTRA_INSTALL),for extra in $(EXTRA_INSTALL); do $(MAKE) -C '$(top_builddir)'/$$extra DESTDIR='$(abs_top_builddir)'/tmp_install install || exit; done)
+ endif
  
  PROVE = @PROVE@
  PG_PROVE_FLAGS = -I $(top_srcdir)/src/test/perl/
-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

Reply via email to