CXX		= g++

CCLIBS_default	= -lm
CCLIBS_SunOS_4	= -lm
CCLIBS_SunOS_5	= -lm -L/usr/ucblib -lucb -lsocket -lnsl
CCLIBS_OSF1		= -lm
CCLIBS_NEWS		= -lm
CCLIBS_IRIX		= -lm
CCLIBS_Linux	= -lm -lbsd
CXXLIBS			= $(CCLIBS_Linux)
#CXXLIBS			= $(CCLIBS_SunOS_4)
#CXXLIBS			= $(CCLIBS_SunOS_5)

OSFLAGS_default	= 
OSFLAGS_SunOS_4	= -DSunOS4
OSFLAGS_SunOS_5	= -DSolaris -DMEMSET
OSFLAGS_OSF1	= -DOSF1
OSFLAGS_NEWS	= -DNewsOS
OSFLAGS_IRIX	= -DIRIX -D_BSD_SIGNALS
OSFLAGS_Linux	= -DLinux 
CXXFLAGS	= -Wall -DDEBUG_OUTPUT $(OSFLAGS_Linux)
#CXXFLAGS	= -Wall -DDEBUG_OUTPUT $(OSFLAGS_SunOS_4)
#CXXFLAGS	= -Wall -pedantic -fomit-frame-pointer -O3 $(OSFLAGS_SunOS_5)

CXXFLAGS += -g -I../shared

EXEC	=	coach

all: $(EXEC)

OFILES =        netif.o client.o utils.o geometry.o

OFILES +=	parse.o logfile.o data.o

OFILES +=	MemOption.o MemPosition.o Memory.o

#OFILES +=	MemAdversarial.o observe_base.o adv_class.o

OFILES +=	MemSetplay.o

#OFILES +=	observe_feat.o observe.o

SRCS	=	$(OFILES:%.o=%.C)

SHARED_FILES = utils.C utils.h geometry.C geometry.h data.h data.C
SHARED_FILES += parse.C parse.h netif.C netif.h types.h
SHARED_FILES += MemPosition.C MemPosition.h

SHARED_FILES_WITH_LOC = $(foreach file,$(SHARED_FILES),../shared/$(file))

COPY_IND_FILE = .copy.shared

$(COPY_IND_FILE) : $(SHARED_FILES_WITH_LOC)
	rm -f $(SHARED_FILES)
	cp  $(SHARED_FILES_WITH_LOC) .
	chmod -w $(SHARED_FILES)
	touch $(COPY_IND_FILE)

%.o : %.c %.h
	$(CXX) -c $(CXXFLAGS) $(CXXINCLUDE) $<

$(EXEC) : $(COPY_IND_FILE) $(OFILES)
	$(CXX) -g $(OFILES) -o $@ $(CXXLIBS)

purecoach : $(OFILES)
	purify -collector=/usr/local/lib/gcc-lib/sparc-sun-sunos4.1.3_U1/2.7.2/ld $(CXX) -g $^ -o $@ $(CXXLIBS)

cln:
	echo cleaning up....
	/bin/rm $(OFILES) $(EXEC) $(COPY_IND_FILE)

depend:
	$(RM) $(DEPEND)
	$(CXX) -M $(CXXFLAGS) $(SRCS) >> $(DEPEND)

DEPEND = Makefile.depend
ifeq ($(wildcard $(DEPEND)),$(DEPEND))
include $(DEPEND)
endif
