#
# Makefile for the MidiSupport module and the associated !RunImage
# 8/3/2023
# uses gccsdk 4.7.4

CC = gcc
CFLAGS = -mmodule -c -Wall -mthrowback -O2 -mpoke-function-name
AS = gcc
ASFLAGS = -mmodule -c -mthrowback
LD = gcc
LDFLAGS = -mmodule
CMHG = cmunge
MFLAGS = -tgcc -32bit -throwback
# !Runimage flags
RIFLAGS = -mlibscl -Wall -mthrowback -O2 -mpoke-function-name

# listings
#CFLAGS += -fverbose-asm -save-temps
#CFLAGS += -fverbose-asm -S
#LDFLAGS += -Wl,-Map=map
#MFLAGS += -s s.modhdr

MHDR = modhdr

C_OBJ = o.module o.midi

A_OBJ = o.veneer

H_SRC = h.module h.midi_spec h.$(MHDR)

OBJS = o.$(MHDR) $(A_OBJ) $(C_OBJ)

MidiSupport: MIDIS !RunImage

# !RunImage
!RunImage: c.runimage
	$(CC) $(RIFLAGS) -o $@ $<

# Link          
MIDIS: $(OBJS)
	$(LD) $(LDFLAGS) -o $@ $(OBJS)

# Module Header
h.$(MHDR) o.$(MHDR): cmhg.$(MHDR)
	$(CMHG) $(MFLAGS) -d h.$(MHDR) -o o.$(MHDR) $<

# Compile
$(C_OBJ): o.%: c.%
	$(CC) $(CFLAGS) $<

# Assemble
$(A_OBJ): o.%: s.%
	$(AS) $(ASFLAGS) $<

# Headers
$(C_OBJ): $(H_SRC)

$(OBJS): Makefile

clean:
	wipe h.$(MHDR) ~C~V
	wipe o ~C~V


