diff --git a/Makefile b/Makefile
index e1c8ff522..266f57229 100644
--- a/Makefile
+++ b/Makefile
@@ -166,153 +166,153 @@ include build/definitions.mk			# ├──META
 include build/config.mk				# │  You can build
 include build/rules.mk				# │  You can topologically order
 include build/online.mk				#─┘
-include libc/nexgen32e/nexgen32e.mk		#─┐
-include libc/sysv/sysv.mk			# ├──SYSTEM SUPPORT
-include libc/nt/nt.mk				# │  You can do math
-include libc/intrin/intrin.mk			# │  You can use the stack
-include third_party/compiler_rt/compiler_rt.mk	# │  You can manipulate arrays
-include libc/tinymath/tinymath.mk		# │  You can issue raw system calls
-include libc/str/str.mk				# │
-include third_party/xed/xed.mk			# │
-include third_party/puff/puff.mk		# │
-include libc/elf/elf.mk				# │
-include ape/ape.mk				# │
-include libc/fmt/fmt.mk				# │
-include libc/vga/vga.mk				# │
-include libc/irq/irq.mk				#─┘
-include libc/calls/calls.mk			#─┐
-include libc/irq/irq.mk				# ├──SYSTEMS RUNTIME
-include third_party/nsync/nsync.mk		# │  You can issue system calls
-include libc/runtime/runtime.mk			# │
-include third_party/double-conversion/dc.mk	# │
-include libc/crt/crt.mk				# │
-include third_party/dlmalloc/dlmalloc.mk	#─┘
-include libc/mem/mem.mk				#─┐
-include third_party/gdtoa/gdtoa.mk		# ├──DYNAMIC RUNTIME
-include third_party/nsync/mem/mem.mk		# │  You can now use stdio
-include libc/proc/proc.mk			# │  You can now use threads
-include libc/dlopen/dlopen.mk			# │  You can now use processes
-include libc/thread/thread.mk			# │  You can finally call malloc()
-include tool/hello/hello.mk			# │
-include third_party/zlib/zlib.mk		# │
-include libc/stdio/stdio.mk			# │
-include libc/time/time.mk			# │
-include net/net.mk				# │
-include third_party/vqsort/vqsort.mk		# │
-include libc/log/log.mk				# │
-include third_party/getopt/getopt.mk		# │
-include third_party/bzip2/bzip2.mk		# │
-include dsp/core/core.mk			# │
-include third_party/musl/musl.mk		# │
-include libc/x/x.mk				# │
-include third_party/stb/stb.mk			# │
-include dsp/scale/scale.mk			# │
-include dsp/mpeg/mpeg.mk			# │
-include dsp/dsp.mk				# │
-include third_party/zlib/gz/gz.mk		# │
-include third_party/intel/intel.mk		# │
-include third_party/aarch64/aarch64.mk		# │
-include libc/libc.mk				#─┘
-include libc/sock/sock.mk			#─┐
-include dsp/tty/tty.mk				# ├──ONLINE RUNTIME
-include libc/dns/dns.mk				# │  You can communicate with the network
-include net/http/http.mk			# │
-include third_party/mbedtls/mbedtls.mk		# │
-include third_party/libcxx/libcxx.mk		# │
-include third_party/ggml/ggml.mk		# │
-include third_party/radpajama/radpajama.mk	# │
-include net/https/https.mk			# │
-include third_party/regex/regex.mk		#─┘
-include third_party/tidy/tidy.mk
-include third_party/third_party.mk
-include third_party/nsync/testing/testing.mk
-include libc/testlib/testlib.mk
-include tool/viz/lib/vizlib.mk
-include tool/args/args.mk
-include test/posix/test.mk
-include test/tool/args/test.mk
-include third_party/linenoise/linenoise.mk
-include third_party/maxmind/maxmind.mk
-include net/finger/finger.mk
-include third_party/double-conversion/test/test.mk
-include third_party/lua/lua.mk
-include third_party/tree/tree.mk
-include third_party/zstd/zstd.mk
-include third_party/tr/tr.mk
-include third_party/sed/sed.mk
-include third_party/awk/awk.mk
-include third_party/hiredis/hiredis.mk
-include third_party/make/make.mk
-include third_party/ctags/ctags.mk
-include third_party/finger/finger.mk
-include third_party/argon2/argon2.mk
-include third_party/smallz4/smallz4.mk
-include third_party/sqlite3/sqlite3.mk
-include third_party/mbedtls/test/test.mk
-include third_party/quickjs/quickjs.mk
-include third_party/lz4cli/lz4cli.mk
-include third_party/zip/zip.mk
-include third_party/xxhash/xxhash.mk
-include third_party/unzip/unzip.mk
-include tool/build/lib/buildlib.mk
-include third_party/chibicc/chibicc.mk
-include third_party/chibicc/test/test.mk
-include third_party/python/python.mk
-include tool/build/build.mk
-include tool/curl/curl.mk
-include third_party/qemu/qemu.mk
-include examples/examples.mk
-include examples/pyapp/pyapp.mk
-include examples/pylife/pylife.mk
-include tool/decode/lib/decodelib.mk
-include tool/decode/decode.mk
-include tool/lambda/lib/lib.mk
-include tool/lambda/lambda.mk
-include tool/plinko/lib/lib.mk
-include tool/plinko/plinko.mk
-include test/tool/plinko/test.mk
-include tool/net/net.mk
-include tool/viz/viz.mk
-include tool/tool.mk
-include net/turfwar/turfwar.mk
-include test/libc/tinymath/test.mk
-include test/libc/intrin/test.mk
-include test/libc/mem/test.mk
-include test/libc/nexgen32e/test.mk
-include test/libc/runtime/test.mk
-include test/libc/thread/test.mk
-include test/libc/sock/test.mk
-include test/libc/str/test.mk
-include test/libc/log/test.mk
-include test/libc/str/test.mk
-include test/libc/calls/test.mk
-include test/libc/x/test.mk
-include test/libc/xed/test.mk
-include test/libc/fmt/test.mk
-include test/libc/dns/test.mk
-include test/libc/time/test.mk
-include test/libc/proc/test.mk
-include test/libc/stdio/test.mk
-include test/libc/release/test.mk
-include test/libc/test.mk
-include test/net/http/test.mk
-include test/net/https/test.mk
-include test/net/finger/test.mk
-include test/net/test.mk
-include test/tool/build/lib/test.mk
-include test/tool/build/test.mk
-include test/tool/viz/lib/test.mk
-include test/tool/viz/test.mk
-include test/tool/net/test.mk
-include test/tool/test.mk
-include test/dsp/core/test.mk
-include test/dsp/scale/test.mk
-include test/dsp/tty/test.mk
-include test/dsp/test.mk
-include examples/package/lib/build.mk
-include examples/package/build.mk
+include libc/nexgen32e/BUILD.mk			#─┐
+include libc/sysv/BUILD.mk			# ├──SYSTEM SUPPORT
+include libc/nt/BUILD.mk			# │  You can do math
+include libc/intrin/BUILD.mk			# │  You can use the stack
+include third_party/compiler_rt/BUILD.mk	# │  You can manipulate arrays
+include libc/tinymath/BUILD.mk			# │  You can issue raw system calls
+include libc/str/BUILD.mk			# │
+include third_party/xed/BUILD.mk		# │
+include third_party/puff/BUILD.mk		# │
+include libc/elf/BUILD.mk			# │
+include ape/BUILD.mk				# │
+include libc/fmt/BUILD.mk			# │
+include libc/vga/BUILD.mk			# │
+include libc/irq/BUILD.mk			#─┘
+include libc/calls/BUILD.mk			#─┐
+include libc/irq/BUILD.mk			# ├──SYSTEMS RUNTIME
+include third_party/nsync/BUILD.mk		# │  You can issue system calls
+include libc/runtime/BUILD.mk			# │
+include third_party/double-conversion/BUILD.mk	# │
+include libc/crt/BUILD.mk			# │
+include third_party/dlmalloc/BUILD.mk		#─┘
+include libc/mem/BUILD.mk			#─┐
+include third_party/gdtoa/BUILD.mk		# ├──DYNAMIC RUNTIME
+include third_party/nsync/mem/BUILD.mk		# │  You can now use stdio
+include libc/proc/BUILD.mk			# │  You can now use threads
+include libc/dlopen/BUILD.mk			# │  You can now use processes
+include libc/thread/BUILD.mk			# │  You can finally call malloc()
+include tool/hello/BUILD.mk			# │
+include third_party/zlib/BUILD.mk		# │
+include libc/stdio/BUILD.mk			# │
+include libc/time/BUILD.mk			# │
+include net/BUILD.mk				# │
+include third_party/vqsort/BUILD.mk		# │
+include libc/log/BUILD.mk			# │
+include third_party/getopt/BUILD.mk		# │
+include third_party/bzip2/BUILD.mk		# │
+include dsp/core/BUILD.mk			# │
+include third_party/musl/BUILD.mk		# │
+include libc/x/BUILD.mk				# │
+include third_party/stb/BUILD.mk		# │
+include dsp/scale/BUILD.mk			# │
+include dsp/mpeg/BUILD.mk			# │
+include dsp/BUILD.mk				# │
+include third_party/zlib/gz/BUILD.mk		# │
+include third_party/intel/BUILD.mk		# │
+include third_party/aarch64/BUILD.mk		# │
+include libc/BUILD.mk				#─┘
+include libc/sock/BUILD.mk			#─┐
+include dsp/tty/BUILD.mk			# ├──ONLINE RUNTIME
+include libc/dns/BUILD.mk			# │  You can communicate with the network
+include net/http/BUILD.mk			# │
+include third_party/mbedtls/BUILD.mk		# │
+include third_party/libcxx/BUILD.mk		# │
+include third_party/ggml/BUILD.mk		# │
+include third_party/radpajama/BUILD.mk		# │
+include net/https/BUILD.mk			# │
+include third_party/regex/BUILD.mk		#─┘
+include third_party/tidy/BUILD.mk
+include third_party/BUILD.mk
+include third_party/nsync/testing/BUILD.mk
+include libc/testlib/BUILD.mk
+include tool/viz/lib/BUILD.mk
+include tool/args/BUILD.mk
+include test/posix/BUILD.mk
+include test/tool/args/BUILD.mk
+include third_party/linenoise/BUILD.mk
+include third_party/maxmind/BUILD.mk
+include net/finger/BUILD.mk
+include third_party/double-conversion/test/BUILD.mk
+include third_party/lua/BUILD.mk
+include third_party/tree/BUILD.mk
+include third_party/zstd/BUILD.mk
+include third_party/tr/BUILD.mk
+include third_party/sed/BUILD.mk
+include third_party/awk/BUILD.mk
+include third_party/hiredis/BUILD.mk
+include third_party/make/BUILD.mk
+include third_party/ctags/BUILD.mk
+include third_party/finger/BUILD.mk
+include third_party/argon2/BUILD.mk
+include third_party/smallz4/BUILD.mk
+include third_party/sqlite3/BUILD.mk
+include third_party/mbedtls/test/BUILD.mk
+include third_party/quickjs/BUILD.mk
+include third_party/lz4cli/BUILD.mk
+include third_party/zip/BUILD.mk
+include third_party/xxhash/BUILD.mk
+include third_party/unzip/BUILD.mk
+include tool/build/lib/BUILD.mk
+include third_party/chibicc/BUILD.mk
+include third_party/chibicc/test/BUILD.mk
+include third_party/python/BUILD.mk
+include tool/build/BUILD.mk
+include tool/curl/BUILD.mk
+include third_party/qemu/BUILD.mk
+include examples/BUILD.mk
+include examples/pyapp/BUILD.mk
+include examples/pylife/BUILD.mk
+include tool/decode/lib/BUILD.mk
+include tool/decode/BUILD.mk
+include tool/lambda/lib/BUILD.mk
+include tool/lambda/BUILD.mk
+include tool/plinko/lib/BUILD.mk
+include tool/plinko/BUILD.mk
+include test/tool/plinko/BUILD.mk
+include tool/net/BUILD.mk
+include tool/viz/BUILD.mk
+include tool/BUILD.mk
+include net/turfwar/BUILD.mk
+include test/libc/tinymath/BUILD.mk
+include test/libc/intrin/BUILD.mk
+include test/libc/mem/BUILD.mk
+include test/libc/nexgen32e/BUILD.mk
+include test/libc/runtime/BUILD.mk
+include test/libc/thread/BUILD.mk
+include test/libc/sock/BUILD.mk
+include test/libc/str/BUILD.mk
+include test/libc/log/BUILD.mk
+include test/libc/str/BUILD.mk
+include test/libc/calls/BUILD.mk
+include test/libc/x/BUILD.mk
+include test/libc/xed/BUILD.mk
+include test/libc/fmt/BUILD.mk
+include test/libc/dns/BUILD.mk
+include test/libc/time/BUILD.mk
+include test/libc/proc/BUILD.mk
+include test/libc/stdio/BUILD.mk
+include test/libc/release/BUILD.mk
+include test/libc/BUILD.mk
+include test/net/http/BUILD.mk
+include test/net/https/BUILD.mk
+include test/net/finger/BUILD.mk
+include test/net/BUILD.mk
+include test/tool/build/lib/BUILD.mk
+include test/tool/build/BUILD.mk
+include test/tool/viz/lib/BUILD.mk
+include test/tool/viz/BUILD.mk
+include test/tool/net/BUILD.mk
+include test/tool/BUILD.mk
+include test/dsp/core/BUILD.mk
+include test/dsp/scale/BUILD.mk
+include test/dsp/tty/BUILD.mk
+include test/dsp/BUILD.mk
+include examples/package/lib/BUILD.mk
+include examples/package/BUILD.mk
 #-φ-examples/package/new.sh
-include test/test.mk
+include test/BUILD.mk
 
 OBJS	 = $(foreach x,$(PKGS),$($(x)_OBJS))
 SRCS	:= $(foreach x,$(PKGS),$($(x)_SRCS))
