diff --git a/community/afl/APKBUILD b/community/afl/APKBUILD
index 04f45a0262c89c0fc53bad176582038d96419c44..5f36e9aaa558e6392f53dc2cb0bf9fabfa524664 100644
--- a/community/afl/APKBUILD
+++ b/community/afl/APKBUILD
@@ -1,8 +1,8 @@
 # Contributor: Marian <marian.buschsieweke@ovgu.de>
 # Maintainer: Marian <marian.buschsieweke@ovgu.de>
 pkgname=afl
-pkgver=2.52b
-pkgrel=2
+pkgver=2.56b
+pkgrel=0
 pkgdesc="Fuzzer relying on genetic algorithms instead of brute force"
 url="http://lcamtuf.coredump.cx/afl/"
 arch="all !x86"
@@ -10,13 +10,15 @@ license="Apache-2.0"
 options="!check" # no tests provided
 depends="clang llvm"
 makedepends="clang-dev llvm-dev"
-subpackages="$pkgname-doc"
-source="http://lcamtuf.coredump.cx/$pkgname/releases/$pkgname-$pkgver.tgz"
+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() {
-	local dir; for dir in "$builddir" "$builddir"/llvm_mode; do
-		make AFL_NO_X86=1 -C "$dir" PREFIX=/usr CC=clang
-	done
+	make AFL_NO_X86=1 PREFIX=/usr
+	make -C llvm_mode AFL_NO_X86=1 PREFIX=/usr
 }
 
 package() {
@@ -24,12 +26,6 @@ package() {
 	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" in
@@ -38,4 +34,24 @@ package() {
 	esac
 }
 
-sha512sums="30d4526440cff109ef2a014278f52a04b1b33560b6ab7d7f59e1516655858ffb36dac81963d2d8f214984776742ca9a7942c27c8fb61f7eb70b5b35cd029008f  afl-2.52b.tgz"
+_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"