TARGET =	RemCon

INCS =		src/kernel_id.h src/main.h src/h8t_sci.h src/h8t_lcd.h

OBJS =		src/crt0.o src/kernel_cfg.o src/vector.o \
			src/main.o src/h8t_sci.o src/ostimer.o src/h8t_lcd.o



# --------------------------------------------------------------------------- 
#   ϐ
# --------------------------------------------------------------------------- 

# ========= pX
HOSROOT			= C:/SDK/hos-v4
INCDIR			= $(HOSROOT)/include
HINCDIR			= .
PACDIR			= $(HOSROOT)/include/h83
LIBDIR			= $(HOSROOT)/lib/h83/gcc

# ========= c[
CC				= h8300-hms-gcc
CPP				= h8300-hms-gcc
ASM				= h8300-hms-gcc -x assembler-with-cpp
LINK			= h8300-hms-gcc
OBJCNV			= h8300-hms-objcopy -O srec
HOSCFG			= /SDK/H8/hos-v4/config/hos4cfg
RM				= del

# ========= IvV
#CFLAGS			= -O2 -fomit-frame-pointer -Wall -I$(INCDIR) -I$(PACDIR) -I$(HINCDIR) -mh -mn -c -pipe
CFLAGS			= -Wall -I$(INCDIR) -I$(PACDIR) -I$(HINCDIR) -mh -mn -c
CPPFLAGS		= -E -mh -mn -x c
AFLAGS			= -mh -mn -c
#LFLAGS			= -mh -mn -mrelax -nostartfiles -nostdlib -Wl,-Map,$(TARGET).map \
#					-Wl,-T$(LDSCRIPT) -L$(LIBDIR)
LFLAGS			= -mh -mn -nostartfiles -nostdlib -Wl,-Map,$(TARGET).map \
					-Wl,-T$(LDSCRIPT) -L$(LIBDIR)
LIBS			= -lgcc -lh4h83n

# ========= JXNvg
LDSCRIPT		= h83664.x





# --------------------------------------------------------------------------- 
#   RpC[
# --------------------------------------------------------------------------- 

# ========= IuWFNg
$(TARGET).mot:		$(OBJS) $(LDSCRIPT)
		$(LINK) $(LFLAGS) -o $(TARGET).coff $(OBJS) $(LIBS)
		$(OBJCNV) $(TARGET).coff $(TARGET).mot

# ========= RtBO[V
src/kernel_cfg.c src/kernel_id.h: src/system.cfg
	cd src && $(CPP) $(CPPFLAGS) system.cfg | $(HOSCFG) -

# ========= ʃRpC[
.SUFFIX:			.c
.c.o:				$(INCS)
		$(CC) $(CFLAGS) -o $*.o $<
.s.o:
		$(ASM) $(AFLAGS) -o $*.o $<


# --------------------------------------------------------------------------- 
#   ꓮ
# --------------------------------------------------------------------------- 

# ========= tbV
install:	$(TARGET).mot
		h8write -3664 $(TARGET).mot COM4

# ========= ^[~iN
test:		$(TARGET).mot
		C:\PROGRA~1\TTERMPRO\ttssh.exe /F=TERATERM_SERIAL4.INI

# ========= N[ibv
clean:
		$(RM) $(TARGET).coff
		$(RM) $(TARGET).mot
		$(RM) $(TARGET).map
		$(RM) src\*.o
		$(RM) src\kernel_id.h
		$(RM) src\kernel_cfg.c

