freebsd-ports/security/cryptopp/Makefile
Jason E. Hale a47a67e9fb Reinstate the cryptest binary removed in r428022 as it may be useful to some
people. Since it was installed by default before, so it shall be now. It can
be toggled with the TOOLS option. For the regression tests to run, it must be
toggled OFF due to environment restrictions.

While here:
- Switch to plain USES=zip, it extracts fine with base unzip
- Clean up whitespace
- Fix portlint warnings
- Rename LIBVERSION variable to SOVERSION

PR:		222930
Submitted by:	Roberto Fernandez Cueto <roberfern@gmail.com>
2018-03-11 16:10:19 +00:00

122 lines
3.7 KiB
Makefile

# Created by: George Reid <greid@ukug.uk.freebsd.org>
# $FreeBSD$
# Minor version bumps may not be ABI compatible and deskutils/cdcat
# links to the static library, so bump PORTREVISION of dependent
# ports when appropriate.
PORTNAME= cryptopp
PORTVERSION= 5.6.5
PORTREVISION= 4
CATEGORIES= security
MASTER_SITES= http://www.cryptopp.com/
DISTNAME= cryptopp${PORTVERSION:S/.//g}
MAINTAINER= jhale@FreeBSD.org
COMMENT= Free C++ class library of Cryptographic Primitives
LICENSE= BSL
LICENSE_FILE= ${WRKSRC}/License.txt
BROKEN_powerpc= does not compile; unrecognized C++ options
USES= cpe gmake zip
USE_LDCONFIG= yes
CPE_PRODUCT= crypto++
CPE_VENDOR= cryptopp
EXTRACT_BEFORE_ARGS= -aq
NO_WRKSUBDIR= yes
CXXFLAGS+= -Wno-deprecated-declarations -fPIC
MAKEFILE= GNUmakefile
ALL_TARGET= static shared
SOVERSION= ${PORTVERSION:R:R}
PLIST_SUB+= SOVERSION=${SOVERSION} \
PORTVERSION=${PORTVERSION}
OPTIONS_DEFINE= DEBUG DOCS FULL_DEBUG THREADS TOOLS
OPTIONS_DEFINE_amd64= SIMD
OPTIONS_DEFINE_i386= SIMD
OPTIONS_DEFAULT= THREADS TOOLS
OPTIONS_SUB= yes
# Always compile with -DNDEBUG for release. Otherwise, sensitive
# information could be accessed if an assert triggers.
# See ${WRKSRC}/Readme.txt for more details.
FULL_DEBUG_DESC= Build with full debugging support (SECURITY RISK!!!)
FULL_DEBUG_CXXFLAGS= -DCRYPTOPP_DEBUG
FULL_DEBUG_CXXFLAGS_OFF=-DNDEBUG
FULL_DEBUG_IMPLIES= DEBUG
# Disable this option to run the regression tests.
TOOLS_DESC= Install encryption/decryption tools
TOOLS_MAKE_ENV= CRYPTOPP_DATA_DIR=${DATADIR}/
TOOLS_ALL_TARGET= cryptest.exe
TOOLS_TEST_TARGET_OFF= test
THREADS_LDFLAGS= -lpthread
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MSIMD}
. if ${MACHINE_CPU:Msse2}
USES+= compiler:c++14-lang
CXXFLAGS+= -msse2
. else
CXXFLAGS+= -DCRYPTOPP_DISABLE_ASM -DCRYPTOPP_DISABLE_SSE2
. endif
. if ${MACHINE_CPU:Msse3} && ${MACHINE_CPU:Mssse3}
CXXFLAGS+= -msse3 -mssse3
. else
CXXFLAGS+= -DCRYPTOPP_DISABLE_SSE3
. endif
. if ${MACHINE_CPU:Msse41} && ${MACHINE_CPU:Msse42}
CXXFLAGS+= -msse4.1 -msse4.2
. else
CXXFLAGS+= -DCRYPTOPP_DISABLE_SSE4
. endif
.else
CXXFLAGS+= -DCRYPTOPP_DISABLE_ASM
.endif
.include <bsd.port.pre.mk>
.if ${PORT_OPTIONS:MSIMD} && ${MACHINE_CPU:Msse2} && ${CHOSEN_COMPILER_TYPE} == gcc
USE_GCC= yes
.endif
pre-configure-FULL_DEBUG-on:
@${ECHO_CMD}
@${ECHO_CMD} "----------------------------- WARNING!!! ----------------------------"
@${ECHO_CMD} "You have chosen to compile with full debugging support. If an assert"
@${ECHO_CMD} "triggers, sensitive information could possibly be egressed to the"
@${ECHO_CMD} "filesystem via a core dump. If this is not your intention, hit CTRL-C"
@${ECHO_CMD} "now and run 'make config clean' and disable the FULL_DEBUG option."
@${ECHO_CMD} "---------------------------------------------------------------------"
@${ECHO_CMD}
@sleep 10
do-install:
${INSTALL_DATA} ${WRKSRC}/libcryptopp.a ${STAGEDIR}${PREFIX}/lib
${INSTALL_LIB} ${WRKSRC}/libcryptopp.so ${STAGEDIR}${PREFIX}/lib/libcryptopp.so.${PORTVERSION}
${LN} -fs libcryptopp.so.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libcryptopp.so.${SOVERSION}
${LN} -fs libcryptopp.so.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libcryptopp.so
@${MKDIR} ${STAGEDIR}${PREFIX}/include/cryptopp
(for i in `${FIND} ${WRKSRC}/ -name '*.h' \
-and -not -name 'dll.h' \
-and -not -name 'resource.h'`; do \
${INSTALL_DATA} $$i ${STAGEDIR}${PREFIX}/include/cryptopp; \
done)
do-install-DOCS-on:
@${MKDIR} ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/Readme.txt ${STAGEDIR}${DOCSDIR}/README
do-install-TOOLS-on:
@${MKDIR} ${STAGEDIR}${DATADIR}/TestData
${INSTALL_PROGRAM} ${WRKSRC}/cryptest.exe ${STAGEDIR}${PREFIX}/bin/cryptest
${INSTALL_DATA} ${WRKSRC}/TestData/usage.dat ${STAGEDIR}${DATADIR}/TestData
.include <bsd.port.post.mk>