diff --git a/repos.make b/repos.make
index aa055a37a2069086e11f0ad63166515cf33cdfd1_cmVwb3MubWFrZQ==..9f013045bc799fc70eae9b96f7c7e246ff6c7f50_cmVwb3MubWFrZQ== 100644
--- a/repos.make
+++ b/repos.make
@@ -1,4 +1,7 @@
 SOURCE=https://static.octobus.net/asv/
 
-all: repos/mercurial-2018-08-01.benchrepo repos/pypy-2018-08-01.benchrepo repos/mozilla-central-2018-08-01.benchrepo repos/netbeans-2018-08-01.benchrepo
+all: repos/mercurial-2018-08-01.benchrepo\
+     repos/pypy-2018-08-01.benchrepo\
+     repos/mozilla-central-2018-08-01.benchrepo\
+     repos/netbeans-2018-08-01.benchrepo
 
@@ -4,8 +7,4 @@
 
-repos/mercurial-2018-08-01.benchrepo:
-	(cd repos/; curl $(SOURCE)/mercurial-2018-08-01-reference.tar | tar x; hg -R mercurial-2018-08-01-reference update tip)
-	(cd repos/.cache/; curl $(SOURCE)/mercurial-2018-08-01-partial-last-hundred.tar | tar x)
-	(cd repos/.cache/; curl $(SOURCE)/mercurial-2018-08-01-partial-last-ten.tar | tar x)
-	(cd repos/.cache/; curl $(SOURCE)/mercurial-2018-08-01-partial-last-thousand.tar | tar x)
-	(cd repos/.cache/; curl $(SOURCE)/mercurial-2018-08-01-partial-same.tar | tar x)
+repos:
+	mkdir repos
 
@@ -11,8 +10,4 @@
 
-repos/mozilla-central-2018-08-01.benchrepo:
-	(cd repos/; curl $(SOURCE)/mozilla-central-2018-08-01-reference.tar | tar x; hg -R mozilla-central-2018-08-01-reference update tip)
-	(cd repos/.cache/; curl $(SOURCE)/mozilla-central-2018-08-01-partial-last-hundred.tar | tar x)
-	(cd repos/.cache/; curl $(SOURCE)/mozilla-central-2018-08-01-partial-last-ten.tar | tar x)
-	(cd repos/.cache/; curl $(SOURCE)/mozilla-central-2018-08-01-partial-last-thousand.tar | tar x)
-	(cd repos/.cache/; curl $(SOURCE)/mozilla-central-2018-08-01-partial-same.tar | tar x)
+repos/.cache: | repos
+	mkdir repos/.cache
 
@@ -18,14 +13,7 @@
 
-repos/pypy-2018-08-01.benchrepo:
-	(cd repos/; curl $(SOURCE)/pypy-2018-08-01-reference.tar | tar x; hg -R pypy-2018-08-01-reference update tip)
-	(cd repos/.cache/; curl $(SOURCE)/pypy-2018-08-01-partial-last-hundred.tar | tar x)
-	(cd repos/.cache/; curl $(SOURCE)/pypy-2018-08-01-partial-last-ten.tar | tar x)
-	(cd repos/.cache/; curl $(SOURCE)/pypy-2018-08-01-partial-last-thousand.tar | tar x)
-	(cd repos/.cache/; curl $(SOURCE)/pypy-2018-08-01-partial-same.tar | tar x)
-
-repos/netbeans-2018-08-01.benchrepo:
-	(cd repos/; curl $(SOURCE)/netbeans-2018-08-01-reference.tar | tar x; hg -R netbeans-2018-08-01-reference update tip)
-	(cd repos/.cache/; curl $(SOURCE)/netbeans-2018-08-01-partial-last-hundred.tar | tar x)
-	(cd repos/.cache/; curl $(SOURCE)/netbeans-2018-08-01-partial-last-ten.tar | tar x)
-	(cd repos/.cache/; curl $(SOURCE)/netbeans-2018-08-01-partial-last-thousand.tar | tar x)
-	(cd repos/.cache/; curl $(SOURCE)/netbeans-2018-08-01-partial-same.tar | tar x)
+repos/%.benchrepo: | repos/.cache
+	(cd repos/; curl $(SOURCE)/$*-reference.tar | tar x; hg -R $*-reference update tip)
+	(cd repos/.cache/; curl $(SOURCE)/$*-partial-last-hundred.tar | tar x)
+	(cd repos/.cache/; curl $(SOURCE)/$*-partial-last-ten.tar | tar x)
+	(cd repos/.cache/; curl $(SOURCE)/$*-partial-last-thousand.tar | tar x)
+	(cd repos/.cache/; curl $(SOURCE)/$*-partial-same.tar | tar x)