include ../../Makefile.config

CAMLC=ocamlc
CAMLCOMP=$(CAMLC) -c
COMPFLAGS=-I ../libsupport -I ../lib
CC=$(NATIVECC)

all : blt.cmo bltinit.o

bltinit.o:
	$(CC) -g -c \
	         -I$(LIBDIR) \
		 -I$(X11_INCLUDES) \
		 -I$(TCLINCLDIR) \
		 -I$(TKINCLDIR) \
		bltinit.c

include modules

blt.ml blt.mli: blt.src
	if [ ! -s lib ]; then ln -s . lib; fi
	../compiler/tkcompiler blt.src
	(\
	echo "open Tk"; \
	echo "open Support"; \
	echo "open Protocol"; \
	cat tkgen.ml; \
	cat builtin.ml; \
	for i in $(WIDGETOBJS) ; do\
	 m=`basename $$i .cmo`;\
	 mm=`../safe/capitalize $$m`;\
	 echo "module $$mm = struct"; \
	 sed -e '/^open/d' $$m.ml; \
         echo "end"; \
	 echo; \
        done \
	) > blt.ml
	sed -n -e '/^(\* type \*)$$/,/^(\* \/type \*)$$/p' tkgen.ml | \
	sed -e '/^(\* type \*)$$/d' -e '/^(\* \/type \*)$$/d' \
         > tktypes.ml
	(\
	echo "open Tk"; \
	echo "open Support"; \
	echo "open Protocol"; \
	cat tktypes.ml; \
	cat builtin.mli; \
	for i in $(WIDGETOBJS) ; do\
	 m=`basename $$i .cmo`;\
	 mm=`../safe/capitalize $$m`;\
	 echo "module $$mm : sig"; \
	 sed -e '/^open/d' $$m.mli; \
         echo "end"; \
	 echo; \
        done \
	) > blt.mli

clean:
	rm -f *.cm? bltinit.o blt.ml blt.mli tkgen.ml tkgen.mli lib table.ml* tktypes.ml

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

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

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


blt.cmo: blt.cmi

