Annotation of pkgsrc/comms/asterisk13/Makefile, Revision 1.78
1.78 ! nia 1: # $NetBSD: Makefile,v 1.77 2022/04/18 19:10:33 adam Exp $
1.1 jnemeth 2: #
3: # NOTE: when updating this package, there are two places that sound
1.7 jnemeth 4: # tarballs need to be checked; look in ${WRKSRC}/sounds/Makefile
5: # to find out the current sound file versions
1.1 jnemeth 6:
1.72 jnemeth 7: DISTNAME= asterisk-13.38.3
1.68 jnemeth 8: #PKGREVISION= 1
1.77 adam 9: PKGREVISION= 3
1.1 jnemeth 10: CATEGORIES= comms net audio
1.21 agc 11: MASTER_SITES= http://downloads.asterisk.org/pub/telephony/asterisk/
12: MASTER_SITES+= http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/
13: MASTER_SITES+= http://downloads.asterisk.org/pub/telephony/sounds/releases/
1.3 jnemeth 14: DIST_SUBDIR= ${PKGNAME_NOREV}
15: DISTFILES= ${DEFAULT_DISTFILES}
16:
17: COMMENT= The Asterisk Software PBX
18: LICENSE= gnu-gpl-v2
1.1 jnemeth 19:
1.3 jnemeth 20: EXTRACT_ONLY= ${DISTNAME}.tar.gz
1.1 jnemeth 21: OWNER= jnemeth@NetBSD.org
1.56 rillig 22: HOMEPAGE= https://www.asterisk.org/
1.3 jnemeth 23:
1.1 jnemeth 24: MAKE_JOBS_SAFE= NO
25:
26: # known to have issues on i386, block the package until the bug is fixed
27: BROKEN_ON_PLATFORM= NetBSD-*-i386
28:
29: CONFLICTS+= asterisk-sounds-extra-[0-9]*
30:
31: .include "../../mk/bsd.prefs.mk"
32:
1.66 jnemeth 33: USE_TOOLS+= bison gmake perl:run pkg-config tar bash:run pax
1.33 jnemeth 34: USE_LANGUAGES= c c++
35: REPLACE_BASH+= contrib/scripts/ast_coredumper
36: REPLACE_BASH+= contrib/scripts/ast_logescalator
37: REPLACE_BASH+= contrib/scripts/ast_loggrabber
38: REPLACE_BASH+= contrib/scripts/astversion
39: REPLACE_PERL+= agi/DialAnMp3.agi agi/agi-test.agi
40: REPLACE_PERL+= agi/fastagi-test agi/jukebox.agi agi/numeralize
41: REPLACE_PERL+= contrib/scripts/vmail.cgi
1.26 jnemeth 42: CHECK_INTERPRETER_SKIP+= libdata/asterisk/scripts/refcounter.py
1.1 jnemeth 43:
44: GNU_CONFIGURE= yes
45: CONFIGURE_ARGS+= --datarootdir=${PREFIX}/libdata
46: CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
47: CONFIGURE_ARGS+= --without-gtk2
48: # XXX remove when lang/lua gets builtin.mk
49: CONFIGURE_ARGS+= --without-lua
50:
1.78 ! nia 51: .if ${OPSYS} == "NetBSD" && ${OPSYS_VERSION} < 069900
1.1 jnemeth 52: CONFIGURE_ARGS+= --without-srtp
53: .else
54: CONFIGURE_ARGS+= --with-srtp
55: PLIST.srtp= YES
56: .include "../../comms/srtp/buildlink3.mk"
57: .endif
58:
59: INSTALL_TARGET= install samples
60: INSTALLATION_DIRS+= lib/pkgconfig share/doc/${PKGBASE}
61: INSTALLATION_DIRS+= share/examples/asterisk share/examples/rc.d
62: INSTALLATION_DIRS+= ${ASTDATADIR}/sounds/en ${ASTDATADIR}/moh
63:
64: BUILD_DEFS+= VARBASE
65:
1.3 jnemeth 66: ASTERISK_USER?= asterisk
67: ASTERISK_GROUP?= asterisk
68: PKG_GROUPS= ${ASTERISK_GROUP}
69: PKG_USERS= ${ASTERISK_USER}:${ASTERISK_GROUP}
1.1 jnemeth 70: PKG_GECOS.${ASTERISK_USER}= Asterisk PBX
1.3 jnemeth 71: PKG_GROUPS_VARS= ASTERISK_GROUP
72: PKG_USERS_VARS= ASTERISK_USER
73: FILES_SUBST+= ASTERISK_USER=${ASTERISK_USER}
74: FILES_SUBST+= ASTERISK_GROUP=${ASTERISK_GROUP}
75: MESSAGE_SUBST+= ASTERISK_USER=${ASTERISK_USER}
76: MESSAGE_SUBST+= ASTERISK_GROUP=${ASTERISK_GROUP}
1.1 jnemeth 77:
78: # Various path settings for Asterisk
79: PKG_SYSCONFSUBDIR= asterisk
80: PKG_SYSCONFDIR_PERMS= ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
81: ASTETCDIR= ${PKG_SYSCONFDIR}
82: ASTEXAMPLEDIR= ${PREFIX}/share/examples/asterisk
83: ASTDBDIR= ${VARBASE}/db/asterisk
84: ASTSPOOLDIR= ${VARBASE}/spool/asterisk
85: ASTLOGDIR= ${VARBASE}/log/asterisk
86: MESSAGE_SUBST+= ASTDBDIR=${ASTDBDIR}
87: MESSAGE_SUBST+= ASTSPOOLDIR=${ASTSPOOLDIR}
88: MESSAGE_SUBST+= ASTLOGDIR=${ASTLOGDIR}
89: ASTVARRUNDIR= ${VARBASE}/run/asterisk
90: FILES_SUBST+= ASTVARRUNDIR=${ASTVARRUNDIR}
91: ASTDATADIR= ${PREFIX}/libdata/asterisk
92: MAKE_FLAGS+= ASTLIBDIR=${PREFIX}/lib/asterisk
93: MAKE_FLAGS+= ASTVARLIBDIR=${ASTDATADIR}
94: MAKE_FLAGS+= ASTKEYDIR=${ASTDATADIR}
95: MAKE_FLAGS+= ASTDATADIR=${ASTDATADIR}
96: MAKE_FLAGS+= ASTSPOOLDIR=${ASTSPOOLDIR}
97: MAKE_FLAGS+= ASTLOGDIR=${ASTLOGDIR}
98: MAKE_FLAGS+= ASTHEADERDIR=${PREFIX}/include/asterisk
99: MAKE_FLAGS+= ASTCONFPATH=${ASTETCDIR}/asterisk.conf
100: MAKE_FLAGS+= ASTBINDIR=${PREFIX}/bin
101: MAKE_FLAGS+= ASTSBINDIR=${PREFIX}/sbin
102: MAKE_FLAGS+= ASTVARRUNDIR=${ASTVARRUNDIR}
103: MAKE_FLAGS+= ASTMANDIR=${PREFIX}/${PKGMANDIR}
104: MAKE_FLAGS+= ASTETCDIR=${ASTETCDIR}
105: MAKE_FLAGS+= ASTDBDIR=${ASTDBDIR}
106: MAKE_FLAGS+= AGI_DIR=${PREFIX}/libexec/agi-bin
107: MAKE_FLAGS+= ASTEXAMPLEDIR=${ASTEXAMPLEDIR}
108: MAKE_FLAGS+= WRKSRC=${WRKSRC}
109: MAKE_FLAGS+= LDOPTS=${LDFLAGS:M*:Q}
110: MAKE_FLAGS+= HTTP_DOCSDIR=${PREFIX}/share/httpd/htdocs
111: MAKE_FLAGS+= HTTP_CGIDIR=${PREFIX}/libexec/cgi-bin
112: MAKE_FLAGS+= OPTIMIZE=-O3
113:
114: .if !empty(MACHINE_PLATFORM:MSunOS-*-i386)
115: BUILDLINK_TRANSFORM+= rm:-march=i386
116: .endif
117:
118: PLIST_VARS+= kqueue
1.75 nia 119: .if defined(OPSYS_HAS_KQUEUE)
1.1 jnemeth 120: PLIST.kqueue= yes
121: .endif
122:
1.74 nia 123: PLIST_VARS+= timerfd
1.75 nia 124: .if defined(OPSYS_HAS_TIMERFD)
1.74 nia 125: PLIST.timerfd= yes
126: .endif
127:
1.1 jnemeth 128: PLIST_VARS+= mgcp
129: # NOSIGPIPE is a temp variable, since PLIST.mgcp MUST remain undefined
130: # if the grep fails
131: NOSIGPIPE!= ${GREP} SO_NOSIGPIPE /usr/include/sys/socket.h || echo ""
132: .if ${NOSIGPIPE} != ""
1.3 jnemeth 133: PLIST.mgcp= yes
1.1 jnemeth 134: .endif
135:
1.42 jperkin 136: .if ${OPSYS} == "SunOS"
137: PLIST.mgcp= yes
138: .endif
139:
1.1 jnemeth 140: .include "options.mk"
141:
142: # check sounds/Makefile for current version when upgrading package
1.66 jnemeth 143: DISTFILES+= asterisk-extra-sounds-en-gsm-1.5.2.tar.gz
1.1 jnemeth 144:
145: # Override default paths in config files
146: SUBST_CLASSES+= configs
147: SUBST_STAGE.configs= pre-configure
148: SUBST_FILES.configs= configs/samples/cli_aliases.conf.sample
149: SUBST_FILES.configs+= configs/samples/festival.conf.sample
150: SUBST_FILES.configs+= configs/samples/http.conf.sample
151: SUBST_FILES.configs+= configs/samples/iax.conf.sample
152: SUBST_FILES.configs+= configs/samples/musiconhold.conf.sample
153: SUBST_FILES.configs+= configs/samples/osp.conf.sample
154: SUBST_FILES.configs+= configs/samples/phoneprov.conf.sample
155: SUBST_FILES.configs+= configs/samples/res_config_sqlite.conf.sample
156: SUBST_FILES.configs+= configs/samples/sla.conf.sample
157: SUBST_SED.configs+= -e 's|doc/|${PREFIX}/share/doc/${PKGBASE}/|'
158: SUBST_SED.configs+= -e 's|/etc/asterisk|${ASTETCDIR}|'
159: SUBST_SED.configs+= -e 's|/var/lib/asterisk|${ASTVARLIBDIR}|'
160: SUBST_SED.configs+= -e "s|/usr/local/man|${ASTMANDIR}|"
161: SUBST_SED.configs+= -e "s|/usr/local|${PREFIX}|"
162: SUBST_SED.configs+= -e "s|/var|${VARBASE}|"
163:
164: # XXX gross hack, remove when item is fixed
1.4 jperkin 165: SUBST_CLASSES.NetBSD+= autoconfig
1.1 jnemeth 166: SUBST_STAGE.autoconfig= post-configure
167: SUBST_FILES.autoconfig= include/asterisk/autoconfig.h
168: SUBST_SED.autoconfig= -e "s|^\#define HAVE_GCC_ATOMICS 1|\#undef HAVE_GCC_ATOMICS|"
169: SUBST_SED.autoconfig+= -e "s|^\#define HAVE_GETHOSTBYNAME_R_6 1|\#undef HAVE_GETHOSTBYNAME_R_6|"
170:
171: # XXX gross hack, IP_PKTINFO in NetBSD isn't compatible with anything else
1.4 jperkin 172: SUBST_CLASSES.NetBSD+= pktinfo
1.1 jnemeth 173: SUBST_STAGE.pktinfo= post-configure
174: SUBST_FILES.pktinfo= include/asterisk/autoconfig.h
175: SUBST_SED.pktinfo= -e "s|^\#define HAVE_PKTINFO 1|\#undef HAVE_PKTINFO|"
176:
1.12 jnemeth 177: # XXX gross hack, gethostbyname_r on NETBSD is for internal use only
178: SUBST_CLASSES.NetBSD+= gethostbyname_r
179: SUBST_STAGE.gethostbyname_r= post-configure
180: SUBST_FILES.gethostbyname_r= include/asterisk/autoconfig.h
181: SUBST_SED.gethostbyname_r= -e "s|^\#define HAVE_GETHOSTBYNAME_R_5 1|\#undef HAVE_GETHOSTBYNAME_R_5|"
182: SUBST_SED.gethostbyname_r+= -e "s|^\#define HAVE_GETHOSTBYNAME_R_6 1|\#undef HAVE_GETHOSTBYNAME_R_6|"
183:
1.1 jnemeth 184: RCD_SCRIPTS= asterisk
185: OWN_DIRS_PERMS+= ${ASTDBDIR} ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
186: OWN_DIRS_PERMS+= ${ASTSPOOLDIR} ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
187: OWN_DIRS_PERMS+= ${ASTSPOOLDIR}/dictate ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
188: OWN_DIRS_PERMS+= ${ASTSPOOLDIR}/meetme ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
189: OWN_DIRS_PERMS+= ${ASTSPOOLDIR}/monitor ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
190: OWN_DIRS_PERMS+= ${ASTSPOOLDIR}/outgoing ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
191: OWN_DIRS_PERMS+= ${ASTSPOOLDIR}/system ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
192: OWN_DIRS_PERMS+= ${ASTSPOOLDIR}/tmp ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
193: OWN_DIRS_PERMS+= ${ASTSPOOLDIR}/voicemail ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
194: OWN_DIRS_PERMS+= ${ASTSPOOLDIR}/voicemail/default ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
195: OWN_DIRS_PERMS+= ${ASTSPOOLDIR}/voicemail/default/1234 ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
196: OWN_DIRS_PERMS+= ${ASTSPOOLDIR}/voicemail/default/1234/INBOX ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
197: OWN_DIRS_PERMS+= ${ASTSPOOLDIR}/voicemail/default/1234/en ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
198: SPECIAL_PERMS+= ${ASTSPOOLDIR}/voicemail/default/1234/en/busy.gsm ${ASTERISK_USER} ${ASTERISK_GROUP} 0644
199: SPECIAL_PERMS+= ${ASTSPOOLDIR}/voicemail/default/1234/en/unavail.gsm ${ASTERISK_USER} ${ASTERISK_GROUP} 0644
200: OWN_DIRS_PERMS+= ${ASTSPOOLDIR}/voicemail/default/INBOX ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
201: OWN_DIRS_PERMS+= ${ASTSPOOLDIR}/voicemail/default/en ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
202: OWN_DIRS_PERMS+= ${ASTLOGDIR} ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
203: OWN_DIRS_PERMS+= ${ASTLOGDIR}/cdr-csv ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
204: OWN_DIRS_PERMS+= ${ASTLOGDIR}/cdr-custom ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
205:
206: CONF_FILES_PERMS= # empty
207: .for f in asterisk.conf extensions.conf
208: CONF_FILES_PERMS+= ${ASTEXAMPLEDIR}/${f:Q} ${PKG_SYSCONFDIR}/${f:Q} ${ASTERISK_USER} ${ASTERISK_GROUP} 0644
209: .endfor
210:
211: .if !empty(PKG_OPTIONS:Masterisk-config)
212: # if we put all the files in $CONF_FILES, the message is _way_ too long.
213: . for f in acl.conf adsi.conf agents.conf alarmreceiver.conf alsa.conf \
214: amd.conf app_mysql.conf app_skel.conf ari.conf asterisk.adsi \
215: calendar.conf ccss.conf cdr.conf cdr_adaptive_odbc.conf \
216: cdr_custom.conf cdr_manager.conf cdr_mysql.conf cdr_odbc.conf \
217: cdr_pgsql.conf cdr_sqlite3_custom.conf cdr_syslog.conf \
218: cdr_tds.conf cel.conf cel_custom.conf cel_odbc.conf \
219: cel_pgsql.conf cel_sqlite3_custom.conf cel_tds.conf \
220: chan_dahdi.conf chan_mobile.conf cli.conf cli_aliases.conf \
221: cli_permissions.conf codecs.conf confbridge.conf console.conf \
222: dbsep.conf dnsmgr.conf dsp.conf dundi.conf enum.conf \
223: extconfig.conf extensions.ael extensions.conf extensions.lua \
224: extensions_minivm.conf features.conf festival.conf \
225: followme.conf func_odbc.conf hep.conf http.conf iax.conf \
226: iaxprov.conf indications.conf logger.conf manager.conf \
227: meetme.conf mgcp.conf minivm.conf misdn.conf modules.conf \
228: motif.conf musiconhold.conf muted.conf ooh323.conf osp.conf \
1.7 jnemeth 229: oss.conf phone.conf phoneprov.conf pjproject.conf pjsip.conf \
230: pjsip_notify.conf pjsip_wizard.conf queuerules.conf queues.conf \
1.1 jnemeth 231: res_config_mysql.conf res_config_sqlite.conf \
232: res_config_sqlite3.conf res_corosync.conf res_curl.conf \
233: res_fax.conf res_ldap.conf res_odbc.conf res_parking.conf \
234: res_pgsql.conf res_pktccops.conf res_snmp.conf \
235: res_stun_monitor.conf rtp.conf say.conf sip.conf \
236: sip_notify.conf skinny.conf sla.conf smdi.conf sorcery.conf \
237: ss7.timers stasis.conf statsd.conf telcordia-1.adsi udptl.conf \
238: unistim.conf users.conf voicemail.conf vpb.conf xmpp.conf
239: CONF_FILES_PERMS+= ${ASTEXAMPLEDIR}/${f:Q} ${PKG_SYSCONFDIR}/${f:Q} ${ASTERISK_USER} ${ASTERISK_GROUP} 0644
240: . endfor
241: .endif
242:
243: PTHREAD_OPTS+= require native
244:
245: .if (${OPSYS} == "Darwin" && exists(/usr/include/sys/poll.h))
246: post-patch:
247: ${ECHO} "#include <sys/poll.h>" > ${WRKSRC}/include/asterisk/poll-compat.h
248: .endif
249:
250: post-install:
251: # check sounds directory for current versions when upgrading package
1.66 jnemeth 252: ${TAR} xzf ${WRKSRC}/sounds/asterisk-core-sounds-en-gsm-1.6.1.tar.gz -C ${DESTDIR}${ASTDATADIR}/sounds/en
1.1 jnemeth 253: ${TAR} xzf ${WRKSRC}/sounds/asterisk-moh-opsound-wav-2.03.tar.gz -C ${DESTDIR}${ASTDATADIR}/moh
1.66 jnemeth 254: ${TAR} xzf ${DISTDIR}/${DIST_SUBDIR}/asterisk-extra-sounds-en-gsm-1.5.2.tar.gz -C ${DESTDIR}${ASTDATADIR}/sounds/en
1.1 jnemeth 255: ${INSTALL_DATA} ${WRKSRC}/BUGS ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
256: ${INSTALL_DATA} ${WRKSRC}/CHANGES ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
257: ${INSTALL_DATA} ${WRKSRC}/COPYING ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
258: ${INSTALL_DATA} ${WRKSRC}/CREDITS ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
259: ${INSTALL_DATA} ${WRKSRC}/ChangeLog ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
260: ${INSTALL_DATA} ${WRKSRC}/LICENSE ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
1.33 jnemeth 261: ${INSTALL_DATA} ${WRKSRC}/README.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
262: ${INSTALL_DATA} ${WRKSRC}/README-SERIOUSLY.bestpractices.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
1.1 jnemeth 263: ${INSTALL_DATA} ${WRKSRC}/UPGRADE.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
264: ${INSTALL_DATA} ${WRKSRC}/Zaptel-to-DAHDI.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
265: ${INSTALL_DATA} ${WRKSRC}/doc/Asterisk-13-Reference.pdf ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
266: ${INSTALL_DATA} ${WRKSRC}/doc/Asterisk-Admin-Guide.pdf ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
267: ${INSTALL_DATA} ${WRKSRC}/doc/IAX2-security.pdf ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
268: ${INSTALL_DATA} ${WRKSRC}/doc/IAX2-security.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
269: ${INSTALL_DATA} ${WRKSRC}/doc/README.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
1.66 jnemeth 270: cd ${WRKSRC}/doc/Asterisk-Admin-Guide && ${PAX} -wr * ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}/Asterisk-Admin-Guide
1.1 jnemeth 271:
1.53 joerg 272: .if ${OPSYS} != "Darwin" && ${PKGSRC_COMPILER} == "clang"
273: .include "../../lang/libBlocksRuntime/buildlink3.mk"
274: LDFLAGS+= -L${PREFIX}/lib
275: .endif
276:
1.1 jnemeth 277: .include "../../databases/sqlite3/buildlink3.mk"
278: .include "../../devel/libuuid/buildlink3.mk"
279: .include "../../devel/zlib/buildlink3.mk"
280: .include "../../textproc/jansson/buildlink3.mk"
281: .include "../../security/openssl/buildlink3.mk"
282: .include "../../textproc/libxml2/buildlink3.mk"
283: .include "../../www/curl/buildlink3.mk"
284: .include "../../mk/curses.buildlink3.mk"
285: .include "../../mk/pthread.buildlink3.mk"
1.42 jperkin 286: .include "../../mk/termcap.buildlink3.mk"
1.1 jnemeth 287: .include "../../mk/bsd.pkg.mk"
CVSweb <webmaster@jp.NetBSD.org>