Makefile 543 B

12345678910111213141516171819202122232425262728293031
  1. LD := gcc
  2. LDFLAGS := -nostartfiles
  3. BFILES := $(patsubst %.b,%,$(wildcard *.b))
  4. .PHONY: check clean
  5. .PRECIOUS: $(addsuffix .ll,$(BFILES)) $(addsuffix -opt.ll,$(BFILES))
  6. bf: bf.ml
  7. ocamlopt -o $@ -g -I /usr/lib/ocaml/llvm-3.4 llvm.cmxa $<
  8. rm -f $@.cmi $@.cmx $@.o
  9. %: %.o
  10. $(LD) -o $@ $< $(LDFLAGS)
  11. %.o: %.ll
  12. llc -filetype obj -o $@ $<
  13. %.ll: %.bc
  14. llvm-dis -o $@ $<
  15. %-opt.ll: %.ll
  16. opt -O3 -S -o $@ $<
  17. %.ll: %.b bf
  18. ./bf < $< > $@
  19. check: hello-opt
  20. ./$<
  21. clean:
  22. rm -f bf *.cmi *.cmx *.ll *.bc *.o $(BFILES) $(addsuffix -opt,$(BFILES))