summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2007-10-16 16:00:00 +0000
committerTom Lane2007-10-16 16:00:00 +0000
commit34eda3a4be36ca729752ab2abb1e136542085564 (patch)
tree0b991622f3ef8f30051c77fce3a4a30f3dbdf6ef
parent7e7b8ed76e4fcb6b456bc42414fa0bd2f864fa57 (diff)
Teach pgxs.mk and Install.pm how to install files from a contrib module
into SHAREDIR/tsearch_data. Use this instead of ad-hoc coding in dict_xsyn/Makefile. Should fix current ContribCheck failures on MSVC.
-rw-r--r--contrib/dict_xsyn/Makefile20
-rw-r--r--src/makefiles/pgxs.mk13
-rw-r--r--src/tools/msvc/Install.pm14
3 files changed, 28 insertions, 19 deletions
diff --git a/contrib/dict_xsyn/Makefile b/contrib/dict_xsyn/Makefile
index de2f364847..a048f1551c 100644
--- a/contrib/dict_xsyn/Makefile
+++ b/contrib/dict_xsyn/Makefile
@@ -4,12 +4,10 @@ MODULE_big = dict_xsyn
OBJS = dict_xsyn.o
DATA_built = dict_xsyn.sql
DATA = uninstall_dict_xsyn.sql
+DATA_TSEARCH = xsyn_sample.rules
DOCS = README.dict_xsyn
REGRESS = dict_xsyn
-DICTDIR = tsearch_data
-DICTFILES = xsyn_sample.rules
-
ifdef USE_PGXS
PG_CONFIG = pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)
@@ -20,19 +18,3 @@ top_builddir = ../..
include $(top_builddir)/src/Makefile.global
include $(top_srcdir)/contrib/contrib-global.mk
endif
-
-install: install-data
-
-.PHONY: install-data
-install-data: $(DICTFILES)
- for i in $(DICTFILES); \
- do $(INSTALL_DATA) $(srcdir)/$$i '$(DESTDIR)$(datadir)/$(DICTDIR)/'$$i; \
- done
-
-uninstall: uninstall-data
-
-.PHONY: uninstall-data
-uninstall-data:
- for i in $(DICTFILES); \
- do rm -rf '$(DESTDIR)$(datadir)/$(DICTDIR)/'$$i ; \
- done
diff --git a/src/makefiles/pgxs.mk b/src/makefiles/pgxs.mk
index 363793138f..a4263a6b55 100644
--- a/src/makefiles/pgxs.mk
+++ b/src/makefiles/pgxs.mk
@@ -22,6 +22,7 @@
# DATA -- random files to install into $PREFIX/share/contrib
# DATA_built -- random files to install into $PREFIX/share/contrib,
# which need to be built first
+# DATA_TSEARCH -- random files to install into $PREFIX/share/tsearch_data
# DOCS -- random files to install under $PREFIX/doc/contrib
# SCRIPTS -- script files (not binaries) to install into $PREFIX/bin
# SCRIPTS_built -- script files (not binaries) to install into $PREFIX/bin,
@@ -97,6 +98,12 @@ ifneq (,$(DATA)$(DATA_built))
$(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/contrib'; \
done
endif # DATA
+ifneq (,$(DATA_TSEARCH))
+ @for file in $(addprefix $(srcdir)/, $(DATA_TSEARCH)); do \
+ echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/tsearch_data'"; \
+ $(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/tsearch_data'; \
+ done
+endif # DATA_TSEARCH
ifdef MODULES
@for file in $(addsuffix $(DLSUFFIX), $(MODULES)); do \
echo "$(INSTALL_SHLIB) $$file '$(DESTDIR)$(pkglibdir)'"; \
@@ -135,6 +142,9 @@ installdirs:
ifneq (,$(DATA)$(DATA_built))
$(mkinstalldirs) '$(DESTDIR)$(datadir)/contrib'
endif
+ifneq (,$(DATA_TSEARCH))
+ $(mkinstalldirs) '$(DESTDIR)$(datadir)/tsearch_data'
+endif
ifneq (,$(MODULES)$(MODULE_big))
$(mkinstalldirs) '$(DESTDIR)$(pkglibdir)'
endif
@@ -152,6 +162,9 @@ uninstall:
ifneq (,$(DATA)$(DATA_built))
rm -f $(addprefix '$(DESTDIR)$(datadir)'/contrib/, $(notdir $(DATA) $(DATA_built)))
endif
+ifneq (,$(DATA_TSEARCH))
+ rm -f $(addprefix '$(DESTDIR)$(datadir)'/tsearch_data/, $(notdir $(DATA_TSEARCH)))
+endif
ifdef MODULES
rm -f $(addprefix '$(DESTDIR)$(pkglibdir)'/, $(addsuffix $(DLSUFFIX), $(MODULES)))
endif
diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm
index f695f16465..7e23387682 100644
--- a/src/tools/msvc/Install.pm
+++ b/src/tools/msvc/Install.pm
@@ -318,6 +318,20 @@ sub CopyContribFiles
}
$flist = '';
+ if ($mf =~ /^DATA_TSEARCH\s*=\s*(.*)$/m) {$flist .= $1}
+ if ($flist ne '')
+ {
+ $flist = ParseAndCleanRule($flist, $mf);
+
+ foreach my $f (split /\s+/,$flist)
+ {
+ lcopy('contrib/' . $d . '/' . $f,$target . '/share/tsearch_data/' . basename($f))
+ || croak("Could not copy file $f in contrib $d");
+ print '.';
+ }
+ }
+
+ $flist = '';
if ($mf =~ /^DOCS\s*=\s*(.*)$/mg) {$flist .= $1}
if ($flist ne '')
{