MDLD = $(GENDEV)/m68k/bin/ld
MDAS = $(GENDEV)/m68k/bin/as
SHLD = $(GENDEV)/sh2/bin/ld
SHCC = $(GENDEV)/sh2/bin/gcc
SHAS = $(GENDEV)/sh2/bin/as
RM = rm -f

FLAGS = -m2 -mb -O3 -Wall -g -fomit-frame-pointer -DHAVE_FFBLK -DDOSISM -DWMODE=0 -I./src -I$(GENDEV)/sh2/include

OBJS = \
	src/sh2_crt0.o \
	src/id_ca.o \
	src/id_us.o \
	src/id_vh.o \
	src/misc.o \
	src/objs.o \
	src/vi_comm.o \
	src/vi_32x.o \
	src/wl_act1.o \
	src/wl_act2.o \
	src/wl_act3.o \
	src/wl_agent.o \
	src/wl_debug.o \
	src/sd_comm.o \
	src/sd_32x.o \
	src/wl_draw.o \
	src/wl_game.o \
	src/wl_inter.o \
	src/wl_main.o \
	src/wl_menu.o \
	src/wl_play.o \
	src/wl_state.o \
	src/wl_text.o \
	src/w3dsw_data.o \
	src/debug_32x.o \
	src/debug_font.o

all: m68k_crt0.bin m68k_crt1.bin wolf32x.bin

wolf32x.bin: $(OBJS)
	$(SHLD) -T $(GENDEV)/sh2/lib/32x.ld -relax -small -e _start --oformat binary -o wolf32x.bin $(OBJS) $(GENDEV)/sh2/lib/libm.a $(GENDEV)/sh2/lib/libc.a $(GENDEV)/sh2/lib/libgcc.a $(GENDEV)/sh2/lib/libgcc-Os-4-200.a

m68k_crt0.bin: src/m68k_crt0.s
	$(MDAS) -m68000 --register-prefix-optional -o src/m68k_crt0.o src/m68k_crt0.s
	$(MDLD) -T $(GENDEV)/m68k/lib/md.ld --oformat binary -o src/m68k_crt0.bin src/m68k_crt0.o

m68k_crt1.bin: src/m68k_crt1.s
	$(MDAS) -m68000 --register-prefix-optional -o src/m68k_crt1.o src/m68k_crt1.s
	$(MDLD) -T $(GENDEV)/m68k/lib/md.ld --oformat binary -o src/m68k_crt1.bin src/m68k_crt1.o

%.o: %.c
	$(SHCC) $(FLAGS) -c $< -o $@

%.o: %.s
	$(SHAS) --small -o $@ $<

clean:
	$(RM) -f src/*.o src/*.out src/*.bin *.bin
