LIBYAML_DIR ?= libyaml LIBYAML_REPO ?= https://github.com/yaml/libyaml LIBYAML_BRANCH ?= master define HELP This Makefile supports the following targets: build - Build ./libyaml-parser and ./libyaml-emitter test - Run tests endef export HELP help: @echo "$$HELP" build: touch libyaml-parser libyaml-emitter touch: ifneq ($(LIBYAML_DIR),libyaml) touch *.c endif libyaml-%: $(LIBYAML_DIR)/tests/.libs/run-% cp $< $@ $(LIBYAML_DIR)/tests/.libs/%: $(LIBYAML_DIR)/tests/%.c $(LIBYAML_DIR)/Makefile make -C $(LIBYAML_DIR) ifneq ($(LIBYAML_DIR),libyaml) (cd $(LIBYAML_DIR) && git checkout tests/run-parser.c tests/run-emitter.c) endif $(LIBYAML_DIR)/tests/run-%: libyaml-% $(LIBYAML_DIR) cp $< $@ .SECONDARY: \ $(LIBYAML_DIR)/tests/run-parser.c \ $(LIBYAML_DIR)/tests/run-emitter.c \ $(LIBYAML_DIR)/tests/.libs/run-parser \ $(LIBYAML_DIR)/tests/.libs/run-emitter $(LIBYAML_DIR)/Makefile: $(LIBYAML_DIR) ( cd $< && ./bootstrap && ./configure ) touch $@ $(LIBYAML_DIR): git clone $(LIBYAML_REPO) $@ sleep 1 touch *.c .PHONY: test test: build prove -lv test/ clean: rm -fr libyaml libyaml-parser libyaml-emitter