diff options
-rw-r--r-- | git/makefile | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/git/makefile b/git/makefile new file mode 100644 index 0000000..1d07993 --- /dev/null +++ b/git/makefile @@ -0,0 +1,56 @@ +# Root makefile that can be used to build/run tests and examples for some +# or all databases: +# make - build tests and examples for all the databases +# make test - build and run tests and examples for all the databases +# make <db> - build tests and examples for <db> +# make <db>-test - build and run tests and examples for <db> +# +db := oracle pgsql sqlite mysql + +.PHONY: all test $(db) $(addsuffix -test,$(db)) + +all: $(db) +test: $(addsuffix -test,$(db)) + +define set_dirs +edir := $$(wildcard examples-$1-default) +tdir := $$(wildcard tests-$1-default) + +ifeq ($$(edir),) +edir := examples-$1 +endif + +ifeq ($$(tdir),) +tdir := tests-$1 +endif +endef + +define build_rule +$1: edir := $$(edir) +$1: tdir := $$(tdir) + +$1: + @$$(MAKE) -C $$(edir) + @$$(MAKE) -C $$(tdir) +endef + +define test_rule +$1-test: edir := $$(edir) +$1-test: tdir := $$(tdir) + +$1-test: + @$$(MAKE) -C $$(edir) test + @$$(MAKE) -C $$(tdir) test +endef + +# Note: empty line at the end is important. +# +# +define rules +$(call set_dirs,$1) +$(call build_rule,$1) +$(call test_rule,$1) + +endef + +$(eval $(foreach d,$(db),$(call rules,$d))) |