CPPFLAGS=`pkg-config --cflags gtkmm-3.0` -DNDEBUG -Wall -O3 -std=c++20
LDFLAGS=`pkg-config --libs gtkmm-3.0` -lpthread -lstdc++fs


gui_objs=gtkmm/main_gui.o

objs=board/bposition.o
objs+=board/cposition.o
objs+=board/position.o
objs+=board/hasher.o
objs+=board/materialsignature.o
objs+=board/rep3filter.o
objs+=board/piece.o
objs+=board/square.o
objs+=board/bitboard.o
objs+=board/move.o
objs+=board/mlist.o
objs+=board/movegenerator.o
objs+=board/connections.o
objs+=board/attacks.o
objs+=board/rookmask.o
objs+=board/bishopmask.o
objs+=board/magicmoves.o
objs+=board/timer.o
objs+=board/duration.o
objs+=manager/engines/base_engine.o
objs+=manager/engines/uci_engine.o
objs+=manager/engines/xboard_engine.o
objs+=manager/engines/engvar.o
objs+=manager/engines/engio.o
objs+=manager/engines/guiengine.o
objs+=manager/engines/setproto.o
objs+=manager/tourmanager.o
objs+=manager/guimanager.o
objs+=manager/manager.o
objs+=manager/cvtrio.o
objs+=options/clock.o
objs+=options/homedir.o
objs+=options/installedengines.o
objs+=options/level.o
objs+=options/option.o 
objs+=pgn/game.o
objs+=pgn/gametree.o
objs+=pgn/lexer.o
objs+=pgn/movesection.o
objs+=pgn/mse.o
objs+=pgn/pgnfile.o
objs+=pgn/sanmove.o
objs+=pgn/tagsection.o
objs+=polyglotbook/book.o
objs+=polyglotbook/bkmove.o
objs+=polyglotbook/record.o
objs+=polyglotbook/key.o
objs+=tournament/book.o
objs+=tournament/participant.o
objs+=tournament/table.o
objs+=tournament/tournament.o
gtk_objs=gtkmm/anaw.o
gtk_objs+=gtkmm/chessboard/board.o
gtk_objs+=gtkmm/chessboard/chessboard.o
gtk_objs+=gtkmm/chessboard/drawing.o
gtk_objs+=gtkmm/clocks.o
gtk_objs+=gtkmm/commenteditor.o
gtk_objs+=gtkmm/deletesel.o
gtk_objs+=gtkmm/dialogs/fenlist.o
gtk_objs+=gtkmm/dialogs/gamelist.o
gtk_objs+=gtkmm/dialogs/installdialog.o
gtk_objs+=gtkmm/dialogs/installedlist.o
gtk_objs+=gtkmm/dialogs/optionsdialog.o
gtk_objs+=gtkmm/dialogs/piecechoicedraw.o
gtk_objs+=gtkmm/dialogs/piecechoiceevent.o
gtk_objs+=gtkmm/dialogs/promochoicedraw.o
gtk_objs+=gtkmm/dialogs/promochoiceevent.o
gtk_objs+=gtkmm/dialogs/piecechoicedialog.o
gtk_objs+=gtkmm/dialogs/promochoicedialog.o
gtk_objs+=gtkmm/ecocodes.o
gtk_objs+=gtkmm/epdw.o
gtk_objs+=gtkmm/fenentry.o
gtk_objs+=gtkmm/interface.o
gtk_objs+=gtkmm/participants.o
gtk_objs+=gtkmm/pgnview.o
gtk_objs+=gtkmm/timecontrolpanel.o
gtk_objs+=gtkmm/tourlist.o


all: galjoengui galjoencli

galjoengui: $(gui_objs) $(gtk_objs) $(objs)
	g++ -o galjoengui $(gui_objs) $(gtk_objs) $(objs) $(CPPFLAGS) $(LDFLAGS)

galjoencli:
	make -C manager
	mv manager/galjoencli ./

uninstall:
	- rm -r /usr/local/bin/galjoen.files 
	- rm /usr/local/bin/galjoengui
	- rm /usr/local/bin/galjoencli
	- rm -r /usr/local/games/galjoen.files 
	- rm /usr/local/games/galjoengui
	- rm /usr/local/games/galjoencli

install: 
	install -d /usr/local/bin/galjoen.files/svg
	install galjoen.files/svg/*.svg /usr/local/bin/galjoen.files/svg
	install galjoengui /usr/local/bin
	install galjoencli /usr/local/bin

clean:
	- rm *.o *.cpp~ *.h~  *.log *.log~ *.pgn *.epd *.txt *.txt~
	- rm gtkmm/*.o gtkmm/*~ gtkmm/dialogs/*.o gtkmm/dialogs/*~
	- rm gtkmm/chessboard/*.o gtkmm/chessboard/*~ board/*.o board/*~ polyglotbook/*.o
	- rm manager/engines/*.o manager/engines/*~ manager/*.o manager/*~ manager/galjoencli manager/unittest
	- rm rndgal/*.o rndgal/rndgaljoen
	- rm pgn/*.o pgn/*~ options/*.o options/*~ tournament/*.o tournament/*~ 
	- rm *.fen galjoengui galjoencli *.debug *.exe



