
ROOT_PATH = ..
PROJ = crb_h3

include $(ROOT_PATH)/$(PROJ)/Makefile.config

DBGENV =


ifeq ($(DBGENV),ROM)
# RAM̈̐擪AhX(CS2)
LDSCRIPT = shelf.rom.ld
else
# xN^e[ǔ
LDSCRIPT = shelf.ld
endif

#
#  IuWFNgt@C̊gq̐ݒ
#
OBJEXT = exe

#
#  IuWFNgt@C̒`
#
OBJNAME = robot
ifdef OBJEXT
	OBJFILE = $(OBJNAME).$(OBJEXT)
else
	OBJFILE = $(OBJNAME)
endif

CDEFS := $(CDEFS) -DTARGET

UTASK_DIR = $(ROOT_PATH)
MODE_DIR = $(ROOT_PATH)/scenario
DEV_DIR = $(ROOT_PATH)/$(PROJ)
vpath %.c $(UTASK_DIR):$(MODE_DIR):$(DEV_DIR)
vpath %.S $(UTASK_DIR):$(MODE_DIR):$(DEV_DIR)

COBJS = main.o robocontrol.o robomove.o \
		robodispatch.o roboinvkine.o robomath.o \
		robostraight.o roboready.o robomotion.o \
		robowalk.o robostep.o roboside.o \
		robogratitude.o robosample.o \
		Sio7047.o motor.o storage.o sci.o eeprom.o int.o

AOBJS = vector.o crt0rom.o

INCLUDES := -I$(UTASK_DIR)/lib -I$(UTASK_DIR) -I$(MODE_DIR) -I$(DEV_DIR) $(INCLUDES)
CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
LDFLAGS := -nostdlib $(LDFLAGS)

ifdef LDSCRIPT
    LDFLAGS := $(LDFLAGS) -T $(LDSCRIPT)
endif

all:	$(OBJFILE)

$(OBJFILE):	$(COBJS) $(AOBJS)
	$(CC)	$(CFLAGS) $(LDFLAGS) -o $(OBJFILE) \
			$(AOBJS) $(COBJS) -lgcc $(UTASK_DIR)/lib/lib$(PROJ).a -lc -lm -lgcc
	$(NM)	$(OBJFILE) > $(OBJNAME).syms
	$(OBJCOPY)	-O srec -S $(OBJFILE) $(OBJFILE).srec
	$(OBJDUMP) --syms -h $(OBJFILE) > $(OBJNAME).map

$(COBJS): %.o: %.c
	$(CC) -c $(CFLAGS) $<

$(AOBJS): %.o: %.S
	$(CC) -c $(CFLAGS) $<

clean:
	rm -f *.o


