
ROOT_PATH = ..
RTOS_PATH = $(ROOT_PATH)/../../asp
SRCDIR    = $(RTOS_PATH)

#
#  åȥܡɤ
#
include $(ROOT_PATH)/Makefile.common

#
#  ֥ȥե̾γĥҤ
#
OBJEXT = exe

#
#  ܡɥ
#
ifeq ($(BOARDTYPE),)
BOARDTYPE = PICO
endif

#
#  ߥɥ륦 Makefile Υ󥯥롼
#
include $(SRCDIR)/ui/snfont_disp/Makefile.config

#
#  GDICɥ饤Фμ
#
include $(SRCDIR)/gdic/adafruit_st7789/Makefile.config
ifeq ($(BOARDTYPE),PICO_W)
include $(SRCDIR)/gdic/cyw43/Makefile.config
endif

#
#  ֥ȥե̾
#
OBJNAME = lcd_text
ifdef OBJEXT
	OBJFILE = $(OBJNAME).$(OBJEXT)
else
	OBJFILE = $(OBJNAME)
endif

CC  =	$(GCC_TARGET)-gcc
CXX	=	$(GCC_TARGET)-g++
AR  =	$(GCC_TARGET)-ar
NM  =	$(GCC_TARGET)-nm
OBJCOPY = $(GCC_TARGET)-objcopy
OBJDUMP = $(GCC_TARGET)-objdump

ifeq ($(DEBUG),)
DEBUG = 1
endif

INCLUDES := -I. $(INCLUDES)

TARGET_DIR = .
UTASK_DIR = $(ROOT_PATH)
vpath %.c $(UTASK_DIR):$(RTOS_PATH)/pdic/$(CORE):$(SYSSVC_DIR):$(ROOT_PATH)/servicecall:$(SRCDIR)/monitor/stdio
vpath %.S $(UTASK_DIR)

COBJS = $(OBJNAME).o device.o pio_spi.o spi.o pinmode.o kernel.o sprintf.o $(SYSSVC_COBJS) $(LOCAL_COBJS)
AOBJS = $(LOCAL_AOBJS)

ifeq ($(DBGENV),ROM)
CDEFS  := $(CDEFS) -DROM_EXEC=1 -DBOARDTYPE=$(BOARDTYPE) -DLOGSHIELD=$(LOGSHIELD) -DNOT_USEFILFONT
COBJS  := $(COBJS) syslog.o
else
ifeq ($(DEBUG),1)
CDEFS  := $(CDEFS) -DTOPPERS_RAM_EXEC -DBOARDTYPE=$(BOARDTYPE) -DLOGSHIELD=$(LOGSHIELD) -DNOT_USEFILFONT
COBJS  := $(COBJS) syslog.o
endif
endif

ifeq ($(DEBUG),1)
CDEFS  := $(CDEFS) -DDEBUG
endif

INCLUDES := -I$(UTASK_DIR) -I$(RTOS_PATH)/pdic/$(CORE) -I$(ROOT_PATH)/servicecall $(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) -lc -lgcc
	$(NM)	$(OBJFILE) > $(OBJNAME).syms
	$(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
ifeq ($(DBGENV),ROM)
	$(OBJCOPY) -O binary -S $(OBJFILE) $(OBJNAME).bin
	bin2uf2 $(OBJNAME).bin -family $(FAMILY)
endif
	$(OBJDUMP) -t -h $(OBJFILE) > $(OBJNAME).map
	$(OBJDUMP) -D $(OBJFILE) > $(OBJNAME).lst

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

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

# rules

clean:
	rm -f *.o
	rm -f $(OBJFILE) *.syms *.srec *.bin *.uf2 *.map *.lst


