Teach pgxs.mk and Install.pm how to install files from a contrib module
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 16 Oct 2007 16:00:00 +0000 (16:00 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 16 Oct 2007 16:00:00 +0000 (16:00 +0000)
into SHAREDIR/tsearch_data.  Use this instead of ad-hoc coding in
dict_xsyn/Makefile.  Should fix current ContribCheck failures on MSVC.

contrib/dict_xsyn/Makefile
src/makefiles/pgxs.mk
src/tools/msvc/Install.pm

index de2f364847c2d1f2345bda19c4c71e8a6b321d38..a048f1551c1bdead3ec62e823f1dc09dae73e27b 100644 (file)
@@ -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
index 363793138f4d9b9e8d33fb706c94a7422270c302..a4263a6b55063a0efb75f0e40d43545879378d1d 100644 (file)
@@ -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
index f695f16465444ed83790f733d672d5c25e9dee74..7e23387682a1db2f356a0e383ba0a07fe699b68d 100644 (file)
@@ -317,6 +317,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 '')