SOCCER_LIB_TOP = ../..
LIBDIR = $(SOCCER_LIB_TOP)/generic_library
SOCCER_BASIC_LIB_DIR = ../soccer_basic_lib
SSERVER_CONNECTION_LIB_DIR = ../sserver_connection
FIELD_RECOG_LIB_DIR = ../soccer_interface
ACTION_LIB_DIR = ../action_lib

CC  = $(LIBDIR)/bin/gccw
CXX = $(LIBDIR)/bin/g++w

RM = rm
CHDIR = cd
PRCS = prcs

MAKE_AR = $(LIBDIR)/bin/make_ar

INCLUDES = -I$(LIBDIR)/include \
	   -I$(SOCCER_BASIC_LIB_DIR) \
	   -I$(SSERVER_CONNECTION_LIB_DIR) \
	   -I$(FIELD_RECOG_LIB_DIR) \
	   -I$(ACTION_LIB_DIR) \
	   -I.

BASIC_LIBS = \
	$(LIBDIR)/src/udp_connection/libudp_connection.a \
	$(LIBDIR)/src/lisp_lex/liblisp_lex.a \
	$(LIBDIR)/src/d2_region/libd2_region.a \
	$(LIBDIR)/src/d2_vector/libd2_vector.a \
	$(LIBDIR)/src/time_stamp/libtime_stamp.a \
	$(LIBDIR)/src/option_analyser/liboption_analyser.a \
	$(LIBDIR)/src/debugstream/libdebugstream.a

CFLAGS   = -g $(PROFFLAGS) \
	   $(CCXXOPTFLAGS) $(COPTFLAGS) $(INCLUDES) \
	   $(CCXXADDITIONALFLAGS) $(CADDITIONALFLAGS)

CXXFLAGS = -g $(PROFFLAGS) \
	   $(CCXXOPTFLAGS) $(CXXOPTFLAGS) $(INCLUDES) \
	   $(CCXXADDITIONALFLAGS) $(CXXADDITIONALFLAGS)

LDFLAGS = `$(SSERVER_CONNECTION_LIB_DIR)/link-config` \
	  $(PROFLDFLAGS) $(LDADDITIONALFLAGS) -lm

OBJS = soccer_agent_environment.o

all: libagent_environment.a

library: libagent_environment.a
library-only: library
	$(RM) -f *.o

libagent_environment.a: $(OBJS)
	$(MAKE_AR) libagent_environment.a $(OBJS)


$(ACTION_LIB_DIR)/libaction.a:
	$(CHDIR) $(ACTION_LIB_DIR) && $(MAKE) libaction.a

$(FIELD_RECOG_LIB_DIR)/libsoccer_interface.a:
	$(CHDIR) $(FIELD_RECOG_LIB_DIR) && $(MAKE) libsoccer_interface.a

$(SSERVER_CONNECTION_LIB_DIR)/libsserver_connection.a:
	$(CHDIR) $(SSERVER_CONNECTION_LIB_DIR) \
			&& $(MAKE) libsserver_connection.a

$(SOCCER_BASIC_LIB_DIR)/libsoccer_basic.a:
	$(CHDIR) $(SOCCER_BASIC_LIB_DIR) && $(MAKE) libsoccer_basic.a

$(BASIC_LIBS):
	$(CHDIR) $(LIBDIR)/src && $(MAKE)

clean:
	$(RM) -f *.o libagent_environment.a


#
# for Revision Control
#
diff:
	@$(CHDIR) $(SOCCER_LIB_TOP) && $(PRCS) diff || true

populate:
	@$(CHDIR) $(SOCCER_LIB_TOP) && $(PRCS) populate

checkin:
	@$(CHDIR) $(SOCCER_LIB_TOP) && $(PRCS) checkin && $(RM) -f .*.prcs_aux

##
soccer_agent_environment.o: soccer_agent_environment.h \
			    soccer_agent_environment.cc
