# export PATH := /usr/local/jdk1.8.0_51/bin:$(PATH)
n=10000
text_files=fc.txt fh.txt fj.txt fp.txt fg.txt

run: $(text_files)
	find $(text_files) -print0 | equivs3e -0

fibonacci-haskell: fibonacci-haskell.hs
	ghc fibonacci-haskell.hs

Fibonacci.class: Fibonacci.java
	javac Fibonacci.java

fibonacci.exe: fibonacci.cs
	mcs -r:System.Numerics.dll fibonacci.cs

fibonacci-go: fibonacci-go.go
	go build fibonacci-go.go

fg.txt: fibonacci-go
	./fibonacci-go $(n) > fg.txt

fh.txt: fibonacci-haskell
	./fibonacci-haskell $(n) > fh.txt

fj.txt: Fibonacci.class
	java Fibonacci $(n) > fj.txt
	
fc.txt: fibonacci.exe
	mono ./fibonacci.exe $(n) > fc.txt

fp.txt: fibonacci.py
	./this-pylint --which-2 None --which-3 /usr/local/cpython-3.9/bin/pylint --to-pylint fibonacci.py
	pycodestyle --max-line-len 132 fibonacci.py
	./fibonacci.py $(n) > fp.txt

go5: python-lazy.py
	./this-pylint --which-2 None --to-pylint python-lazy.py
	pep8 --max-line-len 132 python-lazy.py
	./python-lazy.py 500

clean:
	rm -f *.o fibonacci.exe *.class fibonacci-haskell fibonacci-go *.hi *.txt

setup:
	./install-package --deb-packages 'mono-mcs libmono-system-numerics4.0-cil ghc libghc-readargs-dev'