diff --git a/Makefile b/Makefile index b746d7b620..687ab966f4 100644 --- a/Makefile +++ b/Makefile @@ -183,11 +183,6 @@ OTHER_SUBDIR_CFLAGS="-I$(ASTTOPDIR)/include" # Create OPTIONS variable, but probably we can assign directly to ASTCFLAGS OPTIONS= -ifeq ($(OSARCH),linux-gnu) - # flag to tell 'ldconfig' to only process specified directories - LDCONFIG_FLAGS=-n -endif - ifeq ($(findstring -save-temps,$(_ASTCFLAGS) $(ASTCFLAGS)),) ifeq ($(findstring -pipe,$(_ASTCFLAGS) $(ASTCFLAGS)),) _ASTCFLAGS+=-pipe @@ -223,8 +218,6 @@ ifeq ($(OSARCH),FreeBSD) # -V is understood by BSD Make, not by GNU make. BSDVERSION=$(shell make -V OSVERSION -f /usr/share/mk/bsd.port.subdir.mk) _ASTCFLAGS+=$(shell if test $(BSDVERSION) -lt 500016 ; then echo "-D_THREAD_SAFE"; fi) - # flag to tell 'ldconfig' to only process specified directories - LDCONFIG_FLAGS=-m endif ifeq ($(OSARCH),NetBSD) @@ -643,6 +636,23 @@ oldmodcheck: echo " WARNING WARNING WARNING" ;\ fi +ld-cache-update: +ifneq ($(LDCONFIG),) + @if [ $${EUID} -eq 0 ] ; then \ + $(LDCONFIG) "$(DESTDIR)$(ASTLIBDIR)/" ; \ + else \ + echo " WARNING WARNING WARNING" ;\ + echo "" ;\ + echo " You cannot rebuild the system linker cache unless you are root. " ;\ + echo " You MUST do one of the follwing..." ;\ + echo " * Re-run 'make install' as root. " ;\ + echo " * Run 'ldconfig $(DESTDIR)$(ASTLIBDIR)' as root. " ;\ + echo " * Run asterisk with 'LD_LIBRARY_PATH=$(DESTDIR)$(ASTLIBDIR) asterisk' " ;\ + echo "" ;\ + echo " WARNING WARNING WARNING" ;\ + fi +endif + badshell: ifneq ($(filter ~%,$(DESTDIR)),) @echo "Your shell doesn't do ~ expansion when expected (specifically, when doing \"make install DESTDIR=~/path\")." @@ -681,6 +691,7 @@ install: badshell bininstall datafiles @echo " + doxygen installed on your local system +" @echo " +-------------------------------------------+" @$(MAKE) -s oldmodcheck + @$(MAKE) -s ld-cache-update isntall: install @@ -913,6 +924,9 @@ ifeq ($(HAVE_DAHDI),1) rm -f $(DESTDIR)$(DAHDI_UDEV_HOOK_DIR)/40-asterisk endif $(MAKE) -C sounds uninstall +ifneq ($(LDCONFIG),) + $(LDCONFIG) || : +endif uninstall: _uninstall @echo " +--------- Asterisk Uninstall Complete -----+" @@ -1043,6 +1057,7 @@ check-alembic: makeopts .PHONY: ari-stubs .PHONY: basic-pbx .PHONY: check-alembic +.PHONY: ld-cache-update .PHONY: $(SUBDIRS_INSTALL) .PHONY: $(SUBDIRS_DIST_CLEAN) .PHONY: $(SUBDIRS_CLEAN) diff --git a/configure b/configure index dbd5afa3b2..a4caedb1e3 100755 --- a/configure +++ b/configure @@ -4856,6 +4856,28 @@ if test ${prefix} = ${ac_default_prefix} || test ${prefix} = 'NONE'; then fi fi +# +# The following code for detecting lib64 was taken from Fedora's +# /usr/share/config.site with a modification to check that the +# /usr/lib64 directory actually exists. This prevents libdir from +# being set to /usr/lib64 on 64-bit systems that still use /usr/lib. +# +if test "$prefix" = /usr ||\ + { test "$prefix" = NONE && test "$ac_default_prefix" = /usr ; } +then + for i in x86_64 ppc64 s390x aarch64; do + if test $host_cpu = $i; then + if test "$libdir" = '${exec_prefix}/lib' &&\ + { test -d "${exec_prefix}/lib64" || test -d "${ac_default_prefix}/lib64" ; } ; then + libdir='${exec_prefix}/lib64' + { $as_echo "$as_me:${as_lineno-$LINENO}: Setting libdir=${libdir} " >&5 +$as_echo "$as_me: Setting libdir=${libdir} " >&6;} + fi + break + fi + done +fi + BUILD_PLATFORM=${build} BUILD_CPU=${build_cpu} BUILD_VENDOR=${build_vendor} diff --git a/configure.ac b/configure.ac index 1d3b8a5546..039648a431 100644 --- a/configure.ac +++ b/configure.ac @@ -135,6 +135,27 @@ if test ${prefix} = ${ac_default_prefix} || test ${prefix} = 'NONE'; then fi fi +# +# The following code for detecting lib64 was taken from Fedora's +# /usr/share/config.site with a modification to check that the +# /usr/lib64 directory actually exists. This prevents libdir from +# being set to /usr/lib64 on 64-bit systems that still use /usr/lib. +# +if test "$prefix" = /usr ||\ + { test "$prefix" = NONE && test "$ac_default_prefix" = /usr ; } +then + for i in x86_64 ppc64 s390x aarch64; do + if test $host_cpu = $i; then + if test "$libdir" = '${exec_prefix}/lib' &&\ + { test -d "${exec_prefix}/lib64" || test -d "${ac_default_prefix}/lib64" ; } ; then + libdir='${exec_prefix}/lib64' + AC_MSG_NOTICE([ Setting libdir=${libdir} ]) + fi + break + fi + done +fi + BUILD_PLATFORM=${build} BUILD_CPU=${build_cpu} BUILD_VENDOR=${build_vendor} diff --git a/main/Makefile b/main/Makefile index a51b48bb10..fb473141e9 100644 --- a/main/Makefile +++ b/main/Makefile @@ -353,9 +353,6 @@ ifeq ($(findstring darwin,$(OSARCH)),) # not Darwin else # Darwin $(INSTALL) -m 755 $(ASTPJ_LIB) "$(DESTDIR)$(ASTLIBDIR)/" endif -endif -ifneq ($(LDCONFIG),) - $(LDCONFIG) $(LDCONFIG_FLAGS) "$(DESTDIR)$(ASTLIBDIR)/" endif $(LN) -sf asterisk "$(DESTDIR)$(ASTSBINDIR)/rasterisk" @@ -372,9 +369,6 @@ ifneq ($(ASTPJ_LIB).$(ASTPJ_SO_VERSION),.) rm -f "$(DESTDIR)$(ASTLIBDIR)/$(ASTPJ_LIB).$(ASTPJ_SO_VERSION)" || : rm -f "$(DESTDIR)$(ASTLIBDIR)/$(ASTPJ_LIB)" endif -ifneq ($(LDCONFIG),) - $(LDCONFIG) $(LDCONFIG_FLAGS) "$(DESTDIR)$(ASTLIBDIR)/" -endif clean:: rm -f asterisk libasteriskssl.o