polysupermuc = /home/hpc/pr94ru/no68war2/.isabelle/contrib/polyml-5.5.2-1/x86_64-linux/

lorenz_mlton: lorenz_mlton.sml lorenz_mpi_interface.c lorenz_mlton.mlb lorenz_core.sml
	mlton -default-ann 'allowFFI true' -cc-opt '-I/usr/local/include' -cc-opt '-I/lrz/sys/tools/python/2.7_anaconda_mpi/include' -link-opt '-L/usr/local/lib' -link-opt '-L/lrz/sys/tools/python/2.7_anaconda_mpi/lib' -link-opt '-lmpich' -link-opt '-lmpl' -link-opt '-Wl,-rpath,/lrz/sys/tools/python/2.7_anaconda_mpi/lib' lorenz_mlton.mlb lorenz_mpi_interface.c

lorenzi: lorenzi.o
	cc -o lorenzi lorenzi.o -L/opt/local/lib -L/home/immler/lib -L$(polysupermuc) -lpolymain -lpolyml -lstdc++ -lm -ldl -lpthread -lgmp

lorenz_mpi: lorenz_mpi.o lorenz_mpi_interface.so
	mpicc -Wl,-no_pie -o lorenz_mpi lorenz_mpi.o -L/opt/local/lib -L/home/immler/lib -L$(polysupermuc) -lpolymain -lpolyml -lstdc++ -lm -ldl -lpthread -lgmp

lorenz_mpi_interface.so: lorenz_mpi_interface.c
	mpicc -shared -o lorenz_mpi_interface.so lorenz_mpi_interface.c

lorenz_mpi.o: lorenz_mpi.ML lorenz.ML lorenz_core.ML
	polyc -c lorenz_mpi.ML

lorenzi.o: lorenz.ML lorenz_core.ML
	export PATH=$${PATH}:/home/immler/bin:$(polysupermuc); \
	echo $${PATH}; \
	echo "PolyML.export (\"lorenzi\", read_lorenzij)" | poly -q --error-exit --use lorenz.ML

lorenzc: lorenzc.o
	cc -o lorenzc lorenzc.o -L/opt/local/lib -L/home/immler/lib -lpolymain -lpolyml -lstdc++ -lm -ldl -lpthread -lgmp

lorenzc.o: lorenz.ML lorenz_core.ML
	export PATH=$${PATH}:/home/immler/bin; \
	echo $${PATH}; \
	echo "PolyML.export (\"lorenzc\", lorenzc)" | poly -q --error-exit --use lorenz.ML

