freebsd-ports/net/freeswitch-core/Makefile
Josh Paetzel 8fba1543b2 Fix bug in Makefile which caused a plist issue when python or libzrtp
modules were enabled.
Add missing file to plist when python module is enabled.

Approved by:	Richard E. Neese <r.neese@gmail.com> (maintainer)
Pointyhat:	jpaetzel
2010-12-24 15:15:58 +00:00

304 lines
12 KiB
Makefile

# Ports collection makefile for: freeswitch-core
# Date created: May 11, 2010
# Whom: Richard Neese<r.neese@gmail.com>
#
# $FreeBSD$
#
PORTNAME= freeswitch-core
PORTVERSION= 201044
PORTREVISION= 3
CATEGORIES= net
MASTER_SITES= ftp://ftp.secure-computing.net/pub/freeswitch/ \
ftp://ftp2.secure-computing.net/pub/freeswitch/ \
http://files.freeswitch.org/downloads/libs/:2
DISTFILES= ${BASE_PORTNAME}-${PORTVERSION}.tar.gz \
celt-0.7.1.tar.gz:2 \
flite-1.3.99-latest.tar.gz:2 \
json-c-0.9.tar.gz:2 \
lame-3.97.tar.gz:2 \
libmemcached-0.32.tar.gz:2 \
libshout-2.2.2.tar.gz:2 \
mpg123.tar.gz:2 \
openldap-2.4.11.tar.gz:2 \
pocketsphinx-0.5.99-20091212.tar.gz:2 \
soundtouch-1.3.1.tar.gz:2 \
sphinxbase-0.4.99-20091212.tar.gz:2 \
communicator_semi_6000_20080321.tar.gz:2
DIST_SUBDIR= ${BASE_PORTNAME}
EXTRACT_ONLY= ${BASE_PORTNAME}-${PORTVERSION}.tar.gz
MAINTAINER= r.neese@gmail.com
COMMENT= FreeSwitch SoftSwitch Port
BUILD_DEPENDS= pkg-config:${PORTSDIR}/devel/pkg-config
LIB_DEPENDS= curl:${PORTSDIR}/ftp/curl \
gnutls:${PORTSDIR}/security/gnutls \
odbc:${PORTSDIR}/databases/unixODBC
WRKSRC= ${WRKDIR}/${BASE_PORTNAME}-${PORTVERSION}
ONLY_FOR_ARCHS= i386 amd64
USE_AUTOTOOLS= autoconf:env automake:env libtool:env
USE_PERL5_BUILD=yes
USE_GMAKE= yes
SUB_FILES= pkg-install pkg-message
USE_RC_SUBR= freeswitch
HAS_CONFIGURE= yes
VARBASE?= /var
CONFIGURE_ARGS= --prefix=${PREFIX} \
--bindir=${PREFIX}/bin \
--sysconfdir=${PREFIX}/etc/${BASE_PORTNAME}/conf \
--includedir=${PREFIX}/include/${BASE_PORTNAME} \
--libdir=${PREFIX}/lib/${BASE_PORTNAME}/lib \
--localstatedir="${VARBASE}" \
--with-modinstdir=${PREFIX}/lib/${BASE_PORTNAME}/mod \
--with-libgnutls-prefix=${LOCALBASE} \
--with-ogg=${LOCALBASE} \
--with-ogg-libraries=${LOCALBASE}/lib \
--with-ogg-includes=${LOCALBASE}/include
CONFIGURE_ENV+= CPPFLAGS="${CXXFLAGS} -I${LOCALBASE}/include" \
LDFLAGS="-L${LOCALBASE}/lib"
USE_LDCONFIG= yes
CPPFLAGS+= -I${PREFIX}/include
FREESWITCH_USER= freeswitch
FREESWITCH_GROUP= ${FREESWITCH_USER}
SUB_LIST= FREESWITCH_USER=${FREESWITCH_USER} FREESWITCH_GROUP=${FREESWITCH_GROUP}
BASE_PORTNAME= ${FREESWITCH_USER}
OPTIONS= MODSHOUT "Enable mod_shout (streaming audio/mp3)" on \
MODFLITE "Enable mod_flite (Text to Speech)" on \
MODUNIMRCP "Enable mod_unimrcp tts" off \
MODTTSCMDLINE "Enable mod_tts_commandline" off \
MODPOCKETSPHINX "Enable mod_pockectsphinx (voice control)" on \
MODCIDLOOKUP "Enable mod_cidlookup" on \
MODDPDIRECTORY "Enable mod_dialplan_directory" off \
MODDIRECTORY "Enable mod_directory" on \
MODDINGALING "Enable mod_dingaling(google talk)" on \
MODEASYROUTE "Enable mod_easyroute(routing tool)" on \
MODERLANGEVENT "Enable mod_erlang_event (Call Center Dist)" off \
MODFAX "Enable mod_fax" on \
MODLCR "Enable mod_lcr (least cost routing)" on \
MODSOUNDTOUCH "Enable mod_soundtouch" on \
MODRSS "Enable mod_rss (rss feed reader)" on \
MODSNOM "Enable mod_snom (snom control)" off \
MODAVMD "Enable mod_avmd (Adavced v-mail detection)" on \
MODVMD "Enable mod_vmd (voice mail detection)" on \
MODSPY "Enable mod_spy" on \
MODAMRWB "Enable mod_amrwb (amrwb codec)" on \
MODCELT "Enable mod_celt (celt 48k codec)" on \
MODSILK "Enable mod_silk (New Silk Codec)" on \
MODCODEC2 "Enable mod_codec2 (new codec)" on \
MODFREETDM "Enable mod_freetdm dahdi support (Testing)" off \
MODSKINNY "Enable mod_skinny Skinny Support" on \
MODMEMCACHE "Enable mod_memcache" on \
MODMULTICAST "Enable mod_event_multicast" on \
MODNIBBLEBILL "Enable mod_nibblebill (billing)" on \
MODPORTAUDIO "Enable mod_portaudio" on \
MODPASTREAM "Enable mod_portaudio_stream (new)" on \
MODSHELLSTREAM "Enable mod_shell_stream (new)" on \
MODPERL "Enable mod_perl (perl support)" off \
MODPYTHON "Enable mod_python (python)" off \
MODCURL "Enable mod_curl" off \
MODXMLCURL "Enable mod_xml_curl" off \
MODDISTRIBUTOR "Enable mod_distributor " off \
MODSNAPSHOT "Enable mod_snapshot (testing)" off \
MODSAYDE "Enable mod_say_de (German support)" off \
MODSAYES "Enable mod_say_se (Spanish support)" off \
MODSAYEN "Enable mod_say_en (English support)" on \
MODSAYHU "Enable mod_say_hu (Hungarian support)" off \
MODSAYFR "Enable mod_say_fr (French support)" off \
MODSAYIT "Enable mod_say_it (Italian support)" off \
MODSAYNL "Enable mod_say_nl (Dutch support)" off \
MODSAYRU "Enable mod_say_ru (Russian support)" on \
MODSAYTH "Enable mod_say_th (Thi support)" off \
MODSAYZH "Enable mod_say_zh (Chinese support)" off \
EXTENSIONS "Include Default User Extensions" off \
MODCALLCENTER "Enable mod_callcenter (new)" on \
ZRTP "ENABLE ZRTP (VOIP ENCRYPTION)(NEW)(TEST)" off
.include <bsd.port.options.mk>
.if ${OSVERSION} < 700000
BROKEN= Does not compile on FreeBSD < 7.0
.endif
.if ${ARCH} == "amd64"
CFLAGS+= -fPIC
.endif
.for i in MODFLITE MODPOCKETSPHINX MODCIDLOOKUP MODDPDIRECTORY MODEASYROUTE MODLCR MODSOUNDTOUCH \
MODRSS MODSNOM MODAVMD MODVMD MODSPY MODAMRWB MODCELT MODMULTICAST MODPORTAUDIO MODCURL MODXMLCURL \
MODSAYDE MODSAYEN MODSAYES MODSAYFR MODSAYHU MODSAYIT MODSAYNL MODSAYRU MODSAYTH MODSAYZH \
MODNIBBLEBILL MODDINGALING MODDIRECTORY MODMEMCACHE MODPASTREAM MODSHELLSTREAM \
MODSILK MODUNIMRCP MODTTSCMDLINE MODDISTRIBUTOR MODSNAPSHOT MODSKINNY EXTENSIONS MODCALLCENTER MODCODEC2
.if !defined(WITH_${i})
PLIST_SUB+= WITH_${i}="@comment "
.else
PLIST_SUB+= WITH_${i}=""
.endif
.endfor
.if !defined(WITH_MODFREETDM)
PLIST_SUB+= WITH_MODFREETDM="@comment "
.else
.if ${OSVERSION} < 703000 || (${OSVERSION} >= 800000 && ${OSVERSION} < 800108)
IGNORE= sorry you can not use mod_freetdm on this version of freebsd ( dahdi support broken ) please update
.endif
PLIST_SUB+= WITH_MODFREETDM=""
CONFIGURE_ARGS+= --with-libpri
BUILD_DEPENDS+= libpri>=1.2.0:${PORTSDIR}/misc/libpri \
${LOCALBASE}/include/dahdi/wctdm_user.h:${PORTSDIR}/misc/dahdi
LIB_DEPENDS+= pri:${PORTSDIR}/misc/libpri
RUN_DEPENDS+= ${LOCALBASE}/include/dahdi/wctdm_user.h:${PORTSDIR}/misc/dahdi
.endif
.if !defined(WITH_MODSHOUT)
PLIST_SUB+= WITH_MODSHOUT="@comment "
.else
PLIST_SUB+= WITH_MODSHOUT=""
LIB_DEPENDS+= vorbis:${PORTSDIR}/audio/libvorbis
.endif
.if !defined(WITH_MODPERL)
PLIST_SUB+= WITH_MODPERL="@comment "
.else
PLIST_SUB+= WITH_MODPERL=""
LIB_DEPENDS+= gdbm:${PORTSDIR}/databases/gdbm \
db:${PORTSDIR}/databases/db42
.endif
.if !defined(WITH_MODFAX)
PLIST_SUB+= WITH_MODFAX="@comment "
.else
PLIST_SUB+= WITH_MODFAX=""
LIB_DEPENDS+= jpeg:${PORTSDIR}/graphics/jpeg
.endif
.if !defined(WITH_MODERLANGEVENT)
PLIST_SUB+= WITH_MODERLANGEVENT="@comment "
.else
PLIST_SUB+= WITH_MODERLANGEVENT=""
BUILD_DEPENDS+= ${LOCALBASE}/lib/erlang/usr/include/erl_driver.h:${PORTSDIR}/lang/erlang-lite
.endif
.if !defined(WITH_ZRTP)
PLIST_SUB+= WITH_ZRTP="@comment "
.else
PLIST_SUB+= WITH_ZRTP=""
CONFIGURE_ARGS+= --enable-zrtp
BUILD_DEPENDS+= ${LOCALBASE}/lib/libzrtp.a:${PORTSDIR}/devel/libzrtp
RUN_DEPENDS+= ${LOCALBASE}/lib/libzrtp.a:${PORTSDIR}/devel/libzrtp
.endif
.if !defined(WITH_MODPYTHON)
PLIST_SUB+= WITH_MODPYTHON="@comment "
.else
PLIST_SUB+= WITH_MODPYTHON=""
USE_PYTHON= yes
.endif
pre-configure:
@${REINPLACE_CMD} -e 's|pkgconfigdir = $$(libdir)/pkgconfig|pkgconfigdir = ${PREFIX}/libdata/pkgconfig|g' ${WRKSRC}/libs/*/Makefile.am
@${REINPLACE_CMD} -e 's|pkgconfigdir = $$(libdir)/pkgconfig|pkgconfigdir = ${PREFIX}/libdata/pkgconfig|g' ${WRKSRC}/libs/*/Makefile.am
@${REINPLACE_CMD} -e 's|pkgconfigdir = $$(libdir)/pkgconfig|pkgconfigdir = ${PREFIX}/libdata/pkgconfig|g' ${WRKSRC}/Makefile.am
@${REINPLACE_CMD} -e 's|base=http://files.freeswitch.org/downloads/libs/|base=file://${DISTDIR}/${DIST_SUBDIR}/|g' ${WRKSRC}/build/getlib.sh.in
cd ${WRKSRC} && ./rebootstrap.sh
post-configure:
.for i in mod_unimrcp mod_flite mod_pocketsphinx
.if defined(WITH_${i:C/_//g:U})
@${REINPLACE_CMD} -e 's|#\(asr_tts/${i}\)|\1|g' ${WRKSRC}/modules.conf
.endif
.endfor
.if defined(WITH_MODTTSCMDLINE)
@${REINPLACE_CMD} -e 's|#asr_tts/mod_tts_commandline|asr_tts/mod_tts_commandline|g' ${WRKSRC}/modules.conf
.endif
.for i in mod_cidlookup mod_easyroute mod_fax mod_lcr mod_soundtouch mod_rss mod_snom \
mod_vmd mod_avmd mod_spy mod_curl mod_nibblebill mod_memcache mod_directory mod_distributor \
mod_snapshot mod_callcenter
.if defined(WITH_${i:C/_//g:U})
@${REINPLACE_CMD} -e 's|#\(applications/${i}\)|\1|g' ${WRKSRC}/modules.conf
.endif
.endfor
.for i in mod_amrwb mod_celt mod_silk mod_codec2
.if defined(WITH_${i:C/_//g:U})
@${REINPLACE_CMD} -e 's|#\(codecs/${i}\)|\1|g' ${WRKSRC}/modules.conf
.endif
.endfor
.for i in mod_shell_stream mod_shout
.if defined(WITH_${i:C/_//g:U})
@${REINPLACE_CMD} -e 's|#\(formats/${i}\)|\1|g' ${WRKSRC}/modules.conf
.endif
.endfor
.if defined(WITH_MODPASTREAM)
@${REINPLACE_CMD} -e 's|#formats/mod_portaudio_stream|formats/mod_portaudio_stream|g' ${WRKSRC}/modules.conf
.endif
.for i in mod_say_de mod_say_es mod_say_en mod_say_fr mod_say_hu mod_say_it mod_say_nl mod_say_ru mod_say_th mod_say_zh
.if defined(WITH_${i:C/_//g:U})
@${REINPLACE_CMD} -e 's|#\(say/${i}\)|\1|g' ${WRKSRC}/modules.conf
.endif
.endfor
.for i in mod_perl mod_python
.if defined(WITH_${i:C/_//g:U})
@${REINPLACE_CMD} -e 's|#\(languages/${i}\)|\1|g' ${WRKSRC}/modules.conf
.endif
.endfor
.for i in mod_skinny mod_portaudio mod_dingaling
.if defined(WITH_${i:C/_//g:U})
@${REINPLACE_CMD} -e 's|#\(endpoints/${i}\)|\1|g' ${WRKSRC}/modules.conf
.endif
.endfor
.if defined(WITH_MODDPDIRECTORY)
@${REINPLACE_CMD} -e 's|#dialplans/mod_dialplan_directory|dialplans/mod_dialplan_directory|g' ${WRKSRC}/modules.conf
.endif
.if defined(WITH_MODFREETDM)
@${REINPLACE_CMD} -e 's|#../../libs/freetdm/mod_freetdm|../../libs/freetdm/mod_freetdm|g' ${WRKSRC}/modules.conf
.endif
.if defined(WITH_MODMULTICAST)
@${REINPLACE_CMD} -e 's|#event_handlers/mod_event_multicast|event_handlers/mod_event_multicast|g' ${WRKSRC}/modules.conf
.endif
.if defined(WITH_MODERLANGEVENT)
@${REINPLACE_CMD} -e 's|#event_handlers/mod_erlang_event|event_handlers/mod_erlang_event|g' ${WRKSRC}/modules.conf
.endif
.if defined(WITH_MODXMLCURL)
@${REINPLACE_CMD} -e 's|#xml_int/mod_xml_curl|xml_int/mod_xml_curl|g' ${WRKSRC}/modules.conf
.endif
pre-install:
@${SH} ${PKGINSTALL} ${BASE_PORTNAME} PRE-INSTALL
.if !defined(WITH_EXTENSIONS)
@${FIND} ${WRKSRC}/conf/directory/default -type f -name '*.xml' -delete
.endif
post-install:
.if !defined(WITH_EXTENSIONS)
@${MKDIR} ${PREFIX}/etc/${BASE_PORTNAME}/conf/directory/default
.endif
@${MKDIR} ${PREFIX}/share/${BASE_PORTNAME}/sounds
@${CHOWN} -R ${FREESWITCH_USER}:${FREESWITCH_GROUP} ${PREFIX}/etc/${BASE_PORTNAME}
@${CHOWN} -R ${FREESWITCH_USER}:${FREESWITCH_GROUP} ${PREFIX}/share/${BASE_PORTNAME}
@${CHOWN} -R ${FREESWITCH_USER}:${FREESWITCH_GROUP} ${VARBASE}/db/${BASE_PORTNAME}
@${CHOWN} -R ${FREESWITCH_USER}:${FREESWITCH_GROUP} ${VARBASE}/log/${BASE_PORTNAME}
@${CHOWN} -R ${FREESWITCH_USER}:${FREESWITCH_GROUP} ${VARBASE}/${BASE_PORTNAME}
@${CHOWN} -R ${FREESWITCH_USER}:${FREESWITCH_GROUP} ${VARBASE}/run/${BASE_PORTNAME}
@${CHOWN} -R ${FREESWITCH_USER}:${FREESWITCH_GROUP} ${VARBASE}/spool/${BASE_PORTNAME}
@for i in $$(${FIND} ${PREFIX}/etc/${BASE_PORTNAME}/conf/ -type f -name '*.sample'); do if [ ! -f $${i%.sample} ]; then ${CP} -p $$i $${i%.sample}; fi; done
@${CHMOD} -R 775 ${PREFIX}/etc/${BASE_PORTNAME}/conf
@${CHMOD} -R 775 ${VARBASE}/log/${BASE_PORTNAME}
@${CHMOD} -R 775 ${VARBASE}/${BASE_PORTNAME}
@${ECHO_MSG} "This port chown -R various directories ${FREESWITCH_USER}:${FREESWITCH_GROUP} "
@${ECHO_MSG} "this is for port security . in the event something should stop working."
@${ECHO_MSG} "Please take the time to check chownership of the dir's"
@${ECHO_MSG} "${VARBASE}/db/${BASE_PORTNAME} ${VARBASE}/log/${BASE_PORTNAME} ${VARBASE}/${BASE_PORTNAME} ${PREFIX}/etc/${BASE_PORTNAME}"
@${CAT} ${PKGMESSAGE}
.include <bsd.port.mk>