X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=exercises%2Fch01%2FMakefile;h=8587a0482c1819fa2fb0110d9df2b33b191d0a98;hb=7c9381cfa42670471ff857694bb56cde8f1e77c9;hp=3c986c04bde6e81bd6ee6d3b44a21b10ad73adf3;hpb=564eb9f351dfcdc6b53eaedb84e9f447f7ecde7f;p=tiger.ml.git diff --git a/exercises/ch01/Makefile b/exercises/ch01/Makefile index 3c986c0..8587a04 100644 --- a/exercises/ch01/Makefile +++ b/exercises/ch01/Makefile @@ -3,26 +3,52 @@ MAKEFLAGS := --no-builtin-rules OCAMLC_OPTIONS := -w A -warn-error A OCAMLC_BYTE := ocamlc.opt $(OCAMLC_OPTIONS) -.PHONY: build clean demo_unbalanced +EXECUTABLES := \ + straight_line_program_interpreter \ + tree_demo +EXECUTABLES := $(addsuffix .byte,$(EXECUTABLES)) -build : \ - straight_line_program_interpreter \ - tree +SET_MEMBERS := \ + a b c d e f g h i j k l m n o p q r s t u v foo bar kgkvbkvg \ + lkhjlk gfjyfjf fdtrdchfhtr trhfgfch hjlilijhl iygkyugkgkhy -%: %.ml %.cmo %.cmi - $(OCAMLC_BYTE) -o $@ $*.cmo -%.cmi: %.mli - $(OCAMLC_BYTE) -o $@ -c $< +.PHONY: \ + all \ + clean \ + build \ + demos -%.cmo: %.ml %.cmi - $(OCAMLC_BYTE) -c $< +all: + $(MAKE) clean + $(MAKE) build + $(MAKE) demos clean: - rm -f straight_line_program_interpreter + rm -rf ./_build/ + rm -f $(EXECUTABLES) + # There're also tree demo PNGs, but I want to keep them around, for + # referencing without having to build the project. -tree.png: tree - ./tree a b c d e f g h i j k l m n o p q r s t u v foo bar kgkvbkvg lkhjlk gfjyfjf fdtrdchfhtr trhfgfch hjlilijhl iygkyugkgkhy | neato -T png > tree.png +build: + ocamlbuild $(EXECUTABLES) -demo_unbalanced: tree.png - sxiv ./tree.png +demos: \ + run_straight_line_program_interpreter \ + tree_demo_unbalanced.png \ + tree_demo_balanced.png + +run_straight_line_program_interpreter: straight_line_program_interpreter.byte + ./$< + +tree_demo_unbalanced.dot: tree_demo.byte + ./$< unbalanced $(SET_MEMBERS) > $@ + +tree_demo_unbalanced.png: tree_demo_unbalanced.dot + neato -T png $< > $@ + +tree_demo_balanced.dot: tree_demo.byte + ./$< balanced $(SET_MEMBERS) > $@ + +tree_demo_balanced.png: tree_demo_balanced.dot + neato -T png $< > $@