CC = g++
CFLAGS = -Wall -O2
PROGRAM_NAME = othello


$(PROGRAM_NAME): othello.o game.o minimax.o board.o
	$(CC) $(CFLAGS) -o $(PROGRAM_NAME) othello.o game.o minimax.o board.o

# ---------------------------------------------
# Swap the following block with the previous one (i.e. uncomment one and 
# comment out the other) to enable external endgame solver.
# -- Must have endgamecx.c and endgamecx.h
# ---------------------------------------------

# $(PROGRAM_NAME): othello.o game.o minimax.o board.o endgamecx.o
#	$(CC) $(CFLAGS) -o $(PROGRAM_NAME) othello.o game.o minimax.o board.o endgamecx.o


othello.o: othello.cpp othello.hpp
	$(CC) $(CFLAGS) -c -o othello.o othello.cpp
game.o: game.cpp game.hpp
	$(CC) $(CFLAGS) -c -o game.o game.cpp
board.o: board.cpp board.hpp
	$(CC) $(CFLAGS) -c -o board.o board.cpp
minimax.o: minimax.cpp minimax.hpp
	$(CC) $(CFLAGS) -c -o minimax.o minimax.cpp
endgamecx.o: endgamecx.c endgamecx.h
	$(CC) $(CFLAGS) -c -o endgamecx.o endgamecx.c

clean:
	rm -f *.o *~

ca:
	rm -f *.o *~ $(PROGRAM_NAME)

cls: 
	del /q *.o *~
	
upx:
	make
	upx -9 -q $(PROGRAM_NAME).exe
	