#*********************************************************************#
#                                                                     #
#                           Htmlc                                     #
#                                                                     #
#                    Pierre Weis, INRIA Rocquencourt                  #
#                                                                     #
# Copyright 1997-2004,                                                #
# Institut National de Recherche en Informatique et en Automatique.   #
# Distributed only by permission.                                     #
#                                                                     #
#*********************************************************************#

#(* $Id: Makefile,v 1.33 2009/09/18 13:43:32 fclement Exp $ *)

MAKEFILESDIR = ../config

include $(MAKEFILESDIR)/Makefile

MLSOURCES = \
path.ml file.ml io_domain.ml \
lib_strings.ml lang.ml \
lib_date.ml date.ml \
configuration.ml types.ml setting.ml debug.ml \
substitute.ml parser.ml \
version.ml execute.ml env.ml eval.ml htmlc.ml primitives.ml main.ml

BYTOBJS = $(MLSOURCES:.ml=.cmo)
BINOBJS = $(MLSOURCES:.ml=.cmx)

PROG=htmlc

all:: depend byt bin

byt: $(PROG).byt

bin: $(PROG).bin

$(PROG).bin: $(BINOBJS)
	$(CAMLBIN) -o $(PROG).bin str.cmxa unix.cmxa $(BINOBJS) \
		-cclib -lunix -cclib -lstr && \
	$(RM) $(PROG) && ln -s $(PROG).bin $(PROG)

$(PROG).byt: $(BYTOBJS)
	$(CAMLBYT) -g -custom -o $(PROG).byt str.cma unix.cma $(BYTOBJS) \
		-cclib -lunix -cclib -lstr && \
	$(RM) $(PROG) && ln -s $(PROG).byt $(PROG)

installbyt:
	if test -d $(BINDIR); then : ; else $(MKDIR) $(BINDIR); fi && \
	if test -f $(PROG).byt; then \
	  $(INSTALL_EXECUTABLE) $(PROG).byt $(BINDIR)/$(PROG); \
	fi

installbin:
	if test -d $(BINDIR); then : ; else $(MKDIR) $(BINDIR); fi && \
	if test -f $(PROG).bin; then \
	  $(INSTALL_EXECUTABLE) $(PROG).bin $(BINDIR)/$(PROG); \
	fi

uninstallbin uninstallbyt:
	$(RM) $(BINDIR)/$(PROG)

clean::
	$(RM) $(PROG)  && \
	$(RM) $(PROG).bin && \
	$(RM) $(PROG).byt

# Dependencies
depend: $(MLSOURCES)
	$(RM) .depend  && \
	$(CAMLDEP) *.mli *.ml > .depend  && \
	touch depend

test:
	cd test && $(MAKE) all

include .depend
