Blame camltk/Makefile.gen

Packit bd2e5d
#######################################################################
Packit bd2e5d
#                                                                     #
Packit bd2e5d
#                 MLTk, Tcl/Tk interface of OCaml                     #
Packit bd2e5d
#                                                                     #
Packit bd2e5d
#    Francois Rouaix, Francois Pessaux, Jun Furuse and Pierre Weis    #
Packit bd2e5d
#               projet Cristal, INRIA Rocquencourt                    #
Packit bd2e5d
#            Jacques Garrigue, Kyoto University RIMS                  #
Packit bd2e5d
#                                                                     #
Packit bd2e5d
#  Copyright 2002 Institut National de Recherche en Informatique et   #
Packit bd2e5d
#  en Automatique and Kyoto University.  All rights reserved.         #
Packit bd2e5d
#  This file is distributed under the terms of the GNU Library        #
Packit bd2e5d
#  General Public License, with the special exception on linking      #
Packit bd2e5d
#  described in file LICENSE found in the OCaml source tree.          #
Packit bd2e5d
#                                                                     #
Packit bd2e5d
#######################################################################
Packit bd2e5d
Packit bd2e5d
include ../support/Makefile.common
Packit bd2e5d
Packit bd2e5d
all: cTk.ml # camltk.ml .depend
Packit bd2e5d
Packit bd2e5d
     # all 3 dependencies are generated by the same rule. When the
Packit bd2e5d
     # target 'all' depends on the 3 files, a 'make -jN' will spawn 3
Packit bd2e5d
     # shell processes, and generate all files 3 times in parallel...
Packit bd2e5d
Packit bd2e5d
_tkgen.ml: ../Widgets.src ../compiler/tkcompiler$(EXE)
Packit bd2e5d
	cd ..; $(CAMLRUNGEN) compiler/tkcompiler$(EXE) -camltk -outdir camltk
Packit bd2e5d
Packit bd2e5d
#cTk.ml camltk.ml .depend: generate
Packit bd2e5d
Packit bd2e5d
cTk.ml camltk.ml .depend: _tkgen.ml ../builtin/report.ml ../compiler/pp$(EXE) #../builtin/builtin_*.ml
Packit bd2e5d
	(echo '##define CAMLTK'; \
Packit bd2e5d
	 echo 'include Camltkwrap'; \
Packit bd2e5d
	 echo 'open Widget'; \
Packit bd2e5d
	 echo 'open Protocol'; \
Packit bd2e5d
	 echo 'open Textvariable'; \
Packit bd2e5d
	 echo ; \
Packit bd2e5d
	 cat ../builtin/report.ml; \
Packit bd2e5d
	 echo ; \
Packit bd2e5d
	 cat ../builtin/builtin_*.ml; \
Packit bd2e5d
	 echo ; \
Packit bd2e5d
	 cat _tkgen.ml; \
Packit bd2e5d
	 echo ; \
Packit bd2e5d
	 echo ; \
Packit bd2e5d
	 echo 'module Tkintf = struct'; \
Packit bd2e5d
	 cat ../builtin/builtini_*.ml; \
Packit bd2e5d
	 cat _tkigen.ml; \
Packit bd2e5d
	 echo 'end (* module Tkintf *)'; \
Packit bd2e5d
	 echo ; \
Packit bd2e5d
	 echo ; \
Packit bd2e5d
	 echo 'open Tkintf' ;\
Packit bd2e5d
	 echo ; \
Packit bd2e5d
	 echo ; \
Packit bd2e5d
	 cat ../builtin/builtinf_*.ml; \
Packit bd2e5d
	 cat _tkfgen.ml; \
Packit bd2e5d
	 echo ; \
Packit bd2e5d
	) > _cTk.ml
Packit bd2e5d
	$(CAMLRUN) ../compiler/pp < _cTk.ml > cTk.ml
Packit bd2e5d
	rm -f _cTk.ml
Packit bd2e5d
	$(CAMLDEP) -slash -I ../support [a-z]*.mli [a-z]*.ml > .depend
Packit bd2e5d
Packit bd2e5d
../compiler/pp$(EXE):
Packit bd2e5d
	cd ../compiler; $(MAKE) pp($EXE)
Packit bd2e5d
Packit bd2e5d
../compiler/tkcompiler$(EXE):
Packit bd2e5d
	cd ../compiler; $(MAKE) tkcompiler($EXE)
Packit bd2e5d
Packit bd2e5d
# All .{ml,mli} files are generated in this directory
Packit bd2e5d
clean:
Packit bd2e5d
	rm -f *.cm* *.ml *.mli *.$(O) *.$(A) .depend
Packit bd2e5d
#	rm -f modules
Packit bd2e5d
Packit bd2e5d
.PHONY: all generate clean