diff options
author | Paweł Chmielowski <pchmielowski@process-one.net> | 2018-01-08 11:11:42 +0100 |
---|---|---|
committer | Paweł Chmielowski <pchmielowski@process-one.net> | 2018-01-08 11:11:50 +0100 |
commit | c5a4f67935356e35745c1571ffda5619175ddda8 (patch) | |
tree | bff98fac76026f1f0660d1b68fa14c6937659fd3 /Makefile.in | |
parent | Make all install target rules as .PHONY (diff) |
Delete old .so and executable files before installing new one
This fixes crash for people who have live ejabberd installed in make install
target directory, by ensuring that loaded binaries aren't replaced in memory
with new content.
Diffstat (limited to 'Makefile.in')
-rw-r--r-- | Makefile.in | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Makefile.in b/Makefile.in index afc4d4ff..8006e074 100644 --- a/Makefile.in +++ b/Makefile.in @@ -149,15 +149,17 @@ define DEP_VERSION_template DEP_$(1)_VERSION:=$(shell $(SED) -e '/vsn/!d;s/.*, *"/$(1)-/;s/".*//' $(2) 2>/dev/null) endef +DELETE_TARGET_SO=$(if $(subst X.soX,,X$(suffix $(1))X),,rm $(call TO_DEST,$(1));) + $(foreach DEP,$(DEPS),$(eval $(call DEP_VERSION_template,$(DEP),deps/$(DEP)/ebin/$(DEP).app))) $(eval $(call DEP_VERSION_template,ejabberd,ebin/ejabberd.app)) define COPY_template -$(call TO_DEST,$(1)): $(1) $(call TO_DEST,$(dir $(1))) ; $$(INSTALL) -m 644 $(1) $(call TO_DEST,$(1)) +$(call TO_DEST,$(1)): $(1) $(call TO_DEST,$(dir $(1))) ; $(call DELETE_TARGET_SO, $(1)) $$(INSTALL) -m 644 $(1) $(call TO_DEST,$(1)) endef define COPY_BINARY_template -$(call TO_DEST,$(1)): $(1) $(call TO_DEST,$(dir $(1))) ; $$(INSTALL) -m 755 $$(O_USER) $(1) $(call TO_DEST,$(1)) +$(call TO_DEST,$(1)): $(1) $(call TO_DEST,$(dir $(1))) ; rm $(call TO_DEST,$(1)); $$(INSTALL) -m 755 $$(O_USER) $(1) $(call TO_DEST,$(1)) endef $(foreach file,$(DEPS_FILES_FILTERED) $(MAIN_FILES),$(eval $(call COPY_template,$(file)))) |