Backport from sid to buster
[hcoop/debian/mlton.git] / benchmark / Makefile
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