update Wed Jun 16 06:37:00 PDT 2010
[pkgsrc.git] / comms / asterisk16 / Makefile
1 # $NetBSD: Makefile,v 1.20 2010/06/16 08:04:44 jnemeth Exp $
2 #
3
4 DISTNAME=       asterisk-1.6.1.20
5 DIST_SUBDIR=    ${PKGNAME_NOREV}
6 PKGREVISION=    1
7 EXTRACT_ONLY=   ${DISTNAME}.tar.gz
8 CATEGORIES=     comms net audio
9 MASTER_SITES=   http://downloads.asterisk.org/pub/telephony/asterisk/ \
10                 http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/
11
12 OWNER=          jnemeth@NetBSD.org
13 HOMEPAGE=       http://www.asterisk.org/
14 COMMENT=        The Asterisk Software PBX
15 LICENSE=        gnu-gpl-v2
16
17 PKG_DESTDIR_SUPPORT=    user-destdir
18
19 .include "../../mk/bsd.prefs.mk"
20
21 USE_TOOLS+=             bash bison gmake perl:run pkg-config
22 USE_LANGUAGES=          c c++
23 REPLACE_BASH=           build_tools/mkpkgconfig
24 REPLACE_PERL+=          agi/DialAnMp3.agi agi/agi-test.agi
25 REPLACE_PERL+=          agi/fastagi-test agi/jukebox.agi agi/numeralize
26 REPLACE_PERL+=          contrib/scripts/vmail.cgi
27
28 PKGCONFIG_OVERRIDE+=    menuselect/mxml/mxml.pc.in
29
30 GNU_CONFIGURE=          yes
31 CONFIGURE_ARGS+=        --datarootdir=${PREFIX}/libdata
32 CONFIGURE_ARGS+=        --sysconfdir=${PKG_SYSCONFDIR}
33 CONFIGURE_ARGS+=        --without-gtk2
34
35 INSTALL_TARGET=         install samples
36 INSTALLATION_DIRS+=     lib/pkgconfig share/doc/${PKGBASE}
37 INSTALLATION_DIRS+=     share/examples/asterisk share/examples/rc.d
38
39 BUILD_DEFS+=            VARBASE
40
41 # Running as non-root will come later
42 ASTERISK_USER?=         asterisk
43 ASTERISK_GROUP?=        asterisk
44 PKG_GROUPS=             ${ASTERISK_GROUP}
45 PKG_USERS=              ${ASTERISK_USER}:${ASTERISK_GROUP}
46 PKG_GECOS.${ASTERISK_USER}=     Asterisk PBX
47 PKG_GROUPS_VARS=        ASTERISK_GROUP
48 PKG_USERS_VARS=         ASTERISK_USER
49 FILES_SUBST+=           ASTERISK_USER=${ASTERISK_USER}
50 FILES_SUBST+=           ASTERISK_GROUP=${ASTERISK_GROUP}
51 MESSAGE_SUBST+=         ASTERISK_USER=${ASTERISK_USER}
52 MESSAGE_SUBST+=         ASTERISK_GROUP=${ASTERISK_GROUP}
53
54 # Various path settings for Asterisk
55 PKG_SYSCONFSUBDIR=      asterisk
56 PKG_SYSCONFDIR_PERMS=   ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
57 ASTETCDIR=              ${PKG_SYSCONFDIR}
58 ASTEXAMPLEDIR=          ${PREFIX}/share/examples/asterisk
59 ASTDBDIR=               ${VARBASE}/db/asterisk
60 ASTSPOOLDIR=            ${VARBASE}/spool/asterisk
61 ASTLOGDIR=              ${VARBASE}/log/asterisk
62 MESSAGE_SUBST+=         ASTDBDIR=${ASTDBDIR}
63 MESSAGE_SUBST+=         ASTSPOOLDIR=${ASTSPOOLDIR}
64 MESSAGE_SUBST+=         ASTLOGDIR=${ASTLOGDIR}
65 ASTVARRUNDIR=           ${VARBASE}/run/asterisk
66 FILES_SUBST+=           ASTVARRUNDIR=${ASTVARRUNDIR}
67 MAKE_FLAGS+=            ASTLIBDIR=${PREFIX}/lib/asterisk
68 MAKE_FLAGS+=            ASTVARLIBDIR=${PREFIX}/libdata/asterisk
69 MAKE_FLAGS+=            ASTKEYDIR=${PREFIX}/libdata/asterisk
70 MAKE_FLAGS+=            ASTDATADIR=${PREFIX}/libdata/asterisk
71 MAKE_FLAGS+=            ASTSPOOLDIR=${ASTSPOOLDIR}
72 MAKE_FLAGS+=            ASTLOGDIR=${ASTLOGDIR}
73 MAKE_FLAGS+=            ASTHEADERDIR=${PREFIX}/include/asterisk
74 MAKE_FLAGS+=            ASTCONFPATH=${ASTETCDIR}/asterisk.conf
75 MAKE_FLAGS+=            ASTBINDIR=${PREFIX}/bin
76 MAKE_FLAGS+=            ASTSBINDIR=${PREFIX}/sbin
77 MAKE_FLAGS+=            ASTVARRUNDIR=${ASTVARRUNDIR}
78 MAKE_FLAGS+=            ASTMANDIR=${PREFIX}/${PKGMANDIR}
79 MAKE_FLAGS+=            ASTETCDIR=${ASTETCDIR}
80 MAKE_FLAGS+=            ASTDBDIR=${ASTDBDIR}
81 MAKE_FLAGS+=            AGI_DIR=${PREFIX}/libexec/agi-bin
82 MAKE_FLAGS+=            ASTEXAMPLEDIR=${ASTEXAMPLEDIR}
83 MAKE_FLAGS+=            WRKSRC=${WRKSRC}
84 MAKE_FLAGS+=            LDOPTS=${LDFLAGS:M*:Q}
85 MAKE_FLAGS+=            HTTP_DOCSDIR=${PREFIX}/share/httpd/htdocs
86 MAKE_FLAGS+=            HTTP_CGIDIR=${PREFIX}/libexec/cgi-bin
87
88 .include "options.mk"
89
90 # Override default paths in config files
91 SUBST_CLASSES+=         configs
92 SUBST_STAGE.configs=    pre-configure
93 SUBST_FILES.configs=    configs/festival.conf.sample
94 SUBST_FILES.configs+=   configs/http.conf.sample
95 SUBST_FILES.configs+=   configs/musiconhold.conf.sample
96 SUBST_FILES.configs+=   configs/osp.conf.sample
97 SUBST_FILES.configs+=   configs/phoneprov.conf.sample
98 SUBST_FILES.configs+=   configs/res_config_sqlite.conf
99 SUBST_SED.configs+=     -e 's|/var/lib/asterisk|${ASTVARLIBDIR}|'
100 SUBST_SED.configs+=     -e "s|/usr/local/man|${ASTMANDIR}|"
101 SUBST_SED.configs+=     -e "s|/usr/local|${PREFIX}|"
102 SUBST_SED.configs+=     -e "s|/var|${VARBASE}|"
103
104 # XXX gross hack, remove when atomics properly implemented
105 .if (${OPSYS} == "NetBSD")
106 SUBST_CLASSES+=         atomics
107 SUBST_STAGE.atomics=    post-configure
108 SUBST_FILES.atomics=    include/asterisk/autoconfig.h
109 SUBST_SED.atomics=      -e "s|^\#define HAVE_GCC_ATOMICS 1|\#undef HAVE_GCC_ATOMICS|"
110 .endif
111
112 RCD_SCRIPTS=            asterisk
113 OWN_DIRS_PERMS+=        ${ASTDBDIR} ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
114 OWN_DIRS_PERMS+=        ${ASTSPOOLDIR} ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
115 OWN_DIRS_PERMS+=        ${ASTSPOOLDIR}/dictate ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
116 OWN_DIRS_PERMS+=        ${ASTSPOOLDIR}/meetme ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
117 OWN_DIRS_PERMS+=        ${ASTSPOOLDIR}/monitor ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
118 OWN_DIRS_PERMS+=        ${ASTSPOOLDIR}/system ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
119 OWN_DIRS_PERMS+=        ${ASTSPOOLDIR}/tmp ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
120 OWN_DIRS_PERMS+=        ${ASTSPOOLDIR}/voicemail ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
121 OWN_DIRS_PERMS+=        ${ASTSPOOLDIR}/voicemail/default ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
122 OWN_DIRS_PERMS+=        ${ASTSPOOLDIR}/voicemail/default/1234 ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
123 OWN_DIRS_PERMS+=        ${ASTSPOOLDIR}/voicemail/default/1234/INBOX ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
124 OWN_DIRS_PERMS+=        ${ASTSPOOLDIR}/voicemail/default/1234/en ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
125 SPECIAL_PERMS+=         ${ASTSPOOLDIR}/voicemail/default/1234/en/busy.gsm ${ASTERISK_USER} ${ASTERISK_GROUP} 0644
126 SPECIAL_PERMS+=         ${ASTSPOOLDIR}/voicemail/default/1234/en/unavail.gsm ${ASTERISK_USER} ${ASTERISK_GROUP} 0644
127 OWN_DIRS_PERMS+=        ${ASTSPOOLDIR}/voicemail/default/INBOX ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
128 OWN_DIRS_PERMS+=        ${ASTSPOOLDIR}/voicemail/default/en ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
129 OWN_DIRS_PERMS+=        ${ASTLOGDIR} ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
130 OWN_DIRS_PERMS+=        ${ASTLOGDIR}/cdr-csv ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
131 OWN_DIRS_PERMS+=        ${ASTLOGDIR}/cdr-custom ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
132
133 CONF_FILES_PERMS=       # empty
134 .for f in asterisk.conf extensions.conf
135 CONF_FILES_PERMS+=      ${ASTEXAMPLEDIR}/${f:Q} ${PKG_SYSCONFDIR}/${f:Q} ${ASTERISK_USER} ${ASTERISK_GROUP} 0644
136 .endfor
137
138 # if we put all the files in $CONF_FILES, the message is _way_ too long.
139 .for f in adsi.conf adtranvofr.conf agents.conf alarmreceiver.conf      \
140         alsa.conf amd.conf asterisk.adsi cdr.conf                       \
141         cdr_adaptive_odbc.conf cdr_custom.conf cdr_manager.conf         \
142         cdr_odbc.conf cdr_pgsql.conf cdr_sqlite3_custom.conf            \
143         cdr_tds.conf chan_dahdi.conf cli.conf codecs.conf console.conf  \
144         dnsmgr.conf dundi.conf enum.conf extensions.ael extconfig.conf  \
145         extensions.conf extensions.lua extensions_minivm.conf           \
146         features.conf festival.conf followme.conf func_odbc.conf        \
147         gtalk.conf h323.conf http.conf iax.conf iaxprov.conf            \
148         indications.conf jabber.conf jingle.conf logger.conf            \
149         manager.conf meetme.conf mgcp.conf minivm.conf misdn.conf       \
150         modules.conf musiconhold.conf muted.conf osp.conf oss.conf      \
151         phone.conf phoneprov.conf queuerules.conf queues.conf           \
152         res_ldap.conf res_odbc.conf res_pgsql.conf res_snmp.conf        \
153         rpt.conf rtp.conf say.conf sip.conf sip_notify.conf skinny.conf \
154         sla.conf smdi.conf telcordia-1.adsi udptl.conf unistim.conf     \
155         usbradio.conf users.conf voicemail.conf vpb.conf
156 CONF_FILES_PERMS+=              ${ASTEXAMPLEDIR}/${f:Q} ${PKG_SYSCONFDIR}/${f:Q} ${ASTERISK_USER} ${ASTERISK_GROUP} 0644
157 .endfor
158
159 PTHREAD_OPTS+=  require native
160
161 .if (${OPSYS} == "Darwin" && exists(/usr/include/sys/poll.h))
162 post-patch:
163         ${ECHO} "#include <sys/poll.h>" > ${WRKSRC}/include/asterisk/poll-compat.h
164 .endif
165
166 post-install:
167         ${INSTALL_DATA} ${WRKSRC}/BUGS ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
168         ${INSTALL_DATA} ${WRKSRC}/CHANGES ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
169         ${INSTALL_DATA} ${WRKSRC}/COPYING ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
170         ${INSTALL_DATA} ${WRKSRC}/CREDITS ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
171         ${INSTALL_DATA} ${WRKSRC}/ChangeLog ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
172         ${INSTALL_DATA} ${WRKSRC}/LICENSE ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
173         ${INSTALL_DATA} ${WRKSRC}/README ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
174         ${INSTALL_DATA} ${WRKSRC}/README-SERIOUSLY.bestpractices.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
175         ${INSTALL_DATA} ${WRKSRC}/UPGRADE-1.2.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
176         ${INSTALL_DATA} ${WRKSRC}/UPGRADE-1.4.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
177         ${INSTALL_DATA} ${WRKSRC}/UPGRADE-1.6.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
178         ${INSTALL_DATA} ${WRKSRC}/UPGRADE.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
179         ${INSTALL_DATA} ${WRKSRC}/Zaptel-to-DAHDI.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
180         ${INSTALL_DATA} ${WRKSRC}/doc/HOWTO_collect_debug_information.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
181         ${INSTALL_DATA} ${WRKSRC}/doc/IAX2-security.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
182         ${INSTALL_DATA} ${WRKSRC}/doc/India-CID.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
183         ${INSTALL_DATA} ${WRKSRC}/doc/PEERING ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
184         ${INSTALL_DATA} ${WRKSRC}/doc/asterisk-mib.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
185         ${INSTALL_DATA} ${WRKSRC}/doc/backtrace.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
186         ${INSTALL_DATA} ${WRKSRC}/doc/callfiles.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
187         ${INSTALL_DATA} ${WRKSRC}/doc/chan_sip-perf-testing.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
188         ${INSTALL_DATA} ${WRKSRC}/doc/cli.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
189         ${INSTALL_DATA} ${WRKSRC}/doc/datastores.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
190         ${INSTALL_DATA} ${WRKSRC}/doc/digium-mib.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
191         ${INSTALL_DATA} ${WRKSRC}/doc/distributed_devstate.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
192         ${INSTALL_DATA} ${WRKSRC}/doc/externalivr.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
193         ${INSTALL_DATA} ${WRKSRC}/doc/jabber.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
194         ${INSTALL_DATA} ${WRKSRC}/doc/janitor-projects.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
195         ${INSTALL_DATA} ${WRKSRC}/doc/jingle.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
196         ${INSTALL_DATA} ${WRKSRC}/doc/ldap.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
197         ${INSTALL_DATA} ${WRKSRC}/doc/macroexclusive.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
198         ${INSTALL_DATA} ${WRKSRC}/doc/manager_1_1.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
199         ${INSTALL_DATA} ${WRKSRC}/doc/modules.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
200         ${INSTALL_DATA} ${WRKSRC}/doc/osp.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
201         ${INSTALL_DATA} ${WRKSRC}/doc/queue.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
202         ${INSTALL_DATA} ${WRKSRC}/doc/realtimetext.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
203         ${INSTALL_DATA} ${WRKSRC}/doc/res_config_sqlite.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
204         ${INSTALL_DATA} ${WRKSRC}/doc/rtp-packetization.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
205         ${INSTALL_DATA} ${WRKSRC}/doc/sip-retransmit.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
206         ${INSTALL_DATA} ${WRKSRC}/doc/siptls.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
207         ${INSTALL_DATA} ${WRKSRC}/doc/smdi.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
208         ${INSTALL_DATA} ${WRKSRC}/doc/sms.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
209         ${INSTALL_DATA} ${WRKSRC}/doc/snmp.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
210         ${INSTALL_DATA} ${WRKSRC}/doc/speechrec.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
211         ${INSTALL_DATA} ${WRKSRC}/doc/ss7.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
212         ${INSTALL_DATA} ${WRKSRC}/doc/timing.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
213         ${INSTALL_DATA} ${WRKSRC}/doc/unistim.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
214         ${INSTALL_DATA} ${WRKSRC}/doc/valgrind.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
215         ${INSTALL_DATA} ${WRKSRC}/doc/video.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
216         ${INSTALL_DATA} ${WRKSRC}/doc/video_console.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
217         ${INSTALL_DATA} ${WRKSRC}/doc/voicemail_odbc_postgresql.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
218
219 .include "../../devel/zlib/buildlink3.mk"
220 .include "../../security/openssl/buildlink3.mk"
221 .include "../../www/curl/buildlink3.mk"
222 .include "../../mk/curses.buildlink3.mk"
223 .include "../../mk/pthread.buildlink3.mk"
224 .include "../../mk/bsd.pkg.mk"