+tasks/extract_git_%:
+ if [ -e $@ ]; then echo "Error: $@ exists. something isn't right"; false; else true; fi
+ mkdir -p build
+ if [ -z "$(git_$*)" ]; then echo "No git url for $*" >&2; false; fi
+ if [ -d "$(root)/.git" ]; then \
+ cd build && git clone "$(git_$*)" "$*"; \
+ else \
+ mkdir -p "build/" && cd "build/"; \
+ git clone $(darcs_$*) $*; \
+ fi
+ touch $@
+
+update_git_%: tasks/extract_git_%
+ if [ -d "build/$*/.git" ]; then \
+ cd "build/$*" && git fetch; \
+ else \
+ cd "build/$*" && git clone $(git_$*); \
+ fi
+ rm -f "tasks/build_git_$*" # to force a rebuild
+
+tasks/build_git_%: tasks/extract_git_%
+ cd "build/$*" && $(MAKE)
+ touch $@
+