# Contributor: Marian # Maintainer: Marian pkgname=afl pkgver=2.56b pkgrel=0 pkgdesc="Fuzzer relying on genetic algorithms instead of brute force" url="http://lcamtuf.coredump.cx/afl/" arch="all !x86" license="Apache-2.0" options="!check" # no tests provided depends="clang llvm" makedepends="clang-dev llvm-dev" subpackages="$pkgname-doc $pkgname-clang:_clang $pkgname-gcc:_gcc" source="$pkgname-$pkgver.tar.gz::https://github.com/google/AFL/archive/v$pkgver.tar.gz" builddir="$srcdir/AFL-$pkgver" CC=clang build() { make AFL_NO_X86=1 PREFIX=/usr make -C llvm_mode AFL_NO_X86=1 PREFIX=/usr } package() { make AFL_NO_X86=1 PREFIX=/usr DESTDIR="$pkgdir" install install -Dm644 llvm_mode/README.llvm \ "$pkgdir"/usr/share/doc/$pkgname/README.llvm_mode # small_exec.elf is an Intel binary which causes an error during # the strip() process on non Intel plattforms. case "$CARCH" in x86*) ;; *) rm -f "$pkgdir"/usr/share/afl/testcases/others/elf/small_exec.elf ;; esac } _clang() { description="$pkgdesc - CLang instrumention support" depends="clang" mkdir -p "$subpkgdir"/usr/bin mv "$pkgdir"/usr/bin/afl-clang \ "$pkgdir"/usr/bin/afl-clang++ \ "$subpkgdir"/usr/bin } _gcc() { description="$pkgdesc - GCC instrumention support" depends="gcc" mkdir -p "$subpkgdir"/usr/bin mv "$pkgdir"/usr/bin/afl-gcc \ "$pkgdir"/usr/bin/afl-g++ \ "$subpkgdir"/usr/bin } sha512sums="4e76fc503fe615aac4d0bbd8e3632d5cfbb7a3ac107be03c399afc024a8ad364dba933875d50a9b65083159faf6ebef5e13c39b25db977b01bd29b6340cad162 afl-2.56b.tar.gz"