#
# Makefile for poker robots.
#

POKERLIB =	/lib/poker.lib
LIBS =		Library $(POKERLIB) Math standard
#CFLAGS =	IncludeDirectory /lib debug=fullflush
CFLAGS =	IncludeDirectory /lib

ROBOT_OBJS	=	robot_main.o 
RANDOM_OBJS =	$(ROBOT_OBJS) strategy_random.o
GONZO_OBJS =	$(ROBOT_OBJS) strategy_gonzo.o
BLUFF_OBJS =	$(ROBOT_OBJS) strategy_bluff.o
DROOL_OBJS =	$(ROBOT_OBJS) strategy_drool.o
SCUM_OBJS =		$(ROBOT_OBJS) strategy_scum.o
WEED_OBJS =		$(ROBOT_OBJS) strategy_weed.o
BAH_OBJS =		$(ROBOT_OBJS) strategy_bah.o
TURBOBAH_OBJS =	$(ROBOT_OBJS) strategy_turbobah.o
OBSERVER_OBJS =	$(ROBOT_OBJS) strategy_observer.o
STATS_OBJS =	$(ROBOT_OBJS) strategy_stats.o

.c.o:
	$(CC) $(CFLAGS) $< nolink

all: turbobah gonzo random bluff observer stats

# These use an older interface.  Some day I might get around to porting them.

bogus: autobah autodrool roboscum roboweed


random:		$(RANDOM_OBJS) $(POKERLIB)
	$(CC) $(CFLAGS) $(RANDOM_OBJS) $(LIBS) programname $@

gonzo:		$(GONZO_OBJS) $(POKERLIB)
	$(CC) $(CFLAGS) $(GONZO_OBJS) $(LIBS) programname $@

bluff:		$(BLUFF_OBJS) $(POKERLIB)
	$(CC) $(CFLAGS) $(BLUFF_OBJS) $(LIBS) programname $@

autodrool:	$(DROOL_OBJS) $(POKERLIB)
	$(CC) $(CFLAGS) $(DROOL_OBJS) $(LIBS) programname $@

autobah:	$(BAH_OBJS) $(POKERLIB)
	$(CC) $(CFLAGS) $(BAH_OBJS) $(LIBS) programname $@

turbobah:	$(TURBOBAH_OBJS) $(POKERLIB)
	$(CC) $(CFLAGS) $(TURBOBAH_OBJS) $(LIBS) programname $@

observer:	$(OBSERVER_OBJS) $(POKERLIB)
	$(CC) $(CFLAGS) $(OBSERVER_OBJS) $(LIBS) programname $@

stats:		$(STATS_OBJS) $(POKERLIB)
	$(CC) $(CFLAGS) $(STATS_OBJS) $(LIBS) programname $@

roboscum:	$(SCUM_OBJS) $(POKERLIB)
	$(CC) $(CFLAGS) $(SCUM_OBJS) $(LIBS) programname $@

roboweed:	$(WEED_OBJS) $(POKERLIB)
	$(CC) $(CFLAGS) $(WEED_OBJS) $(LIBS) programname $@

# If a header file in /lib is changed, it is assumed that poker.lib will be
# remade before running this make, thus these objects depend on only poker.lib.

strategy_bah.o: strategy_bah.c /lib/strategy_protos.h $(POKERLIB)
strategy_bluff.o: strategy_bluff.c /lib/strategy_protos.h $(POKERLIB)
strategy_drool.o: strategy_drool.c /lib/strategy_protos.h $(POKERLIB)
strategy_gonzo.o: strategy_gonzo.c /lib/strategy_protos.h $(POKERLIB)
strategy_observer.o: strategy_observer.c /lib/strategy_protos.h \
					 robot_main_protos.h $(POKERLIB)
strategy_random.o: strategy_random.c /lib/strategy_protos.h $(POKERLIB)
strategy_scum.o: strategy_scum.c /lib/strategy_protos.h $(POKERLIB)
strategy_stats.o: strategy_stats.c /lib/strategy_protos.h robot_main_protos.h \
				  $(POKERLIB)
strategy_template.o: strategy_template.c /lib/strategy_protos.h \
					 robot_main_protos.h $(POKERLIB)
strategy_turbobah.o: strategy_turbobah.c /lib/strategy_protos.h \
					 robot_main_protos.h $(POKERLIB)
strategy_weed.o: strategy_weed.c /lib/strategy_protos.h $(POKERLIB)
