M68KSOURCES	= bootstrap.S

M68KCC		= m68k-none-elf-gcc
M68KLD		= m68k-none-elf-gcc
M68KSTRIP	= m68k-none-elf-strip
M68KOBJCOPY	= m68k-none-elf-objcopy
M68KRC		= pilrc

#note, we are compiling WITHOUT "-mshort" so this is not PalmOS-compatible. That's OK, we're not running PalmOS
M68KCOMMON	=	-Wno-multichar -funsafe-math-optimizations -Os -m68000 -mno-align-int -mpcrel -fpic -fshort-enums
M68KWARN	=	-Wsign-compare -Wextra -Wall -Werror -Wno-unused-parameter -Wno-old-style-declaration -Wno-unused-function -Wno-unused-variable -Wno-error=cpp
M68KLKR		=	linker68k.lkr
M68KCCFLAGS	=	$(M68KLTO) $(M68KWARN) $(M68KCOMMON) -I. -ffunction-sections -fdata-sections
M68KLDFLAGS	=	$(M68KLTO) $(M68KWARN) $(M68KCOMMON) -Wl,--gc-sections -Wl,-T $(M68KLKR)
	

M68KOBJS		= $(patsubst %.c,%.m68k.o,$(patsubst %.S,%.m68k.o,$(M68KSOURCES)))

all: out.m68k.bin

%.m68k.bin: %.m68k.elf
	$(M68KOBJCOPY) -O binary $< $@ -j.text -j.rodata -j.data

%.m68k.elf: $(M68KOBJS)
	$(M68KLD) -o $@ $(M68KLDFLAGS) $^ -lgcc

%.m68k.o: %.S Makefile
	$(M68KCC) $(M68KCCFLAGS) $(M68KINCS) -c $< -o $@

%.m68k.o: %.c Makefile
	$(M68KCC) $(M68KCCFLAGS) $(M68KINCS) -c $< -o $@
	$(M68KSTRIP) -S -R "*.macsbug" $@

%.inc: %.bin
	xxd -c2 $< | sed 's/[^:]*: \(....\).*/0x\1,/g' > $@

clean:
	rm -f *.elf *.bin $(M68KOBJS)