NATIVE_ENABLED = true
BYTE_ENABLED = true

USE_OCAMLFIND = true
OCAMLPACKS[] = csv extlib sqlite3 estring lwt lwt.syntax
OCAMLFINDFLAGS = -syntax camlp4o

OCAMLDEP_MODULES_ENABLED = false

%.sig: %.ml %.cmo
        $(OCAMLFIND) $(OCAMLC) -package $(concat \,, $(OCAMLPACKS)) \
	    $(OCAMLFINDFLAGS) \
            $(mapprefix -I, $(OCAMLINCLUDES)) \
            $(OCAMLFLAGS) $(OCAMLCFLAGS) -i $< > $@

section
	NATIVE_ENABLED = false
	OCAMLPACKS[] = estring camlp4.quotations
	pa_sql.cmi pa_sql.cmo: pa_sql.ml

.SCANNER: scan-ocaml-%.ml: %.ml pa_sql.cmo
OCAMLFINDFLAGS += -syntax camlp4o -ppopt pa_sql.cmo

OCamlLibrary(sqlexpr, sqlexpr_concurrency sqlexpr_sqlite)

section
    OCAMLPACKS[] += oUnit
    OCAML_LIBS[] += sqlexpr
    OCamlProgram(t_sqlexpr_sqlite, t_sqlexpr_sqlite)
    $(addsuffixes .o .cmx .cmi .cmo, t_sqlexpr_sqlite):

section
    VERSION = $(shell oasis query Version | tail -1)
    NAME = ocaml-sqlexpr-$(VERSION)
    DATE = $(shell date +%F)
    BRANCH = $(VERSION)_$(DATE)

    .PHONY: release
    release:
        git checkout -b $(BRANCH)
	oasis setup
	git add -f META sqlexpr.odocl Makefile _tags configure \
	    myocamlbuild.ml setup.ml sqlexpr.mllib sqlexpr_syntax.mllib
	git commit -m "Add OASIS-generated build system."
	git archive -v --prefix $(NAME)/ -o $(NAME).tar HEAD
	rm -f $(NAME).tar.gz
	gzip $(NAME).tar
	git checkout master
	git branch -D $(BRANCH)

.DEFAULT: pa_sql.cmo sqlexpr.cma sqlexpr.cmxa

.PHONY: test
test: t_sqlexpr_sqlite
	./t_sqlexpr_sqlite

.PHONY: clean

clean:
	rm -f $(filter-proper-targets $(ls R, .)) *.s *.annot *.so *.a
