# Where to find the compiler... With a trailing / !
BINDIR=
CAMLC=$(BINDIR)ocamlc
CAMLOPT=$(BINDIR)ocamlopt
CAMLDEP=$(BINDIR)ocamldep
CAMLLEX=$(BINDIR)ocamllex
CAMLYACC=$(BINDIR)ocamlyacc
WARN_GRAVITY=-warn-error A
#WARN_GRAVITY=
COMPFLAGS=-w A-3-4-6-9-52 $(WARN_GRAVITY) -g

MKQCM = mkqcm
GENERATED_MKQCM = installation.ml lexer.ml parser.ml parser.mli
SOURCES_MKQCM = parsefile.ml mkqcm.ml
MLIS_MKQCM = parsetree.mli parser.mli parsefile.mli
OBJS_MKQCM = $(GENERATED_MKQCM:.ml=.cmx) $(SOURCES_MKQCM:.ml=.cmx)

include .install_var
.PHONY: all

# Building the world
all: $(MKQCM)


$(MKQCM): $(OBJS_MKQCM)
	$(CAMLOPT) $(COMPFLAGS) $(OBJS_MKQCM) -o $(MKQCM)

.SUFFIXES:
.SUFFIXES: .ml .mli .cmo .cmi .cmx
.SUFFIXES: .mll .mly

.ml.cmx:
	$(CAMLOPT) $(COMPFLAGS) -c $<

.ml.cmo:
	$(CAMLC) $(COMPFLAGS) -c $<

.mli.cmi:
	$(CAMLC) $(COMPFLAGS) -c $<

.mll.ml:
	$(CAMLLEX) $<

.mly.ml:
	$(CAMLYACC) $<

.mly.mli:
	$(CAMLYACC) $<

# Clean up
clean:
	rm -f *.cm[io] *.cmx *~ .*~ *.o *.aux *.log
	rm -f $(GENERATED_MKQCM) $(MKQCM)

# Dependencies
depend: $(SOURCES_MKQCM) $(MLIS_MKQCM) $(GENERATED_MKQCM)
	$(CAMLDEP) $(SOURCES_MKQCM) $(MLIS_MKQCM) $(GENERATED_MKQCM) > .depend

install: $(MKQCM) coremacros.tex macros.tex
	sudo mkdir -p $(INSTALL_BIN_DIR)
	sudo cp -f $(MKQCM) $(INSTALL_BIN_DIR)/
	sudo mkdir -p $(INSTALL_LIB_DIR)
	sudo cp -f coremacros.tex macros.tex $(INSTALL_LIB_DIR)/
	sudo cp -Rf images $(INSTALL_LIB_DIR)/
	sudo cp -f mkqcm.1 $(INSTALL_MAN_DIR)/man1/

distrib:
	rm -f tiny_qcml-1.1.0.tgz
		(cd .. &&\
	tar cvzf tiny_qcml/tiny_qcml-1.1.0.tgz -T tiny_qcml/files-for-distrib.lst -s /tiny_qcml/tiny_qcml-1.1.0/g)


include .depend
