Thread: pgsql: Improved parallel make support

pgsql: Improved parallel make support

From
Peter Eisentraut
Date:
Improved parallel make support

Replace for loops in makefiles with proper dependencies.  Parallel
make can now span across directories.  Also, make -k and make -q work
properly.

GNU make 3.80 or newer is now required.

Branch
------
master

Details
-------
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=19e231bbdaef792dce22100012b504e2fb72f971

Modified Files
--------------
GNUmakefile.in                                    |   56 +++++----------------
contrib/Makefile                                  |   12 +----
contrib/dblink/Makefile                           |    1 +
doc/src/sgml/installation.sgml                    |    5 +-
src/Makefile                                      |   47 +++++------------
src/Makefile.global.in                            |   47 +++++++++++++++++-
src/Makefile.shlib                                |   11 ++--
src/backend/Makefile                              |    4 +-
src/backend/common.mk                             |    6 +--
src/backend/replication/libpqwalreceiver/Makefile |    3 +-
src/backend/utils/mb/conversion_procs/Makefile    |    6 +--
src/bin/Makefile                                  |    3 +-
src/bin/initdb/Makefile                           |    4 +-
src/bin/pg_config/Makefile                        |    4 +-
src/bin/pg_controldata/Makefile                   |    4 +-
src/bin/pg_ctl/Makefile                           |    4 +-
src/bin/pg_dump/Makefile                          |    8 ++--
src/bin/pg_resetxlog/Makefile                     |    4 +-
src/bin/psql/Makefile                             |    4 +-
src/bin/scripts/Makefile                          |   20 ++++----
src/interfaces/Makefile                           |    3 +-
src/interfaces/ecpg/Makefile                      |   16 ++----
src/interfaces/ecpg/compatlib/Makefile            |    9 +++
src/interfaces/ecpg/ecpglib/Makefile              |    9 ++--
src/interfaces/ecpg/preproc/Makefile              |    7 ++-
src/pl/Makefile                                   |   10 +---
src/test/regress/GNUmakefile                      |   16 +++---
src/timezone/Makefile                             |    4 +-
src/tools/findoidjoins/Makefile                   |    4 +-
src/tools/fsync/Makefile                          |    4 +-
30 files changed, 156 insertions(+), 179 deletions(-)


Re: pgsql: Improved parallel make support

From
Andrew Dunstan
Date:

On 11/12/2010 03:16 PM, Peter Eisentraut wrote:
> Improved parallel make support
>
> Replace for loops in makefiles with proper dependencies.  Parallel
> make can now span across directories.  Also, make -k and make -q work
> properly.
>
> GNU make 3.80 or newer is now required.

Looks like this patch has pretty comprehensively broken the MSVC build
system. I'll see what I can recover from the wreckage.

cheers

andrew

Re: pgsql: Improved parallel make support

From
Tom Lane
Date:
Andrew Dunstan <andrew@dunslane.net> writes:
> On 11/12/2010 03:16 PM, Peter Eisentraut wrote:
>> Improved parallel make support

> Looks like this patch has pretty comprehensively broken the MSVC build
> system. I'll see what I can recover from the wreckage.

There are also at least three non-Windows buildfarm members failing like
so:

gmake -C src all
gmake[1]: Entering directory `/home/pgbuild/pgbuildfarm/HEAD/pgsql.6736/src'
gmake[1]: *** virtual memory exhausted.  Stop.
gmake[1]: Leaving directory `/home/pgbuild/pgbuildfarm/HEAD/pgsql.6736/src'
gmake: *** [all-src-recursive] Error 2

I think we may have pushed too far in terms of what actually works
reliably across different make versions.

            regards, tom lane