From b5bcecce5db423b74a1cbb712abff0df9e8a48a3 Mon Sep 17 00:00:00 2001 From: Mark Spencer <markster@digium.com> Date: Sat, 25 Oct 2003 17:27:53 +0000 Subject: [PATCH] Add DESTDIR support (bug #200) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1664 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- Makefile | 136 ++++++++++++++++++++++++---------------------- agi/Makefile | 3 +- apps/Makefile | 2 +- astman/Makefile | 2 +- cdr/Makefile | 2 +- channels/Makefile | 2 +- codecs/Makefile | 2 +- formats/Makefile | 2 +- pbx/Makefile | 2 +- res/Makefile | 2 +- 10 files changed, 81 insertions(+), 74 deletions(-) diff --git a/Makefile b/Makefile index f429c25c93..a0c5e64048 100755 --- a/Makefile +++ b/Makefile @@ -66,6 +66,12 @@ MALLOC_DEBUG = #-include $(PWD)/include/asterisk/astmm.h # Default -> leave empty INSTALL_PREFIX= +# Staging directory +# Files are copied here temporarily during the install process +# For example, make DESTDIR=/tmp/asterisk woud put things in +# /tmp/asterisk/etc/asterisk +DESTDIR= + # Original busydetect routine BUSYDETECT = #-DBUSYDETECT @@ -233,10 +239,10 @@ clean: $(MAKE) -C stdtime clean datafiles: all - mkdir -p $(ASTVARLIBDIR)/sounds/digits + mkdir -p $(DESTDIR)$(ASTVARLIBDIR)/sounds/digits for x in sounds/digits/*.gsm; do \ if grep -q "^%`basename $$x`%" sounds.txt; then \ - install $$x $(ASTVARLIBDIR)/sounds/digits ; \ + install $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds/digits ; \ else \ echo "No description for $$x"; \ exit 1; \ @@ -244,18 +250,18 @@ datafiles: all done for x in sounds/vm-* sounds/transfer* sounds/pbx-* sounds/ss-* sounds/beep* sounds/dir-* sounds/conf-* sounds/agent-* sounds/invalid* sounds/tt-* sounds/auth-* sounds/privacy-*; do \ if grep -q "^%`basename $$x`%" sounds.txt; then \ - install $$x $(ASTVARLIBDIR)/sounds ; \ + install $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds ; \ else \ echo "No description for $$x"; \ exit 1; \ fi; \ done - mkdir -p $(ASTVARLIBDIR)/mohmp3 - mkdir -p $(ASTVARLIBDIR)/images + mkdir -p $(DESTDIR)$(ASTVARLIBDIR)/mohmp3 + mkdir -p $(DESTDIR)$(ASTVARLIBDIR)/images for x in images/*.jpg; do \ - install $$x $(ASTVARLIBDIR)/images ; \ + install $$x $(DESTDIR)$(ASTVARLIBDIR)/images ; \ done - mkdir -p $(AGI_DIR) + mkdir -p $(DESTDIR)$(AGI_DIR) update: @if [ -d CVS ]; then \ @@ -267,37 +273,37 @@ update: fi bininstall: all - mkdir -p $(MODULES_DIR) - mkdir -p $(ASTSBINDIR) - mkdir -p $(ASTETCDIR) - mkdir -p $(ASTBINDIR) - mkdir -p $(ASTSBINDIR) - mkdir -p $(ASTVARRUNDIR) - mkdir -p $(ASTSPOOLDIR)/voicemail - install -m 755 asterisk $(ASTSBINDIR)/ - install -m 755 astgenkey $(ASTSBINDIR)/ - install -m 755 safe_asterisk $(ASTSBINDIR)/ + mkdir -p $(DESTDIR)$(MODULES_DIR) + mkdir -p $(DESTDIR)$(ASTSBINDIR) + mkdir -p $(DESTDIR)$(ASTETCDIR) + mkdir -p $(DESTDIR)$(ASTBINDIR) + mkdir -p $(DESTDIR)$(ASTSBINDIR) + mkdir -p $(DESTDIR)$(ASTVARRUNDIR) + mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/voicemail + install -m 755 asterisk $(DESTDIR)$(ASTSBINDIR)/ + install -m 755 astgenkey $(DESTDIR)$(ASTSBINDIR)/ + install -m 755 safe_asterisk $(DESTDIR)$(ASTSBINDIR)/ for x in $(SUBDIRS); do $(MAKE) -C $$x install || exit 1 ; done - install -d $(ASTHEADERDIR) - install include/asterisk/*.h $(ASTHEADERDIR) - rm -f $(ASTVARLIBDIR)/sounds/vm - rm -f $(ASTVARLIBDIR)/sounds/voicemail - if [ ! -h $(ASTSPOOLDIR)/vm ] && [ -d $(ASTSPOOLDIR)/vm ]; then \ - mv $(ASTSPOOLDIR)/vm $(ASTSPOOLDIR)/voicemail/default; \ + install -d $(DESTDIR)$(ASTHEADERDIR) + install include/asterisk/*.h $(DESTDIR)$(ASTHEADERDIR) + rm -f $(DESTDIR)$(ASTVARLIBDIR)/sounds/vm + rm -f $(DESTDIR)$(ASTVARLIBDIR)/sounds/voicemail + if [ ! -h $(DESTDIR)$(ASTSPOOLDIR)/vm ] && [ -d $(DESTDIR)$(ASTSPOOLDIR)/vm ]; then \ + mv $(DESTDIR)$(ASTSPOOLDIR)/vm $(DESTDIR)$(ASTSPOOLDIR)/voicemail/default; \ else \ - mkdir -p $(ASTSPOOLDIR)/voicemail/default; \ - rm -f $(ASTSPOOLDIR)/vm; \ + mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/voicemail/default; \ + rm -f $(DESTDIR)$(ASTSPOOLDIR)/vm; \ fi - ln -s $(ASTSPOOLDIR)/voicemail/default $(ASTSPOOLDIR)/vm - rm -f $(MODULES_DIR)/chan_ixj.so - rm -f $(MODULES_DIR)/chan_tor.so - rm -f $(MODULES_DIR)/cdr_mysql.so - mkdir -p $(ASTVARLIBDIR)/sounds - mkdir -p $(ASTLOGDIR)/cdr-csv - mkdir -p $(ASTVARLIBDIR)/keys - install -m 644 keys/iaxtel.pub $(ASTVARLIBDIR)/keys - ( cd $(ASTVARLIBDIR)/sounds ; ln -s $(ASTSPOOLDIR)/vm . ) - ( cd $(ASTVARLIBDIR)/sounds ; ln -s $(ASTSPOOLDIR)/voicemail . ) + ln -s $(ASTSPOOLDIR)/voicemail/default $(DESTDIR)$(ASTSPOOLDIR)/vm + rm -f $(DESTDIR)$(MODULES_DIR)/chan_ixj.so + rm -f $(DESTDIR)$(MODULES_DIR)/chan_tor.so + rm -f $(DESTDIR)$(MODULES_DIR)/cdr_mysql.so + mkdir -p $(DESTDIR)$(ASTVARLIBDIR)/sounds + mkdir -p $(DESTDIR)$(ASTLOGDIR)/cdr-csv + mkdir -p $(DESTDIR)$(ASTVARLIBDIR)/keys + install -m 644 keys/iaxtel.pub $(DESTDIR)$(ASTVARLIBDIR)/keys + ( cd $(DESTDIR)$(ASTVARLIBDIR)/sounds ; ln -s $(ASTSPOOLDIR)/vm . ) + ( cd $(DESTDIR)$(ASTVARLIBDIR)/sounds ; ln -s $(ASTSPOOLDIR)/voicemail . ) @echo " +---- Asterisk Installation Complete -------+" @echo " + +" @echo " + YOU MUST READ THE SECURITY DOCUMENT +" @@ -325,58 +331,58 @@ install: all datafiles bininstall upgrade: all bininstall adsi: all - mkdir -p $(ASTETCDIR) + mkdir -p $(DESTDIR)$(ASTETCDIR) for x in configs/*.adsi; do \ - if ! [ -f $(ASTETCDIRX)/$$x ]; then \ - install -m 644 $$x $(ASTETCDIR)/`basename $$x` ; \ + if ! [ -f $(DESTDIR)$(ASTETCDIRX)/$$x ]; then \ + install -m 644 $$x $(DESTDIR)$(ASTETCDIR)/`basename $$x` ; \ fi ; \ done samples: all datafiles adsi - mkdir -p $(ASTETCDIR) + mkdir -p $(DESTDIR)$(ASTETCDIR) for x in configs/*.sample; do \ - if [ -f $(ASTETCDIR)/`basename $$x .sample` ]; then \ - mv -f $(ASTETCDIR)/`basename $$x .sample` $(ASTETCDIR)/`basename $$x .sample`.old ; \ + if [ -f $(DESTDIR)$(ASTETCDIR)/`basename $$x .sample` ]; then \ + mv -f $(DESTDIR)$(ASTETCDIR)/`basename $$x .sample` $(DESTDIR)$(ASTETCDIR)/`basename $$x .sample`.old ; \ fi ; \ - install $$x $(ASTETCDIR)/`basename $$x .sample` ;\ + install $$x $(DESTDIR)$(ASTETCDIR)/`basename $$x .sample` ;\ done - echo "[directories]" > $(ASTETCDIR)/asterisk.conf - echo "astetcdir => $(ASTETCDIR)" >> $(ASTETCDIR)/asterisk.conf - echo "astmoddir => $(MODULES_DIR)" >> $(ASTETCDIR)/asterisk.conf - echo "astvarlibdir => $(ASTVARLIBDIR)" >> $(ASTETCDIR)/asterisk.conf - echo "astagidir => $(AGI_DIR)" >> $(ASTETCDIR)/asterisk.conf - echo "astspooldir => $(ASTSPOOLDIR)" >> $(ASTETCDIR)/asterisk.conf - echo "astrundir => $(ASTVARRUNDIR)" >> $(ASTETCDIR)/asterisk.conf - echo "astlogdir => $(ASTLOGDIR)" >> $(ASTETCDIR)/asterisk.conf + echo "[directories]" > $(DESTDIR)$(ASTETCDIR)/asterisk.conf + echo "astetcdir => $(ASTETCDIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf + echo "astmoddir => $(MODULES_DIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf + echo "astvarlibdir => $(ASTVARLIBDIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf + echo "astagidir => $(AGI_DIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf + echo "astspooldir => $(ASTSPOOLDIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf + echo "astrundir => $(ASTVARRUNDIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf + echo "astlogdir => $(ASTLOGDIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf for x in sounds/demo-*; do \ if grep -q "^%`basename $$x`%" sounds.txt; then \ - install $$x $(ASTVARLIBDIR)/sounds ; \ + install $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds ; \ else \ echo "No description for $$x"; \ exit 1; \ fi; \ done for x in sounds/*.mp3; do \ - install $$x $(ASTVARLIBDIR)/mohmp3 ; \ + install $$x $(DESTDIR)$(ASTVARLIBDIR)/mohmp3 ; \ done - mkdir -p $(ASTSPOOLDIR)/voicemail/default/1234/INBOX - :> $(ASTVARLIBDIR)/sounds/voicemail/default/1234/unavail.gsm + mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/voicemail/default/1234/INBOX + :> $(DESTDIR)$(ASTVARLIBDIR)/sounds/voicemail/default/1234/unavail.gsm for x in vm-theperson digits/1 digits/2 digits/3 digits/4 vm-isunavail; do \ - cat $(ASTVARLIBDIR)/sounds/$$x.gsm >> $(ASTVARLIBDIR)/sounds/voicemail/default/1234/unavail.gsm ; \ + cat $(DESTDIR)$(ASTVARLIBDIR)/sounds/$$x.gsm >> $(DESTDIR)$(ASTVARLIBDIR)/sounds/voicemail/default/1234/unavail.gsm ; \ done - :> $(ASTVARLIBDIR)/sounds/voicemail/default/1234/busy.gsm + :> $(DESTDIR)$(ASTVARLIBDIR)/sounds/voicemail/default/1234/busy.gsm for x in vm-theperson digits/1 digits/2 digits/3 digits/4 vm-isonphone; do \ - cat $(ASTVARLIBDIR)/sounds/$$x.gsm >> $(ASTVARLIBDIR)/sounds/voicemail/default/1234/busy.gsm ; \ + cat $(DESTDIR)$(ASTVARLIBDIR)/sounds/$$x.gsm >> $(DESTDIR)$(ASTVARLIBDIR)/sounds/voicemail/default/1234/busy.gsm ; \ done webvmail: - @[ -d $(HTTPDIR) ] || ( echo "No HTTP directory" && exit 1 ) - @[ -d $(HTTPDIR)/html ] || ( echo "No http directory" && exit 1 ) - @[ -d $(HTTPDIR)/cgi-bin ] || ( echo "No cgi-bin directory" && exit 1 ) - install -m 4755 -o root -g root vmail.cgi $(HTTPDIR)/cgi-bin/vmail.cgi - mkdir -p $(HTTPDIR)/html/_asterisk + @[ -d $(DESTDIR)$(HTTPDIR) ] || ( echo "No HTTP directory" && exit 1 ) + @[ -d $(DESTDIR)$(HTTPDIR)/html ] || ( echo "No http directory" && exit 1 ) + @[ -d $(DESTDIR)$(HTTPDIR)/cgi-bin ] || ( echo "No cgi-bin directory" && exit 1 ) + install -m 4755 -o root -g root vmail.cgi $(DESTDIR)$(HTTPDIR)/cgi-bin/vmail.cgi + mkdir -p $(DESTDIR)$(HTTPDIR)/html/_asterisk for x in images/*.gif; do \ - install -m 644 $$x $(HTTPDIR)/html/_asterisk/; \ + install -m 644 $$x $(DESTDIR)$(HTTPDIR)/html/_asterisk/; \ done @echo " +--------- Asterisk Web Voicemail ----------+" @echo " + +" @@ -396,8 +402,8 @@ rpm: __rpm __rpm: _version rm -rf /tmp/asterisk ; \ mkdir -p /tmp/asterisk/redhat/RPMS/i386 ; \ - $(MAKE) INSTALL_PREFIX=/tmp/asterisk install ; \ - $(MAKE) INSTALL_PREFIX=/tmp/asterisk samples ; \ + $(MAKE) DESTDIR=/tmp/asterisk install ; \ + $(MAKE) DESTDIR=/tmp/asterisk samples ; \ mkdir -p /tmp/asterisk/etc/rc.d/init.d ; \ cp -f redhat/asterisk /tmp/asterisk/etc/rc.d/init.d/ ; \ cp -f redhat/rpmrc /tmp/asterisk/ ; \ diff --git a/agi/Makefile b/agi/Makefile index 1257e6a78f..ee12bc353d 100755 --- a/agi/Makefile +++ b/agi/Makefile @@ -18,7 +18,8 @@ CFLAGS+= all: depend $(AGIS) install: all - for x in $(AGIS); do $(INSTALL) -m 755 $$x $(AGI_DIR) ; done + mkdir -p $(DESTDIR)$(AGI_DIR) + for x in $(AGIS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(AGI_DIR) ; done eagi-test: eagi-test.o $(CC) -o eagi-test eagi-test.o diff --git a/apps/Makefile b/apps/Makefile index b2ed7b473b..be910601fb 100755 --- a/apps/Makefile +++ b/apps/Makefile @@ -50,7 +50,7 @@ app_rpt.so : app_rpt.o $(CC) -shared -Xlinker -x -o $@ $< -ltonezone install: all - for x in $(APPS); do $(INSTALL) -m 755 $$x $(MODULES_DIR) ; done + for x in $(APPS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done app_todd.o: app_todd.c gcc -pipe -O6 -g -Iinclude -I../include -D_REENTRANT -march=i586 -DDO_CRASH -c -o app_todd.o app_todd.c diff --git a/astman/Makefile b/astman/Makefile index 18d9240572..476c4915c7 100755 --- a/astman/Makefile +++ b/astman/Makefile @@ -8,7 +8,7 @@ all: depend $(TARGET) install: if [ "$(TARGET)" != "none" ]; then \ for x in $(TARGET); do \ - install -m 755 $$x $(ASTSBINDIR)/astman; \ + install -m 755 $$x $(DESTDIR)$(ASTSBINDIR)/astman; \ done ; \ fi diff --git a/cdr/Makefile b/cdr/Makefile index 8b64bef3d8..64b21f7fcd 100755 --- a/cdr/Makefile +++ b/cdr/Makefile @@ -34,7 +34,7 @@ MLFLAGS+=$(shell if [ -f /usr/lib/libpq.so ]; then echo "-L/usr/lib"; fi) all: depend $(MODS) install: all - for x in $(MODS); do $(INSTALL) -m 755 $$x $(MODULES_DIR) ; done + for x in $(MODS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done clean: rm -f *.so *.o .depend diff --git a/channels/Makefile b/channels/Makefile index 82d524a7f6..2ba9b7041f 100755 --- a/channels/Makefile +++ b/channels/Makefile @@ -128,7 +128,7 @@ chan_h323.so: chan_h323.o h323/libchanh323.a # $(CC) -rdynamic -shared -Xlinker -x -o $@ $< install: all - for x in $(CHANNEL_LIBS); do $(INSTALL) -m 755 $$x $(MODULES_DIR) ; done + for x in $(CHANNEL_LIBS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done depend: .depend diff --git a/codecs/Makefile b/codecs/Makefile index c6bfbe97de..75bcced3c3 100755 --- a/codecs/Makefile +++ b/codecs/Makefile @@ -97,7 +97,7 @@ codec_mp3_d.so: codec_mp3_d.o $(LIBMP3) include .depend install: all - for x in $(CODECS); do $(INSTALL) -m 755 $$x $(MODULES_DIR) ; done + for x in $(CODECS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done depend: .depend diff --git a/formats/Makefile b/formats/Makefile index 4ee85f489d..036118c5bf 100755 --- a/formats/Makefile +++ b/formats/Makefile @@ -40,7 +40,7 @@ format_mp3.so : format_mp3.o $(CC) -shared -Xlinker -x -o $@ $< -lm install: all - for x in $(FORMAT_LIBS); do $(INSTALL) -m 755 $$x $(MODULES_DIR) ; done + for x in $(FORMAT_LIBS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done depend: .depend diff --git a/pbx/Makefile b/pbx/Makefile index 96ae7e3721..0ce439696d 100755 --- a/pbx/Makefile +++ b/pbx/Makefile @@ -62,7 +62,7 @@ include .depend endif install: all - for x in $(PBX_LIBS); do $(INSTALL) -m 755 $$x $(MODULES_DIR) ; done + for x in $(PBX_LIBS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done depend: .depend diff --git a/res/Makefile b/res/Makefile index 314d94da85..b7434bd8f9 100755 --- a/res/Makefile +++ b/res/Makefile @@ -25,7 +25,7 @@ CFLAGS+=-DOPENSSL_NO_KRB5 -fPIC all: depend $(MODS) install: all - for x in $(MODS); do $(INSTALL) -m 755 $$x $(MODULES_DIR) ; done + for x in $(MODS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done res_crypto.so: res_crypto.o $(CC) -shared -Xlinker -x -o $@ $< $(CRYPTO_LIBS) -- GitLab