From 0215dc9b0f2b0f8cdd22642cf93694fc101ab93e Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Wed, 9 Oct 2002 16:23:55 +0000 Subject: [PATCH] Well, this patch makes Makefile for contrib/rserv use the contrib/contrib-global.mk library and _generally_ behave like Makefiles for other contrib modules. Besides it fixes Perl's interpolation of $libdir variable, which should be passed to backend instead. This patch is done against PostgreSQL 7.3b2 Besides, I want to thank Peter Eisentraut for his very friendly and helpful attitude and politely ask him to check whether contrib modules actually continue to work after he implements another major change to their build process. Alexey Borzov --- contrib/rserv/Makefile | 44 +++++++++++++------------------------ contrib/rserv/MasterInit.in | 8 ++++--- 2 files changed, 20 insertions(+), 32 deletions(-) diff --git a/contrib/rserv/Makefile b/contrib/rserv/Makefile index 984a839415..f6b202db50 100644 --- a/contrib/rserv/Makefile +++ b/contrib/rserv/Makefile @@ -6,47 +6,33 @@ top_builddir = ../.. include $(top_builddir)/src/Makefile.global NAME = rserv -SONAME = $(NAME)$(DLSUFFIX) -SQLS = master.sql slave.sql -TCLS = RservTest -PERLS = MasterInit MasterAddTable Replicate MasterSync CleanLog -PERLS += SlaveInit SlaveAddTable GetSyncID -PERLS += PrepareSnapshot ApplySnapshot -SCRIPTS = InitRservTest +MODULES = rserv +DATA = RServ.pm +DATA_built = master.sql slave.sql +SQLS = $(DATA_built) +DOCS = README.rserv +SCRIPTS = RservTest +SCRIPTS += MasterInit MasterAddTable Replicate MasterSync CleanLog +SCRIPTS += SlaveInit SlaveAddTable GetSyncID +SCRIPTS += PrepareSnapshot ApplySnapshot +SCRIPTS += InitRservTest +EXTRA_CLEAN = $(SCRIPTS) override CPPFLAGS := -I$(srcdir) $(CPPFLAGS) override CFLAGS += $(CFLAGS_SL) SHLIB_LINK = $(BE_DLLLIBS) -all: $(SQLS) $(TCLS) $(PERLS) $(SCRIPTS) $(SONAME) +all: $(SCRIPTS) $(SQLS) $(addsuffix $(DLSUFFIX), $(MODULES)) -%.sql: %.sql.in +$(SQLS): %.sql: %.sql.in sed 's,@MODULE_FILENAME@,$$libdir/$(NAME),g' $< >$@ -$(PERLS) $(TCLS) $(SCRIPTS): %: %.in +$(SCRIPTS): %: %.in sed -e 's,@MODULE_FILENAME@,$$libdir/$(NAME),g' \ -e 's:@SQLDIR@:$(datadir)/contrib:g' \ -e 's:@BINDIR@:$(bindir):g' \ -e 's:@LIBDIR@:$(datadir)/contrib:g' $< >$@ chmod a+x $@ - -install: all installdirs - for file in $(SQLS); do \ - $(INSTALL_DATA) $$file $(DESTDIR)$(datadir)/contrib || exit ; \ - done - for file in $(TCLS) $(PERLS) $(SCRIPTS); do \ - $(INSTALL_SCRIPT) $$file $(DESTDIR)$(bindir) || exit ; \ - done - $(INSTALL_DATA) $(srcdir)/RServ.pm $(DESTDIR)$(datadir)/contrib - $(INSTALL_SHLIB) $(SONAME) $(DESTDIR)$(pkglibdir) - $(INSTALL_DATA) $(srcdir)/README.$(NAME) $(DESTDIR)$(docdir)/contrib - -installdirs: - $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(datadir)/contrib \ - $(DESTDIR)$(pkglibdir) $(DESTDIR)$(docdir)/contrib - - -clean distclean maintainer-clean: - rm -f $(SQLS) $(TCLS) $(PERLS) $(SCRIPTS) $(SONAME) $(NAME).o +include $(top_srcdir)/contrib/contrib-global.mk diff --git a/contrib/rserv/MasterInit.in b/contrib/rserv/MasterInit.in index 1bfe1c9776..0c9b648c21 100644 --- a/contrib/rserv/MasterInit.in +++ b/contrib/rserv/MasterInit.in @@ -22,6 +22,8 @@ if (defined($opt_help) || (scalar(@ARGV) < 1)) { exit ((scalar(@ARGV) < 1)? 1:0); } +my $module_filename = '@MODULE_FILENAME@'; + my $master = $ARGV[0] || "master"; my $minfo = "dbname=$master"; @@ -90,15 +92,15 @@ $result = $conn->exec("create sequence _rserv_sync_seq_"); RollbackAndQuit($conn) if ($result->resultStatus ne PGRES_COMMAND_OK); $result = $conn->exec("CREATE FUNCTION _rserv_log_() RETURNS trigger" . - " AS '@MODULE_FILENAME@' LANGUAGE 'c'"); + " AS '$module_filename' LANGUAGE 'c'"); RollbackAndQuit($conn) if ($result->resultStatus ne PGRES_COMMAND_OK); $result = $conn->exec("CREATE FUNCTION _rserv_sync_(int4) RETURNS int4" . - " AS '@MODULE_FILENAME@' LANGUAGE 'c'"); + " AS '$module_filename' LANGUAGE 'c'"); RollbackAndQuit($conn) if ($result->resultStatus ne PGRES_COMMAND_OK); $result = $conn->exec("CREATE FUNCTION _rserv_debug_(int4) RETURNS int4" . - " AS '@MODULE_FILENAME@' LANGUAGE 'c'"); + " AS '$module_filename' LANGUAGE 'c'"); RollbackAndQuit($conn) if ($result->resultStatus ne PGRES_COMMAND_OK); $result = $conn->exec("COMMIT");