1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- # This now assumes GNU make or equivalent
- MAKEFLAGS += -R -r
- Z80ASM = z80asm # Get rid of these...
- PERL = perl
- Z80_CPP = gcc -E -x assembler-with-cpp
- CROSS = ../../../../tools/gnu/bin/z80-none-elf-
- Z80_AS = $(CROSS)as
- Z80_LD = $(CROSS)ld
- Z80_OBJCOPY = $(CROSS)objcopy
- Z80_OBJDUMP = $(CROSS)objdump
- Z80_NM = $(CROSS)nm
- INCLUDE = -I$(O) -I.
- SFLAGS = $(INCLUDE) -undef -nostdinc -D__ASSEMBLER__ -D__Z80__
- ASFLAGS = $(INCLUDE) -ahlsgm=$*.lst --no-pad-sections -g
- LDFLAGS =
- # Used for make clean
- AUXRAM = nvram_20k nvram_22k no_nvram
- UFDDOS = ../$(O)/ufddos80.rom
- PRINT = ../$(O)/print80_29.rom ../$(O)/print80_30.rom ../$(O)/print80_28.rom
- ROMS = $(UFDDOS) $(PRINT)
- HDRS = z80.inc abc80.inc auxram.inc $(O)/nvram.inc print80.inc
- .SUFFIXES:
- .SECONDARY:
- .DELETE_ON_ERROR:
- all:
- set -e; for r in $(AUXRAM); do $(MAKE) O=$$r all_O; done
- all_O: $(ROMS)
- # .asm rather than .S to avoid problems on monocase filesystems
- $(O)/%.s: %.asm $(HDRS)
- $(Z80_CPP) $(SFLAGS) -o $@ $<
- %.o: %.s
- $(Z80_AS) $(ASFLAGS) -o $@ $<
- %.elf: %.o z80.ld z80ld.conf
- $(Z80_LD) @z80ld.conf -T z80.ld $(LDFLAGS) \
- -Map=$*.map --cref -o $@ $<
- %.bin: %.elf
- $(Z80_OBJCOPY) -O binary $< $@
- # Default rule
- ../$(O)/%.rom: $(O)/%.bin
- mkdir -p $(@D) && cp -f $< $@
- clean:
- for d in . $(AUXRAM); do \
- rm -f $$d/*.err $$d/*.lis $$d/*.map $$d/*.sym $$d/*.def \
- $$d/*.obj $$d/*.o $$d/*.reloc $$d/*.bin $$d/*.lst \
- $$d/*.s $$d/*.elf ; \
- done
- spotless: clean
- $(MAKE) O=* spotless_O
- spotless_O:
- rm -f $(ROMS)
|