# Makefile for ReactiveML # Taken from Lucid-synchrone # Organization : SPI team, LIP6 laboratory, University Paris 6 include configure-tools/version include config all: config-stamp (cd compiler; touch .depend; $(MAKE) depend; $(MAKE) $(TARGET)) (cd stdlib; $(MAKE) all) (cd interpreter; touch .depend; $(MAKE) depend; $(MAKE) all) (cd toplevel; $(MAKE) all) (cd tools; $(MAKE) $(TARGET)) config-stamp: ./configure touch $@ toplevel: FORCE (cd toplevel; $(MAKE) all) toplevel-install: (cd toplevel; $(MAKE) install) opt: TARGET := opt opt: all byte: TARGET := byte byte: all .PHONY: install install: (cd compiler; $(MAKE) install) (cd stdlib; $(MAKE) install) (cd interpreter; $(MAKE) install) (cd man; $(MAKE) install) (cd emacs; $(MAKE) install) (cd toplevel; $(MAKE) install) (cd tools; $(MAKE) install) checkinstall: config checkinstall -D --deldoc=yes --deldesc=yes --nodoc -y --install=no uninstall: (cd compiler; $(MAKE) uninstall) (cd stdlib; $(MAKE) uninstall) (cd interpreter; $(MAKE) uninstall) (cd man; $(MAKE) uninstall) (cd emacs; $(MAKE) uninstall) (cd toplevel; $(MAKE) uninstall) (cd tools; $(MAKE) uninstall) ### BEGIN Patch from Serge Leblanc install.findlib: @echo "Install ReactiveML interpreter in ocamlfind hierarchy." @(echo "version = \"$(VERSION)\"" > ./META) @(cat ./configure-tools/META.in >> ./META) - [ ! -e ./rmllib.a ] && \ ln -s ./interpreter/rmllib.a ./rmllib.a - [ ! -e ./rmllib.cma ] && \ ln -s ./interpreter/rmllib.cma ./rmllib.cma - [ ! -e ./rmllib.cmxa ] && \ ln -s ./interpreter/rmllib.cmxa ./rmllib.cmxa - [ -r ./META -a -r ./rmllib.a -a -r ./rmllib.cma -a -r ./rmllib.cmxa ] && \ ocamlfind install rmlc ./META ./rmllib.a ./rmllib.cma ./rmllib.cmxa - rm -rf rmllib.a rmllib.cma rmllib.cmxa uninstall.findlib: ocamlfind remove rmlc ### END doc: dvi dvi: (cd doc; $(MAKE) dvi) html: (cd doc; $(MAKE) html) wc: (cd compiler;$(MAKE) wc) (cd interpreter; $(MAKE) wc) (cd toplevel; $(MAKE) wc) (cd tools; $(MAKE) wc) clean: (cd compiler;$(MAKE) clean) (cd stdlib; $(MAKE) clean) (cd interpreter; $(MAKE) clean) (cd toplevel; $(MAKE) clean) (cd tools; $(MAKE) clean) (cd man; $(MAKE) clean) (cd doc; $(MAKE) clean) (cd patch; $(MAKE) clean) (cd examples; $(MAKE) clean) realclean: clean-distrib (cd compiler;$(MAKE) realclean) (cd stdlib; $(MAKE) realclean) (cd interpreter; $(MAKE) realclean) (cd toplevel; $(MAKE) realclean) (cd tools; $(MAKE) realclean) (cd man; $(MAKE) realclean) (cd doc; $(MAKE) realclean) (cd patch; $(MAKE) realclean) (cd examples; $(MAKE) realclean) rm -rf META rm -rf config config-stamp Makefile.common distrib/rml/rmlc.in distrib/rml/Makefile *~ touch config rm -rf configure-tools/rmlbuild.config cleanall: realclean # Making distribution DATE=`date "+%Y-%m-%d"` public-distrib: touch config $(MAKE) realclean mkdir -p distrib/rml-$(VERSION)-$(DATE) cp -r compiler interpreter stdlib toplevel tools emacs doc man examples \ distrib/rml-$(VERSION)-$(DATE) cp -r configure configure-tools patch Makefile CHANGES INSTALL LICENSE \ distrib/rml-$(VERSION)-$(DATE) mkdir -p distrib/rml-$(VERSION)-$(DATE)/distrib cp -r distrib/rml distrib/Makefile.byte distrib/Makefile.opt \ distrib/rmlc.in.byte distrib/rmlc.in.opt \ distrib/rml-$(VERSION)-$(DATE)/distrib (cd distrib/rml-$(VERSION)-$(DATE)/patch; \ $(MAKE) public-distrib) (cd distrib; \ tar --exclude=CVS --exclude=.svn --exclude=.git -zcvf rml-$(VERSION)-$(DATE).tar.gz rml-$(VERSION)-$(DATE); \ rm -rf rml-$(VERSION)-$(DATE); \ mv rml-$(VERSION)-$(DATE).tar.gz ..) source-distrib: touch config $(MAKE) realclean mkdir -p distrib/rml-$(VERSION)-$(DATE) cp -r compiler interpreter stdlib toplevel tools emacs doc man examples \ distrib/rml-$(VERSION)-$(DATE) cp -r configure configure-tools patch Makefile CHANGES INSTALL LICENSE \ distrib/rml-$(VERSION)-$(DATE) mkdir -p distrib/rml-$(VERSION)-$(DATE)/distrib cp -r distrib/rml distrib/Makefile.byte distrib/Makefile.opt \ distrib/rmlc.in.byte distrib/rmlc.in.opt \ distrib/rml-$(VERSION)-$(DATE)/distrib (cd distrib; \ tar --exclude=CVS --exclude=.svn --exclude=.git -zcvf rml-$(VERSION)-$(DATE).tar.gz rml-$(VERSION)-$(DATE); \ rm -rf rml-$(VERSION)-$(DATE); \ mv rml-$(VERSION)-$(DATE).tar.gz ..) binary-distrib: binary-distrib.opt binary-distrib.opt: clean-distrib touch config $(MAKE) realclean ./configure (cd compiler; touch .depend; $(MAKE) depend; $(MAKE) opt) (cd stdlib; $(MAKE) all) (cd interpreter; $(MAKE) all) (cd toplevel; $(MAKE) all) (cd tools; $(MAKE) opt) (cd distrib/rml/; \ mkdir bin lib lib/rml; \ cp ../../compiler/rmlc.opt bin/rmlc.opt ; \ cp ../../toplevel/rmltop bin/rmltop ; \ cp ../../stdlib/*.rzi ../../stdlib/*.rmli lib/rml ; \ cp ../../interpreter/*.cma ../../interpreter/*.cmxa ../../interpreter/*.a ../../interpreter/*.cmi lib/rml ; \ cp ../../toplevel/*.cmo ../../toplevel/*.cmi lib/rml ; \ cp ../../tools/rmldep/rmldep.opt bin/rmldep ; \ cp -r ../../emacs . ; \ cp ../Makefile.opt Makefile; \ cp ../rmlc.in.opt rmlc.in; \ cd ..; \ tar --exclude=CVS --exclude=.svn --exclude=.git -zcvf rml-`../compiler/rmlc -version`.opt.tar.gz rml; \ mv rml-`../compiler/rmlc -version`.opt.tar.gz ..) binary-distrib.byte: clean-distrib touch config $(MAKE) realclean ./configure (cd compiler; touch .depend; $(MAKE) depend; $(MAKE) byte) (cd stdlib; $(MAKE) all) (cd interpreter; $(MAKE) all) (cd toplevel; $(MAKE) all) (cd tools; $(MAKE) all) (cd distrib/rml/ ; \ mkdir bin lib lib/rml ; \ cp ../../compiler/rmlc.byte bin/rmlc.byte ; \ cp ../../toplevel/rmltop bin/rmltop ; \ cp ../../stdlib/*.rzi ../../stdlib/*.rmli lib/rml ; \ cp ../../interpreter/*.cma ../../interpreter/*.cmxa ../../interpreter/*.a ../../interpreter/*.cmi lib/rml ; \ cp ../../toplevel/*.cmo ../../toplevel/*.cmi lib/rml ; \ cp ../../tools/rmldep/rmldep.byte bin/rmldep ; \ cp -r ../../emacs . ; \ cp ../Makefile.byte Makefile ; \ cp ../rmlc.in.byte rmlc.in ; \ cd ..; tar --exclude=CVS --exclude=.svn --exclude=.git -zcvf rml-`../compiler/rmlc -version`.byte.tar.gz rml ; \ mv rml-`../compiler/rmlc -version`.byte.tar.gz ..) clean-distrib: rm -rf distrib/rml/bin \ distrib/rml/lib \ distrib/rml/emacs \ distrib/rml/man - rm -f rml-`./compiler/rmlc -version`.*.tar.gz rm -f rml-$(VERSION)-????-??-??.tar.gz FORCE: