diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/commands/extension.c | 9 | ||||
-rw-r--r-- | src/makefiles/pgxs.mk | 35 |
2 files changed, 29 insertions, 15 deletions
diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c index 5d8b36b0966..702f24a35d5 100644 --- a/src/backend/commands/extension.c +++ b/src/backend/commands/extension.c @@ -278,7 +278,7 @@ get_extension_control_directory(void) get_share_path(my_exec_path, sharepath); result = (char *) palloc(MAXPGPATH); - snprintf(result, MAXPGPATH, "%s/contrib", sharepath); + snprintf(result, MAXPGPATH, "%s/extension", sharepath); return result; } @@ -291,7 +291,7 @@ get_extension_control_filename(const char *extname) get_share_path(my_exec_path, sharepath); result = (char *) palloc(MAXPGPATH); - snprintf(result, MAXPGPATH, "%s/contrib/%s.control", + snprintf(result, MAXPGPATH, "%s/extension/%s.control", sharepath, extname); return result; @@ -305,7 +305,7 @@ get_extension_script_directory(ExtensionControlFile *control) /* * The directory parameter can be omitted, absolute, or relative to the - * control-file directory. + * installation's share directory. */ if (!control->directory) return get_extension_control_directory(); @@ -315,8 +315,7 @@ get_extension_script_directory(ExtensionControlFile *control) get_share_path(my_exec_path, sharepath); result = (char *) palloc(MAXPGPATH); - snprintf(result, MAXPGPATH, "%s/contrib/%s", - sharepath, control->directory); + snprintf(result, MAXPGPATH, "%s/%s", sharepath, control->directory); return result; } diff --git a/src/makefiles/pgxs.mk b/src/makefiles/pgxs.mk index 655c5f9e382..412bf5c9301 100644 --- a/src/makefiles/pgxs.mk +++ b/src/makefiles/pgxs.mk @@ -25,9 +25,10 @@ # # The following variables can also be set: # -# MODULEDIR -- subdirectory into which EXTENSION, DATA and DOCS files -# should be installed (if not set, default is "contrib") # EXTENSION -- name of extension (there must be a $EXTENSION.control file) +# MODULEDIR -- subdirectory of $PREFIX/share into which DATA and DOCS files +# should be installed (if not set, default is "extension" if EXTENSION +# is set, or "contrib" if not) # DATA -- random files to install into $PREFIX/share/$MODULEDIR # DATA_built -- random files to install into $PREFIX/share/$MODULEDIR, # which need to be built first @@ -72,11 +73,16 @@ override CFLAGS += $(CFLAGS_SL) endif ifdef MODULEDIR -datamoduledir = $(MODULEDIR) -docmoduledir = $(MODULEDIR) +datamoduledir := $(MODULEDIR) +docmoduledir := $(MODULEDIR) else -datamoduledir = contrib -docmoduledir = contrib +ifdef EXTENSION +datamoduledir := extension +docmoduledir := extension +else +datamoduledir := contrib +docmoduledir := contrib +endif endif ifdef PG_CPPFLAGS @@ -96,8 +102,14 @@ endif # MODULE_big install: all installdirs -ifneq (,$(DATA)$(DATA_built)$(EXTENSION)) - @for file in $(addprefix $(srcdir)/, $(DATA)) $(DATA_built) $(addsuffix .control, $(EXTENSION)); do \ +ifneq (,$(EXTENSION)) + @for file in $(addprefix $(srcdir)/, $(addsuffix .control, $(EXTENSION))); do \ + echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/extension'"; \ + $(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/extension'; \ + done +endif # EXTENSION +ifneq (,$(DATA)$(DATA_built)) + @for file in $(addprefix $(srcdir)/, $(DATA)) $(DATA_built); do \ echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/$(datamoduledir)'"; \ $(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/$(datamoduledir)'; \ done @@ -168,8 +180,11 @@ endif # MODULE_big uninstall: -ifneq (,$(DATA)$(DATA_built)$(EXTENSION)) - rm -f $(addprefix '$(DESTDIR)$(datadir)/$(datamoduledir)'/, $(notdir $(DATA) $(DATA_built) $(addsuffix .control, $(EXTENSION)))) +ifneq (,$(EXTENSION)) + rm -f $(addprefix '$(DESTDIR)$(datadir)/extension'/, $(notdir $(addsuffix .control, $(EXTENSION)))) +endif +ifneq (,$(DATA)$(DATA_built)) + rm -f $(addprefix '$(DESTDIR)$(datadir)/$(datamoduledir)'/, $(notdir $(DATA) $(DATA_built))) endif ifneq (,$(DATA_TSEARCH)) rm -f $(addprefix '$(DESTDIR)$(datadir)/tsearch_data'/, $(notdir $(DATA_TSEARCH))) |