FMT = svg
OPT = font "Arial,20" size 1024,600
PLOT = cspline
PLOTFILE=$(PLOT).$(FMT)
DATA = out.txt
SPLINE =  out.plotutils.txt
ECHO=/bin/echo

$(PLOTFILE): $(PLOT).gpi $(DATA) $(SPLINE)
	gnuplot $<

$(SPLINE): $(DATA) Makefile
	cat $(DATA) | sed -e '/^$$/q' | sed -e '/^$$/d' |spline -k 0 -n 200 >$@

$(DATA): main.exe
	mono $< >$@

main.exe: main.cs matlib.dll
	mcs $< -reference:$(lastword $^)

matlib.dll: cspline.cs
	mcs $< -target:library -out:$@

$(PLOT).gpi: Makefile
	cat /dev/null >$@
	$(ECHO) 'set term $(FMT) $(OPT)' >>$@
	$(ECHO) 'set out "$(PLOTFILE)"' >>$@
	$(ECHO) '#set monochrome' >>$@
	$(ECHO) 'set key out' >>$@
	$(ECHO) 'set samples 200' >>$@
	$(ECHO) 'set title "cspline vs gnuplot cspline vs plotutils spline -k 0"' >>$@
	$(ECHO) 'set xlabel "x"' >>$@
	$(ECHO) 'set ylabel "y"' >>$@
	$(ECHO) 'plot \' >>$@
	$(ECHO) ' "$(DATA)" index 0 with points pointtype 7 title "data"\' >>$@
	$(ECHO) ',"$(DATA)" index 1 with lines title "cspline"\' >>$@
	$(ECHO) ',"$(DATA)" index 0 smooth csplines title "gnuplot"\' >>$@
	$(ECHO) ',"$(SPLINE)" with lines title "plotutils"' >>$@

clean:
	rm -f *.exe *.dll $(PLOTFILE) $(DATA) *.gpi *.svg out*
