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)
# export DOTNET_CLI_TELEMETRY_OPTOUT=1
#CSC = mcs
#RUN = mono

all: Fig.erf.png

Fig.erf.png: fig.erf.gpi erf.data.txt erf.tab.txt
	gnuplot $<

erf.data.txt:main.exe
	$(RUN) $< > $@

main.exe:main.cs matlib.dll
	$(CSC) -reference:matlib.dll $<
matlib.dll: ../../matlib/integrate/integrate.cs
	$(CSC) -target:library -out:./$@ $<

clean:
	$(RM) *.dll *.exe *.png *.data.txt

%.exe: %.cs
	$(CSC) -t:exe $(addprefix -r:,$(filter %.dll,$^)) $(filter %.cs,$^)

%.dll: %.cs
	$(CSC) -t:library -out:./%.dll $(addprefix -r:,$(filter %.dll,$^)) $(filter %.cs,$^)
