build: split cstage/wwstage targets, document bootstrap
Phase 10 step 8 (delete the C trees) is deferred to v1.0 — until the compiler stops churning we keep Cstage as the fresh-checkout entry point. Split the Makefile so the two stages are named, and add BOOTSTRAP.md describing the cstage → ww1 → ww2 → ww3 fixed-point flow. PLAN.md gets a status note pointing at it.
This commit is contained in:
19
Makefile
19
Makefile
@@ -40,11 +40,22 @@ L6_OBJ = $(L6_SRC:cmd/6l/%.c=$(OBJ)/6l/%.o)
|
||||
RT_S = rt/start.s rt/syscall.s rt/alloc.s rt/streq.s rt/abort.s
|
||||
RT_OBJ = $(RT_S:rt/%.s=$(OBJ)/rt/%.o)
|
||||
|
||||
BINS = $(BIN)/ww $(BIN)/6c $(BIN)/6a $(BIN)/6l $(BIN)/wwdump \
|
||||
$(BIN)/wwdump_ww $(BIN)/6a_ww $(BIN)/6l_ww $(BIN)/ww_ww
|
||||
# Cstage: one-time C bootstrap (see BOOTSTRAP.md). Built by `cc`.
|
||||
# Goes away at v1.0, replaced by a checked-in stage-0 binary.
|
||||
CSTAGE_BINS = $(BIN)/ww $(BIN)/6c $(BIN)/6a $(BIN)/6l $(BIN)/wwdump
|
||||
|
||||
# Wwstage: ww-rewritten toolchain. Built by Cstage today; will be the
|
||||
# only toolchain after Phase 10 closeout. Byte-identical to Cstage
|
||||
# (tests 990-993).
|
||||
WWSTAGE_BINS = $(BIN)/wwdump_ww $(BIN)/6a_ww $(BIN)/6l_ww $(BIN)/ww_ww
|
||||
|
||||
BINS = $(CSTAGE_BINS) $(WWSTAGE_BINS)
|
||||
LIBS = $(LIB)/libwwc.a $(LIB)/libwwrt.a
|
||||
|
||||
all: $(BINS) $(LIBS)
|
||||
all: cstage wwstage
|
||||
|
||||
cstage: $(CSTAGE_BINS) $(LIBS)
|
||||
wwstage: $(WWSTAGE_BINS)
|
||||
|
||||
# ---- libwwc.a ----------------------------------------------------------
|
||||
$(LIB)/libwwc.a: $(WWC_OBJ) | $(LIB)
|
||||
@@ -266,4 +277,4 @@ bootstrap: all
|
||||
@echo " - cmd/6l/ : ww-6l (linker w/ archive support) — byte-identical to C 6l (test 992)"
|
||||
@echo " - cmd/ww/ : ww-driver (build/run/version) — byte-identical to C ww (test 993)"
|
||||
|
||||
.PHONY: all test install clean bootstrap
|
||||
.PHONY: all cstage wwstage test install clean bootstrap
|
||||
|
||||
Reference in New Issue
Block a user