| 1 | ## Copyright (C) 2013 Matthew Fluet. |
| 2 | # Copyright (C) 2009 Matthew Fluet. |
| 3 | # Copyright (C) 1999-2007 Henry Cejtin, Matthew Fluet, Suresh |
| 4 | # Jagannathan, and Stephen Weeks. |
| 5 | # Copyright (C) 1997-2000 NEC Research Institute. |
| 6 | # |
| 7 | # MLton is released under a BSD-style license. |
| 8 | # See the file MLton-LICENSE for details. |
| 9 | ## |
| 10 | |
| 11 | SRC := $(shell cd .. && pwd) |
| 12 | BUILD := $(SRC)/build |
| 13 | BIN := $(BUILD)/bin |
| 14 | LIB := $(BUILD)/lib/mlton |
| 15 | MLTON := mlton |
| 16 | TARGET := self |
| 17 | FLAGS := -target $(TARGET) \ |
| 18 | -default-ann 'sequenceNonUnit warn' \ |
| 19 | -default-ann 'warnUnused true' |
| 20 | NAME := benchmark |
| 21 | PATH := $(BIN):$(shell echo $$PATH) |
| 22 | |
| 23 | all: $(NAME) |
| 24 | |
| 25 | $(NAME): $(NAME).mlb $(shell PATH="$(BIN):$$PATH" && "$(MLTON)" -stop f $(NAME).mlb) |
| 26 | @echo 'Compiling $(NAME)' |
| 27 | "$(MLTON)" $(FLAGS) $(NAME).mlb |
| 28 | |
| 29 | .PHONY: clean |
| 30 | clean: |
| 31 | ../bin/clean |
| 32 | |
| 33 | BENCH := barnes-hut boyer checksum count-graphs DLXSimulator even-odd fft fib flat-array hamlet imp-for knuth-bendix lexgen life logic mandelbrot matrix-multiply md5 merge mlyacc model-elimination mpuz nucleic output1 peek psdes-random ratio-regions ray raytrace simple smith-normal-form string-concat tailfib tak tensor tsp tyan vector32-concat vector64-concat vector-rev vliw wc-input1 wc-scanStream zebra zern |
| 34 | FPBENCH := barnes-hut fft hamlet mandelbrot matrix-multiply nucleic ray raytrace simple tensor tsp tyan vliw zern |
| 35 | |
| 36 | BFLAGS := -mlton "/usr/bin/mlton" -mlton "mlton -optimize-ssa {false,true}" |
| 37 | BFLAGS := -wiki -mlton "/usr/bin/mlton" -mlkit -mosml -poly -smlnj |
| 38 | BFLAGS := -mlton "$(BIN)/mlton" |
| 39 | |
| 40 | .PHONY: test |
| 41 | test: $(NAME) |
| 42 | cd tests && ../benchmark $(BFLAGS) $(BENCH) |
| 43 | |
| 44 | QBENCH := $(BENCH) |
| 45 | QBFLAGS := -mlton "~/devel/mlton/builds/20171013.233239-g5513092e3/bin/mlton" |
| 46 | QBFLAGS += -mlton "~/devel/mlton/mlton.git/build/bin/mlton -cse-canon {ascHash,descHash,ascIndex,descIndex}" |
| 47 | |
| 48 | .PHONY: qtest |
| 49 | qtest: $(NAME) |
| 50 | cd tests && ../benchmark $(QBFLAGS) $(QBENCH) && $(MAKE) clean |