#
# Makefile for the Serial port Midi module
# 30/6/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

# 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.serial o.midi

A_OBJ = o.veneer

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

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

# Link          
SerialMidi: $(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


