cosmopolitan/tool/plinko/plinko.mk
2022-04-07 20:30:22 -07:00

76 lines
2.2 KiB
Makefile

#-*-mode:makefile-gmake;indent-tabs-mode:t;tab-width:8;coding:utf-8-*-┐
#───vi: set et ft=make ts=8 tw=8 fenc=utf-8 :vi───────────────────────┘
PKGS += TOOL_PLINKO
TOOL_PLINKO_SRCS := $(wildcard tool/plinko/*.c)
TOOL_PLINKO_OBJS = \
$(TOOL_PLINKO_SRCS:%.c=o/$(MODE)/%.o)
TOOL_PLINKO_COMS = \
$(TOOL_PLINKO_SRCS:%.c=o/$(MODE)/%.com)
TOOL_PLINKO_BINS = \
$(TOOL_PLINKO_COMS) \
$(TOOL_PLINKO_COMS:%=%.dbg)
TOOL_PLINKO_DIRECTDEPS = \
LIBC_INTRIN \
LIBC_LOG \
LIBC_MEM \
LIBC_CALLS \
LIBC_RUNTIME \
LIBC_UNICODE \
LIBC_SYSV \
LIBC_STDIO \
LIBC_X \
LIBC_STUBS \
LIBC_NEXGEN32E \
LIBC_ZIPOS \
TOOL_PLINKO_LIB
TOOL_PLINKO_DEPS := \
$(call uniq,$(foreach x,$(TOOL_PLINKO_DIRECTDEPS),$($(x))))
o/$(MODE)/tool/plinko/plinko.pkg: \
$(TOOL_PLINKO_OBJS) \
$(foreach x,$(TOOL_PLINKO_DIRECTDEPS),$($(x)_A).pkg)
o/$(MODE)/tool/plinko/%.com.dbg: \
$(TOOL_PLINKO_DEPS) \
o/$(MODE)/tool/plinko/%.o \
o/$(MODE)/tool/plinko/plinko.pkg \
o/$(MODE)/tool/plinko/lib/library.lisp.zip.o \
$(CRT) \
$(APE)
@$(APELINK)
.PRECIOUS: o/$(MODE)/tool/plinko/plinko.com
o/$(MODE)/tool/plinko/plinko.com: \
o/$(MODE)/tool/plinko/plinko.com.dbg \
o/$(MODE)/third_party/infozip/zip.com \
o/$(MODE)/tool/build/symtab.com \
tool/plinko/plinko.mk
@$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@
@$(COMPILE) -AMKDIR -T$@ mkdir -p o/$(MODE)/tool/plinko/.redbean
@$(COMPILE) -ASYMTAB o/$(MODE)/tool/build/symtab.com -o o/$(MODE)/tool/plinko/.plinko/.symtab $<
@$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/infozip/zip.com -9qj $@ \
o/$(MODE)/tool/plinko/.plinko/.symtab
$(TOOL_PLINKO_OBJS): \
$(BUILD_FILES) \
tool/plinko/plinko.mk
o/$(MODE)/tool/plinko/plinko.com.zip.o \
o/$(MODE)/tool/plinko/lib/library.lisp.zip.o \
o/$(MODE)/tool/plinko/lib/binarytrees.lisp.zip.o \
o/$(MODE)/tool/plinko/lib/algebra.lisp.zip.o \
o/$(MODE)/tool/plinko/lib/infix.lisp.zip.o \
o/$(MODE)/tool/plinko/lib/ok.lisp.zip.o: \
ZIPOBJ_FLAGS += \
-B
.PHONY: o/$(MODE)/tool/plinko
o/$(MODE)/tool/plinko: $(TOOL_PLINKO_BINS) $(TOOL_PLINKO_CHECKS)