GPSSHOGI_HOME = ../..
include $(GPSSHOGI_HOME)/makefile.conf
-include makefile.local

# type make RELEASE=yes to build optimized programs
# type make DEBUG=yes to build programs for debugging

LDFLAGS += -L$(OSL_LIB_DIR) `Magick++-config --ldflags`
LOADLIBES += /usr/local/lib/libthrift.a -lm -lboost_thread$(BOOST_POSTFIX_MT) -lboost_program_options$(BOOST_POSTFIX) -lboost_filesystem$(BOOST_POSTFIX) -lboost_regex$(BOOST_POSTFIX) `Magick++-config --libs` 
CXXOPTFLAGS += `Magick++-config --cppflags`

INCLUDES += -I. -I./gen-cpp -I/usr/local/include/thrift

ifndef RELEASE
CXXOPTFLAGS ?= -O -DDEBUG
else
CXXOPTFLAGS = $(RELEASE_CXX_OPTFLAGS) -DNDEBUG
endif

ifneq ($(CXX),icc)
## gcc
ifdef RELEASE
WARNING_FLAGS += -Werror $(WARN_INLINE)
else
OTHERFLAGS = $(DEBUGFLAGS)
endif
OTHERFLAGS += -pipe $(CPUOPTION)
ifndef PROF
CXXOPTFLAGS += -fomit-frame-pointer
endif
endif

CXXFLAGS =  -DOSL_HOME=\"$(shell dirname `pwd`)\" $(PROF) $(OTHERFLAGS) $(CXXOPTFLAGS) \
	    $(GCH_INCLUDES) $(INCLUDES) $(ADDITIONALFLAGS)

PROGRAMS = graphicserver
CC = $(CXX)

THRIFT_SRCS = gen-cpp/ShogiGraphic.cpp \
	      gen-cpp/graphicserver_constants.cpp \
	      gen-cpp/graphicserver_types.cpp
THRIFT_OBJS = $(THRIFT_SRCS:.cpp=.o)
GRAPHICSERVER_SRCS = graphicserver.cc pos2img.cc
GRAPHICSERVER_OBJS = $(GRAPHICSERVER_SRCS:.cc=.o)

.PHONY: all
all: $(PROGRAMS)

$(THRIFT_SRCS): graphicserver.thrift
	/usr/local/bin/thrift --gen cpp --gen rb $<

$(GRAPHICSERVER_OBJS): $(THRIFT_OBJS)

graphicserver: $(GRAPHICSERVER_OBJS) $(THRIFT_OBJS) $(FILE_OSL_BOARD)

.PHONY: clean
clean: 
	-rm -f core $(GRAPHICSERVER_OBJS) $(PROGRAMS) gen-rb gen-cpp nohup.out *~

.PHONY: distclean
distclean: clean 
	rm -f *~
