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

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

main.exe: main.cs genlist.cs minim.dll matrix.dll ; $(MKEXE)

matrix.dll: \
	../../matrix/matrix.cs \
	../../matrix/vector.cs \
	../../lineq/qr.cs
	$(MKDLL)

minim.dll: qnewton.cs ../newton/newton.cs matrix.dll ; $(MKDLL)

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