Makefile 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. # This Makefile requires GNU Make or equivalent.
  2. include os.mk
  3. TARGET = monroeoc8800diag
  4. ASMFILES = $(TARGET:%=%.asm)
  5. CIMFILES = $(TARGET:%=%.cim)
  6. BDSFILES = $(TARGET:%=%.bds)
  7. BINFILES = $(TARGET:%=%.bin)
  8. HEXFILES = $(TARGET:%=%.hex)
  9. all: $(BINFILES)
  10. monroeoc8800diag.bin: inc/z80.mac inc/spt.mac inc/spt.asm inc/memtestmarch.asm inc/monroecon.asm inc/trs80music.asm Makefile os.mk
  11. .PHONY: clean realclean
  12. clean:
  13. -$(RM) $(wildcard $(BDSFILES) $(TARGET:%=%.txt) $(TARGET:%=%.lst))
  14. realclean: clean
  15. -$(RM) $(wildcard $(CIMFILES) $(BINFILES) $(HEXFILES))
  16. $(BDSFILES): %.bds: %.bin
  17. ASSEMBLE = $(ZMAC) --zmac -m --od . --oo cim,bds,lst,hex
  18. %.bin: %.asm Makefile
  19. @-$(CECHO) $(SGR_COMMAND) $(ASSEMBLE) $< $(SGR_RESET)
  20. @-$(CECHON) $(SGR_OUTPUT)
  21. @$(ASSEMBLE) $<
  22. @-$(CECHON) $(SGR_RESET)
  23. @$(REN) $(<:%.asm=%.cim) $@
  24. @-$(CECHON) $(SGR_SIZE)
  25. @$(STAT) "%N: %z %Xz" $@
  26. @-$(CECHON) $(SGR_RESET)
  27. .PHONY: emu
  28. MODEL = -m3
  29. # MEM = 32
  30. EMUFLAGS = $(MODEL) $(foreach h,$(HD),-h $(h)) $(foreach m,$(MEM),-mem $(m)) -turbo
  31. # EMUFLAGS = $(MODEL) $(foreach h,$(HD),-h $(h)) $(foreach m,$(MEM),-mem $(m))
  32. emu emu1 emu1l emu3: monroeoc8800diag.emu
  33. emu1: MODEL = -m1 -nlc -nld
  34. emu1l: MODEL = -m1
  35. emu3: MODEL = -m3
  36. emu2: MODEL = -m2
  37. emu2: HD = ~/w/trs80/trs80-hard-disk-0.hdv
  38. emu12: MODEL = -m12
  39. emu16: MODEL = -m16
  40. emu6k: MODEL = -m6000
  41. # emu4: MODEL = -m4
  42. emu4p: MODEL = -m4p
  43. # emu4d: MODEL = -m4d
  44. BREAKFLAGS=$(foreach brk,$(B),-b $(brk))
  45. %.emu: %.bds %.bin
  46. $(EMU) -ee -vol 20 -rand $(EMUFLAGS) $(BREAKFLAGS) -rom $*.bin -ls $*.bds $(E)
  47. .DEFAULT: all
  48. .PHONY: all