diff --git a/Makefile b/Makefile index 8e237e1fda75871ac7098f194b4f4d4436ed4186..80845d5ab831179e1befcd6599c33dae1f453bf4 100644 --- a/Makefile +++ b/Makefile @@ -182,11 +182,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 @@ -222,8 +217,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) @@ -642,6 +635,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\")." @@ -680,6 +690,7 @@ install: badshell bininstall datafiles @echo " + doxygen installed on your local system +" @echo " +-------------------------------------------+" @$(MAKE) -s oldmodcheck + @$(MAKE) -s ld-cache-update isntall: install @@ -912,6 +923,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 -----+" @@ -1042,6 +1056,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 42a21d7c587a644d6a51b7250e4ccafc868879f0..0c2d84ee1958a6768e462931dda5958dc10d57ac 100755 --- a/configure +++ b/configure @@ -4892,6 +4892,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 fff8ecf7e6ad9ce79d55108595c3aec891ae760a..beb151a20b86a15c0b415e0fcfd83a5366872790 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 4d1b2c41bd27877b2ce8ef0ea3beb29f6890fb50..d3463f7b6a8c574ff9008dcadcf4876ff681c6d2 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