--- Makefile.orig 2010-06-11 05:35:06.000000000 +0900 +++ Makefile 2010-09-25 23:04:59.000000000 +0900 @@ -121,7 +121,7 @@ OVERWRITE=y # Include debug and macro symbols in the executables (-g) and profiling info (-pg) -DEBUG=-g3 +#DEBUG=-g3 # Define standard directories for various platforms @@ -149,7 +149,7 @@ ASTMANDIR=$(mandir) ifneq ($(findstring BSD,$(OSARCH)),) ASTVARLIBDIR=$(prefix)/share/asterisk - ASTVARRUNDIR=$(localstatedir)/run/asterisk + ASTVARRUNDIR=$(localstatedir)/run ASTDBDIR=$(localstatedir)/db/asterisk else ASTVARLIBDIR=$(localstatedir)/lib/asterisk @@ -248,12 +248,13 @@ ifneq ($(findstring BSD,$(OSARCH)),) _ASTCFLAGS+=-isystem /usr/local/include endif - +ifneq ($(OSARCH),FreeBSD) ifeq ($(findstring -march,$(_ASTCFLAGS) $(ASTCFLAGS)),) ifneq ($(PROC),ultrasparc) _ASTCFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi) endif endif +endif ifeq ($(PROC),ppc) _ASTCFLAGS+=-fsigned-char @@ -261,7 +262,7 @@ 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) + BSDVERSION=$(OSVERSION) _ASTCFLAGS+=$(shell if test $(BSDVERSION) -lt 500016 ; then echo "-D_THREAD_SAFE"; fi) endif @@ -478,21 +479,23 @@ # Should static HTTP be installed during make samples or even with its own target ala # webvoicemail? There are portions here that *could* be customized but might also be # improved a lot. I'll put it here for now. - mkdir -p $(DESTDIR)$(ASTDATADIR)/static-http + $(MKDIR) $(DESTDIR)$(ASTDATADIR)/static-http for x in static-http/*; do \ - $(INSTALL) -m 644 $$x $(DESTDIR)$(ASTDATADIR)/static-http ; \ + $(BSD_INSTALL_DATA) $$x $(DESTDIR)$(ASTDATADIR)/static-http ; \ done if [ -d doc/tex/asterisk ] ; then \ - mkdir -p $(DESTDIR)$(ASTDATADIR)/static-http/docs ; \ + $(MKDIR) $(DESTDIR)$(DOCSDIR) ; \ for n in doc/tex/asterisk/* ; do \ - $(INSTALL) -m 644 $$n $(DESTDIR)$(ASTDATADIR)/static-http/docs ; \ + $(BSD_INSTALL_DATA) $$n $(DESTDIR)$(DOCSDIR) ; \ done \ fi - mkdir -p $(DESTDIR)$(ASTDATADIR)/images + if [ ! -d $(DESTDIR)$(DOCSDIR)/images ]; then \ + $(MKDIR) $(DESTDIR)$(DOCSDIR)/images; \ + fi for x in images/*.jpg; do \ - $(INSTALL) -m 644 $$x $(DESTDIR)$(ASTDATADIR)/images ; \ + $(BSD_INSTALL_DATA) $$x $(DESTDIR)$(DOCSDIR)/images ; \ done - mkdir -p $(DESTDIR)$(AGI_DIR) + $(MKDIR) $(DESTDIR)$(AGI_DIR) $(MAKE) -C sounds install doc/core-en_US.xml: $(foreach dir,$(MOD_SUBDIRS),$(shell $(GREP) -l "language=\"en_US\"" $(dir)/*.c $(dir)/*.cc 2>/dev/null)) @@ -539,50 +542,52 @@ OLDHEADERS=$(filter-out $(NEWHEADERS),$(notdir $(wildcard $(DESTDIR)$(ASTHEADERDIR)/*.h))) installdirs: - mkdir -p $(DESTDIR)$(MODULES_DIR) - mkdir -p $(DESTDIR)$(ASTSBINDIR) - mkdir -p $(DESTDIR)$(ASTETCDIR) - mkdir -p $(DESTDIR)$(ASTVARRUNDIR) - mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/voicemail - mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/dictate - mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/system - mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/tmp - mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/meetme - mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/monitor + $(MKDIR) $(DESTDIR)$(MODULES_DIR) + $(MKDIR) $(DESTDIR)$(ASTSBINDIR) + $(MKDIR) $(DESTDIR)$(ASTETCDIR) + $(MKDIR) $(DESTDIR)$(ASTVARRUNDIR) + $(MKDIR) $(DESTDIR)$(ASTDBDIR) + $(MKDIR) $(DESTDIR)$(ASTSPOOLDIR)/voicemail + $(MKDIR) $(DESTDIR)$(ASTSPOOLDIR)/dictate + $(MKDIR) $(DESTDIR)$(ASTSPOOLDIR)/outgoing + $(MKDIR) $(DESTDIR)$(ASTSPOOLDIR)/system + $(MKDIR) $(DESTDIR)$(ASTSPOOLDIR)/tmp + $(MKDIR) $(DESTDIR)$(ASTSPOOLDIR)/meetme + $(MKDIR) $(DESTDIR)$(ASTSPOOLDIR)/monitor bininstall: _all installdirs $(SUBDIRS_INSTALL) - $(INSTALL) -m 755 main/asterisk $(DESTDIR)$(ASTSBINDIR)/ + $(BSD_INSTALL_PROGRAM) main/asterisk $(DESTDIR)$(ASTSBINDIR)/ $(LN) -sf asterisk $(DESTDIR)$(ASTSBINDIR)/rasterisk - $(INSTALL) -m 755 contrib/scripts/astgenkey $(DESTDIR)$(ASTSBINDIR)/ - $(INSTALL) -m 755 contrib/scripts/autosupport $(DESTDIR)$(ASTSBINDIR)/ + $(BSD_INSTALL_SCRIPT) contrib/scripts/astgenkey $(DESTDIR)$(ASTSBINDIR)/ + $(BSD_INSTALL_SCRIPT) contrib/scripts/autosupport $(DESTDIR)$(ASTSBINDIR)/ if [ ! -f $(DESTDIR)$(ASTSBINDIR)/safe_asterisk ]; then \ - cat contrib/scripts/safe_asterisk | sed 's|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)$(ASTSBINDIR)/safe_asterisk ;\ - chmod 755 $(DESTDIR)$(ASTSBINDIR)/safe_asterisk;\ + cat contrib/scripts/safe_asterisk | sed 's|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > contrib/scripts/safe_asterisk.out;\ + ${BSD_INSTALL_SCRIPT} contrib/scripts/safe_asterisk.out $(DESTDIR)$(ASTSBINDIR)/safe_asterisk;\ fi - $(INSTALL) -d $(DESTDIR)$(ASTHEADERDIR) - $(INSTALL) -m 644 include/asterisk.h $(DESTDIR)$(includedir) - $(INSTALL) -m 644 include/asterisk/*.h $(DESTDIR)$(ASTHEADERDIR) + $(MKDIR) $(DESTDIR)$(ASTHEADERDIR) + $(BSD_INSTALL_DATA) include/asterisk.h $(DESTDIR)$(includedir) + $(BSD_INSTALL_DATA) include/asterisk/*.h $(DESTDIR)$(ASTHEADERDIR) if [ -n "$(OLDHEADERS)" ]; then \ rm -f $(addprefix $(DESTDIR)$(ASTHEADERDIR)/,$(OLDHEADERS)) ;\ fi - mkdir -p $(DESTDIR)$(ASTDATADIR)/documentation - mkdir -p $(DESTDIR)$(ASTDATADIR)/documentation/thirdparty - mkdir -p $(DESTDIR)$(ASTLOGDIR)/cdr-csv - mkdir -p $(DESTDIR)$(ASTLOGDIR)/cdr-custom - mkdir -p $(DESTDIR)$(ASTDATADIR)/keys - mkdir -p $(DESTDIR)$(ASTDATADIR)/firmware - mkdir -p $(DESTDIR)$(ASTDATADIR)/firmware/iax - mkdir -p $(DESTDIR)$(ASTMANDIR)/man8 - $(INSTALL) -m 644 doc/core-*.xml $(DESTDIR)$(ASTDATADIR)/documentation - $(INSTALL) -m 644 doc/appdocsxml.dtd $(DESTDIR)$(ASTDATADIR)/documentation - $(INSTALL) -m 644 keys/iaxtel.pub $(DESTDIR)$(ASTDATADIR)/keys - $(INSTALL) -m 644 keys/freeworlddialup.pub $(DESTDIR)$(ASTDATADIR)/keys - $(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 + $(MKDIR) $(DESTDIR)$(ASTDATADIR)/documentation + $(MKDIR) $(DESTDIR)$(ASTDATADIR)/documentation/thirdparty + $(MKDIR) $(DESTDIR)$(ASTLOGDIR)/cdr-csv + $(MKDIR) $(DESTDIR)$(ASTLOGDIR)/cdr-custom + $(MKDIR) $(DESTDIR)$(ASTDATADIR)/keys + $(MKDIR) $(DESTDIR)$(ASTDATADIR)/firmware + $(MKDIR) $(DESTDIR)$(ASTDATADIR)/firmware/iax + $(MKDIR) $(DESTDIR)$(ASTMANDIR)/man8 + $(BSD_INSTALL_DATA) doc/core-*.xml $(DESTDIR)$(ASTDATADIR)/documentation + $(BSD_INSTALL_DATA) doc/appdocsxml.dtd $(DESTDIR)$(ASTDATADIR)/documentation + $(BSD_INSTALL_DATA) keys/iaxtel.pub $(DESTDIR)$(ASTDATADIR)/keys + $(BSD_INSTALL_DATA) keys/freeworlddialup.pub $(DESTDIR)$(ASTDATADIR)/keys + $(BSD_INSTALL_MAN) doc/asterisk.8 $(DESTDIR)$(ASTMANDIR)/man8 + $(BSD_INSTALL_MAN) contrib/scripts/astgenkey.8 $(DESTDIR)$(ASTMANDIR)/man8 + $(BSD_INSTALL_MAN) contrib/scripts/autosupport.8 $(DESTDIR)$(ASTMANDIR)/man8 + $(BSD_INSTALL_MAN) 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; \ + $(BSD_INSTALL_DATA) contrib/firmware/iax/iaxy.bin $(DESTDIR)$(ASTDATADIR)/firmware/iax/iaxy.bin; \ fi $(SUBDIRS_INSTALL): @@ -616,7 +621,7 @@ @exit 1 endif -install: badshell datafiles bininstall +install: badshell datafiles bininstall samples @if [ -x /usr/sbin/asterisk-post-install ]; then \ /usr/sbin/asterisk-post-install $(DESTDIR) . ; \ fi @@ -650,38 +655,25 @@ # XXX why *.adsi is installed first ? adsi: @echo Installing adsi config files... - @mkdir -p $(DESTDIR)$(ASTETCDIR) + @$(MKDIR) $(DESTDIR)$(ASTETCDIR) @for x in configs/*.adsi; do \ dst="$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x`" ; \ if [ -f $${dst} ] ; then \ - echo "Overwriting $$x" ; \ - else \ - echo "Installing $$x" ; \ + $(BSD_INSTALL_DATA) $$x $(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x` ; \ fi ; \ - $(INSTALL) -m 644 $$x $(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x` ; \ + $(BSD_INSTALL_DATA) $$x $(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x`-dist ; \ done samples: adsi @echo Installing other config files... - @mkdir -p $(DESTDIR)$(ASTETCDIR) + @$(MKDIR) $(DESTDIR)$(ASTETCDIR) @for x in configs/*.sample; do \ - dst="$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x .sample`" ; \ - if [ -f $${dst} ]; then \ - if [ "$(OVERWRITE)" = "y" ]; then \ - if cmp -s $${dst} $$x ; then \ - echo "Config file $$x is unchanged"; \ - continue; \ - fi ; \ - mv -f $${dst} $${dst}.old ; \ - else \ - echo "Skipping config file $$x"; \ - continue; \ - fi ;\ + $(BSD_INSTALL_DATA) $$x $(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x .sample`-dist ; \ + if [ ! -f $(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x .sample` ]; then \ + $(BSD_INSTALL_DATA) $$x $(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x .sample`; \ fi ; \ - echo "Installing file $$x"; \ - $(INSTALL) -m 644 $$x $${dst} ;\ done - @if [ "$(OVERWRITE)" = "y" ] || [ ! -f $(DESTDIR)$(ASTCONFPATH) ]; then \ + @if true; then \ echo "Creating asterisk.conf"; \ ( \ echo "[directories](!) ; remove the (!) to enable this" ; \ @@ -745,14 +737,17 @@ echo "pbx_realtime=1.6" ; \ echo "res_agi=1.6" ; \ echo "app_set=1.6" ; \ - ) > $(DESTDIR)$(ASTCONFPATH) ; \ + ) > $(DESTDIR)$(ASTCONFPATH)-dist ; \ + if [ ! -f $(DESTDIR)$(ASTCONFPATH) ]; then \ + $(BSD_INSTALL_DATA) $(DESTDIR)$(ASTCONFPATH)-dist $(DESTDIR)$(ASTCONFPATH); \ + fi; \ else \ echo "Skipping asterisk.conf creation"; \ fi - mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/voicemail/default/1234/INBOX + $(MKDIR) $(DESTDIR)$(ASTSPOOLDIR)/voicemail/default/1234/INBOX build_tools/make_sample_voicemail $(DESTDIR)/$(ASTDATADIR) $(DESTDIR)/$(ASTSPOOLDIR) - @mkdir -p $(DESTDIR)$(ASTDATADIR)/phoneprov - @for x in phoneprov/*; do \ + @$(MKDIR) $(DESTDIR)$(ASTDATADIR)/phoneprov + for x in phoneprov/*; do \ dst="$(DESTDIR)$(ASTDATADIR)/$$x" ; \ if [ -f $${dst} ]; then \ if [ "$(OVERWRITE)" = "y" ]; then \ @@ -767,14 +762,14 @@ fi ;\ fi ; \ echo "Installing file $$x"; \ - $(INSTALL) -m 644 $$x $${dst} ;\ + $(BSD_INSTALL_DATA) $$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 -o root -g root contrib/scripts/vmail.cgi $(DESTDIR)$(HTTP_CGIDIR)/vmail.cgi - mkdir -p $(DESTDIR)$(HTTP_DOCSDIR)/_asterisk + $(MKDIR) $(DESTDIR)$(HTTP_DOCSDIR)/_asterisk for x in images/*.gif; do \ $(INSTALL) -m 644 $$x $(DESTDIR)$(HTTP_DOCSDIR)/_asterisk/; \ done