diff --git a/ape/ape.mk b/ape/BUILD.mk
similarity index 100%
rename from ape/ape.mk
rename to ape/BUILD.mk
diff --git a/dsp/dsp.mk b/dsp/BUILD.mk
similarity index 100%
rename from dsp/dsp.mk
rename to dsp/BUILD.mk
diff --git a/dsp/core/core.mk b/dsp/core/BUILD.mk
similarity index 97%
rename from dsp/core/core.mk
rename to dsp/core/BUILD.mk
index 833e0b495..4536dcb66 100644
--- a/dsp/core/core.mk
+++ b/dsp/core/BUILD.mk
@@ -55,7 +55,7 @@ DSP_CORE_SRCS = $(foreach x,$(DSP_CORE_ARTIFACTS),$($(x)_SRCS))
 DSP_CORE_HDRS = $(foreach x,$(DSP_CORE_ARTIFACTS),$($(x)_HDRS))
 DSP_CORE_CHECKS = $(foreach x,$(DSP_CORE_ARTIFACTS),$($(x)_CHECKS))
 DSP_CORE_OBJS = $(foreach x,$(DSP_CORE_ARTIFACTS),$($(x)_OBJS))
-$(DSP_CORE_OBJS): $(BUILD_FILES) dsp/core/core.mk
+$(DSP_CORE_OBJS): $(BUILD_FILES) dsp/core/BUILD.mk
 
 .PHONY: o/$(MODE)/dsp/core
 o/$(MODE)/dsp/core: $(DSP_CORE_CHECKS)
diff --git a/dsp/mpeg/mpeg.mk b/dsp/mpeg/BUILD.mk
similarity index 97%
rename from dsp/mpeg/mpeg.mk
rename to dsp/mpeg/BUILD.mk
index a485cfdce..17936a216 100644
--- a/dsp/mpeg/mpeg.mk
+++ b/dsp/mpeg/BUILD.mk
@@ -59,7 +59,7 @@ DSP_MPEG_SRCS = $(foreach x,$(DSP_MPEG_ARTIFACTS),$($(x)_SRCS))
 DSP_MPEG_HDRS = $(foreach x,$(DSP_MPEG_ARTIFACTS),$($(x)_HDRS))
 DSP_MPEG_CHECKS = $(foreach x,$(DSP_MPEG_ARTIFACTS),$($(x)_CHECKS))
 DSP_MPEG_OBJS = $(foreach x,$(DSP_MPEG_ARTIFACTS),$($(x)_OBJS))
-$(DSP_MPEG_OBJS): $(BUILD_FILES) dsp/mpeg/mpeg.mk
+$(DSP_MPEG_OBJS): $(BUILD_FILES) dsp/mpeg/BUILD.mk
 
 .PHONY: o/$(MODE)/dsp/mpeg
 o/$(MODE)/dsp/mpeg: $(DSP_MPEG_CHECKS)
diff --git a/dsp/scale/scale.mk b/dsp/scale/BUILD.mk
similarity index 97%
rename from dsp/scale/scale.mk
rename to dsp/scale/BUILD.mk
index 84f57a008..be6ca2e1d 100644
--- a/dsp/scale/scale.mk
+++ b/dsp/scale/BUILD.mk
@@ -58,7 +58,7 @@ DSP_SCALE_SRCS = $(foreach x,$(DSP_SCALE_ARTIFACTS),$($(x)_SRCS))
 DSP_SCALE_HDRS = $(foreach x,$(DSP_SCALE_ARTIFACTS),$($(x)_HDRS))
 DSP_SCALE_CHECKS = $(foreach x,$(DSP_SCALE_ARTIFACTS),$($(x)_CHECKS))
 DSP_SCALE_OBJS = $(foreach x,$(DSP_SCALE_ARTIFACTS),$($(x)_OBJS))
-$(DSP_SCALE_OBJS): $(BUILD_FILES) dsp/scale/scale.mk
+$(DSP_SCALE_OBJS): $(BUILD_FILES) dsp/scale/BUILD.mk
 
 .PHONY: o/$(MODE)/dsp/scale
 o/$(MODE)/dsp/scale: $(DSP_SCALE_CHECKS)
diff --git a/dsp/tty/tty.mk b/dsp/tty/BUILD.mk
similarity index 97%
rename from dsp/tty/tty.mk
rename to dsp/tty/BUILD.mk
index 928531f58..bf5bd289c 100644
--- a/dsp/tty/tty.mk
+++ b/dsp/tty/BUILD.mk
@@ -67,7 +67,7 @@ DSP_TTY_SRCS = $(foreach x,$(DSP_TTY_ARTIFACTS),$($(x)_SRCS))
 DSP_TTY_HDRS = $(foreach x,$(DSP_TTY_ARTIFACTS),$($(x)_HDRS))
 DSP_TTY_CHECKS = $(foreach x,$(DSP_TTY_ARTIFACTS),$($(x)_CHECKS))
 DSP_TTY_OBJS = $(foreach x,$(DSP_TTY_ARTIFACTS),$($(x)_OBJS))
-$(DSP_TTY_OBJS): $(BUILD_FILES) dsp/tty/tty.mk
+$(DSP_TTY_OBJS): $(BUILD_FILES) dsp/tty/BUILD.mk
 
 .PHONY: o/$(MODE)/dsp/tty
 o/$(MODE)/dsp/tty: $(DSP_TTY_CHECKS)
diff --git a/examples/examples.mk b/examples/BUILD.mk
similarity index 99%
rename from examples/examples.mk
rename to examples/BUILD.mk
index 6dced1d27..324479219 100644
--- a/examples/examples.mk
+++ b/examples/BUILD.mk
@@ -157,7 +157,7 @@ o/$(MODE)/examples/picol.com.dbg:				\
 o/$(MODE)/examples/nesemu1.o: private QUOTA += -M512m
 o/$(MODE)/usr/share/dict/words.zip.o: private ZIPOBJ_FLAGS += -C2
 
-$(EXAMPLES_OBJS): examples/examples.mk
+$(EXAMPLES_OBJS): examples/BUILD.mk
 
 o/$(MODE)/usr/share/dict/words:					\
 		usr/share/dict/words.gz
diff --git a/examples/package/build.mk b/examples/package/BUILD.mk
similarity index 97%
rename from examples/package/build.mk
rename to examples/package/BUILD.mk
index 284195ef7..c4962df05 100644
--- a/examples/package/build.mk
+++ b/examples/package/BUILD.mk
@@ -63,7 +63,7 @@ o/$(MODE)/examples/package/%.com.dbg:			\
 	@$(APELINK)
 
 # Invalidates objects in package when makefile is edited.
-$(EXAMPLES_PACKAGE_OBJS): examples/package/build.mk
+$(EXAMPLES_PACKAGE_OBJS): examples/package/BUILD.mk
 
 # Creates target building everything in package and subpackages.
 .PHONY: o/$(MODE)/examples/package
diff --git a/examples/package/lib/build.mk b/examples/package/lib/BUILD.mk
similarity index 98%
rename from examples/package/lib/build.mk
rename to examples/package/lib/BUILD.mk
index 74a9507cd..6472989ac 100644
--- a/examples/package/lib/build.mk
+++ b/examples/package/lib/BUILD.mk
@@ -93,7 +93,7 @@ $(EXAMPLES_PACKAGE_LIB_A).pkg:					\
 		$(foreach x,$(EXAMPLES_PACKAGE_LIB_A_DIRECTDEPS),$($(x)_A).pkg)
 
 # Invalidates objects in package when makefile is edited.
-$(EXAMPLES_PACKAGE_LIB_A_OBJS): examples/package/lib/build.mk
+$(EXAMPLES_PACKAGE_LIB_A_OBJS): examples/package/lib/BUILD.mk
 
 # let these assembly objects build on aarch64
 o/$(MODE)/examples/package/lib/myasm.o: examples/package/lib/myasm.S
diff --git a/examples/pyapp/pyapp.mk b/examples/pyapp/BUILD.mk
similarity index 99%
rename from examples/pyapp/pyapp.mk
rename to examples/pyapp/BUILD.mk
index 7a9c674a3..f565bd946 100644
--- a/examples/pyapp/pyapp.mk
+++ b/examples/pyapp/BUILD.mk
@@ -106,7 +106,7 @@ o/$(MODE)/examples/pyapp/pyapp.com.dbg: \
 
 # Ensure that build config changes will invalidate build artifacts.
 o/$(MODE)/examples/pyapp/pyapp.o: \
-		examples/pyapp/pyapp.mk
+		examples/pyapp/BUILD.mk
 
 # By convention we want to be able to say `make -j8 o//examples/pyapp`
 # and have it build all targets the package defines.
diff --git a/examples/pylife/pylife.mk b/examples/pylife/BUILD.mk
similarity index 99%
rename from examples/pylife/pylife.mk
rename to examples/pylife/BUILD.mk
index a080dea09..83c01a650 100644
--- a/examples/pylife/pylife.mk
+++ b/examples/pylife/BUILD.mk
@@ -106,7 +106,7 @@ o/$(MODE)/examples/pylife/pylife.com.dbg: \
 
 # Ensure that build config changes will invalidate build artifacts.
 o/$(MODE)/examples/pylife/pylife.o: \
-		examples/pylife/pylife.mk
+		examples/pylife/BUILD.mk
 
 # By convention we want to be able to say `make -j8 o//examples/pylife`
 # and have it build all targets the package defines.
diff --git a/libc/libc.mk b/libc/BUILD.mk
similarity index 100%
rename from libc/libc.mk
rename to libc/BUILD.mk
diff --git a/libc/calls/calls.mk b/libc/calls/BUILD.mk
similarity index 100%
rename from libc/calls/calls.mk
rename to libc/calls/BUILD.mk
diff --git a/libc/crt/crt.mk b/libc/crt/BUILD.mk
similarity index 96%
rename from libc/crt/crt.mk
rename to libc/crt/BUILD.mk
index b154e8066..05a17df1b 100644
--- a/libc/crt/crt.mk
+++ b/libc/crt/BUILD.mk
@@ -24,7 +24,7 @@ CRT = o/$(MODE)/libc/crt/crt.o
 CRT_FILES = libc/crt/crt.S
 CRT_SRCS = libc/crt/crt.S
 CRT_OBJS = o/$(MODE)/libc/crt/crt.o
-$(CRT_OBJS): $(BUILD_FILES) libc/crt/crt.mk
+$(CRT_OBJS): $(BUILD_FILES) libc/crt/BUILD.mk
 
 # these assembly files are safe to build on aarch64
 o/$(MODE)/libc/crt/crt.o: libc/crt/crt.S
diff --git a/libc/dlopen/dlopen.mk b/libc/dlopen/BUILD.mk
similarity index 97%
rename from libc/dlopen/dlopen.mk
rename to libc/dlopen/BUILD.mk
index cdd4998f7..43814e89b 100644
--- a/libc/dlopen/dlopen.mk
+++ b/libc/dlopen/BUILD.mk
@@ -58,7 +58,7 @@ LIBC_DLOPEN_SRCS = $(foreach x,$(LIBC_DLOPEN_ARTIFACTS),$($(x)_SRCS))
 LIBC_DLOPEN_HDRS = $(foreach x,$(LIBC_DLOPEN_ARTIFACTS),$($(x)_HDRS))
 LIBC_DLOPEN_CHECKS = $(foreach x,$(LIBC_DLOPEN_ARTIFACTS),$($(x)_CHECKS))
 LIBC_DLOPEN_OBJS = $(foreach x,$(LIBC_DLOPEN_ARTIFACTS),$($(x)_OBJS))
-$(LIBC_DLOPEN_OBJS): $(BUILD_FILES) libc/dlopen/dlopen.mk
+$(LIBC_DLOPEN_OBJS): $(BUILD_FILES) libc/dlopen/BUILD.mk
 
 .PHONY: o/$(MODE)/libc/dlopen
 o/$(MODE)/libc/dlopen: $(LIBC_DLOPEN_CHECKS)
diff --git a/libc/dns/dns.mk b/libc/dns/BUILD.mk
similarity index 97%
rename from libc/dns/dns.mk
rename to libc/dns/BUILD.mk
index 1885e322f..951c90289 100644
--- a/libc/dns/dns.mk
+++ b/libc/dns/BUILD.mk
@@ -53,7 +53,7 @@ LIBC_DNS_SRCS = $(foreach x,$(LIBC_DNS_ARTIFACTS),$($(x)_SRCS))
 LIBC_DNS_HDRS = $(foreach x,$(LIBC_DNS_ARTIFACTS),$($(x)_HDRS))
 LIBC_DNS_CHECKS = $(foreach x,$(LIBC_DNS_ARTIFACTS),$($(x)_CHECKS))
 LIBC_DNS_OBJS = $(foreach x,$(LIBC_DNS_ARTIFACTS),$($(x)_OBJS))
-$(LIBC_DNS_OBJS): $(BUILD_FILES) libc/dns/dns.mk
+$(LIBC_DNS_OBJS): $(BUILD_FILES) libc/dns/BUILD.mk
 
 .PHONY: o/$(MODE)/libc/dns
 o/$(MODE)/libc/dns: $(LIBC_DNS_CHECKS)
diff --git a/libc/elf/elf.mk b/libc/elf/BUILD.mk
similarity index 97%
rename from libc/elf/elf.mk
rename to libc/elf/BUILD.mk
index e61f619f2..1e70c626d 100644
--- a/libc/elf/elf.mk
+++ b/libc/elf/BUILD.mk
@@ -50,7 +50,7 @@ LIBC_ELF_SRCS = $(foreach x,$(LIBC_ELF_ARTIFACTS),$($(x)_SRCS))
 LIBC_ELF_HDRS = $(foreach x,$(LIBC_ELF_ARTIFACTS),$($(x)_HDRS))
 LIBC_ELF_CHECKS = $(foreach x,$(LIBC_ELF_ARTIFACTS),$($(x)_CHECKS))
 LIBC_ELF_OBJS = $(foreach x,$(LIBC_ELF_ARTIFACTS),$($(x)_OBJS))
-$(LIBC_ELF_OBJS): $(BUILD_FILES) libc/elf/elf.mk
+$(LIBC_ELF_OBJS): $(BUILD_FILES) libc/elf/BUILD.mk
 
 .PHONY: o/$(MODE)/libc/elf
 o/$(MODE)/libc/elf: $(LIBC_ELF_CHECKS)
