# $Id: Makefile,v 1.32 2000/11/15 01:48:03 selinger Exp $ all: ppl ppli # ---------------------------------------------------------------------- # common rules .SUFFIXES: .ml .mli .cmo .cmi .cmx .ml.cmo: ocamlc -c $< .mli.cmi: ocamlc -c $< .ml.cmx: ocamlopt -c $< # ---------------------------------------------------------------------- # lexer and parser parser.ml parser.mli: parser.mly ocamlyacc parser.mly lexer.ml: lexer.mll ocamllex lexer.mll OBJS = library.cmo lambda.cmo types.cmo exn.cmo stdlib.cmo opt.cmo cbn.cmo \ parser.cmo lexer.cmo frontend.cmo unifier.cmo pseudo.cmo typing.cmo \ compiler.cmo OPTS = library.cmx lambda.cmx types.cmx exn.cmx stdlib.cmx opt.cmx cbn.cmx \ parser.cmx lexer.cmx frontend.cmx unifier.cmx pseudo.cmx typing.cmx \ compiler.cmx ppl: $(OBJS) ppl.cmo ocamlc -o ppl $(OBJS) ppl.cmo ppl.cma: $(OBJS) ocamlc -a -o ppl.cma $(OBJS) ppl.opt: $(OPTS) ppl.cmx ocamlopt -o ppl.opt $(OPTS) ppl.cmx strip ppl.opt # ---------------------------------------------------------------------- # ppli target ppli: ppli.in echo \#!`which wish` > ppli cat ppli.in >> ppli chmod +x ppli # ---------------------------------------------------------------------- # make distribution DISTDIR=ppl-0.2 dist: depend (cd doc; make) rm -rf $(DISTDIR) mkdir $(DISTDIR) $(DISTDIR)/doc $(DISTDIR)/examples cp -p *.ml Makefile depend lexer.mll parser.mly ppli.in pseudolib.h *.pc ChangeLog $(DISTDIR) rm $(DISTDIR)/lexer.ml $(DISTDIR)/parser.ml cp -p doc/ppl.dvi doc/ppl.ps doc/ppl.2up.ps doc/ppl.pdf doc/INSTALL doc/index.html $(DISTDIR)/doc cp -p samplefiles/*.ppl samplefiles/programs.txt $(DISTDIR)/examples tar -cf $(DISTDIR).tar $(DISTDIR) rm -rf $(DISTDIR) gzip -f $(DISTDIR).tar # ---------------------------------------------------------------------- # make (or update) website WEBBASE=/u/selinger/www/ppl www: make dist cp -p $(DISTDIR).tar.gz $(WEBBASE) cp -p doc/ppl.dvi doc/ppl.ps doc/ppl.2up.ps doc/ppl.pdf doc/INSTALL $(WEBBASE)/doc (cd $(WEBBASE); tar -zxf $(DISTDIR).tar.gz) (cd $(WEBBASE)/doc; gzip -f ppl.dvi ppl.ps ppl.2up.ps ppl.pdf) cp -p doc/index.html $(WEBBASE) chmod -R a+rX $(WEBBASE) echo "Reminder: directory $(WEBBASE)/bin must be maintained manually" # ---------------------------------------------------------------------- # auxiliary targets clean: rm -f *~ *.cma *.cmo *.cmi *.cmx *.o parser.ml parser.mli lexer.ml cleanall: clean rm -f ppl ppli ppl.opt $(DISTDIR).tar $(DISTDIR).tar.gz # ---------------------------------------------------------------------- # dependencies depend: lexer.ml parser.ml parser.mli ocamldep *.ml *.mli > depend include depend