.SILENT: ASM := zasm ASMFLAGS := -w -b BUILDDIR := ../../build/basic FILES := basic SUBDIRS := SOURCES := $(addprefix ./, $(addsuffix .asm, $(FILES))) TARGETS := $(addprefix $(BUILDDIR)/, $(addsuffix .bin, $(FILES))) TOPTARGETS := all clean size $(TOPTARGETS): $(SUBDIRS) all: $(BUILDDIR) $(TARGETS) size clean: rm -rf $(BUILDDIR) $(BUILDDIR): mkdir -p $(BUILDDIR) $(BUILDDIR)/%.bin: ./%.asm echo '>$<' $(ASM) $(ASMFLAGS) $< $@ size: @for file in $(TARGETS); do \ if [ -f "$$file" ]; then \ echo "$$file: $$(wc -c < "$$file") bytes"; \ else \ echo "$$file: Not built yet (run 'make')"; \ fi \ done $(SUBDIRS): $(MAKE) -C $@ $(or $(MAKECMDGOALS),all) --no-print-directory .PHONY: $(TOPTARGETS) $(SUBDIRS)