diff --git a/libc/fmt/fmt.mk b/libc/fmt/BUILD.mk
similarity index 98%
rename from libc/fmt/fmt.mk
rename to libc/fmt/BUILD.mk
index 8570cd145..df5d69369 100644
--- a/libc/fmt/fmt.mk
+++ b/libc/fmt/BUILD.mk
@@ -82,7 +82,7 @@ LIBC_FMT_HDRS = $(foreach x,$(LIBC_FMT_ARTIFACTS),$($(x)_HDRS))
 LIBC_FMT_INCS = $(foreach x,$(LIBC_FMT_ARTIFACTS),$($(x)_INCS))
 LIBC_FMT_CHECKS = $(foreach x,$(LIBC_FMT_ARTIFACTS),$($(x)_CHECKS))
 LIBC_FMT_OBJS = $(foreach x,$(LIBC_FMT_ARTIFACTS),$($(x)_OBJS))
-$(LIBC_FMT_OBJS): $(BUILD_FILES) libc/fmt/fmt.mk
+$(LIBC_FMT_OBJS): $(BUILD_FILES) libc/fmt/BUILD.mk
 
 .PHONY: o/$(MODE)/libc/fmt
 o/$(MODE)/libc/fmt: $(LIBC_FMT_CHECKS)
diff --git a/libc/intrin/intrin.mk b/libc/intrin/BUILD.mk
similarity index 98%
rename from libc/intrin/intrin.mk
rename to libc/intrin/BUILD.mk
index 9f28ed5ef..7b4be47a9 100644
--- a/libc/intrin/intrin.mk
+++ b/libc/intrin/BUILD.mk
@@ -128,7 +128,7 @@ LIBC_INTRIN_INCS = $(foreach x,$(LIBC_INTRIN_ARTIFACTS),$($(x)_INCS))
 LIBC_INTRIN_SRCS = $(foreach x,$(LIBC_INTRIN_ARTIFACTS),$($(x)_SRCS))
 LIBC_INTRIN_CHECKS = $(foreach x,$(LIBC_INTRIN_ARTIFACTS),$($(x)_CHECKS))
 LIBC_INTRIN_OBJS = $(foreach x,$(LIBC_INTRIN_ARTIFACTS),$($(x)_OBJS))
-$(LIBC_INTRIN_OBJS): $(BUILD_FILES) libc/intrin/intrin.mk
+$(LIBC_INTRIN_OBJS): $(BUILD_FILES) libc/intrin/BUILD.mk
 
 .PHONY: o/$(MODE)/libc/intrin
 o/$(MODE)/libc/intrin: $(LIBC_INTRIN_CHECKS)
diff --git a/libc/irq/irq.mk b/libc/irq/BUILD.mk
similarity index 97%
rename from libc/irq/irq.mk
rename to libc/irq/BUILD.mk
index 348e5fef2..1bc0cbc49 100644
--- a/libc/irq/irq.mk
+++ b/libc/irq/BUILD.mk
@@ -51,7 +51,7 @@ LIBC_IRQ_BINS = $(foreach x,$(LIBC_IRQ_ARTIFACTS),$($(x)_BINS))
 LIBC_IRQ_CHECKS = $(foreach x,$(LIBC_IRQ_ARTIFACTS),$($(x)_CHECKS))
 LIBC_IRQ_OBJS = $(foreach x,$(LIBC_IRQ_ARTIFACTS),$($(x)_OBJS))
 LIBC_IRQ_TESTS = $(foreach x,$(LIBC_IRQ_ARTIFACTS),$($(x)_TESTS))
-$(LIBC_IRQ_OBJS): $(BUILD_FILES) libc/irq/irq.mk
+$(LIBC_IRQ_OBJS): $(BUILD_FILES) libc/irq/BUILD.mk
 
 .PHONY: o/$(MODE)/libc/irq
 o/$(MODE)/libc/irq: $(LIBC_IRQ_CHECKS)
diff --git a/libc/log/log.mk b/libc/log/BUILD.mk
similarity index 97%
rename from libc/log/log.mk
rename to libc/log/BUILD.mk
index 5195f0c6e..8e37f0b62 100644
--- a/libc/log/log.mk
+++ b/libc/log/BUILD.mk
@@ -81,7 +81,7 @@ LIBC_LOG_CHECKS = $(foreach x,$(LIBC_LOG_ARTIFACTS),$($(x)_CHECKS))
 LIBC_LOG_OBJS = $(foreach x,$(LIBC_LOG_ARTIFACTS),$($(x)_OBJS))
 LIBC_LOG_TESTS = $(foreach x,$(LIBC_LOG_ARTIFACTS),$($(x)_TESTS))
 
-$(LIBC_LOG_OBJS): $(BUILD_FILES) libc/log/log.mk
+$(LIBC_LOG_OBJS): $(BUILD_FILES) libc/log/BUILD.mk
 
 .PHONY: o/$(MODE)/libc/log
 o/$(MODE)/libc/log: $(LIBC_LOG_CHECKS)
diff --git a/libc/mem/mem.mk b/libc/mem/BUILD.mk
similarity index 97%
rename from libc/mem/mem.mk
rename to libc/mem/BUILD.mk
index 8f25a042c..447a292e5 100644
--- a/libc/mem/mem.mk
+++ b/libc/mem/BUILD.mk
@@ -50,7 +50,7 @@ LIBC_MEM_BINS = $(foreach x,$(LIBC_MEM_ARTIFACTS),$($(x)_BINS))
 LIBC_MEM_CHECKS = $(foreach x,$(LIBC_MEM_ARTIFACTS),$($(x)_CHECKS))
 LIBC_MEM_OBJS = $(foreach x,$(LIBC_MEM_ARTIFACTS),$($(x)_OBJS))
 LIBC_MEM_TESTS = $(foreach x,$(LIBC_MEM_ARTIFACTS),$($(x)_TESTS))
-$(LIBC_MEM_OBJS): $(BUILD_FILES) libc/mem/mem.mk
+$(LIBC_MEM_OBJS): $(BUILD_FILES) libc/mem/BUILD.mk
 
 .PHONY: o/$(MODE)/libc/mem
 o/$(MODE)/libc/mem: $(LIBC_MEM_CHECKS)
diff --git a/libc/nexgen32e/nexgen32e.mk b/libc/nexgen32e/BUILD.mk
similarity index 98%
rename from libc/nexgen32e/nexgen32e.mk
rename to libc/nexgen32e/BUILD.mk
index f3d9cdd1c..b6dba9cbc 100644
--- a/libc/nexgen32e/nexgen32e.mk
+++ b/libc/nexgen32e/BUILD.mk
@@ -97,7 +97,7 @@ LIBC_NEXGEN32E_HDRS = $(foreach x,$(LIBC_NEXGEN32E_ARTIFACTS),$($(x)_HDRS))
 LIBC_NEXGEN32E_INCS = $(foreach x,$(LIBC_NEXGEN32E_ARTIFACTS),$($(x)_INCS))
 LIBC_NEXGEN32E_CHECKS = $(foreach x,$(LIBC_NEXGEN32E_ARTIFACTS),$($(x)_CHECKS))
 LIBC_NEXGEN32E_OBJS = $(foreach x,$(LIBC_NEXGEN32E_ARTIFACTS),$($(x)_OBJS))
-$(LIBC_NEXGEN32E_OBJS): $(BUILD_FILES) libc/nexgen32e/nexgen32e.mk
+$(LIBC_NEXGEN32E_OBJS): $(BUILD_FILES) libc/nexgen32e/BUILD.mk
 
 .PHONY: o/$(MODE)/libc/nexgen32e
 o/$(MODE)/libc/nexgen32e: $(LIBC_NEXGEN32E_CHECKS)
diff --git a/libc/nt/nt.mk b/libc/nt/BUILD.mk
similarity index 100%
rename from libc/nt/nt.mk
rename to libc/nt/BUILD.mk
diff --git a/libc/proc/proc.mk b/libc/proc/BUILD.mk
similarity index 97%
rename from libc/proc/proc.mk
rename to libc/proc/BUILD.mk
index b8d7ef926..1a002956e 100644
--- a/libc/proc/proc.mk
+++ b/libc/proc/BUILD.mk
@@ -63,7 +63,7 @@ LIBC_PROC_SRCS = $(foreach x,$(LIBC_PROC_ARTIFACTS),$($(x)_SRCS))
 LIBC_PROC_HDRS = $(foreach x,$(LIBC_PROC_ARTIFACTS),$($(x)_HDRS))
 LIBC_PROC_CHECKS = $(foreach x,$(LIBC_PROC_ARTIFACTS),$($(x)_CHECKS))
 LIBC_PROC_OBJS = $(foreach x,$(LIBC_PROC_ARTIFACTS),$($(x)_OBJS))
-$(LIBC_PROC_OBJS): $(BUILD_FILES) libc/proc/proc.mk
+$(LIBC_PROC_OBJS): $(BUILD_FILES) libc/proc/BUILD.mk
 
 .PHONY: o/$(MODE)/libc/proc
 o/$(MODE)/libc/proc: $(LIBC_PROC_CHECKS)
diff --git a/libc/runtime/runtime.mk b/libc/runtime/BUILD.mk
similarity index 98%
rename from libc/runtime/runtime.mk
rename to libc/runtime/BUILD.mk
index eb0cc3554..f6a5148e7 100644
--- a/libc/runtime/runtime.mk
+++ b/libc/runtime/BUILD.mk
@@ -123,7 +123,7 @@ LIBC_RUNTIME_BINS = $(foreach x,$(LIBC_RUNTIME_ARTIFACTS),$($(x)_BINS))
 LIBC_RUNTIME_CHECKS = $(foreach x,$(LIBC_RUNTIME_ARTIFACTS),$($(x)_CHECKS))
 LIBC_RUNTIME_OBJS = $(foreach x,$(LIBC_RUNTIME_ARTIFACTS),$($(x)_OBJS))
 LIBC_RUNTIME_TESTS = $(foreach x,$(LIBC_RUNTIME_ARTIFACTS),$($(x)_TESTS))
-$(LIBC_RUNTIME_OBJS): $(BUILD_FILES) libc/runtime/runtime.mk
+$(LIBC_RUNTIME_OBJS): $(BUILD_FILES) libc/runtime/BUILD.mk
 
 .PHONY: o/$(MODE)/libc/runtime
 o/$(MODE)/libc/runtime: $(LIBC_RUNTIME_CHECKS)
diff --git a/libc/sock/sock.mk b/libc/sock/BUILD.mk
similarity index 97%
rename from libc/sock/sock.mk
rename to libc/sock/BUILD.mk
index 4f3777f4b..66cdc8deb 100644
--- a/libc/sock/sock.mk
+++ b/libc/sock/BUILD.mk
@@ -65,7 +65,7 @@ LIBC_SOCK_HDRS = $(foreach x,$(LIBC_SOCK_ARTIFACTS),$($(x)_HDRS))
 LIBC_SOCK_INCS = $(foreach x,$(LIBC_SOCK_ARTIFACTS),$($(x)_INCS))
 LIBC_SOCK_CHECKS = $(foreach x,$(LIBC_SOCK_ARTIFACTS),$($(x)_CHECKS))
 LIBC_SOCK_OBJS = $(foreach x,$(LIBC_SOCK_ARTIFACTS),$($(x)_OBJS))
-$(LIBC_SOCK_OBJS): $(BUILD_FILES) libc/sock/sock.mk
+$(LIBC_SOCK_OBJS): $(BUILD_FILES) libc/sock/BUILD.mk
 
 .PHONY: o/$(MODE)/libc/sock
 o/$(MODE)/libc/sock: $(LIBC_SOCK_CHECKS)
diff --git a/libc/stdio/stdio.mk b/libc/stdio/BUILD.mk
similarity index 97%
rename from libc/stdio/stdio.mk
rename to libc/stdio/BUILD.mk
index d18ea53b6..c6d2d90c5 100644
--- a/libc/stdio/stdio.mk
+++ b/libc/stdio/BUILD.mk
@@ -72,7 +72,7 @@ LIBC_STDIO_HDRS = $(foreach x,$(LIBC_STDIO_ARTIFACTS),$($(x)_HDRS))
 LIBC_STDIO_INCS = $(foreach x,$(LIBC_STDIO_ARTIFACTS),$($(x)_INCS))
 LIBC_STDIO_CHECKS = $(foreach x,$(LIBC_STDIO_ARTIFACTS),$($(x)_CHECKS))
 LIBC_STDIO_OBJS = $(foreach x,$(LIBC_STDIO_ARTIFACTS),$($(x)_OBJS))
-$(LIBC_STDIO_OBJS): $(BUILD_FILES) libc/stdio/stdio.mk
+$(LIBC_STDIO_OBJS): $(BUILD_FILES) libc/stdio/BUILD.mk
 
 .PHONY: o/$(MODE)/libc/stdio
 o/$(MODE)/libc/stdio: $(LIBC_STDIO_CHECKS)
diff --git a/libc/str/str.mk b/libc/str/BUILD.mk
similarity index 100%
rename from libc/str/str.mk
rename to libc/str/BUILD.mk
diff --git a/libc/sysv/sysv.mk b/libc/sysv/BUILD.mk
similarity index 100%
rename from libc/sysv/sysv.mk
rename to libc/sysv/BUILD.mk
diff --git a/libc/testlib/testlib.mk b/libc/testlib/BUILD.mk
similarity index 99%
rename from libc/testlib/testlib.mk
rename to libc/testlib/BUILD.mk
index 118e355d5..ec7b58e0d 100644
--- a/libc/testlib/testlib.mk
+++ b/libc/testlib/BUILD.mk
@@ -226,7 +226,7 @@ LIBC_TESTLIB_SRCS = $(foreach x,$(LIBC_TESTLIB_ARTIFACTS),$($(x)_SRCS))
 LIBC_TESTLIB_HDRS = $(foreach x,$(LIBC_TESTLIB_ARTIFACTS),$($(x)_HDRS))
 LIBC_TESTLIB_CHECKS = $(foreach x,$(LIBC_TESTLIB_ARTIFACTS),$($(x)_CHECKS))
 LIBC_TESTLIB_OBJS = $(foreach x,$(LIBC_TESTLIB_ARTIFACTS),$($(x)_OBJS))
