# Contributor: Marian <marian.buschsieweke@ovgu.de>
# Maintainer: Marian <marian.buschsieweke@ovgu.de>
setvar pkgname = 'afl'
setvar pkgver = '2.51b'
setvar pkgrel = '0'
setvar pkgdesc = ""American fuzzy lop - a fuzzer relying on genetic algorithms instead brute force""
setvar url = ""http://lcamtuf.coredump.cx/afl/""
setvar arch = ""all""
setvar license = ""ASL 2.0""
setvar depends = ""clang llvm""
setvar makedepends = ""clang-dev llvm-dev""
setvar subpackages = ""$pkgname-doc""
setvar source = ""http://lcamtuf.coredump.cx/$pkgname/releases/$pkgname-$pkgver.tgz""
setvar builddir = ""$srcdir/$pkgname-$pkgver""

proc build {
	local dir; for dir in "$builddir" "$builddir"/llvm_mode {
		make -C $dir PREFIX=/usr CC=clang AFL_NO_X86=1
	}
}

proc package {
	cd $builddir

	make AFL_NO_X86=1 PREFIX=/usr DESTDIR="$pkgdir" install
	install -Dm644 llvm_mode/README.llvm \
		"$pkgdir"/usr/share/doc/$pkgname/README.llvm_mode

	# Only install the llvm_mode of afl. Even though this is still
	# considered experimental it is faster than the gcc mode and
	# portable to non-x86 platforms.
	rm -f "$pkgdir/usr/bin/afl-clang" "$pkgdir/usr/bin/afl-clang++" \
		"$pkgdir/usr/bin/afl-gcc" "$pkgdir/usr/bin/afl-g++"

	# small_exec.elf is an Intel binary which causes an error during
	# the strip() process on non Intel plattforms.
	case (CARCH) {
		x86* { }
		* { rm -f "$pkgdir"/usr/share/afl/testcases/others/elf/small_exec.elf }
	}
}

setvar sha512sums = ""fd67cf44b7336175041c2efa42b122e91f887f4a293618a59ea1e145ef47b9c0fab9fc274e4b94499c523bec950ff5a704050c3f4260e890ad97774c365a358c  afl-2.51b.tgz""