Add DESTDIR support (bug #200)
authorMark Spencer <markster@digium.com>
Sat, 25 Oct 2003 17:27:53 +0000 (17:27 +0000)
committerMark Spencer <markster@digium.com>
Sat, 25 Oct 2003 17:27:53 +0000 (17:27 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1664 65c4cc65-6c06-0410-ace0-fbb531ad65f3

Makefile
agi/Makefile
apps/Makefile
astman/Makefile
cdr/Makefile
channels/Makefile
codecs/Makefile
formats/Makefile
pbx/Makefile
res/Makefile

index f429c25..a0c5e64 100755 (executable)
--- 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/ ; \
index 1257e6a..ee12bc3 100755 (executable)
@@ -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
index b2ed7b4..be91060 100755 (executable)
@@ -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
index 18d9240..476c491 100755 (executable)
@@ -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
 
index 8b64bef..64b21f7 100755 (executable)
@@ -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
index 82d524a..2ba9b70 100755 (executable)
@@ -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
 
index c6bfbe9..75bcced 100755 (executable)
@@ -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
 
index 4ee85f4..036118c 100755 (executable)
@@ -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
 
index 96ae7e3..0ce4396 100755 (executable)
@@ -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
 
index 314d94d..b7434bd 100755 (executable)
@@ -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)