DLLS = $(addprefix -reference:,$(filter %.dll,$^)) CODE = $(filter %.cs,$^) main.exe : main.cs matlib.dll mcs -target:exe -out:$@ $(DLLS) $(CODE) matlib.dll : evd.cs matrix.cs vector.cs mcs -target:library -out:$@ $(DLLS) $(CODE)