default : robot

SMLS := arena/arena-sig.sml arena/arena.sml arena/common.sml arena/main.sml arena/parser-sig.sml \
	arena/parser.sml arena/types.sml \
	util/listutil-sig.sml util/listutil.sml util/params-sig.sml util/params.sml util/stringutil-sig.sml \
	util/stringutil.sml util/util-sig.sml util/util.sml \
	socket/socket-nj.sml socket/socket-sig.sml socket/socket.sml robots/gluefn.sml robots/stupidbot2.sml \
	robots/floodfill.sml robots/comm.sml robots/stupidbot.sml robots/pqueue.sml robots/pqueue-sig.sml \
	robots/stupidbot3.sml robots/knapsack.sml robots/stupidbot4.sml \
	robot.sml robots/pqueue-list.sml
CM := server.cm robot.cm
NJCM := ${CM:%.cm=%-nj.cm}

FFIS := socket/socket.sml
NJFFIS := ${FFIS:%.sml=%-nj.sml}

%-nj.sml: %.sml
	cat $< | sed -e 's/_ffi/Unsafe.cast/g' > $@

%-nj.cm: %.cm
	cat $< | sed -e 's/socket.sml/socket-nj.sml/g' > $@

nj: ${NJFFIS} ${NJCM}
	@echo Made $+

socket/socket.o : socket/socket.c
	gcc -O -c -o socket/socket.o socket/socket.c

server : server.cm socket/socket.o ${SMLS}
	mlton server.cm socket/socket.o

robot : robot.cm socket/socket.o ${SMLS}
	mlton -static true robot.cm socket/socket.o

clean:
	rm -f ${NJCM} ${NJFFIS}
