include ../../Makefile.config


SUPPORTDIR=../libsupport
CAMLC=ocamlc
CAMLCOMP=$(CAMLC) -c
CPP=/lib/cpp -P -Dunix
COMPFLAGS= -I $(SUPPORTDIR)
LINKFLAGS=
CAMLYACC=ocamlyacc -v
CAMLLEX=ocamllex
CAMLDEP=ocamldep

TKLINKOPT=$(STATIC) \
          -ccopt -L$(TCLLIBDIR) -ccopt -L$(TKLIBDIR) -ccopt -L$(X11_LIB) \
	   $(SUPPORTDIR)/camltk.o $(TKLIBS)

SUPPORT=../libsupport/hashtblc.cmo \
        ../libsupport/support.cmo ../libsupport/protocol.cmo \
        ../libsupport/textvariable.cmo

EXTRAS=	../libsupport/optionmenu.cmo \
	../libsupport/dialog.cmo

all : tklib.cma toplevels

toplevels: camltktop

include ./modules

tkgen.ml: ../Widgets.src
	cd ..; compiler/tkcompiler

tk.ml : tkgen.ml $(SUPPORTDIR)/report.ml $(SUPPORTDIR)/builtin_*.ml
	(echo 'open Support'; \
	 echo 'open Protocol'; \
	 echo 'open Textvariable'; \
	 cat $(SUPPORTDIR)/report.ml; \
	 cat $(SUPPORTDIR)/builtin_*.ml; \
	 cat tkgen.ml; \
         cat $(SUPPORTDIR)/builtina_*.ml) > tk.ml

tklib.cma : $(SUPPORT) $(WIDGETOBJS) $(EXTRAS) tk.cmo 
	ocamlc -a -o tklib.cma $(SUPPORT) tk.cmo $(WIDGETOBJS) $(EXTRAS)

camltktop : $(WIDGETOBJS) $(SUPPORT)
	ocamlmktop -o camltktop -I $(SUPPORTDIR) $(PROFILING) \
	          -custom $(SUPPORT) tk.cmo $(WIDGETOBJS) $(EXTRAS) \
		                $(TKLINKOPT)

clean : 
	rm -f *.cm* *.ml *.mli tklib.cmo  camltktop

install: tklib.cma camltktop
	if test -d $(LIBDIR); then : ; else mkdir $(LIBDIR); fi
	cp *.cmi tklib.cma camltktop $(LIBDIR)
	chmod 644 $(LIBDIR)/*.cmi
	chmod 644 $(LIBDIR)/tklib.cma
	chmod 755 $(LIBDIR)/camltktop


.SUFFIXES :
.SUFFIXES : .mli .ml .cmi .cmo .mlp

.mli.cmi:
	$(CAMLCOMP) $(COMPFLAGS) $<

.ml.cmo:
	$(CAMLCOMP) $(COMPFLAGS) $<

depend: tk.ml
	$(CAMLDEP) *.mli *.ml > .depend

../libsupport/dialog.cmo: ../libsupport/dialog.cmi tk.cmi

include .depend
