CXX = g++
CXXFLAGS = -Wall -Werror -O0 -g -ggdb
HEADERS = tyypit.hh perustoiminnot.hh bonustoiminnot.hh Makefile
OBJS = main.o perustoiminnot.o bonustoiminnot.o
AISRC = ai-interface.cc perustoiminnot.cc bonustoiminnot.cc
SRCS = main.cc perustoiminnot.cc bonustoiminnot.cc
OPTFLAGS = -O2
CXXFLAGS = ${OPTFLAGS}

ataxx-ab: ${SRCS} ${HEADERS}
	${CXX} ${CXXFLAGS} -DAI_SYVYYS=3 -DALPHABETA=1 -o $@ ${SRCS}


ataxx: ${SRCS} ${HEADERS}
	${CXX} ${CXXFLAGS} -DAI_SYVYYS=3 -o $@ ${SRCS}


ai-interface: ai-interface.o perustoiminnot.o bonustoiminnot.o
	${CXX} ${CXXFLAGS} -o $@ $^

ai-match-1: ai-random
	echo "Advantage for ai-random = valkoinen:"
	cat fifo_b | ./ai-random v 2>fifo_a >/dev/null &
	cat fifo_a | ./ai-random m 2>fifo_b

ai-match0: ai-autodepth ai-random
	echo "Advantage for ai-random = valkoinen:"
	cat fifo_b | ./ai-random v 2>fifo_a >/dev/null &
	cat fifo_a | ./ai-autodepth m 2>fifo_b
	
	killall ai-random || killall ai-autodepth || true
	

ai-match1: ai-s3 ai-autodepth
	echo "Advantage for ai-s3 = valkoinen:"
	cat fifo_b | ./ai-s3 v 2>fifo_a >/dev/null &
	cat fifo_a | ./ai-autodepth m 2>fifo_b
	
	killall ai-s3 || killall ai-autodepth || true
	
ai-match2: ai-s3 ai-autodepth
	echo "Advantage for ai-autodepth = valkoinen:"
	cat fifo_b | ./ai-s3 m 2>fifo_a >/dev/null &
	cat fifo_a | ./ai-autodepth v 2>fifo_b
	
	killall ai-s3 || killall ai-autodepth || true

ai-match3: ai-s3 ai-abopt
	echo "Advantage for ai-s3 = valkoinen:"
	cat fifo_b | ./ai-s3 v 2>fifo_a >/dev/null &
	cat fifo_a | ./ai-abopt m 2>fifo_b
	
	killall ai-s3 || killall ai-abopt || true


ai-match4: ai-autodepth ai-ad1
	echo "Advantage for ai-autodepth = valkoinen:"
	cat fifo_b | ./ai-autodepth v 2>fifo_a >/dev/null &
	cat fifo_a | ./ai-ad1 m 2>fifo_b
	
	killall ai-ad1 || killall ai-autodepth || true

ai-match5: ai-precalc ai-s3
	echo "Advantage for ai-precalc = valkoinen:"
	cat fifo_b | ./ai-s3 m 2>fifo_a >log-s3 &
	cat fifo_a | tee siirtolog | ./ai-precalc v 2>fifo_b
	
	killall ai-precalc || killall ai-s3 || true

ai-match6: ai-precalc ai-s3
	echo "Advantage for ai-s3 = valkoinen:"
	cat fifo_b | ./ai-s3 v 2>fifo_a &
	cat fifo_a | ./ai-precalc m 2>fifo_b
	
	killall ai-precalc || killall ai-s3 || true


ai-match7: ai-precalc ai-s4
	echo "Advantage for ai-precalc = valkoinen:"
	cat fifo_b | ./ai-s4 m 2>fifo_a >log-s4 &
	cat fifo_a | tee siirtolog | ./ai-precalc v 2>fifo_b
	
	killall ai-precalc || killall ai-s4 || true

ai-match8: ai-precalc ai-s4
	echo "Advantage for ai-s4 = valkoinen:"
	cat fifo_b | ./ai-s4 v 2>fifo_a >/dev/null &
	cat fifo_a | ./ai-precalc m 2>fifo_b
	
	killall ai-precalc || killall ai-s4 || true



ai-match9: ai-precalc ai-s2
	echo "Advantage for ai-precalc = valkoinen:"
	cat fifo_b | ./ai-s2 m 2>fifo_a >log-s3 &
	cat fifo_a | tee siirtolog | ./ai-precalc v 2>fifo_b
	
	killall ai-precalc || killall ai-s2 || true

ai-match10: ai-precalc ai-s2
	echo "Advantage for ai-s2 = valkoinen:"
	cat fifo_b | ./ai-s2 v 2>fifo_a >/dev/null &
	cat fifo_a | ./ai-precalc m 2>fifo_b
	
	killall ai-precalc || killall ai-s2 || true


ai-s3: ${AISRC} ${HEADERS}
	${CXX} ${OPTFLAGS} -DALPHABETA=1 -DAI_SYVYYS=3 -o $@ ${AISRC}

ai-s4: ${AISRC} ${HEADERS}
	${CXX} ${OPTFLAGS} -DALPHABETA=1 -DAI_SYVYYS=4 -o $@ ${AISRC}

ai-s5: ${AISRC} ${HEADERS}
	${CXX} ${OPTFLAGS} -DALPHABETA=1 -DAI_SYVYYS=5 -o $@ ${AISRC}

ai-s2: ${AISRC} ${HEADERS}
	${CXX} ${OPTFLAGS} -DALPHABETA=1 -DAI_SYVYYS=2 -o $@ ${AISRC}

ai-s1: ${AISRC} ${HEADERS}
	${CXX} ${OPTFLAGS} -DALPHABETA=1 -DAI_SYVYYS=1 -o $@ ${AISRC}


ai-autodepth: ${AISRC} ${HEADERS}
	${CXX} ${OPTFLAGS} -o $@ ${AISRC}

ai-ad1: ${AISRC} ${HEADERS}
	${CXX} ${OPTFLAGS} -DAI_TD=1 -o $@ ${AISRC}


ai-abopt: ${AISRC} ${HEADERS}
	${CXX} ${OPTFLAGS} -DALPHABETA=1 -o $@ ${AISRC}

ai-precalc: ${AISRC} ${HEADERS}
	${CXX} ${CXXFLAGS} -DAI_PRECALC=1 -DALPHABETA=1 -o $@ ${AISRC}

ai-random: ai-interface.o perustoiminnot.o bonus_random.o
	${CXX} ${CXXFLAGS} -o $@ $^

%.o: %.cc ${HEADERS}
	${CXX} ${CXXFLAGS} -c -o $@ $<

