# $Id: Makefile,v 1.9 2005/06/05 10:18:37 nbd Exp $ include $(TOPDIR)/rules.mk PKG_NAME:=asterisk PKG_VERSION:=1.2.13 PKG_RELEASE:=1 PKG_MD5SUM:=ad8fbe2198568f55c254045ecb3b7926 PKG_SOURCE_URL:=http://www.asterisk.org/html/downloads ftp://ftp.asterisk.org/pub/asterisk http://ftp.digium.com/pub/asterisk/old-releases/ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_CAT:=zcat include $(TOPDIR)/package/rules.mk $(eval $(call PKG_template,ASTERISK,asterisk,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) $(eval $(call PKG_template,ASTERISK_VOICEMAIL,asterisk-voicemail,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) $(eval $(call PKG_template,ASTERISK_SOUNDS,asterisk-sounds,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) $(PKG_BUILD_DIR)/.configured: touch $@ .PHONY: asterisk asterisk: $(PKG_BUILD_DIR)/.configured $(MAKE) -C "$(PKG_BUILD_DIR)/channels" \ CC="$(HOSTCC)" \ gentone $(MAKE) -C "$(PKG_BUILD_DIR)" \ CC_FOR_BUILD="$(HOSTCC)" \ $(TARGET_CONFIGURE_OPTS) \ OPTIMIZE="$(TARGET_CFLAGS)" \ PROC="$(ARCH)" \ CFLAGS_EXTRA="-I$(STAGING_DIR)/usr/include -ffast-math -mfast-fp -D__FIXED_PT__ -D__BLACKFIN__" \ LDFLAGS_EXTRA="-L$(STAGING_DIR)/usr/lib -Wl,-elf2flt" \ EXTRA_APPS="$(APPS)" \ EXTRA_MODS="$(STAGING_DIR)/usr/lib/threadstack.o $(MODS)" \ LIBTOOL="$(STAGING_DIR)/bin/libtool" # make sample conf files, install everything into a temp dir, then we prune out the stuff we don't want install: $(MAKE) -C $(PKG_BUILD_DIR) \ DESTDIR="$(IDIR_ASTERISK)" \ install samples rm -rf $(IDIR_ASTERISK)/usr/sbin/astgenkey rm -rf $(IDIR_ASTERISK)/usr/bin rm -rf $(IDIR_ASTERISK)/usr/share rm -rf $(IDIR_ASTERISK)/usr/include (cd $(IDIR_ASTERISK)/usr/lib/asterisk; \ cd modules; \ rm -rf *adsi* *festival* *modem* *meetme* *oss* *phone* *intercom* \ *nbscat* *mysql* *postgres* *pgsql*\ *zapateller* *jpeg*; \ rm -f {codec,format}_ilbc.so ; \ rm -f codec_lpc10.so ; \ rm -f pbx_dundi.so ; \ ) (cd $(IDIR_ASTERISK)/etc/asterisk; \ rm -f *odbc* *mysql* *postgres* *pgsql* *adsi* *oss* *alsa* \ *festival* *modem* *meetme* *phone* *tds* *vofr* *rpt* *vpb* \ ; \ rm -f dundi.conf ; \ ) # add our custom .conf files for testing cp -f files/*.conf $(IDIR_ASTERISK)/etc/asterisk # add mulaw demo files, they sound better and work faster cp -f files/*.ulaw $(IDIR_ASTERISK)/var/lib/asterisk/sounds/ # add mulaw moh file mkdir -p $(IDIR_ASTERISK)/var/lib/asterisk/moh-native mv $(IDIR_ASTERISK)/var/lib/asterisk/sounds/fpm-calm-river.ulaw \ $(IDIR_ASTERISK)/var/lib/asterisk/moh-native # directories needed at run time mkdir -p $(IDIR_ASTERISK)/var/lib/asterisk mkdir -p $(IDIR_ASTERISK)/var/log/asterisk/cdr-csv # rm actual executable as we download this separately rm -f $(IDIR_ASTERISK)/usr/sbin/asterisk download: # used during development rm -f $(PKG_BUILD_DIR)/asterisk $(MAKE) $(PKG_BUILD_DIR)/asterisk cp -f $(PKG_BUILD_DIR)/asterisk /tftpboot # stuff to make asterisk boot automatically - leave out for now # install -d -m0755 $(IDIR_ASTERISK)/etc/default # install -m0644 ./files/asterisk.default $(IDIR_ASTERISK)/etc/default/asterisk # install -d -m0755 $(IDIR_ASTERISK)/etc/init.d # install -m0755 ./files/asterisk.init $(IDIR_ASTERISK)/etc/init.d/asterisk # ln -sf asterisk $(IDIR_ASTERISK)/etc/init.d/S60asterisk compile: asterisk # create patches PATCHDIRS = res channels pbx apps formats cdr db1-ast codecs include make-patches: # un tar original asterisk in dir next to our version, but # append orig to dir name tar xvzf $(DL_DIR)/$(PKG_SOURCE) rm -Rf $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-orig mv $(PKG_NAME)-$(PKG_VERSION) \ $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-orig # clean up our dir (and my emacs backup files :-) ) $(MAKE) -C "$(PKG_BUILD_DIR)" clean find $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) -name '*~' | xargs rm -f find $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) -name .libs | xargs rm -Rf # run patch on directories we have modified -cd $(BUILD_DIR); \ diff -uN $(PKG_NAME)-$(PKG_VERSION)-orig \ $(PKG_NAME)-$(PKG_VERSION) \ > $(TOPDIR)/package/$(PKG_NAME)/patches/$(PKG_NAME).diff -for x in $(PATCHDIRS); do \ cd $(BUILD_DIR); \ diff -ruN $(PKG_NAME)-$(PKG_VERSION)-orig/$$x \ $(PKG_NAME)-$(PKG_VERSION)/$$x \ > $(TOPDIR)/package/$(PKG_NAME)/patches/$$x.diff; \ done rm -Rf $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-orig # Make a bootable linux image containing uCasterisk executable and all # support files. The $(ASTCFG) gets passed in from top level makefile # and specified the extensions of the config files make-bin: # install uCasterisk files (remove most prompts to save space) cp -a $(IDIR_ASTERISK)/* $(TOPDIR)/romfs find $(TOPDIR)/romfs -name *.gsm | xargs rm -f find $(TOPDIR)/romfs -name *.mp3 | xargs rm -f rm -f $(TOPDIR)/romfs/var/lib/asterisk/sounds/*.gsm rm -f $(TOPDIR)/romfs/var/lib/asterisk/sounds/demo-echotest.ulaw rm -f $(TOPDIR)/romfs/var/lib/asterisk/sounds/demo-echotest.ulaw cp -a $(PKG_BUILD_DIR)/asterisk $(TOPDIR)/romfs/sbin chmod u+x $(TOPDIR)/romfs/sbin/asterisk cp $(TOPDIR)/src/bfsi.ko $(TOPDIR)/romfs # configuration cp files/rc.2fxo2fxs $(TOPDIR)/romfs/etc/rc cp files/zapata.conf.$(ASTCFG) $(TOPDIR)/romfs/etc/asterisk/zapata.conf cp files/extensions.conf.$(ASTCFG) \ $(TOPDIR)/romfs/etc/asterisk/extensions.conf # Now make linux image using uClinux-dist Makefile make -C $(BR2_KERNEL_SOURCE)/../ \ IMAGEDIR=$(TOPDIR)/images \ ROMFSDIR=$(TOPDIR)/romfs \ BLOCKS=15080 image # Install all the Asterisk files we need on a MMC card mounted on # $(MMCDIR) make-mmc: # install uCasterisk files mkdir -p $(MMCDIR) # clean out any old files rm -Rf $(MMCDIR)/etc $(MMCDIR)/sbin $(MMCDIR)/usr $(MMCDIR)/var cp -a $(IDIR_ASTERISK)/* $(MMCDIR) mkdir -p $(MMCDIR)/sbin cp -a $(PKG_BUILD_DIR)/asterisk $(MMCDIR)/sbin chmod u+x $(MMCDIR)/sbin/asterisk # configuration cp files/zapata.conf.2fxo2fxs $(MMCDIR)/etc/asterisk/zapata.conf cp files/extensions.conf.2fxo2fxs \ $(MMCDIR)/etc/asterisk/extensions.conf cp files/rc.asterisk $(MMCDIR)/etc/rc.asterisk chmod u+x $(MMCDIR)/etc/rc.asterisk # Make a uImage that will boot Asterisk off the MMC card make-bin-mmc: # special rc to mount MMC, copy files, and start Asterisk cp files/rc.mmc $(TOPDIR)/romfs/etc/rc # Now make uImage using uClinux-dist Makefile make -C $(BR2_KERNEL_SOURCE)/../ \ IMAGEDIR=$(TOPDIR)/images \ ROMFSDIR=$(TOPDIR)/romfs image