#
# makefile ̗p
# 1. ̃t@CTṽfBNgɃRs[ĂB
# 2. fBNg̐ݒ𒲐ĂB
#    }N GCC, SEGALIB, SEGASMP `ĂB
# 3. RtBM[Vt@C sample.cfg 쐬ĂB
#    }N TARGET  OBJS `ĂB
# 4. make săTvvO쐬ĂB
#

#
#̃t@CŎgĂ}N̐
#  CC           bRpCw肵܂Bis\Ȍ`ŋLqĂj
#  CFLAGS       bRpC̃IvVw肵܂B
#  AS           AZuw肵܂Bis\Ȍ`ŋLqĂj
#  ASFLAGS      AZũIvVw肵܂B
#  LDFLAGS      J̃IvVw肵܂B
#  SATURN       T^[p̃z[fBNgw肵܂B
#  GCC          fmt̂fBNgw肵܂B
#  SEGASMP      rak̃Tv̂fBNgw肵܂B
#  SEGALIB      rak̃CûfBNgw肵܂B
#  LOCATE_FILE  ̃P[VLqt@CłB
#  ENTRY_POINT  TvvO̎sJnAhXw肵܂B
#  LIBS         N郉Cuw肵܂B
#
#  iRtBM[Vt@C sample.cfg ̒Œ`܂j
#  TARGET       TvvO̖Ow肵܂B
#               it@C̃vC}l[ɂȂ܂j
#  OBJS         NIuWFNgt@Cw肵܂B
#

CC = sh-coff-gcc
AS = gasm
CV = sh-coff-objcopy

CFLAGS  = -g -O0 -Wall -m2 -DMODEL_S -I$(GCC)/include -I$(SEGALIB)/include -I$(SEGASMP)/per/smpclib
ASFLAGS =
LDFLAGS = -T $(LOCATE_FILE) -e $(ENTRY_POINT) -nostartfiles
CVFLAGS = -O binary

SATURN  = ../../sbl6
GCC     = c:/saturn/SH_COFF/sh-coff
SEGASMP = $(SATURN)/segasmp
SEGALIB = $(SATURN)/segalib

LOCATE_FILE = saturn.lnk
ENTRY_POINT = START
CONFIG_FILE = sample.cfg
LIBS_FILE = $(SEGASMP)/lib/libs.lst

include	$(CONFIG_FILE)
include	$(LIBS_FILE)

.SUFFIXES:
.SUFFIXES: .cof .o .src .c

all: $(TARGET).cof $(TARGET).bin

$(TARGET).cof:	$(OBJS)
	$(CC) $(LDFLAGS) $(_LDFLAGS) -o $(TARGET).cof -Xlinker -Map -Xlinker $(TARGET).map $(OBJS) $(LIBS)
$(TARGET).bin:	$(TARGET).cof
	$(CV) $(CVFLAGS) $(TARGET).cof $(TARGET).bin

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

%.o: %.src
	$(AS) $< $(ASFLAGS) $(_ASFLAGS) -o $@

clean:
	del *.o

