###################################################################
# Configuration part
###################################################################

CAMLC   = @OCAMLC@ -g
CAMLOPT = @OCAMLOPT@
CAMLDEP = @OCAMLDEP@

###################################################################
# Compilation
###################################################################

CMO = cgi.cmo
CMI = $(CMO:.cmo=.cmi)
CMX = $(CMO:.cmo=.cmx)
MLI = $(CMO:.cmo=.mli)

all: @OCAMLBEST@

byte: $(CMO) runcgi.byte
	cp -l -f runcgi.byte runcgi

opt: $(CMO) $(CMX) runcgi.opt
	cp -l -f runcgi.opt runcgi

###################################################################
# Installation and export
###################################################################

COMMFILES = META $(MLI) $(CMI)
BYTEFILES = cgi.cmo
OPTFILES  = cgi.cmx cgi.o

install: install-@OCAMLBEST@

install-byte:
	ocamlfind install cgi $(COMMFILES) $(BYTEFILES) runcgi

install-opt:
	ocamlfind install cgi $(COMMFILES) $(BYTEFILES) $(OPTFILES) runcgi

MAJORVN=0
MINORVN=9
NAME=cgi-$(MAJORVN).$(MINORVN)

FTP = /users/demons/filliatr/WWW/ftp/ocaml/cgi
SOURCE = cgi.ml cgi.mli .depend
FILES = CHANGES README LGPL COPYING $(SOURCE)

export: move-olds source

move-olds:
	-mv $(FTP)/cgi-*.tar.gz $(FTP)/olds

source: $(FILES)
	mkdir -p export/$(NAME)
	cp $(FILES) export/$(NAME)
	(cd export ; tar cf $(NAME).tar $(NAME) ; \
	gzip -f --best $(NAME).tar)
	cp CHANGES README COPYING LGPL cgi.mli export/$(NAME).tar.gz $(FTP)
	caml2html -d $(FTP) cgi.mli

###################################################################
# Generic rules
###################################################################

.SUFFIXES: .mli .ml .cmi .cmo .cmx .byte .opt

FLAGS := -w -3

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

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

.ml.o:
	$(CAMLOPT) -c $(FLAGS) $<

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

.cmo.byte:
	$(CAMLC) unix.cma $(FLAGS) $< -o $@

.cmx.opt:
	$(CAMLOPT) unix.cmxa $(FLAGS) $< -o $@

###################################################################
# backup, clean and depend :
###################################################################

clean::
	rm -f *.cm[iox] *.o *.opt *.byte *~

distclean dist-clean:: clean
	rm -f config.cache config.status config.log Makefile runcgi

.depend:
	rm -f .depend
	$(CAMLDEP) $(LIBS) *.ml *.mli > .depend

include .depend