#*********************************************************************#
#                                                                     #
#                           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.48 2012-03-16 12:41:51 fclement Exp $ *)

MAKEFILESDIR=../config

include $(MAKEFILESDIR)/Makefile

MLSOURCES=\
 lib_strings.ml lang.ml\
 lib_date.ml date.ml\
 debug.ml\
 configuration.ml\
 file.ml path.ml\
 types.ml\
 setting.ml\
 htmlc_options.ml\
 io_domain.ml\
 substitute.ml parser.ml\
 version.ml execute.ml env.ml\
 eval.ml preprocessor.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) &&\
	$(RM) $(PROG) && ln -s $(PROG).bin $(PROG)

$(PROG).byt: $(BYTOBJS)
	$(CAMLBYT) -o $(PROG).byt str.cma unix.cma $(BYTOBJS) &&\
	$(RM) $(PROG) && ln -s $(PROG).byt $(PROG)

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

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

uninstallbin uninstallbyt:
	@$(RM) $(BINDIR)/$(PROG) &&\
	$(RMDIR) $(BINDIR) 2> /dev/null || true

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

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

version.ml: version.mlin $(MAKEFILESDIR)/env
	(cd ..; $(MAKE) version) &&\
	LINE="(*                                                             *)" &&\
	MSG1="(* This file is automatically generated by Htmlc.              *)" &&\
	\
	MSG2="(* DO NOT EDIT this file, edit its source files instead!       *)" &&\
	\
	MSG3="(* The source files for this one are:                          *)" &&\
	MSG4="(* - the template file \"./version.mlin\" (almost fixed),        *)" &&\
	MSG5="(* - the environment file \"../config/env\" (often edited).      *)" &&\
	MSG6="(* Hence, any modification to this file should generally       *)" &&\
	MSG7="(* be made to the environment file \"../config/env\".            *)" &&\
	\
	($(ECHO) "$$LINE"; $(ECHO) "$$MSG1"; $(ECHO) "$$LINE";\
	 $(ECHO) "$$MSG2";  $(ECHO) "$$LINE";\
	 $(ECHO) "$$MSG3";\
	 $(ECHO) "$$MSG4";\
	 $(ECHO) "$$MSG5";\
	 $(ECHO) "$$LINE";\
	 $(ECHO) "$$MSG6";\
	 $(ECHO) "$$MSG7") |\
	$(CAT) - version.mlin |\
	$(HTMLC) -f - -t version.ml

test:
	cd test && $(MAKE) all

include .depend
