DLLS = $(addprefix -reference:,$(filter %.dll,$^))
CODE = $(filter %.cs,$^)
MKEXE = mcs -target:exe -out:$@ $(DLLS) $(CODE)
MKLIB = mcs -target:library -out:$@ $(DLLS) $(CODE)
LIBDIR=..
LIBSRC=\
	$(LIBDIR)/matrix/vector.cs\
	$(LIBDIR)/matrix/matrix.cs\
#	$(LIBDIR)/QR/givensqr.cs

all: Out.txt
Out.txt: main.exe
	mono $< >$@ 2>log

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

matlib.dll: $(LIBSRC) givensqr.cs
	mcs $^ -target:library -out:$@

roots.dll:jacobian.cs newton.cs broyden.cs matlib.dll; $(MKLIB)

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