1PORTNAME=	ptlib
2PORTVERSION=	2.10.11
3PORTREVISION=	7
4CATEGORIES=	devel
5MASTER_SITES=	GNOME
6
7MAINTAINER=	ports@MidnightBSD.org
8COMMENT=	Cross platform C++ library, used by OPAL
9WWW=		http://www.opalvoip.org
10
11LICENSE=	MPL20
12
13LIB_DEPENDS=	libexpat.so:textproc/expat2
14
15CONFLICTS=	pwlib-1.*
16
17USES=		autoreconf:build bison:wrapper compiler:c11 gmake localbase:ldflags \
18		pathfix pkgconfig ssl tar:xz
19BROKEN_SSL=	openssl openssl31
20BROKEN_SSL_REASON=	Uses OpenSSL 3.0.0 deprecated BIO_s_file_internal
21
22USE_LDCONFIG=	yes
23CPPFLAGS+=	-I${OPENSSLINC}
24LDFLAGS+=	-L${OPENSSLLIB}
25
26NO_TEST=	yes
27
28GNU_CONFIGURE=	yes
29CONFIGURE_ARGS+=--disable-bsdvideo \
30		--enable-audio \
31		--disable-lua \
32		--disable-sasl \
33		--enable-ipv6 \
34		--enable-exceptions \
35		--enable-oss \
36		--enable-plugins
37
38# --with-expat-dir="${LOCALBASE}"
39CONFIGURE_ENV+=	OPENSSL_CFLAGS="-I${OPENSSLINC}" \
40		OPENSSL_LIBS="-L${OPENSSLLIB} -lssl" \
41		OSRELEASE=${OSRELEASE}
42
43.include <bsd.mport.options.mk>
44
45.if ${OSVERSION} > 300000
46OSRELEASE=1203507
47CONFIGURE_TARGET=	${ARCH}-portbld-freebsd12.4
48.else
49OSRELEASE=1103509
50CONFIGURE_TARGET=	${ARCH}-portbld-freebsd11.4
51.endif
52
53.if (${SSL_DEFAULT} == base) || ${SSL_DEFAULT} == openssl
54EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src_ptclib_pssl.cxx-openssl111
55.else
56EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src_ptclib_pssl.cxx
57.endif
58
59PLIST_SUB+=	PORTVERSION=${PORTVERSION} \
60		PVERSION_MAJOR=${PVERSION_MAJOR} \
61		PVERSION_MINOR=${PVERSION_MINOR}
62
63OPTIONS_DEFINE=	ODBC ALSA JABBER V4L SDL LDAP PULSEAUDIO
64OPTIONS_DEFAULT=SDL V4L JABBER
65OPTIONS_SUB=	yes
66
67
68PVERSION_MAJOR=	${PORTVERSION:C/.[0-9]+.[0-9]+.//}
69PVERSION_MINOR=	${PORTVERSION:C/.[0-9]+$//g}
70
71ALSA_LIB_DEPENDS=	libasound.so:audio/alsa-lib
72ALSA_CONFIGURE_ENABLE=alsa
73JABBER_CONFIGURE_ON=--enable-jabber
74JABBER_VARS=	PTLIB_VIDEO=1
75LDAP_USES=	ldap
76LDAP_USE=	OPENLDAP=yes
77LDAP_CONFIGURE_ENABLE=openldap
78
79ODBC_LIB_DEPENDS=	libodbc.so:databases/unixODBC
80ODBC_CONFIGURE_ENABLE=	odbc
81PULSEAUDIO_LIB_DEPENDS=	libpulse.so:audio/pulseaudio
82PULSEAUDIO_CONFIGURE_ENABLE=pulse
83SDL_USES=		sdl
84SDL_USE=	SDL=sdl
85SDL_CONFIGURE_ENABLE=sdl
86V4L_BUILD_DEPENDS=	v4l_compat>=0:multimedia/v4l_compat
87V4L_LIB_DEPENDS=	libv4l2.so:multimedia/libv4l
88V4L_CONFIGURE_ENABLE=	v4l v4l2
89V4L_VARS=	PTLIB_VIDEO=1
90
91.if defined(PTLIB_VIDEO)
92CONFIGURE_ARGS+=--enable-video --enable-vidfile
93PLIST_SUB+=	VIDEODIR=""
94.else
95CONFIGURE_ARGS+=--disable-video --disable-vidfile
96PLIST_SUB+=	VIDEODIR="@comment "
97.endif
98
99CONFIGURE_ARGS+=	--disable-avc
100PLIST_SUB+=	AVC1394="@comment "
101CONFIGURE_ARGS+=	--disable-dc
102
103.include <bsd.port.pre.mk>
104
105.if ${COMPILER_TYPE} == clang
106CPPFLAGS+=	-Dregister= -Wno-error=dynamic-exception-spec
107.endif
108
109post-patch:
110	@${REINPLACE_CMD} -e 's/RTF_WASCLONED/0x20000/' ${WRKSRC}/src/ptlib/unix/socket.cxx
111.if ${COMPILER_TYPE} == clang
112	@${REINPLACE_CMD} -e 's|auto_ptr|unique_ptr|' \
113		${WRKSRC}/include/ptlib/psharedptr.h
114	@${REINPLACE_CMD} -e 's|public binary_function|public __binary_function|' \
115		${WRKSRC}/include/ptlib/pprocess.h
116.endif
117
118pre-configure:
119	(cd ${WRKSRC}/plugins/ && ${AUTORECONF} -fi)
120
121post-install:
122	${LN} -sf libpt.so.${PORTVERSION} ${PREFIX}/lib/libpt.so.${PVERSION_MAJOR}
123	${LN} -sf libpt.so.${PORTVERSION} ${PREFIX}/lib/libpt.so.${PVERSION_MINOR}
124	@${CHMOD} 0755 ${PREFIX}/lib/libpt.so.${PORTVERSION} \
125		${PREFIX}/lib/ptlib-${PORTVERSION}/devices/*/*.so
126	@${STRIP_CMD} ${PREFIX}/lib/libpt.so.${PORTVERSION}
127	@${STRIP_CMD} ${PREFIX}/lib/ptlib-${PORTVERSION}/devices/*/*.so
128
129.include <bsd.port.post.mk>
130