-$(LIBC_TESTLIB_OBJS): $(BUILD_FILES) libc/libc.mk
+$(LIBC_TESTLIB_OBJS): $(BUILD_FILES) libc/testlib/BUILD.mk
 
 .PHONY: o/$(MODE)/libc/testlib
 o/$(MODE)/libc/testlib: $(LIBC_TESTLIB_LIBS) $(LIBC_TESTLIB_CHECKS)
diff --git a/libc/thread/thread.mk b/libc/thread/BUILD.mk
similarity index 97%
rename from libc/thread/thread.mk
rename to libc/thread/BUILD.mk
index 2faa73c9f..b34e2ad38 100644
--- a/libc/thread/thread.mk
+++ b/libc/thread/BUILD.mk
@@ -60,7 +60,7 @@ LIBC_THREAD_SRCS = $(foreach x,$(LIBC_THREAD_ARTIFACTS),$($(x)_SRCS))
 LIBC_THREAD_HDRS = $(foreach x,$(LIBC_THREAD_ARTIFACTS),$($(x)_HDRS))
 LIBC_THREAD_CHECKS = $(foreach x,$(LIBC_THREAD_ARTIFACTS),$($(x)_CHECKS))
 LIBC_THREAD_OBJS = $(foreach x,$(LIBC_THREAD_ARTIFACTS),$($(x)_OBJS))
-$(LIBC_THREAD_OBJS): $(BUILD_FILES) libc/thread/thread.mk
+$(LIBC_THREAD_OBJS): $(BUILD_FILES) libc/thread/BUILD.mk
 
 .PHONY: o/$(MODE)/libc/thread
 o/$(MODE)/libc/thread: $(LIBC_THREAD_CHECKS)
diff --git a/libc/time/time.mk b/libc/time/BUILD.mk
similarity index 98%
rename from libc/time/time.mk
rename to libc/time/BUILD.mk
index da781398b..52ba6984b 100644
--- a/libc/time/time.mk
+++ b/libc/time/BUILD.mk
@@ -87,7 +87,7 @@ LIBC_TIME_SRCS = $(foreach x,$(LIBC_TIME_ARTIFACTS),$($(x)_SRCS))
 LIBC_TIME_HDRS = $(foreach x,$(LIBC_TIME_ARTIFACTS),$($(x)_HDRS))
 LIBC_TIME_CHECKS = $(foreach x,$(LIBC_TIME_ARTIFACTS),$($(x)_CHECKS))
 LIBC_TIME_OBJS = $(foreach x,$(LIBC_TIME_ARTIFACTS),$($(x)_OBJS))
-$(LIBC_TIME_OBJS): $(BUILD_FILES) libc/time/time.mk
+$(LIBC_TIME_OBJS): $(BUILD_FILES) libc/time/BUILD.mk
 
 .PHONY: o/$(MODE)/libc/time
 o/$(MODE)/libc/time: $(LIBC_TIME_CHECKS)
diff --git a/libc/tinymath/tinymath.mk b/libc/tinymath/BUILD.mk
similarity index 97%
rename from libc/tinymath/tinymath.mk
rename to libc/tinymath/BUILD.mk
index 6a5865745..be23bafca 100644
--- a/libc/tinymath/tinymath.mk
+++ b/libc/tinymath/BUILD.mk
@@ -70,7 +70,7 @@ LIBC_TINYMATH_SRCS = $(foreach x,$(LIBC_TINYMATH_ARTIFACTS),$($(x)_SRCS))
 LIBC_TINYMATH_CHECKS = $(foreach x,$(LIBC_TINYMATH_ARTIFACTS),$($(x)_CHECKS))
 LIBC_TINYMATH_OBJS = $(foreach x,$(LIBC_TINYMATH_ARTIFACTS),$($(x)_OBJS))
 LIBC_TINYMATH_CHECKS = $(LIBC_TINYMATH_HDRS:%=o/$(MODE)/%.ok)
-$(LIBC_TINYMATH_OBJS): $(BUILD_FILES) libc/tinymath/tinymath.mk
+$(LIBC_TINYMATH_OBJS): $(BUILD_FILES) libc/tinymath/BUILD.mk
 
 .PHONY: o/$(MODE)/libc/tinymath
 o/$(MODE)/libc/tinymath:				\
diff --git a/libc/vga/vga.mk b/libc/vga/BUILD.mk
similarity index 97%
rename from libc/vga/vga.mk
rename to libc/vga/BUILD.mk
index b0b2cc0b9..3b64646e7 100644
--- a/libc/vga/vga.mk
+++ b/libc/vga/BUILD.mk
@@ -53,7 +53,7 @@ LIBC_VGA_BINS = $(foreach x,$(LIBC_VGA_ARTIFACTS),$($(x)_BINS))
 LIBC_VGA_CHECKS = $(foreach x,$(LIBC_VGA_ARTIFACTS),$($(x)_CHECKS))
 LIBC_VGA_OBJS = $(foreach x,$(LIBC_VGA_ARTIFACTS),$($(x)_OBJS))
 LIBC_VGA_TESTS = $(foreach x,$(LIBC_VGA_ARTIFACTS),$($(x)_TESTS))
-$(LIBC_VGA_OBJS): $(BUILD_FILES) libc/vga/vga.mk
+$(LIBC_VGA_OBJS): $(BUILD_FILES) libc/vga/BUILD.mk
 
 .PHONY: o/$(MODE)/libc/vga
 o/$(MODE)/libc/vga: $(LIBC_VGA_CHECKS)
diff --git a/libc/x/x.mk b/libc/x/BUILD.mk
similarity index 97%
rename from libc/x/x.mk
rename to libc/x/BUILD.mk
index 9cc4b8d0c..9ece1b5bf 100644
--- a/libc/x/x.mk
+++ b/libc/x/BUILD.mk
@@ -57,7 +57,7 @@ LIBC_X_BINS = $(foreach x,$(LIBC_X_ARTIFACTS),$($(x)_BINS))
 LIBC_X_CHECKS = $(foreach x,$(LIBC_X_ARTIFACTS),$($(x)_CHECKS))
 LIBC_X_OBJS = $(foreach x,$(LIBC_X_ARTIFACTS),$($(x)_OBJS))
 LIBC_X_TESTS = $(foreach x,$(LIBC_X_ARTIFACTS),$($(x)_TESTS))
-$(LIBC_X_OBJS): $(BUILD_FILES) libc/x/x.mk
+$(LIBC_X_OBJS): $(BUILD_FILES) libc/x/BUILD.mk
 
 .PHONY: o/$(MODE)/libc/x
 o/$(MODE)/libc/x: $(LIBC_X_CHECKS)
diff --git a/net/net.mk b/net/BUILD.mk
similarity index 100%
rename from net/net.mk
rename to net/BUILD.mk
diff --git a/net/finger/finger.mk b/net/finger/BUILD.mk
similarity index 100%
rename from net/finger/finger.mk
rename to net/finger/BUILD.mk
diff --git a/net/http/http.mk b/net/http/BUILD.mk
similarity index 100%
rename from net/http/http.mk
rename to net/http/BUILD.mk
diff --git a/net/https/https.mk b/net/https/BUILD.mk
similarity index 100%
rename from net/https/https.mk
rename to net/https/BUILD.mk
diff --git a/net/turfwar/turfwar.mk b/net/turfwar/BUILD.mk
similarity index 98%
rename from net/turfwar/turfwar.mk
rename to net/turfwar/BUILD.mk
index 2cb8516e3..2f88868a5 100644
--- a/net/turfwar/turfwar.mk
+++ b/net/turfwar/BUILD.mk
@@ -82,7 +82,7 @@ o/$(MODE)/net/turfwar/.init.lua.zip.o: private		\
 
 $(NET_TURFWAR_OBJS):					\
 		$(BUILD_FILES)				\
-		net/turfwar/turfwar.mk
+		net/turfwar/BUILD.mk
 
 .PHONY: o/$(MODE)/net/turfwar
 o/$(MODE)/net/turfwar: $(NET_TURFWAR_BINS) $(NET_TURFWAR_CHECKS)
diff --git a/test/test.mk b/test/BUILD.mk
similarity index 100%
rename from test/test.mk
rename to test/BUILD.mk
diff --git a/test/dsp/test.mk b/test/dsp/BUILD.mk
similarity index 100%
rename from test/dsp/test.mk
rename to test/dsp/BUILD.mk
diff --git a/test/dsp/core/test.mk b/test/dsp/core/BUILD.mk
similarity index 100%
rename from test/dsp/core/test.mk
rename to test/dsp/core/BUILD.mk
diff --git a/test/dsp/scale/test.mk b/test/dsp/scale/BUILD.mk
similarity index 100%
rename from test/dsp/scale/test.mk
rename to test/dsp/scale/BUILD.mk
diff --git a/test/dsp/tty/test.mk b/test/dsp/tty/BUILD.mk
similarity index 100%
rename from test/dsp/tty/test.mk
rename to test/dsp/tty/BUILD.mk
diff --git a/test/libc/test.mk b/test/libc/BUILD.mk
similarity index 100%
rename from test/libc/test.mk
rename to test/libc/BUILD.mk
diff --git a/test/libc/calls/test.mk b/test/libc/calls/BUILD.mk
similarity index 100%
rename from test/libc/calls/test.mk
rename to test/libc/calls/BUILD.mk
diff --git a/test/libc/dns/test.mk b/test/libc/dns/BUILD.mk
similarity index 100%
rename from test/libc/dns/test.mk
rename to test/libc/dns/BUILD.mk
diff --git a/test/libc/fmt/test.mk b/test/libc/fmt/BUILD.mk
similarity index 97%
rename from test/libc/fmt/test.mk
rename to test/libc/fmt/BUILD.mk
index 9cede3f6c..65191a72a 100644
--- a/test/libc/fmt/test.mk
+++ b/test/libc/fmt/BUILD.mk
@@ -48,7 +48,7 @@ o/$(MODE)/test/libc/fmt/%.com.dbg:			\
 		$(APE_NO_MODIFY_SELF)
 	@$(APELINK)
 
-$(TEST_LIBC_FMT_OBJS): test/libc/fmt/test.mk
+$(TEST_LIBC_FMT_OBJS): test/libc/fmt/BUILD.mk
 
 $(TEST_LIBC_FMT_OBJS): private				\
 	DEFAULT_CCFLAGS +=				\
diff --git a/test/libc/intrin/test.mk b/test/libc/intrin/BUILD.mk
similarity index 100%
rename from test/libc/intrin/test.mk
rename to test/libc/intrin/BUILD.mk
diff --git a/test/libc/log/test.mk b/test/libc/log/BUILD.mk
similarity index 100%
rename from test/libc/log/test.mk
rename to test/libc/log/BUILD.mk
diff --git a/test/libc/mem/test.mk b/test/libc/mem/BUILD.mk
similarity index 100%
rename from test/libc/mem/test.mk
rename to test/libc/mem/BUILD.mk
diff --git a/test/libc/nexgen32e/test.mk b/test/libc/nexgen32e/BUILD.mk
similarity index 100%
rename from test/libc/nexgen32e/test.mk
rename to test/libc/nexgen32e/BUILD.mk
diff --git a/test/libc/proc/test.mk b/test/libc/proc/BUILD.mk
similarity index 98%
rename from test/libc/proc/test.mk
rename to test/libc/proc/BUILD.mk
index 8bed04e07..2b51f5649 100644
--- a/test/libc/proc/test.mk
+++ b/test/libc/proc/BUILD.mk
@@ -115,7 +115,7 @@ o/$(MODE)/test/libc/proc/life-pe.com.zip.o: private		\
 		ZIPOBJ_FLAGS +=					\
 			-B
 
-$(TEST_LIBC_PROC_OBJS): test/libc/proc/test.mk
+$(TEST_LIBC_PROC_OBJS): test/libc/proc/BUILD.mk
 
 .PHONY: o/$(MODE)/test/libc/proc
 o/$(MODE)/test/libc/proc:					\
diff --git a/test/libc/release/test.mk b/test/libc/release/BUILD.mk
similarity index 100%
rename from test/libc/release/test.mk
rename to test/libc/release/BUILD.mk
diff --git a/test/libc/runtime/test.mk b/test/libc/runtime/BUILD.mk
similarity index 100%
rename from test/libc/runtime/test.mk
rename to test/libc/runtime/BUILD.mk
diff --git a/test/libc/sock/test.mk b/test/libc/sock/BUILD.mk
similarity index 98%
rename from test/libc/sock/test.mk
rename to test/libc/sock/BUILD.mk
index 6f5d3761f..f37bc1ca5 100644
--- a/test/libc/sock/test.mk
+++ b/test/libc/sock/BUILD.mk
@@ -82,7 +82,7 @@ o/$(MODE)/test/libc/sock/recvmsg_test.com.runs:			\
 o/$(MODE)/test/libc/sock/recvmsg_test.com.runs:			\
 		private .PLEDGE = stdio rpath wpath cpath fattr proc inet recvfd sendfd
 
-$(TEST_LIBC_SOCK_OBJS): test/libc/sock/test.mk
+$(TEST_LIBC_SOCK_OBJS): test/libc/sock/BUILD.mk
 
 .PHONY: o/$(MODE)/test/libc/sock
 o/$(MODE)/test/libc/sock:					\
diff --git a/test/libc/stdio/test.mk b/test/libc/stdio/BUILD.mk
similarity index 97%
rename from test/libc/stdio/test.mk
rename to test/libc/stdio/BUILD.mk
index 9c41ebdbd..6e07be9c0 100644
--- a/test/libc/stdio/test.mk
+++ b/test/libc/stdio/BUILD.mk
@@ -79,7 +79,7 @@ $(TEST_LIBC_STDIO_OBJS): private				\
 		DEFAULT_CCFLAGS +=				\
 			-fno-builtin
 
-$(TEST_LIBC_STDIO_OBJS): test/libc/stdio/test.mk
+$(TEST_LIBC_STDIO_OBJS): test/libc/stdio/BUILD.mk
 
 .PHONY: o/$(MODE)/test/libc/stdio
 o/$(MODE)/test/libc/stdio:					\
