SOCCER_LIB_DIR=../soccer_library
SOCCERLIB_CONFIG=$(SOCCER_LIB_DIR)/soccerlib-config --prefix=$(SOCCER_LIB_DIR)

CXX          = `$(SOCCERLIB_CONFIG) --c++` --no-warning-options -ansi -Wall
MAKE_ARCHIVE = `$(SOCCERLIB_CONFIG) --make-archive`
PRCS         = prcs
CHDIR        = cd
RM           = rm

DEBUG_SERVER_DIR  = ../debug_server
GTK_EXTENSION_DIR = ./gtk_extension

INCLUDES = -I$(GTK_EXTENSION_DIR) -I$(DEBUG_SERVER_DIR)

CXXFLAGS = -g `gtkmm-config --cflags` \
	      `$(SOCCERLIB_CONFIG) --cflags` \
	      $(INCLUDES) $(CCXXOPTFLAGS) $(CXXOPTFLAGS) \
	      $(CCXXADDITIONALFLAGS) $(CXXADDITIONALFLAGS)

OBJS = field_canvas.o game_info_mode_line.o stamina_gauge.o \
       team_config.o gtk_updator.o

all: library

library: libsoccer_view.a $(GTK_EXTENSION_DIR)/libgtk_extension.a
library-only: library
	$(RM) -f *.o

libsoccer_view.a: $(OBJS)
	$(MAKE_ARCHIVE) libsoccer_view.a $(OBJS)

$(GTK_EXTENSION_DIR)/libgtk_extension.a:
	($(CHDIR) $(GTK_EXTENSION_DIR) && $(MAKE) libgtk_extension.a)

clean:
	$(RM) -f *.o libsoccer_view.a
	($(CHDIR) $(GTK_EXTENSION_DIR) && $(MAKE) clean)


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

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

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

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


##
field_canvas.o: field_canvas.h field_canvas.cc \
		team_config.h \
		$(GTK_EXTENSION_DIR)/coordinate_view_pixmap.h \
		$(GTK_EXTENSION_DIR)/transparent_pixmap.h \
		$(GTK_EXTENSION_DIR)/gdk_gc_wrapper.h

game_info_mode_line.o: game_info_mode_line.h game_info_mode_line.cc \
		       $(GTK_EXTENSION_DIR)/transparent_pixmap.h \
		       $(GTK_EXTENSION_DIR)/gdk_gc_wrapper.h

stamina_gauge.o: stamina_gauge.h stamina_gauge.cc

team_config.o: team_config.h team_config.cc

gtk_updator.o: gtk_updator.h gtk_updator.cc \
	       $(DEBUG_SERVER_DIR)/abstruct_updator.h
