csrc = $(wildcard src/*.c) $(wildcard src/libc/*.c) asrc = $(wildcard src/*.s) aSsrc = $(wildcard src/*.S) obj = $(asrc:.s=.o) $(aSsrc:.S=.o) $(csrc:.c=.o) dep = $(csrc:.c=.d) z80src = $(wildcard src/z80/*.asm) z80obj = $(z80src:.asm=.z80) z80bin = z80.bin name = life elf = $(name).elf bin = $(name).bin warn = -pedantic -Wall dbg = -g opt = -O2 def = -D__NO_CTYPE inc = -I. -Isrc -Isrc/libc TC = m68k-linux-gnu- CC = $(TC)gcc AS = $(TC)as LD = $(TC)ld OBJCOPY = $(TC)objcopy CFLAGS = -m68000 -ffreestanding -fno-builtin -fcommon $(warn) $(dbg) $(opt) $(def) $(inc) -MMD CPPFLAGS = $(def) ASFLAGS = -m68000 $(inc) LDFLAGS = -T megadrive.ld -print-gc-sections \ -L/usr/lib/gcc-cross/m68k-linux-gnu/11 -lgcc Z80AS = vasmz80_oldstyle Z80ASFLAGS = -Fvobj Z80LD = vlink Z80LDFLAGS = -T z80.ld -b rawbin1 $(bin): $(elf) $(OBJCOPY) -O binary $< $@ $(elf): $(obj) $(LD) -o $@ $(obj) -Map link.map $(LDFLAGS) $(z80bin): $(z80obj) $(Z80LD) -o $@ $(Z80LDFLAGS) $(z80obj) src/z80prog.o: src/z80prog.s $(z80bin) -include $(dep) %.z80: %.asm $(Z80AS) -o $@ $(Z80ASFLAGS) $< >/dev/null .PHONY: clean clean: rm -f $(obj) $(elf) $(bin) rm -f $(z80obj) $(z80bin) .PHONY: cleandep cleandep: rm -f $(dep) .PHONY: run run: $(bin) mednafen $< .PHONY: copy copy: $(bin) mount /media/usbmass && cp $(bin) /media/usbmass/$(bin) umount /media/usbmass .PHONY: install install: $(bin) mount /media/usbmass [ -f /media/usbmass/MEGA/MEGA.RBF ] || cp $(bin) /media/usbmass/MEGA/MEGA.BIN umount /media/usbmass