build: redirect selfhost-build sepwork scratch out of tree with -o main (#14)
The 9 Makefile recipes that build selfhost/cmd/<tool>/main.ww (5 primary $(BIN)/*_ww + 4 nocc bootstrap) passed no -o, so the compiler's scratch followed the SOURCE stem and left selfhost/cmd/<tool>/main.sepwork in the tracked tree (the binary was mv'd out; the .sepwork dir stayed behind). Each recipe already cd's into a gitignored out-of-tree dir before building, so a uniform `-o main` makes the scratch follow the OUTPUT stem (cwd) out of the source tree; the binary still lands at cwd `main` and the existing `mv` lines are unchanged. Same intermediates-follow-output principle as the T3 -o redirect (rule 14). Carved from #8 by unanimous advisor ruling as its own bisect-clean commit. make clean && make test: all 402 passed, zero in-repo .sepwork, zero /tmp scratch.
This commit is contained in:
13
Makefile
13
Makefile
@@ -133,6 +133,7 @@ $(BIN)/wwdump_ww: selfhost/cmd/wwdump/main.ww \
|
||||
$(LIB)/libwwrt.a | $(BIN)
|
||||
@mkdir -p $(BIN)/wwdump_ww.d
|
||||
cd $(BIN)/wwdump_ww.d && $(CURDIR)/$(BIN)/ww build \
|
||||
-o main \
|
||||
-I $(CURDIR)/lib/ww \
|
||||
-I $(CURDIR)/selfhost/cmd/wcc \
|
||||
$(CURDIR)/selfhost/cmd/wwdump/main.ww
|
||||
@@ -153,6 +154,7 @@ $(BIN)/w6c_ww: selfhost/cmd/w6c/main.ww \
|
||||
$(LIB)/libwwrt.a | $(BIN)
|
||||
@mkdir -p $(BIN)/w6c_ww.d
|
||||
cd $(BIN)/w6c_ww.d && $(CURDIR)/$(BIN)/ww build \
|
||||
-o main \
|
||||
-I $(CURDIR)/lib/ww \
|
||||
-I $(CURDIR)/selfhost/cmd/wcc \
|
||||
$(CURDIR)/selfhost/cmd/w6c/main.ww
|
||||
@@ -170,6 +172,7 @@ $(BIN)/w6a_ww: selfhost/cmd/w6a/main.ww selfhost/cmd/w6a/opcodes.ww \
|
||||
$(LIB)/libwwrt.a | $(BIN)
|
||||
@mkdir -p $(BIN)/w6a_ww.d
|
||||
cd $(BIN)/w6a_ww.d && $(CURDIR)/$(BIN)/ww build \
|
||||
-o main \
|
||||
-I $(CURDIR)/selfhost/cmd/w6a \
|
||||
$(CURDIR)/selfhost/cmd/w6a/main.ww
|
||||
mv $(BIN)/w6a_ww.d/main $@
|
||||
@@ -187,6 +190,7 @@ $(BIN)/w6l_ww: selfhost/cmd/w6l/main.ww selfhost/cmd/w6l/sym.ww \
|
||||
$(LIB)/libwwrt.a | $(BIN)
|
||||
@mkdir -p $(BIN)/w6l_ww.d
|
||||
cd $(BIN)/w6l_ww.d && $(CURDIR)/$(BIN)/ww build \
|
||||
-o main \
|
||||
-I $(CURDIR)/selfhost/cmd/w6l \
|
||||
$(CURDIR)/selfhost/cmd/w6l/main.ww
|
||||
mv $(BIN)/w6l_ww.d/main $@
|
||||
@@ -201,6 +205,7 @@ $(BIN)/ww_ww: selfhost/cmd/ww/main.ww lib/os/os.ww lib/rt/malloc.ww \
|
||||
$(LIB)/libwwrt.a | $(BIN)
|
||||
@mkdir -p $(BIN)/ww_ww.d
|
||||
cd $(BIN)/ww_ww.d && $(CURDIR)/$(BIN)/ww build \
|
||||
-o main \
|
||||
$(CURDIR)/selfhost/cmd/ww/main.ww
|
||||
mv $(BIN)/ww_ww.d/main $@
|
||||
|
||||
@@ -3503,17 +3508,17 @@ nocc:
|
||||
@# The driver's default lib path is $self_dir/../../lib — under
|
||||
@# $(NOCC_BIN) that resolves to $(NOCC_OUT)/lib (libwwrt only).
|
||||
@# Pass -I $(CURDIR)/lib so `use os` etc. resolve to source.
|
||||
@cd $(NOCC_BIN) && ./ww build \
|
||||
@cd $(NOCC_BIN) && ./ww build -o main \
|
||||
-I $(CURDIR)/lib/ww \
|
||||
-I $(CURDIR)/selfhost/cmd/wcc \
|
||||
-I $(CURDIR)/lib $(CURDIR)/selfhost/cmd/w6c/main.ww && mv main w6c_ww1
|
||||
@cd $(NOCC_BIN) && ./ww build -I $(CURDIR)/selfhost/cmd/w6a \
|
||||
@cd $(NOCC_BIN) && ./ww build -o main -I $(CURDIR)/selfhost/cmd/w6a \
|
||||
-I $(CURDIR)/selfhost/cmd/wcc -I $(CURDIR)/lib \
|
||||
$(CURDIR)/selfhost/cmd/w6a/main.ww && mv main w6a_ww1
|
||||
@cd $(NOCC_BIN) && ./ww build -I $(CURDIR)/selfhost/cmd/w6l \
|
||||
@cd $(NOCC_BIN) && ./ww build -o main -I $(CURDIR)/selfhost/cmd/w6l \
|
||||
-I $(CURDIR)/selfhost/cmd/wcc -I $(CURDIR)/lib \
|
||||
$(CURDIR)/selfhost/cmd/w6l/main.ww && mv main w6l_ww1
|
||||
@cd $(NOCC_BIN) && ./ww build -I $(CURDIR)/selfhost/cmd/wcc \
|
||||
@cd $(NOCC_BIN) && ./ww build -o main -I $(CURDIR)/selfhost/cmd/wcc \
|
||||
-I $(CURDIR)/lib $(CURDIR)/selfhost/cmd/ww/main.ww && mv main ww_ww1
|
||||
@echo "=== fixed-point gates: rebuilt tools == stage-0 binaries? ==="
|
||||
@cmp $(NOCC_BIN)/w6c_ww1 $(STAGE0)/w6c && echo " w6c ✓"
|
||||
|
||||
Reference in New Issue
Block a user