blob: de0d49a206842294cd0ceb2443d08c821637488c [file] [log] [blame]
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