1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-17 03:25:46 +00:00
freebsd-ports/security/afl++/Makefile
Tobias Kortkamp 77ae10646b
security/afl++: Update to 3.14c
Build two flavors, one compiled with LLVM13 and one with GCC.  Mixing
compilers in the same build is too complicated for casual maintainance.
The flavors are installed into their own prefixes in /usr/local/afl++-gcc
and /usr/local/afl++-llvm which also solves the conflict with
security/afl.

Changes:	https://github.com/AFLplusplus/AFLplusplus/blob/3.14c/docs/Changelog.md#version-314c-release
2021-10-12 17:01:36 +02:00

81 lines
2.3 KiB
Makefile

# Created by: Fabian Keil <fk@fabiankeil.de>
PORTNAME= afl
PORTVERSION= 3.14c
CATEGORIES= security
PKGNAMESUFFIX= ++-${FLAVOR}
MAINTAINER= tobik@FreeBSD.org
COMMENT= Fast instrumented fuzzer
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/docs/COPYING
ONLY_FOR_ARCHS= aarch64 amd64 i386 powerpc64 powerpc64le
ONLY_FOR_ARCHS_REASON= uses x86-only instrumentation or requires complete LLVM support
BUILD_DEPENDS= ginstall:sysutils/coreutils
FLAVORS= llvm gcc
FLAVOR?= ${FLAVORS:[1]}
_LLVM_VER= 13
llvm_BUILD_DEPENDS= clang${_LLVM_VER}:devel/llvm${_LLVM_VER}
llvm_RUN_DEPENDS= clang${_LLVM_VER}:devel/llvm${_LLVM_VER}
USES= gmake tar:tgz
.if ${FLAVOR} == gcc
USE_GCC= yes
.endif
USE_GITHUB= yes
GH_ACCOUNT= AFLplusplus
GH_PROJECT= AFLplusplus
MAKEFILE= GNUmakefile
MAKE_ARGS= ${${ARCH} != amd64 && ${ARCH} != i386:?AFL_NO_X86=1:} \
PREFIX="${PREFIX}/${PKGBASE}"
.if ${FLAVOR} == llvm
MAKE_ARGS+= CC=clang${_LLVM_VER} \
CXX=clang++${_LLVM_VER} \
LLVM_CONFIG=llvm-config${_LLVM_VER}
.endif
ALL_TARGET= distrib
QA_ENV= IGNORE_QA_stripped=1 # unstripped to keep it functional
DOCSDIR= ${PREFIX}/${PKGBASE}/share/doc/afl
MANDIRS= ${PREFIX}/${PKGBASE}/share/man/man8
BINARY_ALIAS= install=ginstall
PORTDOCS= *
OPTIONS_DEFINE= DEBUG DOCS PYTHON
OPTIONS_DEFAULT= PYTHON
PYTHON_DESC= Python mutators support
PYTHON_USES= gettext-runtime python
PYTHON_BINARY_ALIAS= python3-config=${PYTHON_CMD}-config \
python3=${PYTHON_CMD}
post-patch:
@${REINPLACE_CMD} '/alt_cc/ s,"gcc","gcc${GCC_DEFAULT:S/-devel$//}",' \
${WRKSRC}/src/afl-cc.c
.if ${FLAVOR} == gcc
@${REINPLACE_CMD} 's@\( as_params\[0\] = afl_as ? afl_as : \)\(.*\)@\1(u8*)"${LOCALBASE}/bin/as";@' \
${WRKSRC}/src/afl-as.c
.elif ${FLAVOR} == llvm
@${ECHO_CMD} "all:" >${WRKSRC}/GNUmakefile.gcc_plugin
.endif
post-install:
@${MKDIR} ${STAGEDIR}${PREFIX}/etc/man.d
@${ECHO_CMD} "MANPATH ${PREFIX}/${PKGBASE}/share/man" >${STAGEDIR}${PREFIX}/etc/man.d/${PKGBASE}.conf
@${ECHO_CMD} "etc/man.d/${PKGBASE}.conf" >>${TMPPLIST}
@cd ${STAGEDIR}${PREFIX}; \
${FIND} ${PKGBASE} -not -path '${PKGBASE}/share/doc/*' -and \( -type f -or -type l \) | \
${SED} -Ee 's,^afl\+\+-${FLAVOR}/share/man/.*,&.gz,' \
-e 's,^.*/afl-${${FLAVOR} == gcc:?(clang|llvm):(gcc|g\+\+)}.*,@comment &,' | \
${SORT} >> ${TMPPLIST}
@${CAT} ${TMPPLIST}
.include <bsd.port.mk>