diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..378eac25d311703f3f2cd456d8036da525cd0366
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+build
diff --git a/cook.sh b/cook.sh
new file mode 100755
index 0000000000000000000000000000000000000000..9d7d11386e3690f137f6607b523effe950fd697e
--- /dev/null
+++ b/cook.sh
@@ -0,0 +1,45 @@
+export RUST_TARGET_PATH=`realpath targets`
+export RUSTFLAGS="--cfg redox"
+TARGET=x86_64-unknown-redox
+
+set -e
+
+if [ -n "$1" ]
+then
+    if [ -d "recipes/$1" ]
+    then
+        pushd "recipes/$1"
+        source recipe.sh
+        case "$2" in
+            build)
+                pushd build
+                xargo build --target "$TARGET"
+                popd
+                ;;
+            clean)
+                pushd build
+                xargo clean
+                popd
+                ;;
+            fetch)
+                git clone --recursive "$GIT" build
+                ;;
+            unfetch)
+                rm -rf build
+                ;;
+            update)
+                pushd build
+                xargo update
+                popd
+                ;;
+            *)
+                echo "$0 {package} {build|clean|fetch|update}"
+                ;;
+        esac
+        popd
+    else
+        echo "$0: recipe '$1' not found"
+    fi
+else
+    echo "$0 {package} {build|clean|fetch|update}"
+fi
diff --git a/recipes/libstd/recipe.sh b/recipes/libstd/recipe.sh
new file mode 100644
index 0000000000000000000000000000000000000000..68680c5af9c2827c93fe079a6ced4a3b9ad837e3
--- /dev/null
+++ b/recipes/libstd/recipe.sh
@@ -0,0 +1 @@
+GIT=https://github.com/redox-os/libstd.git
diff --git a/recipes/smith/recipe.sh b/recipes/smith/recipe.sh
new file mode 100755
index 0000000000000000000000000000000000000000..9f38e91dec73ca63d18196a4cec07f90496f5985
--- /dev/null
+++ b/recipes/smith/recipe.sh
@@ -0,0 +1 @@
+GIT=https://github.com/IGI-111/Smith.git
diff --git a/x86_64-unknown-redox.json b/targets/x86_64-unknown-redox.json
similarity index 100%
rename from x86_64-unknown-redox.json
rename to targets/x86_64-unknown-redox.json