123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328 |
- ################################################################################
- #
- # asterisk
- #
- ################################################################################
- ASTERISK_VERSION = 16.14.1
- # Use the github mirror: it's an official mirror maintained by Digium, and
- # provides tarballs, which the main Asterisk git tree (behind Gerrit) does not.
- ASTERISK_SITE = $(call github,asterisk,asterisk,$(ASTERISK_VERSION))
- ASTERISK_SOUNDS_BASE_URL = http://downloads.asterisk.org/pub/telephony/sounds/releases
- ASTERISK_EXTRA_DOWNLOADS = \
- $(ASTERISK_SOUNDS_BASE_URL)/asterisk-core-sounds-en-gsm-1.6.1.tar.gz \
- $(ASTERISK_SOUNDS_BASE_URL)/asterisk-moh-opsound-wav-2.03.tar.gz
- ASTERISK_LICENSE = GPL-2.0, BSD-3c (SHA1, resample), BSD-4c (db1-ast)
- ASTERISK_LICENSE_FILES = \
- COPYING \
- main/sha1.c \
- codecs/speex/speex_resampler.h \
- utils/db1-ast/include/db.h
- # For patches 0002, 0003 and 0005
- ASTERISK_AUTORECONF = YES
- ASTERISK_AUTORECONF_OPTS = -Iautoconf -Ithird-party -Ithird-party/pjproject -Ithird-party/jansson
- ASTERISK_DEPENDENCIES = \
- host-asterisk \
- jansson \
- libcurl \
- libedit \
- libxml2 \
- sqlite \
- util-linux
- # Asterisk wants to run its menuselect tool (a highly tweaked derivative of
- # kconfig), but builds it using the target tools. So we build it in the host
- # variant (see below), and copy the full build tree of menuselect.
- define ASTERISK_COPY_MENUSELECT
- rm -rf $(@D)/menuselect
- cp -a $(HOST_ASTERISK_DIR)/menuselect $(@D)/menuselect
- endef
- ASTERISK_PRE_CONFIGURE_HOOKS += ASTERISK_COPY_MENUSELECT
- ASTERISK_CONF_OPTS = \
- --disable-xmldoc \
- --disable-internal-poll \
- --disable-asteriskssl \
- --disable-rpath \
- --without-bfd \
- --without-cap \
- --without-cpg \
- --without-curses \
- --without-gtk2 \
- --without-gmime \
- --without-hoard \
- --without-iconv \
- --without-iksemel \
- --without-imap \
- --without-inotify \
- --without-iodbc \
- --without-isdnnet \
- --without-jack \
- --without-uriparser \
- --without-kqueue \
- --without-libedit \
- --without-libxslt \
- --without-lua \
- --without-misdn \
- --without-mysqlclient \
- --without-nbs \
- --without-neon29 \
- --without-newt \
- --without-openr2 \
- --without-osptk \
- --without-oss \
- --without-postgres \
- --without-pjproject \
- --without-pjproject-bundled \
- --without-popt \
- --without-resample \
- --without-sdl \
- --without-SDL_image \
- --without-sqlite \
- --without-suppserv \
- --without-tds \
- --without-termcap \
- --without-timerfd \
- --without-tinfo \
- --without-unbound \
- --without-unixodbc \
- --without-vpb \
- --without-x11 \
- --with-crypt \
- --with-jansson \
- --with-libcurl \
- --with-ilbc \
- --with-libxml2 \
- --with-libedit="$(STAGING_DIR)/usr" \
- --with-sqlite3="$(STAGING_DIR)/usr" \
- --with-sounds-cache=$(ASTERISK_DL_DIR)
- # avcodec are from ffmpeg. There is virtually zero chance this could
- # even work; asterisk is looking for ffmpeg/avcodec.h which has not
- # been installed in this location since early 2007 (~10 years ago at
- # the time of this writing).
- ASTERISK_CONF_OPTS += --without-avcodec
- # asterisk is not compatible with freeswitch spandsp
- ASTERISK_CONF_OPTS += --without-spandsp
- ASTERISK_CONF_ENV = \
- ac_cv_file_bridges_bridge_softmix_include_hrirs_h=true \
- ac_cv_path_CONFIG_LIBXML2=$(STAGING_DIR)/usr/bin/xml2-config
- # Uses __atomic_fetch_add_4
- ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
- ASTERISK_CONF_ENV += LIBS="-latomic"
- endif
- ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y)
- ASTERISK_CONF_OPTS += --with-execinfo
- else
- ASTERISK_CONF_OPTS += --without-execinfo
- endif
- ifeq ($(BR2_PACKAGE_LIBGSM),y)
- ASTERISK_DEPENDENCIES += libgsm
- ASTERISK_CONF_OPTS += --with-gsm
- else
- ASTERISK_CONF_OPTS += --without-gsm
- endif
- ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
- ASTERISK_DEPENDENCIES += alsa-lib
- ASTERISK_CONF_OPTS += --with-asound
- else
- ASTERISK_CONF_OPTS += --without-asound
- endif
- ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS),y)
- ASTERISK_DEPENDENCIES += bluez5_utils
- ASTERISK_CONF_OPTS += --with-bluetooth
- else
- ASTERISK_CONF_OPTS += --without-bluetooth
- endif
- ifeq ($(BR2_PACKAGE_LIBICAL),y)
- ASTERISK_DEPENDENCIES += libical
- ASTERISK_CONF_OPTS += --with-ical
- else
- ASTERISK_CONF_OPTS += --without-ical
- endif
- ifeq ($(BR2_PACKAGE_OPENLDAP),y)
- ASTERISK_DEPENDENCIES += openldap
- ASTERISK_CONF_OPTS += --with-ldap
- else
- ASTERISK_CONF_OPTS += --without-ldap
- endif
- ifeq ($(BR2_PACKAGE_NEON),y)
- ASTERISK_DEPENDENCIES += neon
- ASTERISK_CONF_OPTS += --with-neon
- ASTERISK_CONF_ENV += \
- ac_cv_path_CONFIG_NEON=$(STAGING_DIR)/usr/bin/neon-config
- else
- ASTERISK_CONF_OPTS += --without-neon
- endif
- ifeq ($(BR2_PACKAGE_NETSNMP),y)
- ASTERISK_DEPENDENCIES += netsnmp
- ASTERISK_CONF_OPTS += --with-netsnmp=$(STAGING_DIR)/usr
- else
- ASTERISK_CONF_OPTS += --without-netsnmp
- endif
- ifeq ($(BR2_PACKAGE_LIBOGG),y)
- ASTERISK_DEPENDENCIES += libogg
- ASTERISK_CONF_OPTS += --with-ogg
- else
- ASTERISK_CONF_OPTS += --without-ogg
- endif
- ifeq ($(BR2_PACKAGE_OPUS),y)
- ASTERISK_DEPENDENCIES += opus
- ASTERISK_CONF_OPTS += --with-opus
- else
- ASTERISK_CONF_OPTS += --without-opus
- endif
- ifeq ($(BR2_PACKAGE_PORTAUDIO),y)
- ASTERISK_DEPENDENCIES += portaudio
- ASTERISK_CONF_OPTS += --with-portaudio
- else
- ASTERISK_CONF_OPTS += --without-portaudio
- endif
- ifeq ($(BR2_PACKAGE_FREERADIUS_CLIENT),y)
- ASTERISK_DEPENDENCIES += freeradius-client
- ASTERISK_CONF_OPTS += --with-radius
- else
- ASTERISK_CONF_OPTS += --without-radius
- endif
- ifeq ($(BR2_PACKAGE_DAHDI_LINUX)$(BR2_PACKAGE_DAHDI_TOOLS),yy)
- ASTERISK_DEPENDENCIES += dahdi-linux dahdi-tools
- ASTERISK_CONF_OPTS += --with-dahdi --with-tonezone
- ifeq ($(BR2_PACKAGE_LIBPRI),y)
- ASTERISK_DEPENDENCIES += libpri
- ASTERISK_CONF_OPTS += --with-pri
- else
- ASTERISK_CONF_OPTS += --without-pri
- endif # PRI
- ifeq ($(BR2_PACKAGE_LIBSS7),y)
- ASTERISK_DEPENDENCIES += libss7
- ASTERISK_CONF_OPTS += --with-ss7
- else
- ASTERISK_CONF_OPTS += --without-ss7
- endif # SS7
- else
- ASTERISK_CONF_OPTS += \
- --without-dahdi --without-tonezone \
- --without-pri --without-ss7
- endif # DAHDI
- ifeq ($(BR2_PACKAGE_OPENSSL),y)
- ASTERISK_DEPENDENCIES += openssl
- ASTERISK_CONF_OPTS += --with-ssl
- else
- ASTERISK_CONF_OPTS += --without-ssl
- endif
- ifeq ($(BR2_PACKAGE_SPEEX)$(BR2_PACKAGE_SPEEXDSP),yy)
- ASTERISK_DEPENDENCIES += speex
- ASTERISK_CONF_OPTS += --with-speex --with-speexdsp
- else
- ASTERISK_CONF_OPTS += --without-speex --without-speexdsp
- endif
- # asterisk needs an openssl-enabled libsrtp
- ifeq ($(BR2_PACKAGE_LIBSRTP)$(BR2_PACKAGE_OPENSSL)x$(BR2_STATIC_LIBS),yyx)
- ASTERISK_DEPENDENCIES += libsrtp
- ASTERISK_CONF_OPTS += --with-srtp
- else
- ASTERISK_CONF_OPTS += --without-srtp
- endif
- ifeq ($(BR2_PACKAGE_LIBVORBIS),y)
- ASTERISK_DEPENDENCIES += libvorbis
- ASTERISK_CONF_OPTS += --with-vorbis
- else
- ASTERISK_CONF_OPTS += --without-vorbis
- endif
- ifeq ($(BR2_PACKAGE_ZLIB),y)
- ASTERISK_DEPENDENCIES += zlib
- ASTERISK_CONF_OPTS += --with-z
- else
- ASTERISK_CONF_OPTS += --without-z
- endif
- ASTERISK_DIRS = \
- ASTVARLIBDIR="/usr/lib/asterisk" \
- ASTDATADIR="/usr/lib/asterisk" \
- ASTKEYDIR="/usr/lib/asterisk" \
- ASTDBDIR="/usr/lib/asterisk"
- ASTERISK_MAKE_OPTS = $(ASTERISK_DIRS)
- # Uses __atomic_fetch_add_4
- ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
- ASTERISK_MAKE_OPTS += ASTLDFLAGS="-latomic"
- endif
- # We want to install sample configuration files, too.
- ASTERISK_INSTALL_TARGET_OPTS = \
- $(ASTERISK_DIRS) \
- DESTDIR=$(TARGET_DIR) \
- LDCONFIG=true \
- install samples
- $(eval $(autotools-package))
- #-------------------------------------------------------------------------------
- # This part deals with building the menuselect tool as a host package
- HOST_ASTERISK_DEPENDENCIES = host-pkgconf host-libxml2 host-ncurses
- HOST_ASTERISK_SUBDIR = menuselect
- HOST_ASTERISK_LICENSE = GPL-2.0
- HOST_ASTERISK_LICENSE_FILES = COPYING
- # No need to autoreconf for the host variant,
- # so do not inherit the target setup.
- HOST_ASTERISK_AUTORECONF = NO
- HOST_ASTERISK_CONF_ENV = CONFIG_LIBXML2=$(HOST_DIR)/bin/xml2-config
- HOST_ASTERISK_CONF_OPTS = \
- --without-newt \
- --without-curses \
- --with-ncurses=$(HOST_DIR)
- # Not an automake package, so does not inherit LDFLAGS et al. from
- # the configure run.
- HOST_ASTERISK_MAKE_ENV = $(HOST_CONFIGURE_OPTS)
- # Even though menuselect is an autotools package, it is not an automake
- # package and does not have an 'install' rule, as asterisk does expect
- # it to be in a sub-directory of its source tree. We do so by copying
- # the full menuselect build tree as a pre-configure hook in the target
- # variant.
- # However, the sanity checks on host packages are not run on menuselect.
- # But we still want to catch that menuselect has the proper rpath set,
- # for example, as it uses host libraries that we do build, like
- # host-libxml2.
- # So we do manually install the menuselect tool.
- define HOST_ASTERISK_INSTALL_CMDS
- $(INSTALL) -D -m 0755 $(@D)/menuselect/menuselect \
- $(HOST_DIR)/bin/asterisk-menuselect
- endef
- $(eval $(host-autotools-package))
|