On 03/08/2012 04:33 PM, David E. Wheeler wrote:
> On Mar 8, 2012, at 12:59 PM, Tom Lane wrote:
>
>> Huh? MODULE_PATHNAME is not substituted by pg_regress at all (anymore
>> anyway).
> Yeah, sorry, I meant `make`.
>
>> There's still some vestigial support for it in pgxs.mk, but
>> the future of that code is to vanish, not get improved. You should
>> not be needing it to get substituted at build time either.
> I still see this pattern a *lot*; I removed it from PL/Proxy last week. The attached tarball demonstrates it:
>
> > make
> sed 's,MODULE_PATHNAME,$libdir/sql/exttest,g' sql/exttest.sql.in>sql/exttest.sql
> make: *** No rule to make target `exttest.so', needed by `all'. Stop.
>
> So MODULE_PATHNAME is replaced with $libdir/sql/exttest rather than $libdir/exttest. Maybe that should not be fixed,
butthere are a *lot* of extensions out there using this approach (copied from contrib, which used it for years, albeit
withoutthe .sql.in files in a subdirectory).
>
> So perhaps DATA_built is to be removed from pgxs.mk? And if so, is the idea then that one should just put the module
namein the .sql file, rather than MODULE_PATHNAME in a .sql.in file?
>
Extensions (unlike non-extension modules) should not monkey with
MODULE_PATHNAME at all.
Change the Makefile def from DATA_built to DATA and rename the file to
exttest.sql
cheers
andrew