1 # Created by: Neil Blakey-Milner <nbm@rucus.ru.ac.za>
7 MASTER_SITES= http://curl.haxx.se/download/ \
10 MAINTAINER?= sunpoet@FreeBSD.org
11 COMMENT?= Non-interactive tool to get files from FTP, GOPHER, HTTP(S) servers
15 OPTIONS_DEFINE= CA_BUNDLE COOKIES CURL_DEBUG DEBUG DOCS EXAMPLES HTTP2 IDN IPV6 LDAP LDAPS LIBSSH2 PROXY RTMP TLS_SRP
16 OPTIONS_RADIO= GSSAPI RESOLV SSL
17 OPTIONS_RADIO_GSSAPI= HEIMDAL_PORT KRB5_PORT
18 OPTIONS_RADIO_RESOLV= CARES THREADED_RESOLVER
19 OPTIONS_RADIO_SSL= CYASSL GNUTLS NSS OPENSSL POLARSSL
20 OPTIONS_DEFAULT=CA_BUNDLE COOKIES IPV6 OPENSSL PROXY RESOLV THREADED_RESOLVER SSL TLS_SRP
21 CA_BUNDLE_DESC= Install CA bundle for OpenSSL
22 COOKIES_DESC= Cookies support
23 CURL_DEBUG_DESC=cURL debug memory tracking
24 GSSAPI_BASE_DESC= GSSAPI support via base system
25 HEIMDAL_PORT_DESC= GSSAPI support via security/heimdal
26 KRB5_PORT_DESC= GSSAPI support via security/krb5
27 LIBSSH2_DESC= SCP/SFTP support via libssh2
28 RESOLV_DESC= DNS resolving options
29 THREADED_RESOLVER_DESC= Threaded DNS resolver
30 TLS_SRP_DESC= TLS-SRP (Secure Remote Password) support
32 CONFIGURE_ARGS+=--disable-werror \
33 --enable-imap --enable-pop3 --enable-rtsp --enable-smtp \
35 CONFIGURE_ENV+= LOCALBASE=${LOCALBASE}
37 MAKE_ENV+= INSTALL_STRIP_FLAG=${STRIP}
39 USES= libtool pathfix perl5 tar:lzma
41 .if !defined(BUILDING_HIPHOP)
50 DOCS= BINDINGS BUGS CONTRIBUTE DISTRO-DILEMMA FAQ FEATURES HISTORY \
51 HTTP-COOKIES INSTALL INSTALL.devcpp INTERNALS KNOWN_BUGS \
52 LIBCURL-STRUCTS LICENSE-MIXING MAIL-ETIQUETTE MANUAL \
53 README.netware README.win32 RELEASE-PROCEDURE RESOURCES \
54 SECURITY SSL-PROBLEMS SSLCERTS THANKS TODO \
55 TheArtOfHttpScripting VERSIONS curl-config.html \
56 curl-config.pdf curl.html curl.pdf index.html \
57 mk-ca-bundle.html mk-ca-bundle.pdf
60 SLAVEDIRS= ftp/curl-hiphop
62 HEIMDAL_HOME?= ${PREFIX}
65 CA_BUNDLE_CONFIGURE_OFF=--without-ca-bundle
66 CA_BUNDLE_CONFIGURE_ON= --with-ca-bundle=${LOCALBASE}/share/certs/ca-root-nss.crt
67 CA_BUNDLE_RUN_DEPENDS= ${LOCALBASE}/share/certs/ca-root-nss.crt:${PORTSDIR}/security/ca_root_nss
68 CARES_CONFIGURE_OFF= --disable-ares
69 CARES_CONFIGURE_ON= --enable-ares=${LOCALBASE}
70 CARES_LIB_DEPENDS= libcares.so:${PORTSDIR}/dns/c-ares
71 COOKIES_CONFIGURE_OFF= --disable-cookies
72 COOKIES_CONFIGURE_ON= --enable-cookies
73 CURL_DEBUG_CONFIGURE_OFF= --disable-curldebug
74 CURL_DEBUG_CONFIGURE_ON=--enable-curldebug
75 CYASSL_CONFIGURE_OFF= --without-cyassl
76 CYASSL_CONFIGURE_ON= --with-cyassl=${LOCALBASE}
77 CYASSL_LIB_DEPENDS= libcyassl.so:${PORTSDIR}/security/yassl
78 DEBUG_CONFIGURE_OFF= --disable-debug
79 DEBUG_CONFIGURE_ON= --enable-debug
80 GNUTLS_CONFIGURE_OFF= --without-gnutls
81 GNUTLS_CONFIGURE_ON= --with-gnutls=${LOCALBASE}
82 GNUTLS_LIB_DEPENDS= libgnutls.so:${PORTSDIR}/security/gnutls
83 GSSAPI_BASE_CONFIGURE_ON= --with-gssapi=/usr
84 GSSAPI_BASE_CPPFLAGS= -I${INCLUDEDIR}
85 HEIMDAL_PORT_CONFIGURE_ON= --with-gssapi=${HEIMDAL_HOME}
86 HEIMDAL_PORT_CPPFLAGS= -I${HEIMDAL_HOME}/include
87 HEIMDAL_PORT_LDFLAGS= -L${HEIMDAL_HOME}/lib
88 HEIMDAL_PORT_LIB_DEPENDS= libgssapi.so.3:${PORTSDIR}/security/heimdal
89 HTTP2_BUILD_DEPENDS= nghttp2>=0.6.0:${PORTSDIR}/www/nghttp2
90 HTTP2_CONFIGURE_OFF= --without-nghttp2
91 HTTP2_CONFIGURE_ON= --with-nghttp2=${LOCALBASE}
92 HTTP2_LIB_DEPENDS= libnghttp2.so:${PORTSDIR}/www/nghttp2
93 HTTP2_RUN_DEPENDS= nghttp2>=0.6.0:${PORTSDIR}/www/nghttp2
95 IDN_CONFIGURE_OFF= --without-libidn
96 IDN_CONFIGURE_ON= --with-libidn=${LOCALBASE}
97 IDN_LIB_DEPENDS= libidn.so:${PORTSDIR}/dns/libidn
99 IPV6_CONFIGURE_OFF= --disable-ipv6
100 IPV6_CONFIGURE_ON= --enable-ipv6
101 KRB5_PORT_CONFIGURE_ON= --with-gssapi=${KRB5_HOME}
102 KRB5_PORT_CPPFLAGS= -I${KRB5_HOME}/include
103 KRB5_PORT_LDFLAGS= -L${KRB5_HOME}/lib -lcom_err
104 KRB5_PORT_LIB_DEPENDS= libgssapi_krb5.so.2:${PORTSDIR}/security/krb5
105 LDAP_CONFIGURE_OFF= --disable-ldap
106 LDAP_CONFIGURE_ON= --enable-ldap
107 LDAP_CPPFLAGS= -I${LOCALBASE}/include
108 LDAP_LDFLAGS= -L${LOCALBASE}/lib
109 LDAP_USE= OPENLDAP=yes
110 LDAPS_CONFIGURE_OFF= --disable-ldaps
111 LDAPS_CONFIGURE_ON= --enable-ldaps
112 LIBSSH2_CONFIGURE_OFF= --without-libssh2
113 LIBSSH2_CONFIGURE_ON= --with-libssh2=${LOCALBASE}
114 LIBSSH2_LIB_DEPENDS= libssh2.so:${PORTSDIR}/security/libssh2
115 NSS_CONFIGURE_OFF= --without-nss
116 NSS_CONFIGURE_ON= --with-nss=yes
117 NSS_LIB_DEPENDS= libnss3.so:${PORTSDIR}/security/nss
119 OPENSSL_CONFIGURE_OFF= --without-ssl
120 OPENSSL_CONFIGURE_ON= --with-ssl=${OPENSSLBASE}
121 OPENSSL_CPPFLAGS= -I${OPENSSLINC}
122 OPENSSL_LDFLAGS= -L${OPENSSLLIB}
123 OPENSSL_USE= OPENSSL=yes
124 POLARSSL_CONFIGURE_OFF= --without-polarssl
125 POLARSSL_CONFIGURE_ON= --with-polarssl=${LOCALBASE}
126 POLARSSL_LIB_DEPENDS= libpolarssl.so:${PORTSDIR}/security/polarssl
127 PROXY_CONFIGURE_OFF= --disable-proxy
128 PROXY_CONFIGURE_ON= --enable-proxy
129 RTMP_CONFIGURE_OFF= --without-librtmp
130 RTMP_CONFIGURE_ON= --with-librtmp=${LOCALBASE}
131 RTMP_LIB_DEPENDS= librtmp.so:${PORTSDIR}/multimedia/librtmp
132 THREADED_RESOLVER_CONFIGURE_OFF=--disable-threaded-resolver
133 THREADED_RESOLVER_CONFIGURE_ON= --enable-threaded-resolver
134 TLS_SRP_CONFIGURE_OFF= --disable-tls-srp
135 TLS_SRP_CONFIGURE_ON= --enable-tls-srp
137 .include <bsd.port.options.mk>
139 .if ${PORT_OPTIONS:MCA_BUNDLE} && !${PORT_OPTIONS:MOPENSSL}
140 IGNORE= only supports CA bundle with OpenSSL
143 .if !${PORT_OPTIONS:MGNUTLS} && !${PORT_OPTIONS:MOPENSSL} && ${PORT_OPTIONS:MTLS_SRP}
144 IGNORE= only supports TLS-SRP with either OpenSSL or GnuTLS
147 .if !${PORT_OPTIONS:MLDAP} && ${PORT_OPTIONS:MLDAPS}
148 IGNORE= only supports LDAPS with LDAP
151 .if ${PORT_OPTIONS:MLDAPS} && !${PORT_OPTIONS:MCYASSL} && !${PORT_OPTIONS:MGNUTLS} && !${PORT_OPTIONS:MNSS} && !${PORT_OPTIONS:MOPENSSL} && !${PORT_OPTIONS:MPOLARSSL}
152 IGNORE= only supports LDAPS with SSL
155 .if ${PORT_OPTIONS:MLIBSSH2} && !${PORT_OPTIONS:MOPENSSL}
156 IGNORE= only supports LIBSSH2 with OpenSSL
159 .if !${PORT_OPTIONS:MGSSAPI_BASE} && !${PORT_OPTIONS:MHEIMDAL_PORT} && !${PORT_OPTIONS:MKRB5_PORT}
160 CONFIGURE_ARGS+=--without-gssapi
164 @${REINPLACE_CMD} -e '/^SUBDIRS = / s|$$| docs|; /^DIST_SUBDIRS = / s| docs||; /cd docs &&/d' ${WRKSRC}/Makefile.in
165 @${REINPLACE_CMD} -e 's|\(flags_dbg_off=\)".*"|\1""|; s|\(flags_opt_off=\)".*"|\1""|; s|lib/pkgconfig|libdata/pkgconfig|g' ${WRKSRC}/configure
166 @${REINPLACE_CMD} -e 's|include <gssapi.h>|include <gssapi/gssapi.h>|' ${WRKSRC}/lib/curl_gssapi.h ${WRKSRC}/lib/urldata.h
167 @${REINPLACE_CMD} -e 's|gss_nt_service_name|GSS_C_NT_HOSTBASED_SERVICE|' ${WRKSRC}/lib/curl_sasl_gssapi.c
170 .if !defined(BUILDING_HIPHOP)
171 ${LN} -s libcurl.so.4 ${STAGEDIR}${PREFIX}/lib/libcurl.so.7
172 ${INSTALL_DATA} ${WRKSRC}/docs/libcurl/libcurl.m4 ${STAGEDIR}${PREFIX}/share/aclocal/
173 ${MKDIR} ${STAGEDIR}${DOCSDIR}/ ${STAGEDIR}${DOCSDIR}/libcurl/
174 cd ${WRKSRC}/docs/ && ${INSTALL_DATA} ${DOCS} ${STAGEDIR}${DOCSDIR}/
175 cd ${WRKSRC}/docs/libcurl/ && ${INSTALL_DATA} ABI *.html *.pdf *.m4 ${STAGEDIR}${DOCSDIR}/libcurl/
176 ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/
177 cd ${WRKSRC}/docs/examples/ && ${INSTALL_DATA} README Makefile.example makefile* *.c *.cpp ${STAGEDIR}${EXAMPLESDIR}/
180 regression-test test: build
181 .if !${PORT_OPTIONS:MPROXY}
182 @${ECHO_MSG} "******************************************"
183 @${ECHO_MSG} "* You have disabled curl proxy support. *"
184 @${ECHO_MSG} "* Some tests SHALL FAIL! *"
185 @${ECHO_MSG} "* This is being addressed. *"
186 @${ECHO_MSG} "******************************************"
188 cd ${WRKSRC}/ && ${SETENV} ${MAKE_ENV} LC_ALL=C ${MAKE_CMD} test
190 .include <bsd.port.mk>