diff --git a/recipes/git/recipe.sh b/recipes/git/recipe.sh
index 2146cb8d78625addc6a3a5caba810355ff0c7e65..cf8b92f4f1043591a3071f7c12029ab328bbe920 100644
--- a/recipes/git/recipe.sh
+++ b/recipes/git/recipe.sh
@@ -1,5 +1,6 @@
 VERSION=2.13.1
 TAR=https://www.kernel.org/pub/software/scm/git/git-$VERSION.tar.xz
+BUILD_DEPENDS=(zlib)
 
 HOST=x86_64-elf-redox
 
@@ -26,27 +27,8 @@ function recipe_update {
 }
 
 function recipe_build {
-    if [ ! -d zlib ]
-    then
-	mkdir zlib
-    	if [ ! -f zlib-1.2.11.tar.gz ]
-	then
-            wget http://zlib.net/zlib-1.2.11.tar.gz
-        fi
-	tar xvf zlib-1.2.11.tar.gz -C zlib --strip-components 1
-    fi
-
-    rm -rf zlib-prefix
-    mkdir zlib-prefix
-
-    pushd zlib
-	./configure --static --prefix=/
-	make -j"$(nproc)"
-	make DESTDIR="$PWD/../zlib-prefix" install
-    popd
-
-    autoconf
-    ./configure --host=${HOST} --prefix=/ --with-zlib="${PWD}/zlib-prefix"
+    autoconf -f
+    ./configure --host=${HOST} --prefix=/ --with-zlib="${PWD}/../sysroot"
     make
     skip=1
 }
diff --git a/recipes/zlib/recipe.sh b/recipes/zlib/recipe.sh
new file mode 100644
index 0000000000000000000000000000000000000000..42ca0eeba102f8cb3bae4ac17c5f4a068d88efbf
--- /dev/null
+++ b/recipes/zlib/recipe.sh
@@ -0,0 +1,35 @@
+VERSION=1.2.11
+TAR=http://zlib.net/zlib-$VERSION.tar.gz
+
+function recipe_version {
+    echo "$VERSION"
+    skip=1
+}
+
+function recipe_update {
+    echo "skipping update"
+    skip=1
+}
+
+function recipe_build {
+    ./configure --static --prefix=/
+    make -j"$(nproc)"
+    skip=1
+}
+
+function recipe_test {
+    echo "skipping test"
+    skip=1
+}
+
+function recipe_clean {
+    make clean
+    skip=1
+}
+
+function recipe_stage {
+    dest="$(realpath $1)"
+    make DESTDIR="$dest" install
+    rm -rf "$1"/{lib/pkgconfig,share}
+    skip=1
+}