SOURCES := $(wildcard hdl/**.sv) HEADERS := $(wildcard hdl/**.svh) MEMORIES := $(addprefix build/, $(addsuffix .hex, $(basename $(wildcard mem/**.pal)))) QUARTUS := $(shell find altera tcl -name \*.cdf -o -name \*.sdc -o -name \*.tcl) fpga: pdp8.sof quartus_pgm -c 1 -m JTAG -o "P;$<@1" .PHONY: fpga download-%: mem/% p8bin2uart 1 $< | ./download.tcl 0 1 p8bin2uart 1 $< | ./download.tcl 1 1 p8bin2uart 1 $< | ./download.tcl 2 1 p8bin2uart 1 $< | ./download.tcl 3 1 p8bin2uart 1 $< | ./download.tcl 4 1 p8bin2uart 1 $< | ./download.tcl 5 1 p8bin2uart 1 $< | ./download.tcl 6 1 p8bin2uart 1 $< | ./download.tcl 7 1 download-pal-%: build/%.bin p8bin2uart 1 $< | ./download.tcl 0 1 term-mem: nios2-terminal --instance 0 .PHONY: term-mem term-pdp8: nios2-terminal --instance 1 .PHONY: term-pdp8 build/%.bin: %.pal @mkdir -p $(dir $@) palbart $< mv -f $*.bin $*.lst $(dir $@) pdp8.sof: $(SOURCES) $(HEADERS) $(MEMORIES) $(QUARTUS) [ ! -e pdp8.qpf ] || quartus_sh -t tcl/clean.tcl quartus_sh -t tcl/init.tcl quartus_sh --flow compile pdp8.qpf clean: git clean -dfX .PHONY: clean .SECONDARY: