# Created by: Hirohisa Yamaguchi # $FreeBSD$ PORTNAME= axTLS PORTVERSION= 1.4.9 CATEGORIES= security devel net MASTER_SITES= SF MASTER_SITE_SUBDIR= ${PORTNAME:L}/${PORTVERSION} MAINTAINER= umq@ueo.co.jp COMMENT= SSL/TLS client/server library implementation LICENSE= BSD OPTIONS_DEFINE= COMPAT_OPENSSL HTTPD TLSWRAP X509 PERL DOCS DEBUG TEST OPTIONS_SINGLE= MODE PROT OPTIONS_SINGLE_MODE= SERVER_ONLY CERT_VERIFICATION ENABLE_CLIENT \ FULL_MODE SKELETON_MODE OPTIONS_SINGLE_PROT= LOW MEDIUM HIGH OPTIONS_DEFAULT= FULL_MODE MEDIUM COMPAT_OPENSSL_DESC= OpenSSL compatible API TLSWRAP_DESC= Build TLS wrapper like sslwrap X509_DESC= Generate X.509 Certificate PERL_DESC= Perl bindings or support DOCS_DESC= Build and/or install documentation (require doxygen) TEST_DESC= Build test suite when available MODE_DESC= SSL Library mode PROT_DESC= Protocol Preference SERVER_ONLY_DESC= Server only (no verification) CERT_VERIFICATION_DESC= Server only (with verification) ENABLE_CLIENT_DESC= Client/Server enabled FULL_MODE_DESC= Client/Server enabled with diagnostics SKELETON_MODE_DESC= The smallest library with least performance (experimental) LOW_DESC= Use the fastest cipher(s) but at the expense of security MEDIUM_DESC= Balance between speed and security HIGH_DESC= Use the strongest cipher(s) at the cost of speed CONFIG_SUB= PREFIX=\"${PREFIX}\" WWWDIR=\"${WWWDIR}\" \ HTTP_PORT=${WITH_HTTP_PORT} SSL_PORT=${WITH_SSL_PORT} NO_OPTIONS_SORT=yes USES= gmake USE_LDCONFIG= yes WRKSRC= ${WRKDIR}/${PORTNAME} STAGE= ${WRKSRC}/_stage WITH_HTTP_PORT?= 80 WITH_SSL_PORT?= 443 NO_STAGE= yes .include .if ${PORT_OPTIONS:MSERVER_ONLY} CONFIG_SUB+= SERVER_ONLY="" .else CONFIG_SUB+= SERVER_ONLY="\# " .endif .if ${PORT_OPTIONS:MCERT_VERIFICATION} CONFIG_SUB+= CERT_VERIFICATION="" .else CONFIG_SUB+= CERT_VERIFICATION="\# " .endif .if ${PORT_OPTIONS:MENABLE_CLIENT} CONFIG_SUB+= ENABLE_CLIENT="" .else CONFIG_SUB+= ENABLE_CLIENT="\# " .endif .if ${PORT_OPTIONS:MFULL_MODE} CONFIG_SUB+= FULL_MODE="" .else CONFIG_SUB+= FULL_MODE="\# " .endif .if ${PORT_OPTIONS:MSKELETON_MODE} CONFIG_SUB+= SKELETON_MODE="" .else CONFIG_SUB+= SKELETON_MODE="\# " .endif .if ${PORT_OPTIONS:MHIGH} CONFIG_SUB+= PROT_HIGH="" .else CONFIG_SUB+= PROT_HIGH="\# " .endif .if ${PORT_OPTIONS:MMEDIUM} CONFIG_SUB+= PROT_MEDIUM="" .else CONFIG_SUB+= PROT_MEDIUM="\# " .endif .if ${PORT_OPTIONS:MLOW} CONFIG_SUB+= PROT_LOW="" .else CONFIG_SUB+= PROT_LOW="\# " .endif .if ${PORT_OPTIONS:MCOMPAT_OPENSSL} CONFIG_SUB+= COMPAT_OPENSSL="" .else CONFIG_SUB+= COMPAT_OPENSSL="\# " .endif .if ${PORT_OPTIONS:MHTTPD} CONFIG_SUB+= HTTPD="" PLIST_SUB+= HTTPD="" .else CONFIG_SUB+= HTTPD="\# " PLIST_SUB+= HTTPD="@comment " .endif .if ${PORT_OPTIONS:MTLSWRAP} CONFIG_SUB+= TLSWRAP="" PLIST_SUB+= TLSWRAP="" .else CONFIG_SUB+= TLSWRAP="\# " PLIST_SUB+= TLSWRAP="@comment " .endif .if ${PORT_OPTIONS:MX509} CONFIG_SUB+= X509="" .else CONFIG_SUB+= X509="\# " .endif .if ${PORT_OPTIONS:MPERL} BUILD_DEPENDS+= swig:${PORTSDIR}/devel/swig13 CONFIG_SUB+= PERL="" PLIST_SUB+= PERL="" USES+= perl5 .else CONFIG_SUB+= PERL="\# " PLIST_SUB+= PERL="@comment " .endif .if ${PORT_OPTIONS:MDOCS} BUILD_DEPENDS+= doxygen:${PORTSDIR}/devel/doxygen PORTDOCS= * .endif .if ${PORT_OPTIONS:MDEBUG} CONFIG_SUB+= DEBUG="" .else CONFIG_SUB+= DEBUG="\# " .endif .if ${PORT_OPTIONS:MTEST} . if ${PORT_OPTIONS:MCERT_VERIFICATION} || \ ${PORT_OPTIONS:MENABLE_CLIENT} || \ ${PORT_OPTIONS:MFULL_MODE} CONFIG_SUB+= TEST_PERF="" . else CONFIG_SUB+= TEST_PERF="\# " . endif . if ${PORT_OPTIONS:MFULL_MODE} && empty(PORT_OPTIONS:MX509) CONFIG_SUB+= TEST_SSL="" . else CONFIG_SUB+= TEST_SSL="\# " . endif .else CONFIG_SUB+= TEST_PERF="\# " \ TEST_SSL="\# " .endif _CONFIG_SUB_TEMP= ${CONFIG_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} do-configure: @${SED} ${_CONFIG_SUB_TEMP} \ -e '/^\([^#]*\) is not set$$/s//\1=y/' \ ${FILESDIR}/data-.config.in > ${WRKSRC}/config/.config cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \ ${MAKEFILE} ${_MAKE_JOBS} ${MAKE_ARGS} oldconfig do-install: ${INSTALL_LIB} ${STAGE}/libaxtls.a ${PREFIX}/lib/ ${INSTALL_LIB} ${STAGE}/libaxtls.so.1.2 ${PREFIX}/lib/ ${LN} -fs ${PREFIX}/lib/libaxtls.so.1.2 ${PREFIX}/lib/libaxtls.so.1 ${LN} -fs ${PREFIX}/lib/libaxtls.so.1 ${PREFIX}/lib/libaxtls.so ${INSTALL_PROGRAM} ${STAGE}/axssl ${PREFIX}/bin/ .if ${PORT_OPTIONS:MHTTPD} ${INSTALL_PROGRAM} ${STAGE}/htpasswd ${PREFIX}/bin/axhtpasswd ${INSTALL_PROGRAM} ${STAGE}/axhttpd ${PREFIX}/bin/ .endif .if ${PORT_OPTIONS:MTLSWRAP} ${INSTALL_PROGRAM} ${STAGE}/axtlswrap ${PREFIX}/bin/ .endif .if ${PORT_OPTIONS:MPERL} @${MKDIR} ${PREFIX}/${SITE_PERL_REL}/${PERL_ARCH}/auto ${INSTALL_SCRIPT} ${STAGE}/axssl.pl ${PREFIX}/bin/ ${INSTALL_SCRIPT} ${STAGE}/axtlsp.pm ${PREFIX}/${SITE_PERL_REL}/${PERL_ARCH}/ ${INSTALL_LIB} ${STAGE}/libaxtlsp.so ${PREFIX}/${SITE_PERL_REL}/${PERL_ARCH}/auto/ .endif @${MKDIR} ${PREFIX}/include/axTLS ${INSTALL_DATA} ${WRKSRC}/crypto/*.h ${PREFIX}/include/axTLS/ ${INSTALL_DATA} ${WRKSRC}/ssl/*.h ${PREFIX}/include/axTLS/ ${RM} ${PREFIX}/include/axTLS/cert.h ${RM} ${PREFIX}/include/axTLS/private_key.h ${RM} ${PREFIX}/include/axTLS/os_port.h ${INSTALL_DATA} ${WRKSRC}/config/config.h ${PREFIX}/include/axTLS/ .if ${PORT_OPTIONS:MDOCS} cd ${WRKSRC} && ${GMAKE} docs @${MKDIR} ${DOCSDIR} cd ${WRKSRC}/docsrc/html && ${COPYTREE_SHARE} . ${DOCSDIR} .endif regression-test: build cd ${WRKSRC} && ${GMAKE} test .include