###  This File is _NON_automatically generated by SAGAMI, Tsuyoshi.

#TARGET = serdes
LIBTARGET= libXmlSerDes.a

RTM_ROOT=../../../

COMMON_DIR=$(RTM_ROOT)/common/

LD = g++
CC= gcc
CXX= g++

#LD = g++-4.0
#CC= gcc-4.0
#CXX= g++-4.0


#LD = g++-mp-4.4
#CC= gcc-mp-4.4
#CXX= g++-mp-4.4

#CC= llvm-gcc-4.2
#CXX= llvm-g++-4.2
#LD = g++

WARNS = -Wall -Wparentheses -Wdisabled-optimization
WARNS+= -Wextra -Wunused
WARNS+=	-Wswitch-enum -Wswitch-default
WARNS+= -Wformat=2 
WARNS+= -Wstrict-aliasing=2  -Wcast-align
#WARNS+= -Wdisabled-optimization -Winline
WARNS+= -Wcast-qual

CWARNS = -Wstrict-prototypes -Wmissing-prototypes


OPTIMIZE	= -g -O2
#OPTIMIZE	=  -g -O3 -fomit-frame-pointer -fstrict-aliasing \
                   -momit-leaf-frame-pointer -falign-loops -ftree-vectorize

#ARCH = -arch i386

COVERAGE	= -fprofile-arcs -ftest-coverage
PROFILE	= #-pg


CPPFLAGS+= `rtm-config --cflags` -I$(COMMON_DIR)/include 

PIPE = -pipe
#PIPE = -save-temps -fdump-tree-all

FRAMEWORK = 
ARCH = 

CFLAGS = $(ARCH) -std=c99  $(PIPE) $(WARNS) $(CWARNS) $(OPTIMIZE) $(PROFILE)
CXXFLAGS = $(ARCH) $(PIPE) $(WARNS) $(PROFILE) $(OPTIMIZE)



LDFLAGS = -L/opt/local/lib $(ARCH) `rtm-config --libs`
LDLIBS = -lboost_serialization-mt -lboost_wserialization-mt
#LDLIBS = -lboost_serialization


# ---------------------------------------------------------------- #

SRCS  =  xml_serdes.cpp quantized_vector.cpp navigation_data.cpp GridMap.cpp Localization.cpp Path.cpp Velocity.cpp Object.cpp RobotParam.cpp JoystickData.cpp
CSRCS = 
# ---------------------------------------------------------------- #

LDFLAGS := $(LDFLAGS) $(PROFILE) 

#OBJS := $(patsubst %.c,%.o,$(SRCS))
OBJS := $(patsubst %.cpp,%.o,$(SRCS)) $(patsubst %.c,%.o,$(CSRCS))

TEMPFILES := $(patsubst %.o,%.ii,$(OBJS)) $(patsubst %.o,%.s,$(OBJS))

MKDEPEND= $(CPP) -MM
DEPENDENCY = .depend

.SUFFIXES: .o .cc .c .cpp
%.o: %.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
%.o: %.cc
	$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $<

%.o: %.cpp
	$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $<

%.h.gch: %.h
	$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $<

.PHONY: all depend clean rmbak realclean lib

#all: $(DEPENDENCY) $(TARGET) lib
all: $(DEPENDENCY) lib

##
## main.cpp is for testing purpose and will not be included in the lib.
##

#$(TARGET): $(OBJS) main.o
#	$(LD) $(FRAMEWORK) $(LDFLAGS) $(LOADLIBS) -o $@ $? $(LDLIBS)

$(DEPENDENCY): $(SRCS) $(CSRCS)
	@echo
	$(MKDEPEND) $(CPPFLAGS) $(SRCS) $(CSRCS) > $(DEPENDENCY)


ifneq ($(wildcard .depend),)
include $(DEPENDENCY)
endif

depend: $(DEPENDENCY)

clean: rmtemps
#	$(RM) main.o
	$(RM) $(OBJS)
#	$(RM) $(TARGET)
	$(RM) $(DEPENDENCY)
	$(RM) $(LIBTARGET)
rmbak:
	find . -type f -regex '.*~$$' |xargs $(RM)
rmtemps:
	$(RM) $(TEMPFILES)
realclean: clean rmbak rmtemps
	$(RM) $(DEPENDENCY)


lib: $(LIBTARGET) 

$(LIBTARGET): $(OBJS)
	$(AR) $(ARFLAGS) $@ $?


install: lib
#	for file in $(HDRS); do \
#		install -m 0644 $$file $(COMMON_DIR)/include; \
#	done
	install -m 0644 $(LIBTARGET) $(COMMON_DIR)/lib

#.PHONY: check-syntax
#check-syntax:
#	nice $(CXX) $(CXXFLAGS) $(CPPFLAGS) -fsyntax-only $(CHK_SOURCES)
