diff options
author | mat <mat@FreeBSD.org> | 2016-06-27 19:31:10 +0800 |
---|---|---|
committer | mat <mat@FreeBSD.org> | 2016-06-27 19:31:10 +0800 |
commit | 82a234f5c1d92aab301c663775859cfec043f06b (patch) | |
tree | 1b037def670694489104abae09b8b8337f0e5a08 /Mk/Uses | |
parent | ce1eac9e2628f5b9255c5e38be1f9bf9c1183409 (diff) | |
download | freebsd-ports-gnome-82a234f5c1d92aab301c663775859cfec043f06b.tar.gz freebsd-ports-gnome-82a234f5c1d92aab301c663775859cfec043f06b.tar.zst freebsd-ports-gnome-82a234f5c1d92aab301c663775859cfec043f06b.zip |
Replace bsd.openssl.mk with USES=ssl
Add a qa hint about needing, or not, USES=ssl.
Fix ports doing silly things, like including bsd.openssl.mk directly.
PR: 210322
Submitted by: mat
Exp-run by: antoine
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D6866
Diffstat (limited to 'Mk/Uses')
-rw-r--r-- | Mk/Uses/ssl.mk | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/Mk/Uses/ssl.mk b/Mk/Uses/ssl.mk new file mode 100644 index 000000000000..821b8db52c49 --- /dev/null +++ b/Mk/Uses/ssl.mk @@ -0,0 +1,113 @@ +# $FreeBSD$ +# +# Handle dependency on *ssl ports. +# +# Feature: SSL_DEFAULT +# Usage: USES=ssl +# Valid ARGS: none +# +# The use can choose which ssl library he wants with: +# +# DEFAULT_VERSIONS+= ssl=<openssl variant> +# +# Variants being base, openssl, openssl-devel, libressl, and libressl-devel. +# +# The Makefile sets these variables: +# OPENSSLBASE - "/usr" or ${LOCALBASE} +# OPENSSLDIR - path to openssl +# OPENSSLLIB - path to the libs +# OPENSSLINC - path to the matching includes +# OPENSSLRPATH - rpath for dynamic linker +# +# MAKE_ENV - extended with the variables above +# CONFIGURE_ENV - extended with LDFLAGS +# BUILD_DEPENDS - are added if needed +# RUN_DEPENDS - are added if needed +# +# MAINTAINER: portmgr@FreeBSD.org +# +.if !defined(_INCLUDE_USES_SSL_MK) +_INCLUDE_USES_SSL_MK= yes + +.include "${PORTSDIR}/Mk/bsd.default-versions.mk" + +.if ${SSL_DEFAULT} == base +OPENSSLBASE= /usr +OPENSSLDIR?= /etc/ssl + +. if !exists(${DESTDIR}/usr/lib/libcrypto.so) +check-depends:: + @${ECHO_CMD} "Dependency error: This port requires the OpenSSL library, which is part of" + @${ECHO_CMD} "the FreeBSD crypto distribution, but not installed on your" + @${ECHO_CMD} "machine. Please see the \"OpenSSL\" section in the handbook" + @${ECHO_CMD} "(at \"http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/openssl.html\", for instance)" + @${ECHO_CMD} "for instructions on how to obtain and install the FreeBSD" + @${ECHO_CMD} "OpenSSL distribution." + @${FALSE} +. endif +. if exists(${LOCALBASE}/lib/libcrypto.so) +check-depends:: + @${ECHO_CMD} "Dependency error: This port wants the OpenSSL library from the FreeBSD" + @${ECHO_CMD} "base system. You can't build against it, while a newer" + @${ECHO_CMD} "version is installed by a port." + @${ECHO_CMD} "Please deinstall the port, remove DEFAULT_VERSIONS=ssl=base or undefine WITH_OPENSSL_BASE." + @${FALSE} +. endif + +# OpenSSL in the base system may not include IDEA for patent licensing reasons. +. if defined(MAKE_IDEA) && !defined(OPENSSL_IDEA) +OPENSSL_IDEA= ${MAKE_IDEA} +. else +OPENSSL_IDEA?= NO +. endif + +. if ${OPENSSL_IDEA} == "NO" +# XXX This is a hack to work around the fact that /etc/make.conf clobbers +# our CFLAGS. It might not be enough for all future ports. +. if defined(HAS_CONFIGURE) +CFLAGS+= -DNO_IDEA +. else +OPENSSL_CFLAGS+= -DNO_IDEA +. endif +MAKE_ARGS+= OPENSSL_CFLAGS="${OPENSSL_CFLAGS}" +. endif + +.else # ${SSL_DEFAULT} != base + +OPENSSLBASE= ${LOCALBASE} + +OPENSSL_PORT= security/${SSL_DEFAULT} + +# Get OPENSSL_SHLIBVER from the port +.sinclude <${PORTSDIR}/${OPENSSL_PORT}/version.mk> + +. if !defined(OPENSSL_SHLIBVER) +.error You are using an unsupported SSL provider ${SSL_DEFAULT} +. endif + +OPENSSLDIR?= ${OPENSSLBASE}/openssl +BUILD_DEPENDS+= ${LOCALBASE}/lib/libcrypto.so.${OPENSSL_SHLIBVER}:${OPENSSL_PORT} +RUN_DEPENDS+= ${LOCALBASE}/lib/libcrypto.so.${OPENSSL_SHLIBVER}:${OPENSSL_PORT} +OPENSSLRPATH= ${LOCALBASE}/lib + +.endif + +OPENSSLLIB= ${OPENSSLBASE}/lib +OPENSSLINC= ${OPENSSLBASE}/include + +MAKE_ENV+= OPENSSLBASE=${OPENSSLBASE} +MAKE_ENV+= OPENSSLDIR=${OPENSSLDIR} +MAKE_ENV+= OPENSSLINC=${OPENSSLINC} +MAKE_ENV+= OPENSSLLIB=${OPENSSLLIB} + +.if defined(OPENSSLRPATH) +. if defined(USE_OPENSSL_RPATH) +CFLAGS+= -Wl,-rpath,${OPENSSLRPATH} +. endif +MAKE_ENV+= OPENSSLRPATH=${OPENSSLRPATH} +OPENSSL_LDFLAGS+= -Wl,-rpath,${OPENSSLRPATH} +.endif + +LDFLAGS+= ${OPENSSL_LDFLAGS} + +.endif |