ww: lift introspection files to lib/ww/ (ast, lex, tok, parse, typ, sym)
This commit is contained in:
37
Makefile
37
Makefile
@@ -101,39 +101,42 @@ $(OBJ)/w6l/%.o: cmd/w6l/%.c cmd/w6l/l.h | $(OBJ)/w6l
|
||||
$(CC) $(CFLAGS) -Icmd/w6l -c -o $@ $<
|
||||
|
||||
# ---- ww-side wwdump (the lexer port, exercised by 990_selfhost) --------
|
||||
# Built via the user-facing ww driver, with -I selfhost/cmd/wcc so it
|
||||
# can find the lex/tok/mem ports. Output named wwdump_ww to avoid
|
||||
# colliding with the C-side wwdump in $(BIN).
|
||||
# Built via the user-facing ww driver. The introspection ports (lex,
|
||||
# tok, ast, parse, typ, sym) live in lib/ww/; the compiler-only bits
|
||||
# (mem, check, cgen*) stay in selfhost/cmd/wcc/. Output named wwdump_ww
|
||||
# to avoid colliding with the C-side wwdump in $(BIN).
|
||||
$(BIN)/wwdump_ww: selfhost/cmd/wwdump/main.ww \
|
||||
selfhost/cmd/wcc/lex.ww selfhost/cmd/wcc/tok.ww \
|
||||
selfhost/cmd/wcc/mem.ww selfhost/cmd/wcc/ast.ww \
|
||||
selfhost/cmd/wcc/parse.ww selfhost/cmd/wcc/typ.ww \
|
||||
selfhost/cmd/wcc/sym.ww selfhost/cmd/wcc/check.ww \
|
||||
lib/ww/lex.ww lib/ww/tok.ww lib/ww/ast.ww \
|
||||
lib/ww/parse.ww lib/ww/typ.ww lib/ww/sym.ww \
|
||||
selfhost/cmd/wcc/mem.ww selfhost/cmd/wcc/check.ww \
|
||||
selfhost/cmd/wcc/cgen.ww selfhost/cmd/wcc/cgen_expr.ww \
|
||||
selfhost/cmd/wcc/cgen_stmt.ww selfhost/cmd/wcc/cgen_util.ww \
|
||||
selfhost/cmd/wcc/cgen_decl.ww \
|
||||
lib/os/os.ww lib/strconv/strconv.ww \
|
||||
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
||||
$(LIB)/libwwrt.a | $(BIN)
|
||||
cd $(BIN) && ./ww build -I $$PWD/../../selfhost/cmd/wcc \
|
||||
cd $(BIN) && ./ww build \
|
||||
-I $$PWD/../../lib/ww \
|
||||
-I $$PWD/../../selfhost/cmd/wcc \
|
||||
$$PWD/../../selfhost/cmd/wwdump/main.ww
|
||||
mv $(BIN)/main $@
|
||||
|
||||
# ---- ww-side w6c (compiler port, exercised by 994_w6c_ww) -------------
|
||||
# Thin driver: parse + cgen, both already living in selfhost/cmd/wcc.
|
||||
# Build through `ww build` like the other wwstage tools.
|
||||
# Thin driver: parse + cgen. The frontend (lex/parse/ast/...) lives in
|
||||
# lib/ww/; cgen + check live in selfhost/cmd/wcc/.
|
||||
$(BIN)/w6c_ww: selfhost/cmd/w6c/main.ww \
|
||||
selfhost/cmd/wcc/lex.ww selfhost/cmd/wcc/tok.ww \
|
||||
selfhost/cmd/wcc/mem.ww selfhost/cmd/wcc/ast.ww \
|
||||
selfhost/cmd/wcc/parse.ww selfhost/cmd/wcc/typ.ww \
|
||||
selfhost/cmd/wcc/sym.ww selfhost/cmd/wcc/check.ww \
|
||||
lib/ww/lex.ww lib/ww/tok.ww lib/ww/ast.ww \
|
||||
lib/ww/parse.ww lib/ww/typ.ww lib/ww/sym.ww \
|
||||
selfhost/cmd/wcc/mem.ww selfhost/cmd/wcc/check.ww \
|
||||
selfhost/cmd/wcc/cgen.ww selfhost/cmd/wcc/cgen_expr.ww \
|
||||
selfhost/cmd/wcc/cgen_stmt.ww selfhost/cmd/wcc/cgen_util.ww \
|
||||
selfhost/cmd/wcc/cgen_decl.ww \
|
||||
lib/os/os.ww \
|
||||
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
||||
$(LIB)/libwwrt.a | $(BIN)
|
||||
cd $(BIN) && ./ww build -I $$PWD/../../selfhost/cmd/wcc \
|
||||
cd $(BIN) && ./ww build \
|
||||
-I $$PWD/../../lib/ww \
|
||||
-I $$PWD/../../selfhost/cmd/wcc \
|
||||
$$PWD/../../selfhost/cmd/w6c/main.ww
|
||||
mv $(BIN)/main $@
|
||||
|
||||
@@ -392,7 +395,9 @@ 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 -I $(CURDIR)/selfhost/cmd/wcc \
|
||||
@cd $(NOCC_BIN) && ./ww build \
|
||||
-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 \
|
||||
-I $(CURDIR)/selfhost/cmd/wcc -I $(CURDIR)/lib \
|
||||
|
||||
Reference in New Issue
Block a user