PREFIX = /usr/local
DESTDIR =

VERSION = 0.0.3

BINDIR = $(PREFIX)/bin
EXAMPLESDIR = $(PREFIX)/src/examples/xspp-$(VERSION)

src = lex.ml gram.ml sementics.ml main.ml
obj = ${src:.ml=.cmo}
opt_obj = ${src:.ml=.cmx}

OCAML_FLAGS = -I +camlp4 -pp 'camlp4o pa_extend.cmo'


byte: xspp

opt: xspp.opt

all: byte opt

t: xspp
	./xspp < foo.xspp > foo.xsl
	xsltproc foo.xsl stuff/paper.xml > index.html

xspp: $(obj)
	ocamlc $(OCAML_FLAGS) str.cma gramlib.cma $(obj) -o $@

xspp.opt: $(opt_obj)
	ocamlopt $(OCAML_FLAGS) str.cmxa gramlib.cmxa $(opt_obj) -o $@

%.cmo: %.ml
	ocamlc -c $(OCAML_FLAGS) $<

%.cmx: %.ml
	ocamlopt -c $(OCAML_FLAGS) $<

%.cmi: %.mli
	ocamlc -c $(OCAML_FLAGS) $<

clean:
	rm -f *.cm[oix] core xspp .deps foo.xsl index.html *.o xspp.opt
	
.deps:
	ocamldep $(OCAML_FLAGS) $(src) *.mli > .deps

dist:
	$(MAKE) -C doc
	rm -f .deps
	$(MAKE) .deps
	rm -rf xspp-$(VERSION)
	mkdir xspp-$(VERSION)
	cp -r .deps NEWS LICENSE Makefile *.ml *.mli README doc xspp-$(VERSION)
	find xspp-$(VERSION) \
		-name .svn -o \
		-name CVS -o \
		-name .cvsignore | xargs rm -rf
	tar cf - xspp-$(VERSION) | gzip -9nf > xspp-$(VERSION).tar.gz
	rm -rf xspp-$(VERSION)

install:
	install -d $(DESTDIR)$(BINDIR)
	install -d $(DESTDIR)$(EXAMPLESDIR)
	if test -f xspp.opt ; then \
		install xspp.opt $(DESTDIR)$(BINDIR)/xspp ; \
	else \
		install xspp $(DESTDIR)$(BINDIR)/xspp ; \
	fi
	install -m 644 doc/bible-examples/* $(DESTDIR)$(EXAMPLESDIR)

include .deps
