SOCCER_LIB_TOP = ../..
LIBDIR = $(SOCCER_LIB_TOP)/generic_library
LIB_CONFIG = $(LIBDIR)/bin/library-config --prefix=$(LIBDIR)

EVOLUTIONAL_VARIABLE_LIB_DIR = ../../evolutional_variable

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  = `$(LIB_CONFIG) --cc`
CXX = `$(LIB_CONFIG) --c++`
MAKE_ARCHIVE = `$(LIB_CONFIG) --make-archive`


RM = rm
CHDIR = cd
PRCS = prcs

INCLUDES = -I$(EVOLUTIONAL_VARIABLE_LIB_DIR) \
	   -I$(SOCCER_BASIC_LIB_DIR) \
	   -I$(SSERVER_CONNECTION_LIB_DIR) \
	   -I$(FIELD_RECOG_LIB_DIR) \
	   -I$(ACTION_LIB_DIR) \
	   -I.

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

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

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

OBJS = soccer_agent_environment.o soccer_option_analyzer.o

all: libagent_environment.a

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

libagent_environment.a: $(OBJS)
	$(MAKE_ARCHIVE) 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)

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)

.PHONY: all library library-only clean diff populate checkin


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

soccer_option_analyzer.o: soccer_option_analyzer.h soccer_option_analyzer.cc
