From 5a76a49019ecf77c9e56a1b14183a25912fa3637 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 5 Dec 2011 13:55:53 +0200 Subject: Add root makefile for building/running tests/examples for all databases --- git/makefile | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 git/makefile 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 - build tests and examples for +# make -test - build and run tests and examples for +# +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))) -- cgit v1.1