Makefile 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. # This file is part of the OpenADK project. OpenADK is copyrighted
  2. # material, please see the LICENCE file in the top-level directory.
  3. include $(ADK_TOPDIR)/rules.mk
  4. PKG_NAME:= asterisk
  5. PKG_VERSION:= 20.11.1
  6. PKG_RELEASE:= 1
  7. PKG_HASH:= 5ad25c136c7772f0ad10ae02d59f19b32c0cf64027278e3de6a6314ee24d5ff9
  8. PKG_DESCR:= open source pbx
  9. PKG_SECTION:= net/voip
  10. PKG_DEPENDS:= libncurses libcurl libopenssl libedit libuuid libjansson
  11. PKG_DEPENDS+= libxml2 libsqlite libxslt
  12. PKG_BUILDDEP:= ncurses zlib curl popt openssl libedit util-linux libjansson
  13. PKG_BUILDDEP+= libxml2 sqlite libxslt
  14. PKG_NEEDS:= threads c++
  15. PKG_URL:= http://www.asterisk.org/
  16. PKG_SITES:= http://downloads.asterisk.org/pub/telephony/asterisk/releases/
  17. DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
  18. PKG_LIBC_DEPENDS:= uclibc-ng glibc
  19. PKG_SUBPKGS:= ASTERISK ASTERISK_VOICEMAIL ASTERISK_SOUNDS
  20. PKG_SUBPKGS+= ASTERISK_CHAN_IAX2 ASTERISK_CODEC_SPEEX ASTERISK_CODEC_GSM
  21. PKG_SUBPKGS+= ASTERISK_PBX_DUNDI ASTERISK_RES_AGI
  22. PKGSD_ASTERISK_VOICEMAIL:= voicemail support
  23. PKGSN_ASTERISK_VOICEMAIL:= asterisk
  24. PKGSD_ASTERISK_CODEC_GSM:= GSM codec support
  25. PKGSN_ASTERISK_CODEC_GSM:= asterisk
  26. PKGSD_ASTERISK_PBX_DUNDI:= PBX dundi support
  27. PKGSN_ASTERISK_PBX_DUNDI:= asterisk
  28. PKGSD_ASTERISK_RES_AGI:= res agi support
  29. PKGSN_ASTERISK_RES_AGI:= asterisk
  30. PKGSD_ASTERISK_CHAN_IAX2:= support for the Inter Asterisk Protocol
  31. PKGSN_ASTERISK_CHAN_IAX2:= asterisk
  32. PKGSD_ASTERISK_CODEC_SPEEX:= speex/PCM16 Codec translator
  33. PKGSB_ASTERISK_CODEC_SPEEX:= speex
  34. PKGSN_ASTERISK_CODEC_SPEEX:= asterisk
  35. PKGSD_ASTERISK_SOUNDS:= various soundfiles in GSM format
  36. PKGSN_ASTERISK_SOUNDS:= asterisk
  37. PKGSS_ASTERISK_SOUNDS:= asterisk-codec-gsm
  38. include $(ADK_TOPDIR)/mk/package.mk
  39. $(eval $(call PKG_template,ASTERISK,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
  40. $(eval $(call PKG_template,ASTERISK_VOICEMAIL,asterisk-voicemail,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_ASTERISK_VOICEMAIL},${PKG_SECTION}))
  41. $(eval $(call PKG_template,ASTERISK_SOUNDS,asterisk-sounds,$(PKG_VERSION)-${PKG_RELEASE},${PKGSS_ASTERISK_SOUNDS},${PKGSD_ASTERISK_SOUNDS},${PKG_SECTION}))
  42. $(eval $(call PKG_template,ASTERISK_CHAN_IAX2,asterisk-chan-iax2,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_ASTERISK_CHAN_IAX2},${PKG_SECTION}))
  43. $(eval $(call PKG_template,ASTERISK_CODEC_SPEEX,asterisk-codec-speex,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_ASTERISK_CODEC_SPEEX},${PKG_SECTION}))
  44. $(eval $(call PKG_template,ASTERISK_CODEC_GSM,asterisk-codec-gsm,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_ASTERISK_CODEC_GSM},${PKG_SECTION}))
  45. $(eval $(call PKG_template,ASTERISK_PBX_DUNDI,asterisk-pbx-dundi,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_ASTERISK_PBX_DUNDI},${PKG_SECTION}))
  46. $(eval $(call PKG_template,ASTERISK_RES_AGI,asterisk-res-agi,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_ASTERISK_RES_AGI},${PKG_SECTION}))
  47. CONFIGURE_ARGS= --with-z=${STAGING_TARGET_DIR}/usr \
  48. --with-libedit=${STAGING_TARGET_DIR}/usr \
  49. --with-jansson=${STAGING_TARGET_DIR}/usr \
  50. --with-ssl=${STAGING_TARGET_DIR}/usr \
  51. --disable-xmldoc \
  52. --without-tonezone \
  53. --without-asound \
  54. --without-gtk2 \
  55. --without-iksemel \
  56. --without-imap \
  57. --without-netsnmp \
  58. --without-newt \
  59. --without-osptk \
  60. --without-popt \
  61. --without-portaudio \
  62. --without-pri \
  63. --without-tds \
  64. --without-postgres
  65. ifneq (${ADK_PACKAGE_ASTERISK_CODEC_GSM},)
  66. CONFIGURE_ARGS+= --with-gsm=internal
  67. else
  68. CONFIGURE_ARGS+= --without-gsm
  69. endif
  70. ifneq (${ADK_PACKAGE_ASTERISK_CODEC_SPEEX},)
  71. CONFIGURE_ARGS+= --with-speex=${STAGING_TARGET_DIR}/usr
  72. EXTRA_CFLAGS+= -I$(STAGING_TARGET_DIR)/usr/include/speex
  73. endif
  74. ifneq (${ADK_PACKAGE_ASTERISK_FORMAT_VORBIS},)
  75. CONFIGURE_ARGS+= --with-ogg=${STAGING_TARGET_DIR}/usr \
  76. --with-vorbis=${STAGING_TARGET_DIR}/usr
  77. TARGET_LDFLAGS+= -logg
  78. endif
  79. ifneq (${ADK_PACKAGE_ASTERISK_CURL},)
  80. CONFIGURE_ARGS+= --with-libcurl=${STAGING_TARGET_DIR}/usr
  81. else
  82. CONFIGURE_ARGS+= --without-libcurl
  83. endif
  84. INSTALL_STYLE:= manual
  85. TARGET_LDFLAGS+= -lm -ltinfo -ldl -lpthread
  86. MAKE_ENV:= PATH="$(HOST_PATH)" \
  87. ASTCFLAGS="${TARGET_CPPFLAGS} -DHAVE_STRTOQ" \
  88. ASTLDFLAGS="${TARGET_LDFLAGS} -z muldefs"
  89. MAKE_FLAGS+= DESTDIR="$(WRKINST)" \
  90. OPTIMIZE="${TARGET_CFLAGS}" \
  91. NOISY_BUILD=1
  92. ALL_TARGET:= all install samples
  93. pre-configure:
  94. cd "$(WRKBUILD)/menuselect"; PATH="$(HOST_PATH)" ./configure
  95. pre-build:
  96. PATH="$(HOST_PATH)" $(MAKE) -C $(WRKBUILD)/menuselect
  97. #post-build:
  98. # cd ${WRKBUILD}/sounds ; \
  99. # tar xzf asterisk-core-sounds-en-gsm-1.4.25.tar.gz ; \
  100. # rm asterisk-core-sounds-en-gsm-1.4.25.tar.gz
  101. do-install:
  102. $(CP) $(WRKINST)/* $(IDIR_ASTERISK)
  103. rm -rf $(IDIR_ASTERISK)/usr/sbin/astgenkey
  104. rm -rf $(IDIR_ASTERISK)/usr/bin
  105. rm -rf $(IDIR_ASTERISK)/usr/share
  106. rm -rf $(IDIR_ASTERISK)/usr/include
  107. rm -rf $(IDIR_ASTERISK)/var
  108. (cd $(IDIR_ASTERISK)/usr/lib/asterisk; \
  109. rm -rf agi-bin; \
  110. rm -rf images; \
  111. rm -rf keys/*; \
  112. rm -rf mohmp3/*.mp3; \
  113. rm -rf sounds/*; \
  114. ln -s /tmp sounds/priv-callerintros; \
  115. cd modules; \
  116. rm -rf *adsi* *festival* *modem* *meetme* *oss* \
  117. *phone* *intercom* *mp3* *nbscat* *mysql* \
  118. *postgres* *pgsql* *voicemail* *speex* \
  119. *zapateller* *jpeg*; \
  120. rm -f chan_bluetooth.so ; \
  121. rm -f chan_h323.so ; \
  122. rm -f chan_iax2.so ; \
  123. rm -f chan_mgcp.so ; \
  124. rm -f chan_skinny.so ; \
  125. rm -f {codec,format}_ilbc.so ; \
  126. rm -f codec_gsm.so ; \
  127. rm -f codec_lpc10.so ; \
  128. rm -f pbx_dundi.so ; \
  129. rm -f res_agi.so ; \
  130. )
  131. (cd $(IDIR_ASTERISK)/etc/asterisk; \
  132. rm -f *iax* *odbc* *mysql* *postgres* *pgsql* \
  133. *voicemail* *adsi* *oss* *alsa* \
  134. *festival* *modem* *meetme* *phone* *tds* \
  135. *vofr* *rpt* *vpb* \
  136. *zapata*; \
  137. rm -f bluetooth.conf ; \
  138. rm -f mgcp.conf ; \
  139. rm -f gtalk.conf ; \
  140. rm -f skinny.conf ; \
  141. rm -f dundi.conf ; \
  142. $(SED) '/^astdatadir /s#/var/#/usr/#' asterisk.conf ; \
  143. $(SED) '/^\[directories\]/s/(!)//' asterisk.conf ; \
  144. )
  145. ${INSTALL_DATA} ./files/modules.conf $(IDIR_ASTERISK)/etc/asterisk/
  146. $(SED) 's|/var/lib/asterisk|/usr/lib/asterisk|g' \
  147. $(WRKINST)/etc/asterisk/musiconhold.conf
  148. asterisk-sounds-install:
  149. ${INSTALL_DIR} $(IDIR_ASTERISK_SOUNDS)/usr/lib/asterisk/sounds
  150. $(CP) $(WRKBUILD)/sounds/* \
  151. $(IDIR_ASTERISK_SOUNDS)/usr/lib/asterisk/sounds/
  152. (cd $(IDIR_ASTERISK_SOUNDS)/usr/lib/asterisk/sounds; \
  153. rm -f *.mp3 vm-*; \
  154. rm -f CHANGES* CREDITS* LICENSE* *.txt ; \
  155. rm -f *.tar.gz Makefile ; \
  156. )
  157. asterisk-voicemail-install:
  158. ${INSTALL_DIR} $(IDIR_ASTERISK_VOICEMAIL)/etc/asterisk
  159. ${INSTALL_DIR} $(IDIR_ASTERISK_VOICEMAIL)/usr/lib/asterisk/modules
  160. ${INSTALL_DATA} $(WRKBUILD)/configs/samples/voicemail.conf.sample \
  161. $(IDIR_ASTERISK_VOICEMAIL)/etc/asterisk/voicemail.conf
  162. ${CP} $(WRKBUILD)/apps/*voicemail.so \
  163. $(IDIR_ASTERISK_VOICEMAIL)/usr/lib/asterisk/modules/
  164. ${INSTALL_BIN} $(WRKBUILD)/res/res_adsi.so \
  165. $(IDIR_ASTERISK_VOICEMAIL)/usr/lib/asterisk/modules/
  166. asterisk-chan-iax2-install:
  167. ${INSTALL_DIR} $(IDIR_ASTERISK_CHAN_IAX2)/etc/asterisk
  168. ${INSTALL_DIR} $(IDIR_ASTERISK_CHAN_IAX2)/usr/lib/asterisk/modules
  169. ${INSTALL_DATA} $(WRKBUILD)/configs/samples/iax.conf.sample \
  170. $(IDIR_ASTERISK_CHAN_IAX2)/etc/asterisk/iax.conf
  171. ${INSTALL_DATA} $(WRKBUILD)/configs/samples/iaxprov.conf.sample \
  172. $(IDIR_ASTERISK_CHAN_IAX2)/etc/asterisk/iaxprov.conf
  173. ${INSTALL_BIN} $(WRKBUILD)/channels/chan_iax2.so \
  174. $(IDIR_ASTERISK_CHAN_IAX2)/usr/lib/asterisk/modules/
  175. asterisk-codec-speex-install:
  176. ${INSTALL_DIR} $(IDIR_ASTERISK_CODEC_SPEEX)/usr/lib/asterisk/modules
  177. ${INSTALL_BIN} $(WRKBUILD)/codecs/codec_speex.so \
  178. $(IDIR_ASTERISK_CODEC_SPEEX)/usr/lib/asterisk/modules/
  179. asterisk-codec-gsm-install:
  180. ${INSTALL_DIR} $(IDIR_ASTERISK_CODEC_GSM)/usr/lib/asterisk/modules/
  181. ${INSTALL_BIN} $(WRKBUILD)/codecs/codec_gsm.so \
  182. $(IDIR_ASTERISK_CODEC_GSM)/usr/lib/asterisk/modules/
  183. asterisk-pbx-dundi-install:
  184. ${INSTALL_DIR} $(IDIR_ASTERISK_PBX_DUNDI)/etc/asterisk
  185. ${INSTALL_DATA} $(WRKBUILD)/configs/samples/dundi.conf.sample \
  186. $(IDIR_ASTERISK_PBX_DUNDI)/etc/asterisk/dundi.conf
  187. ${INSTALL_DIR} $(IDIR_ASTERISK_PBX_DUNDI)/usr/lib/asterisk/modules
  188. ${INSTALL_BIN} $(WRKBUILD)/pbx/pbx_dundi.so \
  189. $(IDIR_ASTERISK_PBX_DUNDI)/usr/lib/asterisk/modules/
  190. asterisk-res-agi-install:
  191. ${INSTALL_DIR} $(IDIR_ASTERISK_RES_AGI)/usr/lib/asterisk/agi-bin
  192. ${INSTALL_DIR} $(IDIR_ASTERISK_RES_AGI)/usr/lib/asterisk/modules
  193. ${INSTALL_BIN} $(WRKBUILD)/res/res_agi.so \
  194. $(IDIR_ASTERISK_RES_AGI)/usr/lib/asterisk/modules/
  195. asterisk-meetme-install:
  196. ${INSTALL_DIR} ${IDIR_ASTERISK_MEETME}/etc/asterisk/
  197. ${INSTALL_DIR} ${IDIR_ASTERISK_MEETME}/usr/lib/asterisk/modules
  198. ${INSTALL_DATA} ${WRKBUILD}/configs/samples/meetme.conf.sample \
  199. ${IDIR_ASTERISK_MEETME}/etc/asterisk/meetme.conf
  200. ${INSTALL_BIN} ${WRKBUILD}/apps/app_meetme.so \
  201. ${IDIR_ASTERISK_MEETME}/usr/lib/asterisk/modules
  202. include ${ADK_TOPDIR}/mk/pkg-bottom.mk