X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=exercises%2Fch01%2FMakefile;h=8587a0482c1819fa2fb0110d9df2b33b191d0a98;hb=21d0f0503ea169988685a4f39d0e32b2b097dae6;hp=65c4991200cb185252999501e24d9b0aac774aa6;hpb=e6273b7a7190179063077be80b6616992d557ad2;p=tiger.ml.git diff --git a/exercises/ch01/Makefile b/exercises/ch01/Makefile index 65c4991..8587a04 100644 --- a/exercises/ch01/Makefile +++ b/exercises/ch01/Makefile @@ -3,18 +3,52 @@ MAKEFLAGS := --no-builtin-rules OCAMLC_OPTIONS := -w A -warn-error A OCAMLC_BYTE := ocamlc.opt $(OCAMLC_OPTIONS) -.PHONY: build clean +EXECUTABLES := \ + straight_line_program_interpreter \ + tree_demo +EXECUTABLES := $(addsuffix .byte,$(EXECUTABLES)) -build : straight_line_program_interpreter +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. + +build: + ocamlbuild $(EXECUTABLES) + +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 $< > $@