CODE = $(filter %.cs,$^)
DLLS = $(addprefix -reference:,$(filter %.dll,$^))
MKEXE = mcs -target:exe -out:$@ $(DLLS) $(CODE)
MKDLL = mcs -target:library -out:$@ $(DLLS) $(CODE)

Psi.png: Out.txt Makefile
	echo '\
	set term png; \
	set out "$@"; \
	plot "$<" using 1:2 with lines \
	,"$<" using 1:3 with lines \
	'|tee log.gpi|gnuplot

Out.txt: main.exe ; mono $< 1> $@ 2>Log

main.exe: main.cs matlib.dll ; $(MKEXE)

matlib.dll: gevd.cs \
	../../matlib/minim/newton.cs \
	../../matlib/minim/newton2.cs \
	../../matlib/minim/simplex.cs \
	../../matlib/QR/givensqr.cs \
	../../matlib/matrix/vector.cs \
	../../matlib/matrix/matrix.cs
	$(MKDLL)

clean:
	$(RM) [Oo]ut* [Ll]og* *.dll *.exe
