SDKDIR=$(HOME)/.dotnet/sdk/6.0.102# or whatever your sdk is CSCPATH=$(SDKDIR)/Roslyn/bincore/csc.dll NETSTANDARD=$(SDKDIR)/ref/netstandard.dll CONFIG=$(SDKDIR)/vstest.console.runtimeconfig.json DOTNET=DOTNET_CLI_TELEMETRY_OPTOUT=1; dotnet CSC=$(DOTNET) $(CSCPATH) -reference:$(NETSTANDARD) RUN=$(DOTNET) exec --runtimeconfig $(CONFIG) CSC = mcs RUN = mono all: erf.gnuplot.png erf.graph.png erf.graph.png: out.erf.txt Makefile cat tab.erf.txt | awk '{print $$1, $$2}' > log.dots.txt graph \ --output-format png \ --x-label "x" \ --y-label "y" \ --line-mode 1 out.erf.txt \ --line-mode -1 --symbol 4 log.dots.txt \ > $@ erf.gnuplot.png: erf.pyxplot.png cat log.pyx.gpi | sed 's/pyxplot/gnuplot/' | tee log.gnu.gpi | gnuplot erf.pyxplot.png: out.erf.txt tab.erf.txt echo '\ set terminal png ;\ set output "$@" ;\ set xlabel "$$x$$" ;\ set ylabel "$$y$$" ;\ set tics out ;\ set title "error function" ;\ set key left top ;\ plot [-2:2] [-1:1] "$<" index 0 using 1:2 with lines title "erf($$x$$)",\ "tab.erf.txt" using 1:2 with points pointtype 2 title "tabulated data" \ '| tee log.pyx.gpi | pyxplot tab.erf.txt: Makefile >$@ echo 0.2 0.222702589 >>$@ echo 0.4 0.428392355 >>$@ echo 0.8 0.742100965 >>$@ echo 1.2 0.910313978 >>$@ cat $@ | awk '{print -$$1, -$$2}' >> $@ out.erf.txt: main.exe mono $< > $@ %.exe: %.cs mcs -t:exe $(addprefix -r,$(filter %.dll,$^)) $(filter %.cs,$^) clean: $(RM) *.png log* [Oo]ut* *.exe tab* test: /bin/echo $$ x $$