

include ../memstick.inc

OPENRSDK_ROOT?=/usr/local/OPEN_R_SDK
LOCAL_DIR = $(shell pwd)

CXX=$(OPENRSDK_ROOT)/bin/mipsel-linux-g++
CC=$(OPENRSDK_ROOT)/bin/mipsel-linux-gcc
STRIP=$(OPENRSDK_ROOT)/bin/mipsel-linux-strip
MKBIN=$(OPENRSDK_ROOT)/OPEN_R/bin/mkbin
STUBGEN=$(OPENRSDK_ROOT)/OPEN_R/bin/stubgen2
MKBINFLAGS=-v -p $(OPENRSDK_ROOT)

LIBS=-L$(OPENRSDK_ROOT)/OPEN_R/lib -lObjectComm -lOPENR

WARNFLAGS= -W -Wcast-qual -Wwrite-strings -Wconversion -Wredundant-decls -Winline -Wall

COMMONDIR=../Common

CXXFLAGS= \
	-O2 \
	-g \
	-I. \
	-DOPENR_DEBUG \
	-I$(OPENRSDK_ROOT)/OPEN_R/include/R4000 \
	-I$(OPENRSDK_ROOT)/OPEN_R/include \
	-I$(COMMONDIR) \
	-DAPERIOS


OBJECT = Walker.bin

.PHONY: $(OBJECT) install clean cleanstick

all: $(OBJECT)

CC_SOURCES = \
	WalkerStub.cc \
	../Common/CerberusMath.cc \
	Joint.cc \
	Leg.cc \
	Head.cc \
	Tail.cc \
	Matrix.cc \
	JointData.cc \
	MotionInfo.cc \
	MotionRequest.cc \
	GT2005Polygon.cc \
	GT2005Parameters.cc \
	Kinematics.cc \
	GT2005WalkingEngine.cc \
	EllipticLocus.cc \
	MotionManager.cc \
	Walker.cc


OBJS = $(patsubst %.cc,%.o,$(filter %.cc,$(CC_SOURCES)))	

%.o: %.cc
	$(CXX) $(CXXFLAGS) -o $@ -c $^
		

WalkerStub.cc: stub.cfg
	$(STUBGEN) stub.cfg	

$(OBJECT): $(OBJS) Walker.ocf
	$(MKBIN) $(MKBINFLAGS) -o $@ $^ $(LIBS)
	$(STRIP) $@

install: $(OBJECT)
	gzip -c $(OBJECT) > $(MEMSTICK)/OPEN-R/MW/OBJS/WALKER.BIN

clean:
	rm -f *.o *.bin *.elf *.snap.cc
	rm -f WalkerStub.* def.h entry.h
	rm -f $(MEMSTICK)/OPEN-R/MW/OBJS/WALKER.BIN 
	
	
cleanstick:
