aboutsummaryrefslogtreecommitdiff
path: root/net/asterisk16/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'net/asterisk16/Makefile')
-rw-r--r--net/asterisk16/Makefile301
1 files changed, 301 insertions, 0 deletions
diff --git a/net/asterisk16/Makefile b/net/asterisk16/Makefile
new file mode 100644
index 000000000000..ee90aba26f94
--- /dev/null
+++ b/net/asterisk16/Makefile
@@ -0,0 +1,301 @@
+# $FreeBSD$
+
+PORTNAME= asterisk
+PORTVERSION= 16.0.0
+CATEGORIES= net
+MASTER_SITES= https://downloads.asterisk.org/pub/telephony/%SUBDIR%/:DEFAULT,g729
+MASTER_SITE_SUBDIR= asterisk/ \
+ asterisk/old-releases/ \
+ sounds/releases/:g729
+PKGNAMESUFFIX= 16
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
+
+MAINTAINER= madpilot@FreeBSD.org
+COMMENT= Open Source PBX and telephony toolkit
+
+LICENSE= GPLv2
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+LIB_DEPENDS= libuuid.so:misc/e2fsprogs-libuuid \
+ libjansson.so:devel/jansson
+
+ONLY_FOR_ARCHS= amd64 armv6 armv7 i386 powerpc sparc64
+
+EXTRACT_ONLY:= ${DISTNAME}${EXTRACT_SUFX}
+
+USES= bison cpe gmake iconv libedit localbase \
+ shebangfix sqlite ssl ncurses
+USE_CSTD= gnu89
+USE_GNOME= libxml2
+USE_LDCONFIG= yes
+USE_RC_SUBR= asterisk
+
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS+= --datarootdir=${DATADIR} \
+ --with-ilbc=internal \
+ --with-crypto=${OPENSSLBASE} \
+ --with-pjproject-bundled=no \
+ --with-ssl=${OPENSSLBASE}
+
+CPE_VENDOR= digium
+
+SHEBANG_FILES= agi/agi-test.agi \
+ agi/jukebox.agi \
+ contrib/scripts/astversion
+
+MAKE_ENV= PTHREAD_LIBS="-lpthread" \
+ MKDIR="${MKDIR}" \
+ PWLIBDIR=${LOCALBASE}/share/pwlib \
+ OSVERSION=${OSVERSION} \
+ DOCSDIR=${DOCSDIR} \
+ ASTCFLAGS="${CFLAGS}" \
+ ASTLDFLAGS="${LDFLAGS}"
+MAKE_ARGS+= NOISY_BUILD=yes \
+ ASTDATADIR=${DATADIR}
+
+CONFLICTS= ossp-uuid-[0-9]*
+CONFLICTS_BUILD= linuxthreads-*
+CONFLICTS_INSTALL= asterisk13 asterisk15
+
+OPTIONS_DEFINE= ASTVERSION BACKTRACE CURL EXCHANGE FREETDS LDAP LUA \
+ MP3PLAYER OOH323 OPTIMIZED_CFLAGS PJSIP PORTAUDIO RADIUS SNMP \
+ SPANDSP SRTP SYSINFO XMPP
+OPTIONS_DEFAULT= CURL FREETDS GSM LUA MP3PLAYER NEWT ODBC MYSQL PGSQL PJSIP \
+ PORTAUDIO RADIUS SNMP SPANDSP SPEEX SQLITE2 SRTP VORBIS
+
+OPTIONS_DEFINE_i386= DAHDI
+OPTIONS_DEFINE_amd64= DAHDI
+OPTIONS_DEFINE_sparc64= DAHDI
+
+OPTIONS_DEFAULT_i386= DAHDI BASE XMPP
+OPTIONS_DEFAULT_amd64= DAHDI BASE XMPP
+OPTIONS_DEFAULT_sparc64= DAHDI GCC XMPP
+OPTIONS_DEFAULT_powerpc= GCC XMPP
+OPTIONS_DEFAULT_armv6= BASE
+OPTIONS_DEFAULT_armv7= BASE
+
+OPTIONS_GROUP= CODECS
+OPTIONS_GROUP_CODECS= GSM NEWG711 SPEEX VORBIS
+CODECS_DESC= Encoder/Decoder (Codec) Support
+
+OPTIONS_SINGLE= COMPILER
+OPTIONS_SINGLE_COMPILER= BASE GCC
+COMPILER_DESC= Compiler to use
+
+OPTIONS_GROUP+= DATABASE
+OPTIONS_GROUP_DATABASE= MYSQL ODBC PGSQL SQLITE2
+DATABASE_DESC= Database Support
+
+OPTIONS_MULTI= MENU
+OPTIONS_MULTI_MENU= NCURSES NEWT
+MENU_DESC= Menuselect Interface Backend
+NEWT_DESC= Newt User Interface
+
+OPTIONS_GROUP+= SOUNDS
+OPTIONS_GROUP_SOUNDS= G729 JAPANESE
+SOUNDS_DESC= Core and Music-on-Hold (MoH) Sound Files
+G729_DESC= Install G.729 format sounds
+JAPANESE_DESC= Install Japanese voice prompts
+ASTERISK_CORE_G729_SOUNDS= asterisk-core-sounds-en-g729-1.5.tar.gz
+ASTERISK_MOH_G729_SOUNDS= asterisk-moh-opsound-g729-2.03.tar.gz
+G729_DISTFILES= ${ASTERISK_CORE_G729_SOUNDS}:g729 \
+ ${ASTERISK_MOH_G729_SOUNDS}:g729
+
+ASTVERSION_DESC?= Install astversion (requires bash)
+BACKTRACE_DESC?= Stack backtrace support via (lib)execinfo
+BASE_DESC= Use base compiler
+DAHDI_DESC?= DAHDI support
+EXCHANGE_DESC?= Exchange calendar support
+MP3PLAYER_DESC= Install MP3 Player for Music-On-Hold (mpg123)
+NEWG711_DESC?= New G711 Codec
+OOH323_DESC?= ooh323 support
+PJSIP_DESC?= Build the PJSIP based SIP channel
+SRTP_DESC?= SecureRTP support
+SYSINFO_DESC?= Use devel/libsysinfo to get system information
+XMPP_DESC?= XMPP/GTALK support
+
+OPTIONS_SUB= yes
+
+ASTVERSION_RUN_DEPENDS= bash:shells/bash
+
+BACKTRACE_CONFIGURE_WITH= execinfo
+
+CURL_CONFIGURE_ON= --with-libcurl
+CURL_CONFIGURE_OFF= --with-libcurl=no
+CURL_LIB_DEPENDS= libcurl.so:ftp/curl
+
+DAHDI_CONFIGURE_ON= --with-dahdi --with-openr2
+DAHDI_CONFIGURE_OFF= --without-dahdi --without-openr2
+DAHDI_LIB_DEPENDS= libpri.so:misc/libpri \
+ libopenr2.so:misc/openr2 \
+ libtonezone.so:misc/dahdi
+
+EXCHANGE_CONFIGURE_OFF= --without-neon --without-neon29
+EXCHANGE_LIB_DEPENDS= libneon.so:www/neon \
+ libexpat.so:textproc/expat2
+EXCHANGE_USES= gettext-runtime
+
+FREETDS_CONFIGURE_ON= --with-tds=${LOCALBASE}
+FREETDS_CONFIGURE_OFF= --without-tds
+FREETDS_LIB_DEPENDS= libsybdb.so:databases/freetds
+
+GCC_USE= GCC=yes
+
+GSM_CONFIGURE_WITH= gsm
+GSM_LIB_DEPENDS= libgsm.so:audio/gsm
+
+JAPANESE_RUN_DEPENDS= ${LOCALBASE}/share/asterisk/sounds/ja/digits/0.gsm:japanese/asterisk-sounds
+
+LDAP_CONFIGURE_WITH= ldap
+LDAP_USE= OPENLDAP=yes
+
+LUA_CONFIGURE_WITH= lua
+LUA_USES= lua
+LUA_CFLAGS= -I${LUA_INCDIR}
+LUA_LDFLAGS= -L${LUA_LIBDIR}
+
+MYSQL_CONFIGURE_WITH= mysqlclient
+MYSQL_USES= mysql
+
+MP3PLAYER_RUN_DEPENDS= mpg123:audio/mpg123
+
+NCURSES_USES= ncurses
+NEWT_LIB_DEPENDS= libnewt.so:devel/newt
+
+ODBC_CONFIGURE_WITH= unixodbc
+ODBC_CONFIGURE_ON= --with-ltdl
+ODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC \
+ libltdl.so:devel/libltdl
+
+PGSQL_CONFIGURE_WITH= postgres
+PGSQL_USES= pgsql
+
+PJSIP_CONFIGURE_WITH= pjproject
+PJSIP_USES= pkgconfig
+PJSIP_LIB_DEPENDS= libspeex.so:audio/speex \
+ libspeexdsp.so:audio/speexdsp
+
+PORTAUDIO_CONFIGURE_WITH= portaudio
+PORTAUDIO_LIB_DEPENDS= libportaudio.so:audio/portaudio
+
+RADIUS_CONFIGURE_WITH= radius
+RADIUS_LIB_DEPENDS= libradiusclient-ng.so:net/radiusclient
+
+SNMP_CONFIGURE_WITH= netsnmp
+SNMP_LIB_DEPENDS= libnetsnmp.so:net-mgmt/net-snmp \
+ libpkg.so:ports-mgmt/pkg
+
+SPANDSP_CONFIGURE_WITH= spandsp
+SPANDSP_LIB_DEPENDS= libspandsp.so:comms/spandsp \
+ libtiff.so:graphics/tiff
+
+SPEEX_CONFIGURE_WITH= speex
+SPEEX_LIB_DEPENDS= libspeex.so:audio/speex \
+ libspeexdsp.so:audio/speexdsp
+
+SQLITE2_CONFIGURE_WITH= sqlite
+SQLITE2_LIB_DEPENDS= libsqlite.so:databases/sqlite2
+
+SRTP_CONFIGURE_WITH= srtp
+SRTP_LIB_DEPENDS= libsrtp2.so:net/libsrtp2
+
+SYSINFO_LIB_DEPENDS= libsysinfo.so:devel/libsysinfo
+
+VORBIS_CONFIGURE_WITH= ogg
+VORBIS_LIB_DEPENDS= libvorbis.so:audio/libvorbis \
+ libogg.so:audio/libogg
+
+XMPP_CONFIGURE_WITH= iksemel
+XMPP_LIB_DEPENDS= libiksemel.so:textproc/iksemel
+
+ASTERISK_USER?= asterisk
+ASTERISK_GROUP?= asterisk
+
+USERS= ${ASTERISK_USER}
+GROUPS= ${ASTERISK_GROUP} dahdi
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MPJSIP} && ${PORT_OPTIONS:MSRTP}
+LIB_DEPENDS+= libpj.so:net/pjsip-extsrtp
+.elif ${PORT_OPTIONS:MPJSIP} && ! ${PORT_OPTIONS:MSRTP}
+LIB_DEPENDS+= libpj.so:net/pjsip
+.endif
+
+.include <bsd.port.pre.mk>
+
+.if empty(ICONV_LIB)
+CONFIGURE_ARGS+=ac_cv_lib_iconv_iconv_open=no \
+ ac_cv_lib_iconv_libiconv_open=no
+.endif
+
+.if ${PREFIX} == ${LOCALBASE}
+VARDIR=/var
+.else
+VARDIR=${PREFIX}/var
+.endif
+
+SUB_LIST+= ASTERISK_USER=${ASTERISK_USER}
+PLIST_SUB+= ASTERISK_USER=${ASTERISK_USER} \
+ ASTERISK_GROUP=${ASTERISK_GROUP} \
+ VARDIR=${VARDIR}
+
+post-extract:
+ @${FIND} ${WRKSRC} -name '*.d' -delete
+
+post-extract-G729-on:
+ ${CP} ${DISTDIR}/${ASTERISK_CORE_G729_SOUNDS} ${WRKSRC}/sounds
+ ${CP} ${DISTDIR}/${ASTERISK_MOH_G729_SOUNDS} ${WRKSRC}/sounds
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|/var/lib|${PREFIX}/share|g' ${WRKSRC}/configs/samples/musiconhold.conf.sample
+.if exists(${FILESDIR}/.asterisk.makeopts)
+ ${CP} ${FILESDIR}/.asterisk.makeopts ${WRKSRC}/menuselect.makeopts
+.endif
+
+post-patch-SYSINFO-on:
+ @${REINPLACE_CMD} -e 's/%%LIBSYSINFO%%/-lsysinfo/' ${WRKSRC}/main/Makefile
+
+post-patch-SYSINFO-off:
+ @${REINPLACE_CMD} -e '/#define HAVE_SYSINFO 1/d' ${WRKSRC}/configure
+ @${REINPLACE_CMD} -e '/%%LIBSYSINFO%%/d' ${WRKSRC}/main/Makefile
+
+post-configure:
+ @cd ${WRKSRC} && ${MAKE_CMD} menuselect.makeopts
+ @cd ${WRKSRC} && ./menuselect/menuselect --disable res_timing_kqueue menuselect.makeopts
+ @cd ${WRKSRC} && ./menuselect/menuselect --enable chan_mgcp menuselect.makeopts
+ @cd ${WRKSRC} && ./menuselect/menuselect --enable res_pktccops menuselect.makeopts
+
+post-configure-MYSQL-on:
+ @cd ${WRKSRC} && ./menuselect/menuselect --enable res_config_mysql menuselect.makeopts
+ @cd ${WRKSRC} && ./menuselect/menuselect --enable app_mysql menuselect.makeopts
+ @cd ${WRKSRC} && ./menuselect/menuselect --enable cdr_mysql menuselect.makeopts
+
+post-configure-OOH323-on:
+ @cd ${WRKSRC} && ./menuselect/menuselect --enable chan_ooh323 menuselect.makeopts
+
+post-configure-NEWG711-on:
+ @cd ${WRKSRC} && ./menuselect/menuselect --enable G711_NEW_ALGORITHM menuselect.makeopts
+
+post-configure-OPTIMIZED_CFLAGS-off:
+ @cd ${WRKSRC} && ./menuselect/menuselect --disable BUILD_NATIVE menuselect.makeopts
+
+post-install:
+ @${RM} ${STAGEDIR}${ETCDIR}/*.conf ${STAGEDIR}${ETCDIR}/extensions.ael ${STAGEDIR}${ETCDIR}/extensions.lua
+ @${STRIP_CMD} ${STAGEDIR}${PREFIX}/sbin/ast[a-f]* ${STAGEDIR}${PREFIX}/lib/*.so.* ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/modules/*.so ${STAGEDIR}${DATADIR}/agi-bin/eagi-*
+ ${FIND} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/modules -type f -name '*.so' | ${SED} "s,^${STAGEDIR}${PREFIX}/,," >> ${TMPPLIST}
+ ${FIND} ${STAGEDIR}${DATADIR}/sounds -type f | ${SED} "s,^${STAGEDIR}${DATADIR},${DATADIR}," >> ${TMPPLIST}
+ ${FIND} ${STAGEDIR}${DATADIR}/moh -type f | ${SED} "s,^${STAGEDIR}${DATADIR},${DATADIR}," >> ${TMPPLIST}
+
+ (cd ${STAGEDIR} && \
+ ${ECHO} "@owner ${ASTERISK_USER}" >> ${TMPPLIST} && \
+ ${ECHO} "@group ${ASTERISK_GROUP}" >> ${TMPPLIST} && \
+ ${FIND} var/spool/${PORTNAME}/voicemail/default -type f | ${SED} "s,^,/," >> ${TMPPLIST} && \
+ ${FIND} var/spool/${PORTNAME}/voicemail/ -type d | ${SED} "s,^,@dir /," >> ${TMPPLIST} && \
+ ${ECHO} "@owner" >> ${TMPPLIST} && \
+ ${ECHO} "@group" >> ${TMPPLIST});
+
+post-install-ASTVERSION-off:
+ @${RM} ${STAGEDIR}${PREFIX}/sbin/astversion
+
+.include <bsd.port.post.mk>