summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Joseph <gjoseph@digium.com>2017-02-27 11:25:01 -0700
committerGeorge Joseph <gjoseph@digium.com>2017-02-27 12:57:18 -0600
commit4692a32ed7dccf3248383978741515a0e5b1ce85 (patch)
tree10a1d6d9d681db156f340caa5cfcd62e1ba86e9b
parentdf22d297a64ee2ef53ea0296a353a5c90ae70ba2 (diff)
build: Warn if asterisk is installed in both 32 and 64 bit sys dirs
... and clean them both up on uninstall. We've fixed the issue where 'make install' was installing to /usr/lib on 64-bit systems that use /usr/lib64. Now we need to clean up the remnants in /usr/lib. * 'make install' now prints a warning if DESTDIR/ASTLIBDIR contains 'lib64' and libasterisk* shared libraries or modules are also found in DESTDIR/ASTLIBDIR with 'lib64' transformed to 'lib'. * 'make uninstall' ALWAYS cleans up both DESTDIR/ASTLIBDIR and DESTDIR/ASTLIBDIR with 'lib64' transformed to 'lib'. ASTERISK-26705 Change-Id: I6edddeb3c07a51e7c7ba7cac3c05e4bf3ec3f01f
-rw-r--r--Makefile35
-rw-r--r--main/Makefile12
2 files changed, 37 insertions, 10 deletions
diff --git a/Makefile b/Makefile
index 80845d5ab..2c7f92543 100644
--- a/Makefile
+++ b/Makefile
@@ -652,6 +652,37 @@ ifneq ($(LDCONFIG),)
fi
endif
+ifeq ($(and $(findstring 64,$(HOST_CPU)),$(findstring lib64,$(DESTDIR)$(ASTLIBDIR))),lib64)
+_oldlibdir = $(subst lib64,lib,$(DESTDIR)$(ASTLIBDIR))
+
+check-old-libdir:
+ @oldfiles=`find "$(_oldlibdir)" -name libasterisk* -print -quit -o \( -path *asterisk/modules/* -a -name *.so \) -print -quit` ;\
+ if [ "x$$oldfiles" != "x" ] ; then \
+ echo " WARNING WARNING WARNING" ;\
+ echo "" ;\
+ echo " Installation is to: " ;\
+ echo " $(DESTDIR)$(ASTLIBDIR)" ;\
+ echo " but there are asterisk shared libraries in: " ;\
+ echo " $(_oldlibdir)" ;\
+ echo " or" ;\
+ echo " $(_oldlibdir)/asterisk/modules" ;\
+ echo "" ;\
+ echo " It is unlikely that asterisk will start." ;\
+ echo "" ;\
+ echo " You should do one of the following..." ;\
+ echo " * Run 'make uninstall' to remove the incorrect libraries" ;\
+ echo " then run 'make install' again." ;\
+ echo " * Manually remove the libraries from" ;\
+ echo " $(_oldlibdir)" ;\
+ echo " and run 'ldconfig' to rebuild the linker cache." ;\
+ echo "" ;\
+ echo " WARNING WARNING WARNING" ;\
+ fi
+else
+check-old-libdir:
+
+endif
+
badshell:
ifneq ($(filter ~%,$(DESTDIR)),)
@echo "Your shell doesn't do ~ expansion when expected (specifically, when doing \"make install DESTDIR=~/path\")."
@@ -691,6 +722,7 @@ install: badshell bininstall datafiles
@echo " +-------------------------------------------+"
@$(MAKE) -s oldmodcheck
@$(MAKE) -s ld-cache-update
+ @$(MAKE) -s check-old-libdir
isntall: install
@@ -911,6 +943,7 @@ main-binuninstall:
_uninstall: $(SUBDIRS_UNINSTALL) main-binuninstall
rm -f "$(DESTDIR)$(ASTMODDIR)/"*
+ rm -f "$(subst lib64,lib,$(DESTDIR)$(ASTMODDIR))/"*
rm -f "$(DESTDIR)$(ASTSBINDIR)/astgenkey"
rm -f "$(DESTDIR)$(ASTSBINDIR)/autosupport"
rm -rf "$(DESTDIR)$(ASTHEADERDIR)"
@@ -943,6 +976,7 @@ uninstall: _uninstall
uninstall-all: _uninstall
rm -rf "$(DESTDIR)$(ASTMODDIR)"
+ rm -rf "$(subst lib64,lib,$(DESTDIR)$(ASTMODDIR))"
rm -rf "$(DESTDIR)$(ASTVARLIBDIR)"
rm -rf "$(DESTDIR)$(ASTDATADIR)"
rm -rf "$(DESTDIR)$(ASTSPOOLDIR)"
@@ -1057,6 +1091,7 @@ check-alembic: makeopts
.PHONY: basic-pbx
.PHONY: check-alembic
.PHONY: ld-cache-update
+.PHONY: check-old-libdir
.PHONY: $(SUBDIRS_INSTALL)
.PHONY: $(SUBDIRS_DIST_CLEAN)
.PHONY: $(SUBDIRS_CLEAN)
diff --git a/main/Makefile b/main/Makefile
index d3463f7b6..cf38f5f46 100644
--- a/main/Makefile
+++ b/main/Makefile
@@ -359,16 +359,8 @@ endif
binuninstall:
rm -f "$(DESTDIR)$(ASTSBINDIR)/$(MAIN_TGT)"
rm -f "$(DESTDIR)$(ASTSBINDIR)/rasterisk"
-ifneq ($(ASTSSL_LIB).$(ASTSSL_SO_VERSION),.)
-# ASTSSL_SO_VERSION may not exist on Darwin
- rm -f "$(DESTDIR)$(ASTLIBDIR)/$(ASTSSL_LIB).$(ASTSSL_SO_VERSION)" || :
- rm -f "$(DESTDIR)$(ASTLIBDIR)/$(ASTSSL_LIB)"
-endif
-ifneq ($(ASTPJ_LIB).$(ASTPJ_SO_VERSION),.)
-# ASTSSL_SO_VERSION may not exist on Darwin
- rm -f "$(DESTDIR)$(ASTLIBDIR)/$(ASTPJ_LIB).$(ASTPJ_SO_VERSION)" || :
- rm -f "$(DESTDIR)$(ASTLIBDIR)/$(ASTPJ_LIB)"
-endif
+ rm -f "$(DESTDIR)$(ASTLIBDIR)/libasterisk"* || :
+ rm -f "$(subst lib64,lib,$(DESTDIR)$(ASTLIBDIR))/libasterisk"* || :
clean::
rm -f asterisk libasteriskssl.o