Revert partial attempt at handling pathnames with spaces.

Revision 299794 attempted to improve the build system to be able to handle
pathnames (primarily DESTDIR) with spaces in them, since this is common on
some platforms (including Mac OSX). Unfortunately, the changes were incomplete
and did not actually provide the desired behavior, and as a side effect the
functionality that ensured that stale headers in the Asterisk 'include' directory
were removed got broken. In addition, the check for stale (and possibly
incompatible) modules in the Asterisk 'modules' directory also got broken, and
would never report any stale modules. Users upgrading to this version or later
versions would then see unexpected module load errors.

Since there are few users who actually want to install Asterisk into paths
that contain spaces, and a proper fix for the build system would take many hours,
the best solution for now is to just revert the partial solution.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@328878 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Kevin P. Fleming
2011-07-19 21:29:07 +00:00
parent 5905269669
commit c7afb0eaf1
3 changed files with 31 additions and 46 deletions

View File

@@ -459,11 +459,11 @@ datafiles: _all doc/core-en_US.xml
# improved a lot. I'll put it here for now.
for x in static-http/*; do \
$(INSTALL) -m 644 $$x "$(DESTDIR)$(ASTDATADIR)/static-http" ; \
$(INSTALL) -m 644 $$x $(DESTDIR)$(ASTDATADIR)/static-http ; \
done
$(INSTALL) -m 644 doc/core-en_US.xml "$(DESTDIR)$(ASTDATADIR)/static-http";
$(INSTALL) -m 644 doc/core-en_US.xml $(DESTDIR)$(ASTDATADIR)/static-http;
for x in images/*.jpg; do \
$(INSTALL) -m 644 $$x "$(DESTDIR)$(ASTDATADIR)/images" ; \
$(INSTALL) -m 644 $$x $(DESTDIR)$(ASTDATADIR)/images ; \
done
$(MAKE) -C sounds install
@@ -562,21 +562,21 @@ bininstall: _all installdirs $(SUBDIRS_INSTALL)
rm -f $(addprefix $(DESTDIR)$(ASTHEADERDIR)/,$(OLDHEADERS)) ;\
fi
$(INSTALL) -m 644 doc/core-*.xml "$(DESTDIR)$(ASTDATADIR)/documentation"
$(INSTALL) -m 644 doc/appdocsxml.dtd "$(DESTDIR)$(ASTDATADIR)/documentation"
$(INSTALL) -m 644 doc/asterisk.8 "$(DESTDIR)$(ASTMANDIR)/man8"
$(INSTALL) -m 644 contrib/scripts/astgenkey.8 "$(DESTDIR)$(ASTMANDIR)/man8"
$(INSTALL) -m 644 contrib/scripts/autosupport.8 "$(DESTDIR)$(ASTMANDIR)/man8"
$(INSTALL) -m 644 contrib/scripts/safe_asterisk.8 "$(DESTDIR)$(ASTMANDIR)/man8"
$(INSTALL) -m 644 doc/core-*.xml $(DESTDIR)$(ASTDATADIR)/documentation
$(INSTALL) -m 644 doc/appdocsxml.dtd $(DESTDIR)$(ASTDATADIR)/documentation
$(INSTALL) -m 644 doc/asterisk.8 $(DESTDIR)$(ASTMANDIR)/man8
$(INSTALL) -m 644 contrib/scripts/astgenkey.8 $(DESTDIR)$(ASTMANDIR)/man8
$(INSTALL) -m 644 contrib/scripts/autosupport.8 $(DESTDIR)$(ASTMANDIR)/man8
$(INSTALL) -m 644 contrib/scripts/safe_asterisk.8 $(DESTDIR)$(ASTMANDIR)/man8
if [ -f contrib/firmware/iax/iaxy.bin ] ; then \
$(INSTALL) -m 644 contrib/firmware/iax/iaxy.bin "$(DESTDIR)$(ASTDATADIR)/firmware/iax/iaxy.bin"; \
$(INSTALL) -m 644 contrib/firmware/iax/iaxy.bin $(DESTDIR)$(ASTDATADIR)/firmware/iax/iaxy.bin; \
fi
$(SUBDIRS_INSTALL):
+@DESTDIR="$(DESTDIR)" ASTSBINDIR="$(ASTSBINDIR)" $(SUBMAKE) -C $(@:-install=) install
NEWMODS:=$(foreach d,$(MOD_SUBDIRS),$(notdir $(wildcard $(d)/*.so)))
OLDMODS=$(filter-out $(NEWMODS),$(notdir $(wildcard "$(DESTDIR)$(MODULES_DIR)/*.so")))
OLDMODS=$(filter-out $(NEWMODS),$(notdir $(wildcard $(DESTDIR)$(MODULES_DIR)/*.so)))
oldmodcheck:
@if [ -n "$(OLDMODS)" ]; then \
@@ -684,33 +684,33 @@ samples: adsi
rm -f $(DESTDIR)$(ASTCONFPATH).tmp ; \
fi ; \
$(INSTALL) -d $(DESTDIR)$(ASTSPOOLDIR)/voicemail/default/1234/INBOX
build_tools/make_sample_voicemail "$(DESTDIR)$(ASTDATADIR)" "$(DESTDIR)$(ASTSPOOLDIR)"
build_tools/make_sample_voicemail $(DESTDIR)/$(ASTDATADIR) $(DESTDIR)/$(ASTSPOOLDIR)
@for x in phoneprov/*; do \
dst="$(DESTDIR)$(ASTDATADIR)/$$x" ; \
if [ -f "$${dst}" ]; then \
if [ -f $${dst} ]; then \
if [ "$(OVERWRITE)" = "y" ]; then \
if cmp -s "$${dst}" $$x ; then \
if cmp -s $${dst} $$x ; then \
echo "Config file $$x is unchanged"; \
continue; \
fi ; \
mv -f "$${dst}" "$${dst}.old" ; \
mv -f $${dst} $${dst}.old ; \
else \
echo "Skipping config file $$x"; \
continue; \
fi ;\
fi ; \
echo "Installing file $$x"; \
$(INSTALL) -m 644 $$x "$${dst}" ;\
$(INSTALL) -m 644 $$x $${dst} ;\
done
webvmail:
@[ -d $(DESTDIR)$(HTTP_DOCSDIR)/ ] || ( printf "http docs directory not found.\nUpdate assignment of variable HTTP_DOCSDIR in Makefile!\n" && exit 1 )
@[ -d $(DESTDIR)$(HTTP_CGIDIR) ] || ( printf "cgi-bin directory not found.\nUpdate assignment of variable HTTP_CGIDIR in Makefile!\n" && exit 1 )
$(INSTALL) -m 4755 contrib/scripts/vmail.cgi "$(DESTDIR)$(HTTP_CGIDIR)/vmail.cgi"
$(INSTALL) -m 4755 contrib/scripts/vmail.cgi $(DESTDIR)$(HTTP_CGIDIR)/vmail.cgi
$(INSTALL) -d $(DESTDIR)$(HTTP_DOCSDIR)/_asterisk
for x in images/*.gif; do \
$(INSTALL) -m 644 $$x "$(DESTDIR)$(HTTP_DOCSDIR)/_asterisk/"; \
$(INSTALL) -m 644 $$x $(DESTDIR)$(HTTP_DOCSDIR)/_asterisk/; \
done
@echo " +--------- Asterisk Web Voicemail ----------+"
@echo " + +"
@@ -829,12 +829,12 @@ $(SUBDIRS_UNINSTALL):
+@$(SUBMAKE) -C $(@:-uninstall=) uninstall
_uninstall: $(SUBDIRS_UNINSTALL)
rm -f "$(DESTDIR)$(MODULES_DIR)/"*
rm -f $(DESTDIR)$(MODULES_DIR)/*
rm -f $(DESTDIR)$(ASTSBINDIR)/*asterisk*
rm -f $(DESTDIR)$(ASTSBINDIR)/astgenkey
rm -f $(DESTDIR)$(ASTSBINDIR)/autosupport
rm -rf $(DESTDIR)$(ASTHEADERDIR)
rm -rf "$(DESTDIR)$(ASTDATADIR)/firmware"
rm -rf $(DESTDIR)$(ASTDATADIR)/firmware
rm -f $(DESTDIR)$(ASTMANDIR)/man8/asterisk.8
rm -f $(DESTDIR)$(ASTMANDIR)/man8/astgenkey.8
rm -f $(DESTDIR)$(ASTMANDIR)/man8/autosupport.8
@@ -856,12 +856,12 @@ uninstall: _uninstall
@echo " +-------------------------------------------+"
uninstall-all: _uninstall
rm -rf "$(DESTDIR)$(ASTLIBDIR)"
rm -rf "$(DESTDIR)$(ASTVARLIBDIR)"
rm -rf "$(DESTDIR)$(ASTDATADIR)"
rm -rf "$(DESTDIR)$(ASTSPOOLDIR)"
rm -rf "$(DESTDIR)$(ASTETCDIR)"
rm -rf "$(DESTDIR)$(ASTLOGDIR)"
rm -rf $(DESTDIR)$(ASTLIBDIR)
rm -rf $(DESTDIR)$(ASTVARLIBDIR)
rm -rf $(DESTDIR)$(ASTDATADIR)
rm -rf $(DESTDIR)$(ASTSPOOLDIR)
rm -rf $(DESTDIR)$(ASTETCDIR)
rm -rf $(DESTDIR)$(ASTLOGDIR)
menuconfig: menuselect

View File

@@ -122,7 +122,7 @@ clean::
install:: all
@echo "Installing modules from `basename $(CURDIR)`..."
@for x in $(LOADABLE_MODS:%=%.so); do $(INSTALL) -m 755 $$x "$(DESTDIR)$(MODULES_DIR)" ; done
@for x in $(LOADABLE_MODS:%=%.so); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
uninstall::

View File

@@ -15,19 +15,10 @@
-include $(ASTTOPDIR)/menuselect.makeopts $(ASTTOPDIR)/makeopts
# Make doesn't tolerate spaces in pathnames well. I hate to hardcode the OS X
# path, but Make doesn't allow spaces as arguments, either.
ifneq ($(findstring Application Support,$(ASTDATADIR)),)
TMPDATADIR=/tmp/astdatadir
PREFIXCMD=ln -sf "$(ASTDATADIR)/" /tmp/astdatadir
else
TMPDATADIR=$(ASTDATADIR)
endif
CMD_PREFIX?=@
SOUNDS_DIR:=$(DESTDIR)$(TMPDATADIR)/sounds
SOUNDS_DIR:=$(DESTDIR)$(ASTDATADIR)/sounds
SOUNDS_CACHE_DIR?=
MOH_DIR:=$(DESTDIR)$(TMPDATADIR)/moh
MOH_DIR:=$(DESTDIR)$(ASTDATADIR)/moh
CORE_SOUNDS_VERSION:=1.4.21
EXTRA_SOUNDS_VERSION:=1.4.11
MOH_VERSION:=2.03
@@ -142,13 +133,7 @@ endef
endif
all: prefixcmd $(SOUNDS_CACHE_DIR) $(CORE_SOUNDS) $(EXTRA_SOUNDS) $(MOH)
prefixcmd:
if [ -d /tmp/astdatadir ] ; then \
rm -rf /tmp/astdatadir ; \
fi
@$(PREFIXCMD)
all: $(SOUNDS_CACHE_DIR) $(CORE_SOUNDS) $(EXTRA_SOUNDS) $(MOH)
have_download:
@if test "$(DOWNLOAD)" = ":" ; then \
@@ -196,7 +181,7 @@ dist-clean:
$(SOUNDS_DIR)/en $(MOH_DIR) $(SOUNDS_DIR)/en_AU $(SOUNDS_DIR)/es $(SOUNDS_DIR)/fr $(SOUNDS_DIR)/ru $(SOUNDS_CACHE_DIR):
mkdir -p $@
install: prefixcmd $(SOUNDS_CACHE_DIR) $(SOUNDS_DIR)/en $(SOUNDS_DIR)/en_AU $(SOUNDS_DIR)/es $(SOUNDS_DIR)/fr $(SOUNDS_DIR)/ru $(MOH_DIR) $(CORE_SOUND_TAGS) $(EXTRA_SOUND_TAGS) $(MOH_TAGS)
install: $(SOUNDS_CACHE_DIR) $(SOUNDS_DIR)/en $(SOUNDS_DIR)/en_AU $(SOUNDS_DIR)/es $(SOUNDS_DIR)/fr $(MOH_DIR) $(CORE_SOUND_TAGS) $(EXTRA_SOUND_TAGS) $(MOH_TAGS)
uninstall:
rm -rf $(SOUNDS_DIR)