all: fsudoku wsudoku-solver fsudoku66 fsudoku-simple fsudoku66-simple
# You can specify GNU or INTEL for COMPILER
COMPILER = GNU
CC = cc
FC = gfortran
OPTS = -O2
PREFIX = /usr/local

ifeq ($(COMPILER),GNU)
	FC = gfortran
	OPTS = -Wall -Ofast -g -fimplicit-none
#	OPTS = -Wall -O0 -g -fimplicit-none -fcheck=all
	FOPTS = -std=legacy -Wno-conversion
endif

ifeq ($(COMPILER),INTEL)
	FC = ifx
	OPTS = -O3 -implicitnone
	FOPTS =  
endif

all: wsudoku-solver fsudoku

wsudoku-solver: wsudoku-solver.in makescript fsudoku.f90 getsudoku.py \
	digits.traineddata wsudoku-solver.png pytesseract.py functions \
	get_number_coordinates get_puzzle_coordinates version.h
	sh makescript

fsudoku: fsudoku.f90 clocks.o version.h
	$(FC) $(OPTS) -cpp -o $@ fsudoku.f90 clocks.o

fsudoku66: fsudoku.f common.f clocks.o
	$(FC) $(OPTS) -cpp $(FOPTS)  -o $@ fsudoku.f clocks.o

clocks.o: clocks.c clocks.h
	$(CC) -c -o $@ clocks.c

fsudoku-simple: fsudoku-simple.f90
	$(FC) $(OPTS) -o $@ fsudoku-simple.f90

fsudoku66-simple: fsudoku-simple.f
	$(FC) $(OPTS) $(FOPTS) -o $@ fsudoku-simple.f

install: wsudoku-solver fsudoku
	mkdir -p -m 0755 $(PREFIX)/bin/
	install fsudoku $(PREFIX)/bin
	mkdir -p -m 0755 $(PREFIX)/share/applications/
	mkdir -p -m 0755 $(PREFIX)/share/pixmaps/
	install wsudoku-solver $(PREFIX)/bin
	install -m 0755 wsudoku-solver.desktop $(PREFIX)/share/applications/
	install -m 0644 wsudoku-solver.png $(PREFIX)/share/pixmaps

uninstall:
	if [ -f $(PREFIX)/bin/fsudoku ]; then rm $(PREFIX)/bin/fsudoku ; fi
	if [ -f $(PREFIX)/share/applications/wsudoku-solver.desktop ] ; then rm $(PREFIX)/share/applications/wsudoku-solver.desktop ; fi
	if [ -f $(PREFIX)/share/pixmaps/wsudoku-solver.png ] ; then rm $(PREFIX)/share/pixmaps/wsudoku-solver.png ; fi
	if [ -f $(PREFIX)/bin/wsudoku-solver ] ; then rm $(PREFIX)/bin/wsudoku-solver ; fi

clean:
	rm -f wsudoku-solver *.mod fsudoku fsudoku66 fsudokurec
	rm -f *.o fsudoku-simple fsudoku66-simple
	rm -f cell??.pbm cell??.txt
	for f in *.png ; do if [ "$$f" != "wsudoku-solver.png" ] ; then rm -f "$$f" ; fi ; done
	rm -f coordinates number_coordinates.in numbers puzzle_coordinates.in
	rm -rf __pycache__ sudoku-puzzle sudoku-solution tar.uu textinfo
	rm -f *genmod.f90
	rm -rf workdir workdir.tgz
