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

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.

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

LIBRARIES = \
	$(FIELD_RECOG_LIB_DIR)/libsoccer_interface.a \
	$(SSERVER_CONNECTION_LIB_DIR)/libsserver_connection.a \
	$(SOCCER_BASIC_LIB_DIR)/libsoccer_basic.a \
	$(BASIC_LIBS)

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

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

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

OBJS = soccer_action.o command_queue.o

all: libaction.a

library: libaction.a
library-only: library
	$(RM) -f *.o *.gmon bb.out

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


$(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 *.gmon bb.out libaction.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_action.o: soccer_action.h soccer_action.cc
command_queue.o: command_queue.h command_queue.cc soccer_action.h
action_lib-test.o: action_lib-test.cc command_queue.h soccer_action.h
