V = ifeq ($(strip $(V)),) E = @echo Q = @ else E = @\# Q = endif CC65 ?= cl65 CCOPTS ?= --target nes .PHONY: all all: clean deps build .PHONY: clean clean: @rm -rf out @find . -type f -name "*.o" -delete @find . -type f -name "*.nes" -delete @mkdir -p out/basics out/scroll out/space .PHONY: deps deps: @which $(CC65) >/dev/null 2>/dev/null || (echo "ERROR: $(CC65) not found." && false) .PHONY: build build: basics space scroll .PHONY: basics basics: $(E) " CC basics/sprite" $(Q) $(CC65) $(CCOPTS) basics/sprite.s -C config/nrom.cfg -o out/basics/sprite.nes $(E) " CC basics/input" $(Q) $(CC65) $(CCOPTS) basics/input.s -C config/nrom.cfg -o out/basics/input.nes $(E) " CC basics/persist" $(Q) $(CC65) $(CCOPTS) basics/persist.s -C config/mmc1.cfg -o out/basics/persist.nes $(E) " CC basics/flicker" $(Q) $(CC65) $(CCOPTS) basics/flicker.s -C config/nrom.cfg -o out/basics/flicker.nes $(E) " CC basics/unrom" $(Q) $(CC65) $(CCOPTS) basics/unrom.s -C config/unrom.cfg -o out/basics/unrom.nes $(E) " CC basics/chr-ram" $(Q) $(CC65) $(CCOPTS) basics/chr-ram.s -C config/unrom.cfg -o out/basics/chr-ram.nes .PHONY: space space: $(E) " CC space" $(Q) $(CC65) $(CCOPTS) space/src/space.s -C config/nrom.cfg -o out/space/space.nes .PHONY: scroll scroll: $(E) " CC scroll" $(Q) $(CC65) $(CCOPTS) scroll/level.s -C config/nrom.cfg -o out/scroll/level.nes