73 lines
2.1 KiB
Makefile
73 lines
2.1 KiB
Makefile
WORDSIZE:=$(shell echo 'print_int Sys.word_size' | ocaml -stdin)
|
|
STDLIBDIR:=$(shell ocamlc -where)
|
|
ifeq ($(wildcard $(STDLIBDIR)/big_int.cmi),)
|
|
HAS_NUM=false
|
|
NUMS_CMA=
|
|
NUMS_CMXA=
|
|
else
|
|
HAS_NUM=true
|
|
NUMS_CMA=nums.cma
|
|
NUMS_CMXA=nums.cmxa
|
|
endif
|
|
|
|
test:: zq.exe
|
|
@echo "Testing zq (native)..."
|
|
@if ./zq.exe | cmp -s zq.output$(WORDSIZE) - ; then echo "zq: passed"; else echo "zq: FAILED"; exit 2; fi
|
|
|
|
test:: zq.byt
|
|
@echo "Testing zq (bytecode)..."
|
|
@if ocamlrun -I .. ./zq.byt | cmp -s zq.output$(WORDSIZE) - ; then echo "zq: passed"; else echo "zq: FAILED"; exit 2; fi
|
|
|
|
ifeq ($(HAS_NUM),true)
|
|
test:: bi.exe
|
|
@echo "Testing bi..."
|
|
@if ./bi.exe; then echo "bi: passed"; else echo "bi: FAILED"; exit 2; fi
|
|
endif
|
|
|
|
test:: pi.exe
|
|
@echo "Testing pi..."
|
|
@if ./pi.exe 500 | cmp -s pi.output - ; then echo "pi: passed"; else echo "pi: FAILED"; exit 2; fi
|
|
|
|
test:: tofloat.exe
|
|
@echo "Testing tofloat..."
|
|
@./tofloat.exe
|
|
|
|
test:: ofstring.exe
|
|
@echo "Testing ofstring..."
|
|
@./ofstring.exe
|
|
|
|
test:: chi2.exe
|
|
@echo "Testing random number generation..."
|
|
@if ./chi2.exe; then echo "chi2: passed"; else echo "chi2: FAILED"; exit 2; fi
|
|
|
|
bench:: timings.exe
|
|
./timings.exe
|
|
|
|
bench:: pi.exe
|
|
@echo "Benchmarking pi"; time ./pi.exe 10000 > /dev/null
|
|
|
|
test:: tst_extract.exe
|
|
@echo "Testing extract..."
|
|
@if ./tst_extract.exe; then echo "tst_extract: passed"; else echo "tst_extract: FAILED"; exit 2; fi
|
|
|
|
test:: intern.exe
|
|
@echo "Testing unmarshaling..."
|
|
@if ./intern.exe extern.data32 | cmp -s intern.output32$(WORDSIZE) -; then echo "intern 32: passed"; else echo "intern 32: failed"; exit 2; fi
|
|
@if ./intern.exe extern.data64 | cmp -s intern.output64$(WORDSIZE) -; then echo "intern 64: passed"; else echo "intern 64: failed"; exit 2; fi
|
|
|
|
extern.data$(WORDSIZE): extern.exe
|
|
./extern.exe extern.data$(WORDSIZE)
|
|
|
|
tofloat.exe: tofloat.ml setround.o ../zarith.cmxa
|
|
ocamlopt -I .. -ccopt "-L.." zarith.cmxa -o tofloat.exe \
|
|
setround.o tofloat.ml
|
|
|
|
%.exe: %.ml ../zarith.cmxa
|
|
ocamlopt -I .. -ccopt "-L.." zarith.cmxa $(NUMS_CMXA) -o $*.exe $*.ml
|
|
%.byt: %.ml ../zarith.cma
|
|
ocamlc -I .. -ccopt "-L.." zarith.cma $(NUMS_CMA) -o $*.byt $*.ml
|
|
%.o: %.c
|
|
ocamlc -c $*.c
|
|
|
|
clean:
|
|
rm -f *.cm[iox] *.o *.exe *.byt
|