41 lines
861 B
Makefile
41 lines
861 B
Makefile
.SILENT:
|
|
ASM := zasm
|
|
ASMFLAGS := -w -b
|
|
BUILDDIR := build
|
|
|
|
FILES := bios
|
|
SUBDIRS := apps/basic
|
|
|
|
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)
|
|
|