Full story below, but in short:

I see that there is a config/missing script in source, and that Makefile.global.in references it:

> src/Makefile.global.in:missing = $(SHELL) $(top_srcdir)/config/missing

AFAICT the problem is that missing wasn't included in install or uninstall in config/Makefile. Attached patch fixes that, and results in missing being properly installed in lib/pgxs/config.


-------- Forwarded Message --------
Subject: [GENERAL] pgxs/config/missing is... missing
Date: Wed, 28 Oct 2015 12:54:54 -0500
From: Jim Nasby <jim.na...@bluetreble.com>
To: pgsql-general <pgsql-gene...@postgresql.org>
CC: David E. Wheeler <da...@justatheory.com>

I'm trying to install pgTAP on a FreeBSD machine and running into an odd
problem:

sed -e 's,MODULE_PATHNAME,$libdir/pgtap,g' -e 's,__OS__,freebsd,g' -e 
's,__VERSION__,0.95,g' sql/pgtap-core.sql > sql/pgtap-core.tmp
/bin/sh /usr/local/lib/postgresql/pgxs/src/makefiles/../../config/missing perl 
compat/gencore 0 sql/pgtap-core.tmp > sql/pgtap-core.sql
cannot open /usr/local/lib/postgresql/pgxs/src/makefiles/../../config/missing: 
No such file or directory
Makefile:124: recipe for target 'sql/pgtap-core.sql' failed

That particular recipe is

sql/pgtap-core.sql: sql/pgtap.sql.in
        cp $< $@
        sed -e 's,sql/pgtap,sql/pgtap-core,g' compat/install-8.4.patch | patch 
-p0
        sed -e 's,sql/pgtap,sql/pgtap-core,g' compat/install-8.3.patch | patch 
-p0
        sed -e 's,MODULE_PATHNAME,$$libdir/pgtap,g' -e 's,__OS__,$(OSNAME),g' -e 
's,__VERSION__,$(NUMVERSION),g' sql/pgtap-core.sql > sql/pgtap-core.tmp
        $(PERL) compat/gencore 0 sql/pgtap-core.tmp > sql/pgtap-core.sql
        rm sql/pgtap-core.tmp

and it's the $(PERL) that's failing. If I add this recipe

print-%  : ; @echo $* = $($*)

and do

gmake print-PERL

I indeed get

PERL = /bin/sh
/usr/local/lib/postgresql/pgxs/src/makefiles/../../config/missing perl

even after explicitly exporting PERL=/usr/local/bin/perl

I see that there is a config/missing script in source, and that
Makefile.global.in references it:

src/Makefile.global.in:missing            = $(SHELL) 
$(top_srcdir)/config/missing

Any ideas why it's not being installed, or why the PGXS Makefile is
ignoring/over-riding $PERL?
--
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Experts in Analytics, Data Architecture and PostgreSQL
Data in Trouble? Get it in Treble! http://BlueTreble.com


--
Sent via pgsql-general mailing list (pgsql-gene...@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


diff --git a/config/Makefile b/config/Makefile
index da12838..67e7998 100644
--- a/config/Makefile
+++ b/config/Makefile
@@ -7,9 +7,11 @@ include $(top_builddir)/src/Makefile.global
 
 install: all installdirs
        $(INSTALL_SCRIPT) $(srcdir)/install-sh 
'$(DESTDIR)$(pgxsdir)/config/install-sh'
+       $(INSTALL_SCRIPT) $(srcdir)/missing 
'$(DESTDIR)$(pgxsdir)/config/missing'
 
 installdirs:
        $(MKDIR_P) '$(DESTDIR)$(pgxsdir)/config'
 
 uninstall:
        rm -f '$(DESTDIR)$(pgxsdir)/config/install-sh'
+       rm -f '$(DESTDIR)$(pgxsdir)/config/missing'
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to