pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Cédric Villemain <cedric@2ndquadrant.com>
To: Andrew Dunstan <andrew@dunslane.net>
Cc: pgsql-hackers@postgresql.org, Craig Ringer <craig@2ndquadrant.com>
Subject: Re: Bugfix and new feature for PGXS
Date: Tue, 25 Jun 2013 17:29:42 +0200
Message-ID: <201306251729.47025.cedric@2ndquadrant.com> (raw)
In-Reply-To: <51C9B4DB.8000007@dunslane.net>
References: <201306181552.36673.cedric@2ndquadrant.com>
	<201306250124.54610.cedric@2ndquadrant.com>
	<51C9B4DB.8000007@dunslane.net>
List-Unsubscribe: <mailto:majordomo@postgresql.org?body=unsub%20pgsql-hackers>

Le mardi 25 juin 2013 17:18:51, Andrew Dunstan a écrit :
> On 06/24/2013 07:24 PM, Cédric Villemain wrote:
> > Le mardi 25 juin 2013 00:18:26, Andrew Dunstan a écrit :
> >> On 06/24/2013 04:02 PM, Cédric Villemain wrote:
> >>> WIth extension, we do have to set VPATH explicitely if we want to use
> >>> VPATH (note that contribs/extensions must not care that postgresql has
> >>> been built with or without VPATH set). My patches try to fix that.
> >> 
> >> No, this is exactly what I'm objecting to. I want to be able to do:
> >>      invoke_vpath_magic
> >>      standard_make_commands_as_for_non_vpath
> >> 
> >> Your patches have been designed to overcome your particular issues, but
> >> they don't meet the general case, IMNSHO. This is why I want to have
> >> more discussion about how vpath builds could work for PGXS modules.
> > 
> > The patch does not restrict anything, it is not supposed to lead to
> > regression.
> > The assignment of VPATH and srcdir are wrong in the PGXS case, the patch
> > correct them. You're still free to do "make VPATH=/mypath ..." the VPATH
> > provided won't be erased by the pgxs.mk logic.
> 
> I still think this is premature.  I have spent some more time trying to
> make it work the way I think it should, so far without success. I think
> we need more discussion about how we'd like VPATH to work for PGXS
> would. There's no urgency about this - we've lived with the current
> situation for quite a while.

Sure...
I did a quick and dirty patch (I just validate without lot of testing), 
attached to this email to fix json_build (at least for make, make install)
As you're constructing targets based on commands to execute in the srcdir 
directory, and because srcdir is only set in pgxs.mk, it is possible to define 
srcdir early in the json_build/Makefile and use it.

> When I have more time I will work on it some more.

Thank you

-- 
Cédric Villemain +33 (0)6 20 30 22 52
http://2ndQuadrant.fr/
PostgreSQL: Support 24x7 - Développement, Expertise et Formation

Attachments:

makefile.patch (text/x-patch, 1.7K) download diff --git a/Makefile b/Makefile index ce10008..87582d1 100644 --- a/Makefile +++ b/Makefile @@ -1,24 +1,28 @@ EXTENSION = json_build -EXTVERSION = $(shell grep default_version $(EXTENSION).control | sed -e "s/default_version[[:space:]]*=[[:space:]]*'\([^']*\)'/\1/") -DATA = $(filter-out $(wildcard sql/*--*.sql),$(wildcard sql/*.sql)) -DOCS = $(wildcard doc/*.md) +srcdir = $(dir $(firstword $(MAKEFILE_LIST))) +EXTVERSION = $(shell grep default_version $(srcdir)/$(EXTENSION).control | sed -e "s/default_version[[:space:]]*=[[:space:]]*'\([^']*\)'/\1/") + +DATA = $(filter-out $(wildcard $(srcdir)/sql/*--*.sql),$(wildcard $(srcdir)/sql/*.sql)) +DOCS = $(wildcard $(srcdir)/doc/*.md) USE_MODULE_DB = 1 -TESTS = $(wildcard test/sql/*.sql) +TESTS = $(wildcard $(srcdir)/test/sql/*.sql) REGRESS_OPTS = --inputdir=test --outputdir=test \ --load-extension=$(EXTENSION) -REGRESS = $(patsubst test/sql/%.sql,%,$(TESTS)) +REGRESS = $(patsubst $(srcdir)/test/sql/%.sql,%,$(TESTS)) MODULE_big = $(EXTENSION) -OBJS = $(patsubst src/%.c,src/%.o,$(wildcard src/*.c)) +OBJS = $(patsubst $(srcdir)/src/%.c,$(srcdir)/src/%.o,$(wildcard $(srcdir)/src/*.c)) PG_CONFIG = pg_config all: sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--$(EXTVERSION).sql: sql/$(EXTENSION).sql + $(MKDIR_P) sql cp $< $@ + DATA_built = sql/$(EXTENSION)--$(EXTVERSION).sql -DATA = $(filter-out sql/$(EXTENSION)--$(EXTVERSION).sql, $(wildcard sql/*--*.sql)) +DATA = $(filter-out $(srcdir)/sql/$(EXTENSION)--$(EXTVERSION).sql, $(wildcard $(srcdir)/sql/*--*.sql)) EXTRA_CLEAN = sql/$(EXTENSION)--$(EXTVERSION).sql PGXS := $(shell $(PG_CONFIG) --pgxs)
signature.asc (application/pgp-signature, 489B) download

view thread (68+ messages)  latest in thread

Message-ID: <201306251729.47025.cedric@2ndquadrant.com>
Permalink:  ../201306251729.47025.cedric@2ndquadrant.com/
Also on:    postgresql.org/message-id/201306251729.47025.cedric@2ndquadrant.com

 ·  · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: cedric@2ndquadrant.com, andrew@dunslane.net, craig@2ndquadrant.com
  Subject: Re: Bugfix and new feature for PGXS
  In-Reply-To: <201306251729.47025.cedric@2ndquadrant.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox