Import Upstream version 20180207
[hcoop/debian/mlton.git] / benchmark / Makefile
CommitLineData
7f918cf1
CE
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
11SRC := $(shell cd .. && pwd)
12BUILD := $(SRC)/build
13BIN := $(BUILD)/bin
14LIB := $(BUILD)/lib/mlton
15MLTON := mlton
16TARGET := self
17FLAGS := -target $(TARGET) \
18 -default-ann 'sequenceNonUnit warn' \
19 -default-ann 'warnUnused true'
20NAME := benchmark
21PATH := $(BIN):$(shell echo $$PATH)
22
23all: $(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
30clean:
31 ../bin/clean
32
33BENCH := 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
34FPBENCH := barnes-hut fft hamlet mandelbrot matrix-multiply nucleic ray raytrace simple tensor tsp tyan vliw zern
35
36BFLAGS := -mlton "/usr/bin/mlton" -mlton "mlton -optimize-ssa {false,true}"
37BFLAGS := -wiki -mlton "/usr/bin/mlton" -mlkit -mosml -poly -smlnj
38BFLAGS := -mlton "$(BIN)/mlton"
39
40.PHONY: test
41test: $(NAME)
42 cd tests && ../benchmark $(BFLAGS) $(BENCH)
43
44QBENCH := $(BENCH)
45QBFLAGS := -mlton "~/devel/mlton/builds/20171013.233239-g5513092e3/bin/mlton"
46QBFLAGS += -mlton "~/devel/mlton/mlton.git/build/bin/mlton -cse-canon {ascHash,descHash,ascIndex,descIndex}"
47
48.PHONY: qtest
49qtest: $(NAME)
50 cd tests && ../benchmark $(QBFLAGS) $(QBENCH) && $(MAKE) clean