keep track of if we've already extracted the archives

This makes it easier to apply an experimental patch and rebuild.
diff --git a/cleanit b/cleanit
index 90f7a38..140f2f2 100755
--- a/cleanit
+++ b/cleanit
@@ -10,3 +10,4 @@
 rm -rf gmp-$GMPVER
 rm -rf mpc-$MPCVER
 rm -rf mpfr-$MPFRVER
+rm -f .extracted-stamp
diff --git a/doit b/doit
index 5e934d4..1941f02 100755
--- a/doit
+++ b/doit
@@ -84,12 +84,15 @@
     touch $TARGETDIR/.extracted || exit 1
 }
 
-extract-tool binutils $BINVER .bz2 binutils-patch.txt
-extract-tool gcc $GCCVER .bz2 gcc-patch.txt
-extract-tool gdb $GDBVER .bz2 gdb-patch.txt
-extract-tool gmp $GMPVER .bz2
-extract-tool mpc $MPCVER .gz
-extract-tool mpfr $MPFRVER .bz2
+if [ ! -f .extracted-stamp ]; then
+    extract-tool binutils $BINVER .bz2 binutils-patch.txt
+    extract-tool gcc $GCCVER .bz2 gcc-patch.txt
+    extract-tool gdb $GDBVER .bz2 gdb-patch.txt
+    extract-tool gmp $GMPVER .bz2
+    extract-tool mpc $MPCVER .gz
+    extract-tool mpfr $MPFRVER .bz2
+    touch .extracted-stamp
+fi
 
 # link the last three libs into gcc
 pushd gcc-$GCCVER