diff --git a/test/libc/str/test.mk b/test/libc/str/BUILD.mk
similarity index 100%
rename from test/libc/str/test.mk
rename to test/libc/str/BUILD.mk
diff --git a/test/libc/thread/test.mk b/test/libc/thread/BUILD.mk
similarity index 100%
rename from test/libc/thread/test.mk
rename to test/libc/thread/BUILD.mk
diff --git a/test/libc/time/test.mk b/test/libc/time/BUILD.mk
similarity index 100%
rename from test/libc/time/test.mk
rename to test/libc/time/BUILD.mk
diff --git a/test/libc/tinymath/test.mk b/test/libc/tinymath/BUILD.mk
similarity index 100%
rename from test/libc/tinymath/test.mk
rename to test/libc/tinymath/BUILD.mk
diff --git a/test/libc/x/test.mk b/test/libc/x/BUILD.mk
similarity index 100%
rename from test/libc/x/test.mk
rename to test/libc/x/BUILD.mk
diff --git a/test/libc/xed/test.mk b/test/libc/xed/BUILD.mk
similarity index 100%
rename from test/libc/xed/test.mk
rename to test/libc/xed/BUILD.mk
diff --git a/test/net/test.mk b/test/net/BUILD.mk
similarity index 100%
rename from test/net/test.mk
rename to test/net/BUILD.mk
diff --git a/test/net/finger/test.mk b/test/net/finger/BUILD.mk
similarity index 100%
rename from test/net/finger/test.mk
rename to test/net/finger/BUILD.mk
diff --git a/test/net/http/test.mk b/test/net/http/BUILD.mk
similarity index 100%
rename from test/net/http/test.mk
rename to test/net/http/BUILD.mk
diff --git a/test/net/https/test.mk b/test/net/https/BUILD.mk
similarity index 100%
rename from test/net/https/test.mk
rename to test/net/https/BUILD.mk
diff --git a/test/posix/test.mk b/test/posix/BUILD.mk
similarity index 100%
rename from test/posix/test.mk
rename to test/posix/BUILD.mk
diff --git a/test/tool/test.mk b/test/tool/BUILD.mk
similarity index 100%
rename from test/tool/test.mk
rename to test/tool/BUILD.mk
diff --git a/test/tool/args/test.mk b/test/tool/args/BUILD.mk
similarity index 100%
rename from test/tool/args/test.mk
rename to test/tool/args/BUILD.mk
diff --git a/test/tool/build/test.mk b/test/tool/build/BUILD.mk
similarity index 100%
rename from test/tool/build/test.mk
rename to test/tool/build/BUILD.mk
diff --git a/test/tool/build/lib/test.mk b/test/tool/build/lib/BUILD.mk
similarity index 100%
rename from test/tool/build/lib/test.mk
rename to test/tool/build/lib/BUILD.mk
diff --git a/test/tool/net/test.mk b/test/tool/net/BUILD.mk
similarity index 100%
rename from test/tool/net/test.mk
rename to test/tool/net/BUILD.mk
diff --git a/test/tool/plinko/test.mk b/test/tool/plinko/BUILD.mk
similarity index 100%
rename from test/tool/plinko/test.mk
rename to test/tool/plinko/BUILD.mk
diff --git a/test/tool/viz/test.mk b/test/tool/viz/BUILD.mk
similarity index 100%
rename from test/tool/viz/test.mk
rename to test/tool/viz/BUILD.mk
diff --git a/test/tool/viz/lib/test.mk b/test/tool/viz/lib/BUILD.mk
similarity index 100%
rename from test/tool/viz/lib/test.mk
rename to test/tool/viz/lib/BUILD.mk
diff --git a/third_party/third_party.mk b/third_party/BUILD.mk
similarity index 100%
rename from third_party/third_party.mk
rename to third_party/BUILD.mk
diff --git a/third_party/aarch64/aarch64.mk b/third_party/aarch64/BUILD.mk
similarity index 100%
rename from third_party/aarch64/aarch64.mk
rename to third_party/aarch64/BUILD.mk
diff --git a/third_party/argon2/argon2.mk b/third_party/argon2/BUILD.mk
similarity index 97%
rename from third_party/argon2/argon2.mk
rename to third_party/argon2/BUILD.mk
index 18a92ad46..69b456ba7 100644
--- a/third_party/argon2/argon2.mk
+++ b/third_party/argon2/BUILD.mk
@@ -52,7 +52,7 @@ THIRD_PARTY_ARGON2_SRCS = $(foreach x,$(THIRD_PARTY_ARGON2_ARTIFACTS),$($(x)_SRC
 THIRD_PARTY_ARGON2_HDRS = $(foreach x,$(THIRD_PARTY_ARGON2_ARTIFACTS),$($(x)_HDRS))
 THIRD_PARTY_ARGON2_CHECKS = $(foreach x,$(THIRD_PARTY_ARGON2_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_ARGON2_OBJS = $(foreach x,$(THIRD_PARTY_ARGON2_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_ARGON2_OBJS): third_party/argon2/argon2.mk
+$(THIRD_PARTY_ARGON2_OBJS): third_party/argon2/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/argon2
 o/$(MODE)/third_party/argon2: $(THIRD_PARTY_ARGON2_CHECKS)
diff --git a/third_party/awk/awk.mk b/third_party/awk/BUILD.mk
similarity index 96%
rename from third_party/awk/awk.mk
rename to third_party/awk/BUILD.mk
index 38170dd8d..57ae2833f 100644
--- a/third_party/awk/awk.mk
+++ b/third_party/awk/BUILD.mk
@@ -58,7 +58,7 @@ o/$(MODE)/third_party/awk/README.zip.o:			\
 THIRD_PARTY_AWK_BINS = $(THIRD_PARTY_AWK_COMS) $(THIRD_PARTY_AWK_COMS:%=%.dbg)
 THIRD_PARTY_AWK_COMS = o/$(MODE)/third_party/awk/awk.com
 THIRD_PARTY_AWK_LIBS = $(THIRD_PARTY_AWK_A)
-$(THIRD_PARTY_AWK_OBJS): $(BUILD_FILES) third_party/awk/awk.mk
+$(THIRD_PARTY_AWK_OBJS): $(BUILD_FILES) third_party/awk/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/awk
 o/$(MODE)/third_party/awk:				\
diff --git a/third_party/bzip2/bzip2.mk b/third_party/bzip2/BUILD.mk
similarity index 97%
rename from third_party/bzip2/bzip2.mk
rename to third_party/bzip2/BUILD.mk
index b7b0a6c71..806ff3424 100644
--- a/third_party/bzip2/bzip2.mk
+++ b/third_party/bzip2/BUILD.mk
@@ -74,7 +74,7 @@ THIRD_PARTY_BZIP2_INCS = $(foreach x,$(THIRD_PARTY_BZIP2_ARTIFACTS),$($(x)_INCS)
 THIRD_PARTY_BZIP2_BINS = $(foreach x,$(THIRD_PARTY_BZIP2_ARTIFACTS),$($(x)_BINS))
 THIRD_PARTY_BZIP2_CHECKS = $(foreach x,$(THIRD_PARTY_BZIP2_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_BZIP2_OBJS = $(foreach x,$(THIRD_PARTY_BZIP2_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_BZIP2_OBJS): $(BUILD_FILES) third_party/bzip2/bzip2.mk
+$(THIRD_PARTY_BZIP2_OBJS): $(BUILD_FILES) third_party/bzip2/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/bzip2
 o/$(MODE)/third_party/bzip2:					\
diff --git a/third_party/chibicc/chibicc.mk b/third_party/chibicc/BUILD.mk
similarity index 99%
rename from third_party/chibicc/chibicc.mk
rename to third_party/chibicc/BUILD.mk
index 3e4c2763f..9033e43e1 100644
--- a/third_party/chibicc/chibicc.mk
+++ b/third_party/chibicc/BUILD.mk
@@ -113,7 +113,7 @@ THIRD_PARTY_CHIBICC_HDRS = $(foreach x,$(THIRD_PARTY_CHIBICC_ARTIFACTS),$($(x)_H
 THIRD_PARTY_CHIBICC_INCS = $(foreach x,$(THIRD_PARTY_CHIBICC_ARTIFACTS),$($(x)_INCS))
 THIRD_PARTY_CHIBICC_CHECKS = $(foreach x,$(THIRD_PARTY_CHIBICC_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_CHIBICC_OBJS = $(foreach x,$(THIRD_PARTY_CHIBICC_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_CHIBICC_OBJS): $(BUILD_FILES) third_party/chibicc/chibicc.mk
+$(THIRD_PARTY_CHIBICC_OBJS): $(BUILD_FILES) third_party/chibicc/BUILD.mk
 
 endif
 
diff --git a/third_party/chibicc/test/test.mk b/third_party/chibicc/test/BUILD.mk
similarity index 100%
rename from third_party/chibicc/test/test.mk
rename to third_party/chibicc/test/BUILD.mk
diff --git a/third_party/compiler_rt/compiler_rt.mk b/third_party/compiler_rt/BUILD.mk
similarity index 100%
rename from third_party/compiler_rt/compiler_rt.mk
rename to third_party/compiler_rt/BUILD.mk
diff --git a/third_party/ctags/ctags.mk b/third_party/ctags/BUILD.mk
similarity index 96%
rename from third_party/ctags/ctags.mk
rename to third_party/ctags/BUILD.mk
index 4ba5469df..f7ba4b19b 100644
--- a/third_party/ctags/ctags.mk
+++ b/third_party/ctags/BUILD.mk
@@ -53,7 +53,7 @@ o/$(MODE)/third_party/ctags/ctags.com.dbg:		\
 THIRD_PARTY_CTAGS_LIBS = $(THIRD_PARTY_CTAGS_A)
 THIRD_PARTY_CTAGS_BINS = $(THIRD_PARTY_CTAGS_COMS) $(THIRD_PARTY_CTAGS_COMS:%=%.dbg)
 THIRD_PARTY_CTAGS_COMS = o/$(MODE)/third_party/ctags/ctags.com
-$(THIRD_PARTY_CTAGS_OBJS): $(BUILD_FILES) third_party/ctags/ctags.mk
+$(THIRD_PARTY_CTAGS_OBJS): $(BUILD_FILES) third_party/ctags/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/ctags
 o/$(MODE)/third_party/ctags:				\
diff --git a/third_party/dlmalloc/dlmalloc.mk b/third_party/dlmalloc/BUILD.mk
similarity index 99%
rename from third_party/dlmalloc/dlmalloc.mk
rename to third_party/dlmalloc/BUILD.mk
index 9b4786587..c6d886d0e 100644
--- a/third_party/dlmalloc/dlmalloc.mk
+++ b/third_party/dlmalloc/BUILD.mk
@@ -67,7 +67,7 @@ THIRD_PARTY_DLMALLOC_BINS = $(foreach x,$(THIRD_PARTY_DLMALLOC_ARTIFACTS),$($(x)
 THIRD_PARTY_DLMALLOC_CHECKS = $(foreach x,$(THIRD_PARTY_DLMALLOC_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_DLMALLOC_OBJS = $(foreach x,$(THIRD_PARTY_DLMALLOC_ARTIFACTS),$($(x)_OBJS))
 THIRD_PARTY_DLMALLOC_TESTS = $(foreach x,$(THIRD_PARTY_DLMALLOC_ARTIFACTS),$($(x)_TESTS))
-$(THIRD_PARTY_DLMALLOC_OBJS): $(BUILD_FILES) third_party/dlmalloc/dlmalloc.mk
+$(THIRD_PARTY_DLMALLOC_OBJS): $(BUILD_FILES) third_party/dlmalloc/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/dlmalloc
 o/$(MODE)/third_party/dlmalloc: $(THIRD_PARTY_DLMALLOC_CHECKS)
diff --git a/third_party/double-conversion/dc.mk b/third_party/double-conversion/BUILD.mk
similarity index 99%
rename from third_party/double-conversion/dc.mk
rename to third_party/double-conversion/BUILD.mk
index b412a3071..cc7b33318 100644
--- a/third_party/double-conversion/dc.mk
+++ b/third_party/double-conversion/BUILD.mk
@@ -58,7 +58,7 @@ THIRD_PARTY_DOUBLECONVERSION_SRCS = $(foreach x,$(THIRD_PARTY_DOUBLECONVERSION_A
 THIRD_PARTY_DOUBLECONVERSION_HDRS = $(foreach x,$(THIRD_PARTY_DOUBLECONVERSION_ARTIFACTS),$($(x)_HDRS))
 THIRD_PARTY_DOUBLECONVERSION_CHECKS = $(foreach x,$(THIRD_PARTY_DOUBLECONVERSION_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_DOUBLECONVERSION_OBJS = $(foreach x,$(THIRD_PARTY_DOUBLECONVERSION_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_DOUBLECONVERSION_A_OBJS): third_party/double-conversion/dc.mk
+$(THIRD_PARTY_DOUBLECONVERSION_A_OBJS): third_party/double-conversion/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/double-conversion
 o/$(MODE)/third_party/double-conversion:					\
diff --git a/third_party/double-conversion/test/test.mk b/third_party/double-conversion/test/BUILD.mk
similarity index 100%
rename from third_party/double-conversion/test/test.mk
rename to third_party/double-conversion/test/BUILD.mk
diff --git a/third_party/finger/finger.mk b/third_party/finger/BUILD.mk
similarity index 97%
rename from third_party/finger/finger.mk
rename to third_party/finger/BUILD.mk
index 48eee3658..2bc432984 100644
--- a/third_party/finger/finger.mk
+++ b/third_party/finger/BUILD.mk
@@ -58,7 +58,7 @@ THIRD_PARTY_FINGER_HDRS = $(foreach x,$(THIRD_PARTY_FINGER_ARTIFACTS),$($(x)_HDR
 THIRD_PARTY_FINGER_INCS = $(foreach x,$(THIRD_PARTY_FINGER_ARTIFACTS),$($(x)_INCS))
 THIRD_PARTY_FINGER_CHECKS = $(foreach x,$(THIRD_PARTY_FINGER_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_FINGER_OBJS = $(foreach x,$(THIRD_PARTY_FINGER_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_FINGER_OBJS): third_party/finger/finger.mk
+$(THIRD_PARTY_FINGER_OBJS): third_party/finger/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/finger
 o/$(MODE)/third_party/finger:				\
diff --git a/third_party/gdtoa/gdtoa.mk b/third_party/gdtoa/BUILD.mk
similarity index 96%
rename from third_party/gdtoa/gdtoa.mk
rename to third_party/gdtoa/BUILD.mk
index 5e6d34a3f..3b80431a3 100644
--- a/third_party/gdtoa/gdtoa.mk
+++ b/third_party/gdtoa/BUILD.mk
@@ -48,7 +48,7 @@ THIRD_PARTY_GDTOA_HDRS = $(foreach x,$(THIRD_PARTY_GDTOA_ARTIFACTS),$($(x)_HDRS)
 THIRD_PARTY_GDTOA_INCS = $(foreach x,$(THIRD_PARTY_GDTOA_ARTIFACTS),$($(x)_INCS))
 THIRD_PARTY_GDTOA_CHECKS = $(foreach x,$(THIRD_PARTY_GDTOA_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_GDTOA_OBJS = $(foreach x,$(THIRD_PARTY_GDTOA_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_GDTOA_OBJS): $(BUILD_FILES) third_party/gdtoa/gdtoa.mk
+$(THIRD_PARTY_GDTOA_OBJS): $(BUILD_FILES) third_party/gdtoa/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/gdtoa
 o/$(MODE)/third_party/gdtoa: $(THIRD_PARTY_GDTOA_CHECKS)
diff --git a/third_party/getopt/getopt.mk b/third_party/getopt/BUILD.mk
similarity index 96%
rename from third_party/getopt/getopt.mk
rename to third_party/getopt/BUILD.mk
index 26d33f8e0..5f6693cb5 100644
--- a/third_party/getopt/getopt.mk
+++ b/third_party/getopt/BUILD.mk
@@ -39,7 +39,7 @@ THIRD_PARTY_GETOPT_SRCS = $(foreach x,$(THIRD_PARTY_GETOPT_ARTIFACTS),$($(x)_SRC
 THIRD_PARTY_GETOPT_HDRS = $(foreach x,$(THIRD_PARTY_GETOPT_ARTIFACTS),$($(x)_HDRS))
 THIRD_PARTY_GETOPT_CHECKS = $(foreach x,$(THIRD_PARTY_GETOPT_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_GETOPT_OBJS = $(foreach x,$(THIRD_PARTY_GETOPT_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_GETOPT_OBJS): third_party/getopt/getopt.mk
+$(THIRD_PARTY_GETOPT_OBJS): third_party/getopt/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/getopt
 o/$(MODE)/third_party/getopt: $(THIRD_PARTY_GETOPT_CHECKS)
diff --git a/third_party/ggml/ggml.mk b/third_party/ggml/BUILD.mk
similarity index 99%
rename from third_party/ggml/ggml.mk
rename to third_party/ggml/BUILD.mk
index b0ec25d85..c418d2310 100644
--- a/third_party/ggml/ggml.mk
+++ b/third_party/ggml/BUILD.mk
@@ -199,7 +199,7 @@ THIRD_PARTY_GGML_SRCS = $(foreach x,$(THIRD_PARTY_GGML_ARTIFACTS),$($(x)_SRCS))
 THIRD_PARTY_GGML_HDRS = $(foreach x,$(THIRD_PARTY_GGML_ARTIFACTS),$($(x)_HDRS))
 THIRD_PARTY_GGML_OBJS = $(foreach x,$(THIRD_PARTY_GGML_ARTIFACTS),$($(x)_OBJS))
 THIRD_PARTY_GGML_CHECKS = $(foreach x,$(THIRD_PARTY_GGML_ARTIFACTS),$($(x)_CHECKS))
-$(THIRD_PARTY_GGML_OBJS): third_party/ggml/ggml.mk
+$(THIRD_PARTY_GGML_OBJS): third_party/ggml/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/ggml
 o/$(MODE)/third_party/ggml:						\
diff --git a/third_party/hiredis/hiredis.mk b/third_party/hiredis/BUILD.mk
similarity index 97%
rename from third_party/hiredis/hiredis.mk
rename to third_party/hiredis/BUILD.mk
index 58e4517af..05cf93d05 100644
--- a/third_party/hiredis/hiredis.mk
+++ b/third_party/hiredis/BUILD.mk
@@ -53,7 +53,7 @@ THIRD_PARTY_HIREDIS_INCS = $(foreach x,$(THIRD_PARTY_HIREDIS_ARTIFACTS),$($(x)_I
 THIRD_PARTY_HIREDIS_CHECKS = $(foreach x,$(THIRD_PARTY_HIREDIS_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_HIREDIS_OBJS = $(foreach x,$(THIRD_PARTY_HIREDIS_ARTIFACTS),$($(x)_OBJS))
 
-$(THIRD_PARTY_HIREDIS_OBJS): third_party/hiredis/hiredis.mk
+$(THIRD_PARTY_HIREDIS_OBJS): third_party/hiredis/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/hiredis
 o/$(MODE)/third_party/hiredis: $(THIRD_PARTY_HIREDIS_CHECKS)
diff --git a/third_party/intel/intel.mk b/third_party/intel/BUILD.mk
similarity index 100%
rename from third_party/intel/intel.mk
rename to third_party/intel/BUILD.mk
diff --git a/third_party/libcxx/libcxx.mk b/third_party/libcxx/BUILD.mk
similarity index 100%
rename from third_party/libcxx/libcxx.mk
rename to third_party/libcxx/BUILD.mk
diff --git a/third_party/linenoise/linenoise.mk b/third_party/linenoise/BUILD.mk
similarity index 97%
rename from third_party/linenoise/linenoise.mk
rename to third_party/linenoise/BUILD.mk
index aafe2695a..8b00675b8 100644
--- a/third_party/linenoise/linenoise.mk
+++ b/third_party/linenoise/BUILD.mk
@@ -53,7 +53,7 @@ THIRD_PARTY_LINENOISE_SRCS = $(foreach x,$(THIRD_PARTY_LINENOISE_ARTIFACTS),$($(
 THIRD_PARTY_LINENOISE_HDRS = $(foreach x,$(THIRD_PARTY_LINENOISE_ARTIFACTS),$($(x)_HDRS))
 THIRD_PARTY_LINENOISE_CHECKS = $(foreach x,$(THIRD_PARTY_LINENOISE_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_LINENOISE_OBJS = $(foreach x,$(THIRD_PARTY_LINENOISE_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_LINENOISE_OBJS): third_party/linenoise/linenoise.mk
+$(THIRD_PARTY_LINENOISE_OBJS): third_party/linenoise/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/linenoise
 o/$(MODE)/third_party/linenoise: $(THIRD_PARTY_LINENOISE_CHECKS)
diff --git a/third_party/lua/lua.mk b/third_party/lua/BUILD.mk
similarity index 99%
rename from third_party/lua/lua.mk
rename to third_party/lua/BUILD.mk
index 494483b9e..3d5b10444 100644
--- a/third_party/lua/lua.mk
+++ b/third_party/lua/BUILD.mk
@@ -300,7 +300,7 @@ THIRD_PARTY_LUA_LIBS = $(foreach x,$(THIRD_PARTY_LUA_ARTIFACTS),$($(x)))
 THIRD_PARTY_LUA_HDRS = $(foreach x,$(THIRD_PARTY_LUA_ARTIFACTS),$($(x)_HDRS))
 THIRD_PARTY_LUA_INCS = $(foreach x,$(THIRD_PARTY_LUA_ARTIFACTS),$($(x)_INCS))
 THIRD_PARTY_LUA_OBJS = $(foreach x,$(THIRD_PARTY_LUA_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_LUA_OBJS): third_party/lua/lua.mk
+$(THIRD_PARTY_LUA_OBJS): third_party/lua/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/lua
 o/$(MODE)/third_party/lua:						\
diff --git a/third_party/lz4cli/lz4cli.mk b/third_party/lz4cli/BUILD.mk
similarity index 98%
rename from third_party/lz4cli/lz4cli.mk
rename to third_party/lz4cli/BUILD.mk
index 1041a6a53..a642fb8df 100644
--- a/third_party/lz4cli/lz4cli.mk
+++ b/third_party/lz4cli/BUILD.mk
@@ -63,7 +63,7 @@ o/$(MODE)/third_party/lz4cli/lz4cli.o:			\
 
 $(THIRD_PARTY_LZ4CLI_OBJS):				\
 		$(BUILD_FILES)				\
-		third_party/lz4cli/lz4cli.mk
+		third_party/lz4cli/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/lz4cli
 o/$(MODE)/third_party/lz4cli: $(THIRD_PARTY_LZ4CLI)
diff --git a/third_party/make/make.mk b/third_party/make/BUILD.mk
similarity index 100%
rename from third_party/make/make.mk
rename to third_party/make/BUILD.mk
diff --git a/third_party/maxmind/maxmind.mk b/third_party/maxmind/BUILD.mk
similarity index 100%
rename from third_party/maxmind/maxmind.mk
rename to third_party/maxmind/BUILD.mk
diff --git a/third_party/mbedtls/mbedtls.mk b/third_party/mbedtls/BUILD.mk
similarity index 97%
rename from third_party/mbedtls/mbedtls.mk
rename to third_party/mbedtls/BUILD.mk
index 2e25a334d..fa8a5a2f2 100644
--- a/third_party/mbedtls/mbedtls.mk
+++ b/third_party/mbedtls/BUILD.mk
@@ -78,7 +78,7 @@ THIRD_PARTY_MBEDTLS_HDRS = $(foreach x,$(THIRD_PARTY_MBEDTLS_ARTIFACTS),$($(x)_H
 THIRD_PARTY_MBEDTLS_INCS = $(foreach x,$(THIRD_PARTY_MBEDTLS_ARTIFACTS),$($(x)_INCS))
 THIRD_PARTY_MBEDTLS_CHECKS = $(foreach x,$(THIRD_PARTY_MBEDTLS_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_MBEDTLS_OBJS = $(foreach x,$(THIRD_PARTY_MBEDTLS_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_MBEDTLS_A_OBJS): third_party/mbedtls/mbedtls.mk
+$(THIRD_PARTY_MBEDTLS_A_OBJS): third_party/mbedtls/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/mbedtls
 o/$(MODE)/third_party/mbedtls:						\
diff --git a/third_party/mbedtls/test/test.mk b/third_party/mbedtls/test/BUILD.mk
similarity index 100%
rename from third_party/mbedtls/test/test.mk
rename to third_party/mbedtls/test/BUILD.mk
diff --git a/third_party/musl/musl.mk b/third_party/musl/BUILD.mk
similarity index 97%
rename from third_party/musl/musl.mk
rename to third_party/musl/BUILD.mk
index 43b36da26..7ccca7cbc 100644
--- a/third_party/musl/musl.mk
+++ b/third_party/musl/BUILD.mk
@@ -51,7 +51,7 @@ THIRD_PARTY_MUSL_LIBS = $(foreach x,$(THIRD_PARTY_MUSL_ARTIFACTS),$($(x)))
 THIRD_PARTY_MUSL_SRCS = $(foreach x,$(THIRD_PARTY_MUSL_ARTIFACTS),$($(x)_SRCS))
 THIRD_PARTY_MUSL_CHECKS = $(foreach x,$(THIRD_PARTY_MUSL_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_MUSL_OBJS = $(foreach x,$(THIRD_PARTY_MUSL_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_MUSL_OBJS): third_party/musl/musl.mk
+$(THIRD_PARTY_MUSL_OBJS): third_party/musl/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/musl
 o/$(MODE)/third_party/musl: $(THIRD_PARTY_MUSL_CHECKS)
diff --git a/third_party/nsync/nsync.mk b/third_party/nsync/BUILD.mk
similarity index 97%
rename from third_party/nsync/nsync.mk
rename to third_party/nsync/BUILD.mk
index 1a04e163d..d893711ab 100644
--- a/third_party/nsync/nsync.mk
+++ b/third_party/nsync/BUILD.mk
@@ -65,7 +65,7 @@ THIRD_PARTY_NSYNC_LIBS = $(foreach x,$(THIRD_PARTY_NSYNC_ARTIFACTS),$($(x)))
 THIRD_PARTY_NSYNC_SRCS = $(foreach x,$(THIRD_PARTY_NSYNC_ARTIFACTS),$($(x)_SRCS))
 THIRD_PARTY_NSYNC_CHECKS = $(foreach x,$(THIRD_PARTY_NSYNC_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_NSYNC_OBJS = $(foreach x,$(THIRD_PARTY_NSYNC_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_NSYNC_OBJS): third_party/nsync/nsync.mk
+$(THIRD_PARTY_NSYNC_OBJS): third_party/nsync/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/nsync
 o/$(MODE)/third_party/nsync:				\
diff --git a/third_party/nsync/mem/mem.mk b/third_party/nsync/mem/BUILD.mk
similarity index 97%
rename from third_party/nsync/mem/mem.mk
rename to third_party/nsync/mem/BUILD.mk
index a8c550b3a..cbf5f4eed 100644
--- a/third_party/nsync/mem/mem.mk
+++ b/third_party/nsync/mem/BUILD.mk
@@ -54,7 +54,7 @@ THIRD_PARTY_NSYNC_MEM_LIBS = $(foreach x,$(THIRD_PARTY_NSYNC_MEM_ARTIFACTS),$($(
 THIRD_PARTY_NSYNC_MEM_SRCS = $(foreach x,$(THIRD_PARTY_NSYNC_MEM_ARTIFACTS),$($(x)_SRCS))
 THIRD_PARTY_NSYNC_MEM_CHECKS = $(foreach x,$(THIRD_PARTY_NSYNC_MEM_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_NSYNC_MEM_OBJS = $(foreach x,$(THIRD_PARTY_NSYNC_MEM_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_NSYNC_MEM_OBJS): third_party/nsync/mem/mem.mk
+$(THIRD_PARTY_NSYNC_MEM_OBJS): third_party/nsync/mem/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/nsync/mem
 o/$(MODE)/third_party/nsync/mem: $(THIRD_PARTY_NSYNC_MEM_CHECKS)
diff --git a/third_party/nsync/testing/testing.mk b/third_party/nsync/testing/BUILD.mk
similarity index 97%
rename from third_party/nsync/testing/testing.mk
rename to third_party/nsync/testing/BUILD.mk
index ae041b869..227f08a99 100644
--- a/third_party/nsync/testing/testing.mk
+++ b/third_party/nsync/testing/BUILD.mk
@@ -51,7 +51,7 @@ o/$(MODE)/third_party/nsync/testing/%_test.com.dbg:		\
 		$(APE_NO_MODIFY_SELF)
 	@$(APELINK)
 
-$(THIRD_PARTY_NSYNC_TESTING_OBJS): third_party/nsync/testing/testing.mk
+$(THIRD_PARTY_NSYNC_TESTING_OBJS): third_party/nsync/testing/BUILD.mk
 o/$(MODE)/third_party/nsync/testing/mu_test.com.runs: private QUOTA = -C64
 
 .PHONY: o/$(MODE)/third_party/nsync/testing
diff --git a/third_party/puff/puff.mk b/third_party/puff/BUILD.mk
similarity index 100%
rename from third_party/puff/puff.mk
rename to third_party/puff/BUILD.mk
diff --git a/third_party/python/python.mk b/third_party/python/BUILD.mk
similarity index 100%
rename from third_party/python/python.mk
rename to third_party/python/BUILD.mk
diff --git a/third_party/qemu/qemu.mk b/third_party/qemu/BUILD.mk
similarity index 100%
rename from third_party/qemu/qemu.mk
rename to third_party/qemu/BUILD.mk
diff --git a/third_party/quickjs/quickjs.mk b/third_party/quickjs/BUILD.mk
similarity index 100%
rename from third_party/quickjs/quickjs.mk
rename to third_party/quickjs/BUILD.mk
diff --git a/third_party/radpajama/radpajama.mk b/third_party/radpajama/BUILD.mk
similarity index 98%
rename from third_party/radpajama/radpajama.mk
rename to third_party/radpajama/BUILD.mk
index beacc8d2d..27b58d21a 100644
--- a/third_party/radpajama/radpajama.mk
+++ b/third_party/radpajama/BUILD.mk
@@ -137,7 +137,7 @@ THIRD_PARTY_RADPAJAMA_SRCS = $(foreach x,$(THIRD_PARTY_RADPAJAMA_ARTIFACTS),$($(
 THIRD_PARTY_RADPAJAMA_HDRS = $(foreach x,$(THIRD_PARTY_RADPAJAMA_ARTIFACTS),$($(x)_HDRS))
 THIRD_PARTY_RADPAJAMA_OBJS = $(foreach x,$(THIRD_PARTY_RADPAJAMA_ARTIFACTS),$($(x)_OBJS))
 THIRD_PARTY_RADPAJAMA_CHECKS = $(foreach x,$(THIRD_PARTY_RADPAJAMA_ARTIFACTS),$($(x)_CHECKS))
-$(THIRD_PARTY_RADPAJAMA_OBJS): third_party/radpajama/radpajama.mk
+$(THIRD_PARTY_RADPAJAMA_OBJS): third_party/radpajama/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/radpajama
 o/$(MODE)/third_party/radpajama:					\
diff --git a/third_party/regex/regex.mk b/third_party/regex/BUILD.mk
similarity index 97%
rename from third_party/regex/regex.mk
rename to third_party/regex/BUILD.mk
index 58012049f..2b1039a97 100644
--- a/third_party/regex/regex.mk
+++ b/third_party/regex/BUILD.mk
@@ -45,7 +45,7 @@ THIRD_PARTY_REGEX_INCS = $(foreach x,$(THIRD_PARTY_REGEX_ARTIFACTS),$($(x)_INCS)
 THIRD_PARTY_REGEX_CHECKS = $(foreach x,$(THIRD_PARTY_REGEX_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_REGEX_OBJS = $(foreach x,$(THIRD_PARTY_REGEX_ARTIFACTS),$($(x)_OBJS))
 
-$(THIRD_PARTY_REGEX_OBJS): third_party/regex/regex.mk
+$(THIRD_PARTY_REGEX_OBJS): third_party/regex/BUILD.mk
 
 o/$(MODE)/third_party/regex/regcomp.o			\
 o/$(MODE)/third_party/regex/regexec.o			\
diff --git a/third_party/sed/sed.mk b/third_party/sed/BUILD.mk
similarity index 96%
rename from third_party/sed/sed.mk
rename to third_party/sed/BUILD.mk
index 463e63a9d..cc2943b5a 100644
--- a/third_party/sed/sed.mk
+++ b/third_party/sed/BUILD.mk
@@ -51,7 +51,7 @@ o/$(MODE)/third_party/sed/sed.com.dbg:			\
 THIRD_PARTY_SED_BINS = $(THIRD_PARTY_SED_COMS) $(THIRD_PARTY_SED_COMS:%=%.dbg)
 THIRD_PARTY_SED_COMS = o/$(MODE)/third_party/sed/sed.com
 THIRD_PARTY_SED_LIBS = $(THIRD_PARTY_SED_A)
-$(THIRD_PARTY_SED_OBJS): $(BUILD_FILES) third_party/sed/sed.mk
+$(THIRD_PARTY_SED_OBJS): $(BUILD_FILES) third_party/sed/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/sed
 o/$(MODE)/third_party/sed:				\
diff --git a/third_party/smallz4/smallz4.mk b/third_party/smallz4/BUILD.mk
similarity index 99%
rename from third_party/smallz4/smallz4.mk
rename to third_party/smallz4/BUILD.mk
index b90af5543..8737afd43 100644
--- a/third_party/smallz4/smallz4.mk
+++ b/third_party/smallz4/BUILD.mk
@@ -76,7 +76,7 @@ THIRD_PARTY_SMALLZ4_LIBS = $(foreach x,$(THIRD_PARTY_SMALLZ4_ARTIFACTS),$($(x)))
 THIRD_PARTY_SMALLZ4_SRCS = $(foreach x,$(THIRD_PARTY_SMALLZ4_ARTIFACTS),$($(x)_SRCS))
 THIRD_PARTY_SMALLZ4_CHECKS = $(foreach x,$(THIRD_PARTY_SMALLZ4_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_SMALLZ4_OBJS = $(foreach x,$(THIRD_PARTY_SMALLZ4_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_SMALLZ4_OBJS): $(BUILD_FILES) third_party/smallz4/smallz4.mk
+$(THIRD_PARTY_SMALLZ4_OBJS): $(BUILD_FILES) third_party/smallz4/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/smallz4
 o/$(MODE)/third_party/smallz4:					\
diff --git a/third_party/sqlite3/sqlite3.mk b/third_party/sqlite3/BUILD.mk
similarity index 98%
rename from third_party/sqlite3/sqlite3.mk
rename to third_party/sqlite3/BUILD.mk
index 72e5092f4..9b10c4eb6 100644
--- a/third_party/sqlite3/sqlite3.mk
+++ b/third_party/sqlite3/BUILD.mk
@@ -210,8 +210,8 @@ THIRD_PARTY_SQLITE3_INCS = $(foreach x,$(THIRD_PARTY_SQLITE3_ARTIFACTS),$($(x)_I
 THIRD_PARTY_SQLITE3_CHECKS = $(foreach x,$(THIRD_PARTY_SQLITE3_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_SQLITE3_OBJS = $(foreach x,$(THIRD_PARTY_SQLITE3_ARTIFACTS),$($(x)_OBJS))
 
-$(THIRD_PARTY_SQLITE3_OBJS): third_party/sqlite3/sqlite3.mk
-$(THIRD_PARTY_SQLITE3_SHELL_OBJS): third_party/sqlite3/sqlite3.mk
+$(THIRD_PARTY_SQLITE3_OBJS): third_party/sqlite3/BUILD.mk
+$(THIRD_PARTY_SQLITE3_SHELL_OBJS): third_party/sqlite3/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/sqlite3
 o/$(MODE)/third_party/sqlite3:						\
diff --git a/third_party/stb/stb.mk b/third_party/stb/BUILD.mk
similarity index 97%
rename from third_party/stb/stb.mk
rename to third_party/stb/BUILD.mk
index c7352949f..daa357c41 100644
--- a/third_party/stb/stb.mk
+++ b/third_party/stb/BUILD.mk
@@ -71,7 +71,7 @@ THIRD_PARTY_STB_LIBS = $(foreach x,$(THIRD_PARTY_STB_ARTIFACTS),$($(x)))
 THIRD_PARTY_STB_SRCS = $(foreach x,$(THIRD_PARTY_STB_ARTIFACTS),$($(x)_SRCS))
 THIRD_PARTY_STB_CHECKS = $(foreach x,$(THIRD_PARTY_STB_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_STB_OBJS = $(foreach x,$(THIRD_PARTY_STB_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_STB_OBJS): $(BUILD_FILES) third_party/stb/stb.mk
+$(THIRD_PARTY_STB_OBJS): $(BUILD_FILES) third_party/stb/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/stb
 o/$(MODE)/third_party/stb: $(THIRD_PARTY_STB_CHECKS)
diff --git a/third_party/tidy/tidy.mk b/third_party/tidy/BUILD.mk
similarity index 97%
rename from third_party/tidy/tidy.mk
rename to third_party/tidy/BUILD.mk
index 46c89b1b9..78568523c 100644
--- a/third_party/tidy/tidy.mk
+++ b/third_party/tidy/BUILD.mk
@@ -69,7 +69,7 @@ THIRD_PARTY_TIDY_LIBS = $(foreach x,$(THIRD_PARTY_TIDY_ARTIFACTS),$($(x)))
 THIRD_PARTY_TIDY_SRCS = $(foreach x,$(THIRD_PARTY_TIDY_ARTIFACTS),$($(x)_SRCS))
 THIRD_PARTY_TIDY_CHECKS = $(foreach x,$(THIRD_PARTY_TIDY_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_TIDY_OBJS = $(foreach x,$(THIRD_PARTY_TIDY_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_TIDY_OBJS): $(BUILD_FILES) third_party/tidy/tidy.mk
+$(THIRD_PARTY_TIDY_OBJS): $(BUILD_FILES) third_party/tidy/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/tidy
 o/$(MODE)/third_party/tidy:							\
diff --git a/third_party/tr/tr.mk b/third_party/tr/BUILD.mk
similarity index 96%
rename from third_party/tr/tr.mk
rename to third_party/tr/BUILD.mk
index b20def8c8..87965a9b7 100644
--- a/third_party/tr/tr.mk
+++ b/third_party/tr/BUILD.mk
@@ -50,7 +50,7 @@ o/$(MODE)/third_party/tr/tr.com.dbg:		\
 THIRD_PARTY_TR_LIBS = $(THIRD_PARTY_TR_A)
 THIRD_PARTY_TR_BINS = $(THIRD_PARTY_TR_COMS) $(THIRD_PARTY_TR_COMS:%=%.dbg)
 THIRD_PARTY_TR_COMS = o/$(MODE)/third_party/tr/tr.com
-$(THIRD_PARTY_TR_OBJS): $(BUILD_FILES) third_party/tr/tr.mk
+$(THIRD_PARTY_TR_OBJS): $(BUILD_FILES) third_party/tr/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/tr
 o/$(MODE)/third_party/tr:			\
diff --git a/third_party/tree/tree.mk b/third_party/tree/BUILD.mk
similarity index 96%
rename from third_party/tree/tree.mk
rename to third_party/tree/BUILD.mk
index e8b8cde1f..bc988a17d 100644
--- a/third_party/tree/tree.mk
+++ b/third_party/tree/BUILD.mk
@@ -50,7 +50,7 @@ o/$(MODE)/third_party/tree/tree.com.dbg:		\
 THIRD_PARTY_TREE_BINS = $(THIRD_PARTY_TREE_COMS) $(THIRD_PARTY_TREE_COMS:%=%.dbg)
 THIRD_PARTY_TREE_COMS = o/$(MODE)/third_party/tree/tree.com
 THIRD_PARTY_TREE_LIBS = $(THIRD_PARTY_TREE_A)
-$(THIRD_PARTY_TREE_OBJS): $(BUILD_FILES) third_party/tree/tree.mk
+$(THIRD_PARTY_TREE_OBJS): $(BUILD_FILES) third_party/tree/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/tree
 o/$(MODE)/third_party/tree:				\
diff --git a/third_party/unzip/unzip.mk b/third_party/unzip/BUILD.mk
similarity index 98%
rename from third_party/unzip/unzip.mk
rename to third_party/unzip/BUILD.mk
index 37049d7ab..e0a748318 100644
--- a/third_party/unzip/unzip.mk
+++ b/third_party/unzip/BUILD.mk
@@ -70,7 +70,7 @@ THIRD_PARTY_UNZIP_HDRS = $(foreach x,$(THIRD_PARTY_UNZIP_ARTIFACTS),$($(x)_HDRS)
 THIRD_PARTY_UNZIP_INCS = $(foreach x,$(THIRD_PARTY_UNZIP_ARTIFACTS),$($(x)_INCS))
 THIRD_PARTY_UNZIP_CHECKS = $(foreach x,$(THIRD_PARTY_UNZIP_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_UNZIP_OBJS = $(foreach x,$(THIRD_PARTY_UNZIP_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_UNZIP_OBJS): third_party/unzip/unzip.mk
+$(THIRD_PARTY_UNZIP_OBJS): third_party/unzip/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/unzip
 o/$(MODE)/third_party/unzip:							\
diff --git a/third_party/vqsort/vqsort.mk b/third_party/vqsort/BUILD.mk
similarity index 96%
rename from third_party/vqsort/vqsort.mk
rename to third_party/vqsort/BUILD.mk
index e2ab7abe0..016bbcc45 100644
--- a/third_party/vqsort/vqsort.mk
+++ b/third_party/vqsort/BUILD.mk
@@ -45,7 +45,7 @@ THIRD_PARTY_VQSORT_SRCS = $(foreach x,$(THIRD_PARTY_VQSORT_ARTIFACTS),$($(x)_SRC
 THIRD_PARTY_VQSORT_HDRS = $(foreach x,$(THIRD_PARTY_VQSORT_ARTIFACTS),$($(x)_HDRS))
 THIRD_PARTY_VQSORT_CHECKS = $(foreach x,$(THIRD_PARTY_VQSORT_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_VQSORT_OBJS = $(foreach x,$(THIRD_PARTY_VQSORT_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_VQSORT_OBJS): $(BUILD_FILES) third_party/vqsort/vqsort.mk
+$(THIRD_PARTY_VQSORT_OBJS): $(BUILD_FILES) third_party/vqsort/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/vqsort
 o/$(MODE)/third_party/vqsort: $(THIRD_PARTY_VQSORT_CHECKS)
diff --git a/third_party/xed/xed.mk b/third_party/xed/BUILD.mk
similarity index 97%
rename from third_party/xed/xed.mk
rename to third_party/xed/BUILD.mk
index f70b2cfc3..7f520b035 100644
--- a/third_party/xed/xed.mk
+++ b/third_party/xed/BUILD.mk
@@ -62,7 +62,7 @@ THIRD_PARTY_XED_SRCS = $(foreach x,$(THIRD_PARTY_XED_ARTIFACTS),$($(x)_SRCS))
 THIRD_PARTY_XED_HDRS = $(foreach x,$(THIRD_PARTY_XED_ARTIFACTS),$($(x)_HDRS))
 THIRD_PARTY_XED_CHECKS = $(foreach x,$(THIRD_PARTY_XED_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_XED_OBJS = $(foreach x,$(THIRD_PARTY_XED_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_XED_OBJS): $(BUILD_FILES) third_party/xed/xed.mk
+$(THIRD_PARTY_XED_OBJS): $(BUILD_FILES) third_party/xed/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/xed
 o/$(MODE)/third_party/xed: $(THIRD_PARTY_XED_CHECKS)
diff --git a/third_party/xxhash/xxhash.mk b/third_party/xxhash/BUILD.mk
similarity index 100%
rename from third_party/xxhash/xxhash.mk
rename to third_party/xxhash/BUILD.mk
diff --git a/third_party/zip/zip.mk b/third_party/zip/BUILD.mk
similarity index 100%
rename from third_party/zip/zip.mk
rename to third_party/zip/BUILD.mk
diff --git a/third_party/zlib/zlib.mk b/third_party/zlib/BUILD.mk
similarity index 97%
rename from third_party/zlib/zlib.mk
rename to third_party/zlib/BUILD.mk
index 1fbfb6c69..f438dedb3 100644
--- a/third_party/zlib/zlib.mk
+++ b/third_party/zlib/BUILD.mk
@@ -79,7 +79,7 @@ THIRD_PARTY_ZLIB_INCS = $(foreach x,$(THIRD_PARTY_ZLIB_ARTIFACTS),$($(x)_INCS))
 THIRD_PARTY_ZLIB_BINS = $(foreach x,$(THIRD_PARTY_ZLIB_ARTIFACTS),$($(x)_BINS))
 THIRD_PARTY_ZLIB_CHECKS = $(foreach x,$(THIRD_PARTY_ZLIB_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_ZLIB_OBJS = $(foreach x,$(THIRD_PARTY_ZLIB_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_ZLIB_OBJS): $(BUILD_FILES) third_party/zlib/zlib.mk
+$(THIRD_PARTY_ZLIB_OBJS): $(BUILD_FILES) third_party/zlib/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/zlib
 o/$(MODE)/third_party/zlib:				\
diff --git a/third_party/zlib/gz/gz.mk b/third_party/zlib/gz/BUILD.mk
similarity index 99%
rename from third_party/zlib/gz/gz.mk
rename to third_party/zlib/gz/BUILD.mk
index 383f2f396..f6e441c5e 100644
--- a/third_party/zlib/gz/gz.mk
+++ b/third_party/zlib/gz/BUILD.mk
@@ -51,7 +51,7 @@ THIRD_PARTY_ZLIB_GZ_INCS = $(foreach x,$(THIRD_PARTY_ZLIB_GZ_ARTIFACTS),$($(x)_I
 THIRD_PARTY_ZLIB_GZ_BINS = $(foreach x,$(THIRD_PARTY_ZLIB_GZ_ARTIFACTS),$($(x)_BINS))
 THIRD_PARTY_ZLIB_GZ_CHECKS = $(foreach x,$(THIRD_PARTY_ZLIB_GZ_ARTIFACTS),$($(x)_CHECKS))
 THIRD_PARTY_ZLIB_GZ_OBJS = $(foreach x,$(THIRD_PARTY_ZLIB_GZ_ARTIFACTS),$($(x)_OBJS))
-$(THIRD_PARTY_ZLIB_GZ_OBJS): $(BUILD_FILES) third_party/zlib/gz/gz.mk
+$(THIRD_PARTY_ZLIB_GZ_OBJS): $(BUILD_FILES) third_party/zlib/gz/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/zlib/gz
 o/$(MODE)/third_party/zlib/gz:			\
diff --git a/third_party/zstd/zstd.mk b/third_party/zstd/BUILD.mk
similarity index 99%
rename from third_party/zstd/zstd.mk
rename to third_party/zstd/BUILD.mk
index 548343752..03090b509 100644
--- a/third_party/zstd/zstd.mk
+++ b/third_party/zstd/BUILD.mk
@@ -175,7 +175,7 @@ THIRD_PARTY_ZSTD_INCS = $(foreach x,$(THIRD_PARTY_ZSTD_ARTIFACTS),$($(x)_INCS))
 THIRD_PARTY_ZSTD_HDRS = $(foreach x,$(THIRD_PARTY_ZSTD_ARTIFACTS),$($(x)_HDRS))
 THIRD_PARTY_ZSTD_OBJS = $(foreach x,$(THIRD_PARTY_ZSTD_ARTIFACTS),$($(x)_OBJS))
 THIRD_PARTY_ZSTD_CHECKS = $(foreach x,$(THIRD_PARTY_ZSTD_ARTIFACTS),$($(x)_CHECKS))
-$(THIRD_PARTY_ZSTD_OBJS): $(BUILD_FILES) third_party/zstd/zstd.mk
+$(THIRD_PARTY_ZSTD_OBJS): $(BUILD_FILES) third_party/zstd/BUILD.mk
 
 .PHONY: o/$(MODE)/third_party/zstd
 o/$(MODE)/third_party/zstd:					\
diff --git a/tool/tool.mk b/tool/BUILD.mk
similarity index 100%
rename from tool/tool.mk
rename to tool/BUILD.mk
diff --git a/tool/args/args.mk b/tool/args/BUILD.mk
similarity index 100%
rename from tool/args/args.mk
rename to tool/args/BUILD.mk
diff --git a/tool/build/build.mk b/tool/build/BUILD.mk
similarity index 99%
rename from tool/build/build.mk
rename to tool/build/BUILD.mk
index 7e50d9c86..71ef7e7c7 100644
--- a/tool/build/build.mk
+++ b/tool/build/BUILD.mk
@@ -97,7 +97,7 @@ o/$(MODE)/tool/build/dso/sandbox.o:			\
 		libc/runtime/runtime.h			\
 		libc/calls/pledge.internal.h		\
 		libc/intrin/promises.internal.h		\
-		tool/build/build.mk
+		tool/build/BUILD.mk
 
 o/$(MODE)/tool/build/dso/sandbox-$(ARCH).so:		\
 		o/$(MODE)/tool/build/dso/sandbox.o	\
diff --git a/tool/build/lib/buildlib.mk b/tool/build/lib/BUILD.mk
similarity index 98%
rename from tool/build/lib/buildlib.mk
rename to tool/build/lib/BUILD.mk
index 60e56c788..5ceb6fe39 100644
--- a/tool/build/lib/buildlib.mk
+++ b/tool/build/lib/BUILD.mk
@@ -109,7 +109,7 @@ TOOL_BUILD_LIB_CHECKS = $(foreach x,$(TOOL_BUILD_LIB_ARTIFACTS),$($(x)_CHECKS))
 TOOL_BUILD_LIB_OBJS = $(foreach x,$(TOOL_BUILD_LIB_ARTIFACTS),$($(x)_OBJS))
 TOOL_BUILD_LIB_TESTS = $(foreach x,$(TOOL_BUILD_LIB_ARTIFACTS),$($(x)_TESTS))
 
-$(TOOL_BUILD_LIB_OBJS): tool/build/lib/buildlib.mk
+$(TOOL_BUILD_LIB_OBJS): tool/build/lib/BUILD.mk
 
 .PHONY: o/$(MODE)/tool/build/lib
 o/$(MODE)/tool/build/lib:				\
diff --git a/tool/curl/curl.mk b/tool/curl/BUILD.mk
similarity index 96%
rename from tool/curl/curl.mk
rename to tool/curl/BUILD.mk
index afde61c4c..7b61d74d3 100644
--- a/tool/curl/curl.mk
+++ b/tool/curl/BUILD.mk
@@ -58,7 +58,7 @@ o/$(MODE)/tool/curl/curl.com.dbg:		\
 TOOL_CURL_LIBS = $(TOOL_CURL_A)
 TOOL_CURL_BINS = $(TOOL_CURL_COMS) $(TOOL_CURL_COMS:%=%.dbg)
 TOOL_CURL_COMS = o/$(MODE)/tool/curl/curl.com
-$(TOOL_CURL_OBJS): $(BUILD_FILES) tool/curl/curl.mk
+$(TOOL_CURL_OBJS): $(BUILD_FILES) tool/curl/BUILD.mk
 
 .PHONY: o/$(MODE)/tool/curl
 o/$(MODE)/tool/curl:				\
diff --git a/tool/decode/decode.mk b/tool/decode/BUILD.mk
similarity index 98%
rename from tool/decode/decode.mk
rename to tool/decode/BUILD.mk
index e5430164a..702fed740 100644
--- a/tool/decode/decode.mk
+++ b/tool/decode/BUILD.mk
@@ -58,7 +58,7 @@ o/$(MODE)/tool/decode/%.com.dbg:			\
 
 $(TOOL_DECODE_OBJS):					\
 		$(BUILD_FILES)				\
-		tool/decode/decode.mk
+		tool/decode/BUILD.mk
 
 .PHONY: o/$(MODE)/tool/decode
 o/$(MODE)/tool/decode:					\
diff --git a/tool/decode/lib/decodelib.mk b/tool/decode/lib/BUILD.mk
similarity index 100%
rename from tool/decode/lib/decodelib.mk
rename to tool/decode/lib/BUILD.mk
diff --git a/tool/hello/hello.mk b/tool/hello/BUILD.mk
similarity index 98%
rename from tool/hello/hello.mk
rename to tool/hello/BUILD.mk
index a02891122..bd3393406 100644
--- a/tool/hello/hello.mk
+++ b/tool/hello/BUILD.mk
@@ -94,4 +94,4 @@ o/$(MODE)/tool/hello/wait-pe.com:				\
 		o/$(MODE)/tool/build/elf2pe.com
 	@$(COMPILE) -AELF2PE o/$(MODE)/tool/build/elf2pe.com -R 64kb -S 4kb -o $@ $<
 
-$(TOOL_HELLO_OBJS): tool/hello/hello.mk
+$(TOOL_HELLO_OBJS): tool/hello/BUILD.mk
diff --git a/tool/lambda/lambda.mk b/tool/lambda/BUILD.mk
similarity index 98%
rename from tool/lambda/lambda.mk
rename to tool/lambda/BUILD.mk
index 75e71b757..689599197 100644
--- a/tool/lambda/lambda.mk
+++ b/tool/lambda/BUILD.mk
@@ -51,7 +51,7 @@ o/$(MODE)/tool/lambda/tromp.o: private				\
 
 $(TOOL_LAMBDA_OBJS):						\
 		$(BUILD_FILES)					\
-		tool/lambda/lambda.mk
+		tool/lambda/BUILD.mk
 
 .PHONY: o/$(MODE)/tool/lambda
 o/$(MODE)/tool/lambda: $(TOOL_LAMBDA_BINS) $(TOOL_LAMBDA_CHECKS)
diff --git a/tool/lambda/lib/lib.mk b/tool/lambda/lib/BUILD.mk
similarity index 100%
rename from tool/lambda/lib/lib.mk
rename to tool/lambda/lib/BUILD.mk
diff --git a/tool/net/net.mk b/tool/net/BUILD.mk
similarity index 100%
rename from tool/net/net.mk
rename to tool/net/BUILD.mk
diff --git a/tool/plinko/plinko.mk b/tool/plinko/BUILD.mk
similarity index 100%
rename from tool/plinko/plinko.mk
rename to tool/plinko/BUILD.mk
diff --git a/tool/plinko/lib/lib.mk b/tool/plinko/lib/BUILD.mk
similarity index 100%
rename from tool/plinko/lib/lib.mk
rename to tool/plinko/lib/BUILD.mk
diff --git a/tool/viz/viz.mk b/tool/viz/BUILD.mk
similarity index 99%
rename from tool/viz/viz.mk
rename to tool/viz/BUILD.mk
index a13039fcb..ad8096230 100644
--- a/tool/viz/viz.mk
+++ b/tool/viz/BUILD.mk
@@ -107,7 +107,7 @@ o/$(MODE)/tool/viz/magikarp.o: private		\
 
 $(TOOL_VIZ_OBJS):				\
 		$(BUILD_FILES)			\
-		tool/viz/viz.mk
+		tool/viz/BUILD.mk
 
 .PHONY: o/$(MODE)/tool/viz
 o/$(MODE)/tool/viz:				\
diff --git a/tool/viz/lib/vizlib.mk b/tool/viz/lib/BUILD.mk
similarity index 98%
rename from tool/viz/lib/vizlib.mk
rename to tool/viz/lib/BUILD.mk
index 2478aa29a..c08ba6113 100644
--- a/tool/viz/lib/vizlib.mk
+++ b/tool/viz/lib/BUILD.mk
@@ -84,7 +84,7 @@ $(TOOL_VIZ_LIB_A).pkg:					\
 		$(TOOL_VIZ_LIB_A_OBJS)			\
 		$(foreach x,$(TOOL_VIZ_LIB_A_DIRECTDEPS),$($(x)_A).pkg)
 
-$(TOOL_VIZ_LIB_A_OBJS): tool/viz/lib/vizlib.mk
+$(TOOL_VIZ_LIB_A_OBJS): tool/viz/lib/BUILD.mk
 
 TOOL_VIZ_LIB_LIBS = $(foreach x,$(TOOL_VIZ_LIB_ARTIFACTS),$($(x)))
 TOOL_VIZ_LIB_SRCS = $(foreach x,$(TOOL_VIZ_LIB_ARTIFACTS),$($(x)_SRCS))