V's vfprintf parsed mods via scanmods but dropped them after parse — vformatfield routed straight to vwriteone (no width / alignment / pad / sign / base / prec honoured). Port the OLD modifier path (fmt.ww: 443-641 rawlen* / formatraw / formatone) into vstream.ww as the v* twins, widen vformatfield to take *mods, and pass &m through vfprintf at the call site. The v* helpers mirror OLD verbatim (compute body identical; vputbytes + (size | io.error) routing replacing putbytes + (i32 | io.closed)); shared compute helpers (signof / digitsu64 / basenum) and modifier enums (neg / alignment / mods) are reused directly from fmt.ww via package scope. fmt.ww UNCHANGED — fold-eFinal (#50) collapses both surfaces and dedupes the rawlen-family. drew NaN/Inf signoff: strconv.f64tos / f32tos already render "nan"/"infinity" with no leading '-', so the sign-peel in vrawlenf64 + vformatraw f64 arm is a no-op on those views (same OLD path at fmt.ww:520-562). ken cs==ww mechanical: both stages compile the new V-side identically; 990-997 byte-id gates + combined_ww_fresh stay green (fmt is not embedded in any selfhost main.combined.ww — grep verified pre-impl). test/wcc/780_fmt_vstream_mods_run.c (cstage-only per #209): 5 rows covering width / precision / base_hex / sign_plus / zero_pad. STAGE_WW blocked by #209 (wwstage formattable match-arm bail), same carve-out as 777_fmt_vstream_run.
1597 lines
60 KiB
Makefile
1597 lines
60 KiB
Makefile
# ww — Plan 9-organised toolchain. POSIX make.
|
|
#
|
|
# Build a small static frontend library libwcc.a and the user-facing
|
|
# driver `ww`. Per-target tools (w6c, w6a, w6l) and the runtime are added
|
|
# in their own phases. Everything lands under out/.
|
|
|
|
PREFIX ?= /usr/local
|
|
CC ?= cc
|
|
AR ?= ar
|
|
CFLAGS ?= -O0 -g -Wall -Wextra -Wpedantic -Wno-unused-parameter
|
|
CFLAGS += -std=c99 -fno-strict-aliasing -D_POSIX_C_SOURCE=200809L
|
|
INCS = -Icmd/wcc
|
|
|
|
OUT = out
|
|
BIN = $(OUT)/bin
|
|
LIB = $(OUT)/lib
|
|
OBJ = $(OUT)/obj
|
|
|
|
WCC_SRC = cmd/wcc/mem.c cmd/wcc/err.c cmd/wcc/tok.c cmd/wcc/lex.c \
|
|
cmd/wcc/ast.c cmd/wcc/parse.c cmd/wcc/sym.c cmd/wcc/type.c \
|
|
cmd/wcc/check.c
|
|
WCC_OBJ = $(WCC_SRC:cmd/wcc/%.c=$(OBJ)/wcc/%.o)
|
|
|
|
WW_SRC = cmd/ww/main.c
|
|
WW_OBJ = $(WW_SRC:cmd/ww/%.c=$(OBJ)/ww/%.o)
|
|
|
|
WD_SRC = cmd/wwdump/main.c
|
|
WD_OBJ = $(WD_SRC:cmd/wwdump/%.c=$(OBJ)/wwdump/%.o)
|
|
|
|
W6C_SRC = cmd/w6c/main.c cmd/w6c/cgen.c cmd/w6c/txt.c cmd/w6c/swt.c \
|
|
cmd/w6c/peep.c cmd/w6c/reg.c
|
|
W6C_OBJ = $(W6C_SRC:cmd/w6c/%.c=$(OBJ)/w6c/%.o)
|
|
|
|
W6A_SRC = cmd/w6a/main.c cmd/w6a/lex.c cmd/w6a/parse.c cmd/w6a/asm.c cmd/w6a/obj.c
|
|
W6A_OBJ = $(W6A_SRC:cmd/w6a/%.c=$(OBJ)/w6a/%.o)
|
|
|
|
W6L_SRC = cmd/w6l/main.c cmd/w6l/obj.c cmd/w6l/sym.c cmd/w6l/pass.c cmd/w6l/out.c \
|
|
cmd/w6l/dyn.c cmd/w6l/dynout.c
|
|
W6L_OBJ = $(W6L_SRC:cmd/w6l/%.c=$(OBJ)/w6l/%.o)
|
|
|
|
RT_S = rt/start.s rt/syscall.s rt/alloc.s rt/streq.s rt/abort.s
|
|
RT_WW = rt/ensure.ww rt/malloc.ww
|
|
RT_OBJ = $(RT_S:rt/%.s=$(OBJ)/rt/%.o) $(RT_WW:rt/%.ww=$(OBJ)/rt/%.o)
|
|
|
|
# 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)/w6c $(BIN)/w6a $(BIN)/w6l $(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-994).
|
|
WWSTAGE_BINS = $(BIN)/wwdump_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww $(BIN)/ww_ww
|
|
|
|
BINS = $(CSTAGE_BINS) $(WWSTAGE_BINS)
|
|
LIBS = $(LIB)/libwcc.a $(LIB)/libwwrt.a
|
|
|
|
all: cstage wwstage
|
|
|
|
cstage: $(CSTAGE_BINS) $(LIBS)
|
|
wwstage: $(WWSTAGE_BINS)
|
|
|
|
# ---- libwcc.a ----------------------------------------------------------
|
|
$(LIB)/libwcc.a: $(WCC_OBJ) | $(LIB)
|
|
$(AR) rcs $@ $(WCC_OBJ)
|
|
|
|
$(OBJ)/wcc/%.o: cmd/wcc/%.c cmd/wcc/ww.h | $(OBJ)/wcc
|
|
$(CC) $(CFLAGS) $(INCS) -c -o $@ $<
|
|
|
|
# ---- ww driver ---------------------------------------------------------
|
|
$(BIN)/ww: $(WW_OBJ) $(LIB)/libwcc.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $(WW_OBJ) -L$(LIB) -lwcc
|
|
|
|
$(OBJ)/ww/%.o: cmd/ww/%.c cmd/wcc/ww.h | $(OBJ)/ww
|
|
$(CC) $(CFLAGS) $(INCS) -c -o $@ $<
|
|
|
|
# ---- wwdump (lex/AST diff anchor) --------------------------------------
|
|
$(BIN)/wwdump: $(WD_OBJ) $(LIB)/libwcc.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $(WD_OBJ) -L$(LIB) -lwcc
|
|
|
|
$(OBJ)/wwdump/%.o: cmd/wwdump/%.c cmd/wcc/ww.h | $(OBJ)/wwdump
|
|
$(CC) $(CFLAGS) $(INCS) -c -o $@ $<
|
|
|
|
# ---- w6c amd64 compiler ------------------------------------------------
|
|
$(BIN)/w6c: $(W6C_OBJ) $(LIB)/libwcc.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $(W6C_OBJ) -L$(LIB) -lwcc
|
|
|
|
$(OBJ)/w6c/%.o: cmd/w6c/%.c cmd/w6c/gc.h cmd/w6c/6.out.h cmd/wcc/ww.h | $(OBJ)/w6c
|
|
$(CC) $(CFLAGS) $(INCS) -Icmd/w6c -c -o $@ $<
|
|
|
|
# ---- w6a amd64 assembler -----------------------------------------------
|
|
$(BIN)/w6a: $(W6A_OBJ) | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $(W6A_OBJ)
|
|
|
|
$(OBJ)/w6a/%.o: cmd/w6a/%.c cmd/w6a/a.h cmd/w6c/6.out.h | $(OBJ)/w6a
|
|
$(CC) $(CFLAGS) -Icmd/w6a -Icmd/w6c -c -o $@ $<
|
|
|
|
# ---- w6l amd64 linker --------------------------------------------------
|
|
$(BIN)/w6l: $(W6L_OBJ) | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $(W6L_OBJ)
|
|
|
|
$(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. The introspection ports (lex,
|
|
# tok, ast, parse, typ, sym) live in lib/ww/; the compiler-only bits
|
|
# (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 \
|
|
lib/ww/lex/lex.ww lib/ww/lex/tok.ww lib/ww/ast.ww \
|
|
lib/ww/parse/parse.ww lib/ww/parse/expr.ww lib/ww/parse/stmt.ww lib/ww/parse/decl.ww lib/ww/typ.ww lib/ww/sym.ww \
|
|
selfhost/cmd/wcc/check.ww \
|
|
selfhost/cmd/wcc/cgen.ww selfhost/cmd/wcc/cgenexpr.ww \
|
|
selfhost/cmd/wcc/cgenstmt.ww selfhost/cmd/wcc/cgenutil.ww \
|
|
selfhost/cmd/wcc/cgendecl.ww \
|
|
lib/os/os.ww lib/rt/malloc.ww lib/time/time.ww lib/strconv/strconv.ww lib/strconv/stof_data.ww lib/strconv/decimal.ww lib/strconv/stof.ww lib/strconv/ftos_data.ww lib/strconv/ftos.ww lib/strings/strings.ww lib/bytes/bytes.ww lib/encoding/utf8/utf8.ww lib/ascii/ascii.ww lib/errors/errors.ww lib/io/io.ww lib/io/stream.ww lib/io/types.ww lib/memio/memio.ww lib/memio/vstream.ww lib/fmt/fmt.ww \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
@mkdir -p $(BIN)/wwdump_ww.d
|
|
cd $(BIN)/wwdump_ww.d && $(CURDIR)/$(BIN)/ww build \
|
|
-I $(CURDIR)/lib/ww \
|
|
-I $(CURDIR)/lib/ww/lex \
|
|
-I $(CURDIR)/lib/ww/parse \
|
|
-I $(CURDIR)/selfhost/cmd/wcc \
|
|
$(CURDIR)/selfhost/cmd/wwdump/main.ww
|
|
mv $(BIN)/wwdump_ww.d/main $@
|
|
|
|
# ---- ww-side w6c (compiler port, exercised by 994_w6c_ww) -------------
|
|
# 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 \
|
|
lib/ww/lex/lex.ww lib/ww/lex/tok.ww lib/ww/ast.ww \
|
|
lib/ww/parse/parse.ww lib/ww/parse/expr.ww lib/ww/parse/stmt.ww lib/ww/parse/decl.ww lib/ww/typ.ww lib/ww/sym.ww \
|
|
selfhost/cmd/wcc/check.ww \
|
|
selfhost/cmd/wcc/cgen.ww selfhost/cmd/wcc/cgenexpr.ww \
|
|
selfhost/cmd/wcc/cgenstmt.ww selfhost/cmd/wcc/cgenutil.ww \
|
|
selfhost/cmd/wcc/cgendecl.ww \
|
|
lib/os/os.ww lib/rt/malloc.ww lib/time/time.ww lib/strconv/strconv.ww lib/strconv/stof_data.ww lib/strconv/decimal.ww lib/strconv/stof.ww lib/strconv/ftos_data.ww lib/strconv/ftos.ww lib/strings/strings.ww lib/bytes/bytes.ww lib/encoding/utf8/utf8.ww lib/ascii/ascii.ww lib/errors/errors.ww lib/io/io.ww lib/io/stream.ww lib/io/types.ww lib/memio/memio.ww lib/memio/vstream.ww lib/fmt/fmt.ww \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
@mkdir -p $(BIN)/w6c_ww.d
|
|
cd $(BIN)/w6c_ww.d && $(CURDIR)/$(BIN)/ww build \
|
|
-I $(CURDIR)/lib/ww \
|
|
-I $(CURDIR)/lib/ww/lex \
|
|
-I $(CURDIR)/lib/ww/parse \
|
|
-I $(CURDIR)/selfhost/cmd/wcc \
|
|
$(CURDIR)/selfhost/cmd/w6c/main.ww
|
|
mv $(BIN)/w6c_ww.d/main $@
|
|
|
|
# ---- ww-side w6a (assembler port, exercised by 991_w6a_ww) ------------
|
|
# Built like wwdump_ww. Needs -I selfhost/cmd/w6a for the local types/lex/
|
|
# parse/asm/obj modules.
|
|
$(BIN)/w6a_ww: selfhost/cmd/w6a/main.ww selfhost/cmd/w6a/opcodes.ww \
|
|
selfhost/cmd/w6a/lex.ww selfhost/cmd/w6a/parse.ww \
|
|
selfhost/cmd/w6a/asm.ww selfhost/cmd/w6a/obj.ww \
|
|
lib/os/os.ww lib/rt/malloc.ww lib/time/time.ww \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
@mkdir -p $(BIN)/w6a_ww.d
|
|
cd $(BIN)/w6a_ww.d && $(CURDIR)/$(BIN)/ww build \
|
|
-I $(CURDIR)/selfhost/cmd/w6a \
|
|
$(CURDIR)/selfhost/cmd/w6a/main.ww
|
|
mv $(BIN)/w6a_ww.d/main $@
|
|
|
|
# ---- ww-side w6l (linker port, exercised by 992_w6l_ww) ---------------
|
|
# Built like 6a_ww. Needs -I selfhost/cmd/w6l for the local sym/obj/pass/
|
|
# out modules.
|
|
$(BIN)/w6l_ww: selfhost/cmd/w6l/main.ww selfhost/cmd/w6l/sym.ww \
|
|
selfhost/cmd/w6l/obj.ww selfhost/cmd/w6l/dyn.ww \
|
|
selfhost/cmd/w6l/pass.ww selfhost/cmd/w6l/dynout.ww \
|
|
selfhost/cmd/w6l/out.ww \
|
|
lib/os/os.ww lib/rt/malloc.ww lib/time/time.ww \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
@mkdir -p $(BIN)/w6l_ww.d
|
|
cd $(BIN)/w6l_ww.d && $(CURDIR)/$(BIN)/ww build \
|
|
-I $(CURDIR)/selfhost/cmd/w6l \
|
|
$(CURDIR)/selfhost/cmd/w6l/main.ww
|
|
mv $(BIN)/w6l_ww.d/main $@
|
|
|
|
# ---- ww-side ww driver (exercised by 993_ww_ww) ------------------------
|
|
# The driver pulls in lib/os (default search path) and orchestrates
|
|
# w6c/w6a/w6l like the C driver.
|
|
$(BIN)/ww_ww: selfhost/cmd/ww/main.ww lib/os/os.ww lib/rt/malloc.ww \
|
|
lib/time/time.ww lib/strconv/strconv.ww \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
@mkdir -p $(BIN)/ww_ww.d
|
|
cd $(BIN)/ww_ww.d && $(CURDIR)/$(BIN)/ww build \
|
|
$(CURDIR)/selfhost/cmd/ww/main.ww
|
|
mv $(BIN)/ww_ww.d/main $@
|
|
|
|
# ---- runtime (libwwrt.a, assembled by our own w6a) ---------------------
|
|
$(OBJ)/rt/%.o: rt/%.s $(BIN)/w6a | $(OBJ)/rt
|
|
$(BIN)/w6a -o $@ $<
|
|
|
|
# ww-side runtime helpers (rt/*.ww): compile via w6c to .s, then w6a.
|
|
# Each .ww module is standalone — uses @symbol FFI for rt_alloc/rt_free
|
|
# rather than `use os;` so no bundling is required.
|
|
$(OBJ)/rt/%.s: rt/%.ww $(BIN)/w6c | $(OBJ)/rt
|
|
$(BIN)/w6c $< > $@
|
|
$(OBJ)/rt/%.o: $(OBJ)/rt/%.s $(BIN)/w6a | $(OBJ)/rt
|
|
$(BIN)/w6a -o $@ $<
|
|
|
|
$(LIB)/libwwrt.a: $(RT_OBJ) | $(LIB)
|
|
$(AR) rcs $@ $(RT_OBJ)
|
|
|
|
# ---- directories -------------------------------------------------------
|
|
$(BIN) $(LIB) $(OBJ)/wcc $(OBJ)/ww $(OBJ)/wwdump $(OBJ)/w6c $(OBJ)/w6a $(OBJ)/w6l $(OBJ)/rt:
|
|
mkdir -p $@
|
|
|
|
# ---- tests -------------------------------------------------------------
|
|
# Each phase adds a $(BIN)/test_<name> target; the runner walks them.
|
|
TESTS = $(BIN)/test_smoke $(BIN)/test_lex $(BIN)/test_parse $(BIN)/test_check \
|
|
$(BIN)/test_w6c $(BIN)/test_w6a $(BIN)/test_dataw $(BIN)/test_datar \
|
|
$(BIN)/test_w6l $(BIN)/test_data_link \
|
|
$(BIN)/test_arch \
|
|
$(BIN)/test_e2e $(BIN)/test_ffi $(BIN)/test_dyn $(BIN)/test_stdlib \
|
|
$(BIN)/test_at_test $(BIN)/test_let_global $(BIN)/test_def_neg_global \
|
|
$(BIN)/test_def_const_fold \
|
|
$(BIN)/test_int_cast_signed $(BIN)/test_dot_chain \
|
|
$(BIN)/test_amp_dot $(BIN)/test_arr_elem_field \
|
|
$(BIN)/test_arr_elem_field_write \
|
|
$(BIN)/test_dot_str_chained_arg \
|
|
$(BIN)/test_dot_slice_arg \
|
|
$(BIN)/test_dot_tagged_source \
|
|
$(BIN)/test_tagged_store_intlit \
|
|
$(BIN)/test_match_bind_struct \
|
|
$(BIN)/test_modtype_leaf_collision \
|
|
$(BIN)/test_samemod_prefer \
|
|
$(BIN)/test_cgreturn_struct \
|
|
$(BIN)/test_cgassign_struct \
|
|
$(BIN)/test_dot_explicit_deref \
|
|
$(BIN)/test_nested_structlit \
|
|
$(BIN)/test_dot_structlit \
|
|
$(BIN)/test_nested_call_rhs \
|
|
$(BIN)/test_fnlabel_mangle \
|
|
$(BIN)/test_cgreturn_variant_zero \
|
|
$(BIN)/test_arrlit_str_full \
|
|
$(BIN)/test_redecl \
|
|
$(BIN)/test_struct_field_index \
|
|
$(BIN)/test_tagged_return_scratch \
|
|
$(BIN)/test_tagged_widen_f64 \
|
|
$(BIN)/test_match_spill_pointer_payload \
|
|
$(BIN)/test_struct_byval_param \
|
|
$(BIN)/test_struct_multi_return_scratch \
|
|
$(BIN)/test_signed_data_emit \
|
|
$(BIN)/test_signed_data_emit_run \
|
|
$(BIN)/test_tagged_call_arg \
|
|
$(BIN)/test_tagged_call_arg_run \
|
|
$(BIN)/test_sret_struct_return \
|
|
$(BIN)/test_sret_struct_return_run \
|
|
$(BIN)/test_sret_narrow_field \
|
|
$(BIN)/test_sret_narrow_field_run \
|
|
$(BIN)/test_match_slice_variant \
|
|
$(BIN)/test_match_slice_variant_run \
|
|
$(BIN)/test_str_abi_run \
|
|
$(BIN)/test_str_elem_cap_run \
|
|
$(BIN)/test_str_field_cap_run \
|
|
$(BIN)/test_str_chained_field_cap_run \
|
|
$(BIN)/test_str_tuple_elem_cap_run \
|
|
$(BIN)/test_str_arrfield_cap_run \
|
|
$(BIN)/test_str_arrfield_store_cap_run \
|
|
$(BIN)/test_str_chainfield_store_cap_run \
|
|
$(BIN)/test_str_massign_store_cap_run \
|
|
$(BIN)/test_slice_store_cap_run \
|
|
$(BIN)/test_subslice_cap_run \
|
|
$(BIN)/test_subslice_ptresz_run \
|
|
$(BIN)/test_deref_slice_store_run \
|
|
$(BIN)/test_tuple_nary_destructure_run \
|
|
$(BIN)/test_str_forrange_loopvar_run \
|
|
$(BIN)/test_composite_call_arg \
|
|
$(BIN)/test_composite_call_arg_run \
|
|
$(BIN)/test_letdecl_zeroinit \
|
|
$(BIN)/test_nested_if_labels \
|
|
$(BIN)/test_alias_leaf_collision \
|
|
$(BIN)/test_modcall_widen_slice \
|
|
$(BIN)/test_match_4arm_cross_module \
|
|
$(BIN)/test_match_4arm_cross_module_run \
|
|
$(BIN)/test_variant_typekey_run \
|
|
$(BIN)/test_enum_modshadow \
|
|
$(BIN)/test_struct_modshadow \
|
|
$(BIN)/test_def_modshadow \
|
|
$(BIN)/test_cstage_label_ssot \
|
|
$(BIN)/test_direnum \
|
|
$(BIN)/test_module_decl \
|
|
$(BIN)/test_chained_index \
|
|
$(BIN)/test_chained_write \
|
|
$(BIN)/test_dotbase_chained \
|
|
$(BIN)/test_parse_error \
|
|
$(BIN)/test_variadic_pack \
|
|
$(BIN)/test_letcopy_struct \
|
|
$(BIN)/test_fnparams_bare_leaf_shadow \
|
|
$(BIN)/test_fnret_bare_leaf_shadow \
|
|
$(BIN)/test_fnret34_modshadow \
|
|
$(BIN)/test_strdef_inline \
|
|
$(BIN)/test_def_modqual_modshadow \
|
|
$(BIN)/test_size_strategy_convergence \
|
|
$(BIN)/test_sumtype_forward \
|
|
$(BIN)/test_mklabel_modscoped \
|
|
$(BIN)/test_vararg_seq_percall \
|
|
$(BIN)/test_modparam_callee \
|
|
$(BIN)/test_convwrap_audit \
|
|
$(BIN)/test_slice_of_slice_index \
|
|
$(BIN)/test_amp_dot_idx \
|
|
$(BIN)/test_alias_chain_unwrap \
|
|
$(BIN)/test_letbind_void_bang_void \
|
|
$(BIN)/test_cgalloc_str_field \
|
|
$(BIN)/test_param_shadow_mod \
|
|
$(BIN)/test_localoff_scope \
|
|
$(BIN)/test_cast_enum_movl \
|
|
$(BIN)/test_check_enum_fold \
|
|
$(BIN)/test_def_widen_const \
|
|
$(BIN)/test_inferred_struct_arg_push \
|
|
$(BIN)/test_struct_abi_size \
|
|
$(BIN)/test_typeeq_fn_ast \
|
|
$(BIN)/test_amp_fn_ident \
|
|
$(BIN)/test_star_fn_deref \
|
|
$(BIN)/test_star_fn_deref_call \
|
|
$(BIN)/test_match_variant_dispatch \
|
|
$(BIN)/test_io_types_run \
|
|
$(BIN)/test_dot_aliased_ptr \
|
|
$(BIN)/test_return_tagged_forward \
|
|
$(BIN)/test_widen_transitive \
|
|
$(BIN)/test_typeassert_nonident \
|
|
$(BIN)/test_isas_spread_variant \
|
|
$(BIN)/test_tagged_widen_named_variant \
|
|
$(BIN)/test_io_vtable_run \
|
|
$(BIN)/test_memio_vstream_run \
|
|
$(BIN)/test_fmt_vstream_run \
|
|
$(BIN)/test_fmt_vstream_mods_run \
|
|
$(BIN)/test_bufio_vstream_run \
|
|
$(BIN)/test_log_vstream_run \
|
|
$(BIN)/test_use_promote_alias \
|
|
$(BIN)/test_field_signed $(BIN)/test_frame_argcount \
|
|
$(BIN)/test_selfhost $(BIN)/test_w6a_ww $(BIN)/test_w6l_ww \
|
|
$(BIN)/test_w6c_ww $(BIN)/test_ww_ww $(BIN)/test_self_rebuild \
|
|
$(BIN)/test_dyn_ww $(BIN)/test_selfcheck $(BIN)/test_at_test_ww \
|
|
$(BIN)/test_fmt_run $(BIN)/test_log_run $(BIN)/test_fnmatch_run \
|
|
$(BIN)/test_shlex_run $(BIN)/test_getenv_run $(BIN)/test_dirs_run \
|
|
$(BIN)/test_stat_run $(BIN)/test_time_run \
|
|
$(BIN)/test_intdiv_signed \
|
|
$(BIN)/test_strings_run \
|
|
$(BIN)/test_hex_run $(BIN)/test_utf8_run $(BIN)/test_bytes_run \
|
|
$(BIN)/test_decimal_run $(BIN)/test_stof_run $(BIN)/test_ftos_run \
|
|
$(BIN)/test_memio_run $(BIN)/test_temp_run $(BIN)/test_getopt_run \
|
|
$(BIN)/test_base32_run $(BIN)/test_base64_run \
|
|
$(BIN)/test_adler32_run $(BIN)/test_crc16_run \
|
|
$(BIN)/test_crc32_run $(BIN)/test_crc64_run \
|
|
$(BIN)/test_siphash_run \
|
|
$(BIN)/test_checked_run \
|
|
$(BIN)/test_floatarr_run \
|
|
$(BIN)/test_deref_narrow_run \
|
|
$(BIN)/test_idx_compound_run \
|
|
$(BIN)/test_dotbase_arr_run \
|
|
$(BIN)/test_continue_run \
|
|
$(BIN)/test_callret_unsigned_arith_run \
|
|
$(BIN)/test_sar_shr_run \
|
|
$(BIN)/test_def_mangle_run \
|
|
$(BIN)/test_arr_u16_store_run \
|
|
$(BIN)/test_arr_module_index_run \
|
|
$(BIN)/test_arr_float_call_index_run \
|
|
$(BIN)/test_def_float_lit_run \
|
|
$(BIN)/test_struct_composite_init_run \
|
|
$(BIN)/test_array_static_init_run \
|
|
$(BIN)/test_array_init_acceptiffits_run \
|
|
$(BIN)/test_amp_def_global_run \
|
|
$(BIN)/test_f64cgen_run \
|
|
$(BIN)/test_f64crossmod_run \
|
|
$(BIN)/test_tuprecv_run \
|
|
$(BIN)/test_f64xmm_run \
|
|
$(BIN)/test_f32lit_run \
|
|
$(BIN)/test_f32stamp_run \
|
|
$(BIN)/test_f32arg_run \
|
|
$(BIN)/test_tuprecv_f64_run \
|
|
$(BIN)/test_modqualdestr_run \
|
|
$(BIN)/test_tupparam_run \
|
|
$(BIN)/test_structparam_run \
|
|
$(BIN)/test_structret_run \
|
|
$(BIN)/test_floats_run \
|
|
$(BIN)/test_size_type_run \
|
|
$(BIN)/test_types_sizelim_run \
|
|
$(BIN)/test_types_intlim_run \
|
|
$(BIN)/test_opaque_decl_run \
|
|
$(BIN)/test_opaque_guards \
|
|
$(BIN)/test_opaque_assign_cast_run \
|
|
$(BIN)/test_sort_run \
|
|
$(BIN)/test_bufio_run $(BIN)/test_random_run \
|
|
$(BIN)/test_asserttyped_gap
|
|
|
|
$(BIN)/test_smoke: test/wcc/000_smoke.c $(LIB)/libwcc.a | $(BIN)
|
|
$(CC) $(CFLAGS) $(INCS) -o $@ $< -L$(LIB) -lwcc
|
|
|
|
$(BIN)/test_lex: test/wcc/100_lex.c $(LIB)/libwcc.a | $(BIN)
|
|
$(CC) $(CFLAGS) $(INCS) -o $@ $< -L$(LIB) -lwcc
|
|
|
|
$(BIN)/test_parse: test/wcc/200_parse.c $(LIB)/libwcc.a | $(BIN)
|
|
$(CC) $(CFLAGS) $(INCS) -o $@ $< -L$(LIB) -lwcc
|
|
|
|
$(BIN)/test_check: test/wcc/300_check.c $(LIB)/libwcc.a | $(BIN)
|
|
$(CC) $(CFLAGS) $(INCS) -o $@ $< -L$(LIB) -lwcc
|
|
|
|
$(BIN)/test_w6c: test/wcc/400_w6c.c $(BIN)/w6c | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_w6a: test/wcc/500_w6a.c $(BIN)/w6c $(BIN)/w6a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_dataw: test/wcc/510_dataw.c $(BIN)/w6a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_datar: test/wcc/520_datar.c $(BIN)/w6a $(BIN)/w6l | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_w6l: test/wcc/600_w6l.c $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_data_link: test/wcc/620_data_link.c $(BIN)/w6a $(BIN)/w6l | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_arch: test/wcc/610_arch.c $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(OBJ)/rt/start.o | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_e2e: test/wcc/700_e2e.c $(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a $(OBJ)/rt/start.o | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_ffi: test/wcc/800_ffi.c $(BIN)/w6c | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_dyn: test/wcc/810_dyn.c $(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_stdlib: test/wcc/900_stdlib.c $(BIN)/w6c | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_at_test: test/wcc/910_at_test.c $(BIN)/ww $(BIN)/w6c $(BIN)/w6a \
|
|
$(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_let_global: test/wcc/630_let_global.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_def_neg_global: test/wcc/631_def_neg_global.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_def_const_fold: test/wcc/732_def_const_fold.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_int_cast_signed: test/wcc/640_int_cast_signed.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_dot_chain: test/wcc/650_dot_chain.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_amp_dot: test/wcc/690_amp_dot.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_arr_elem_field: test/wcc/680_arr_elem_field.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_arr_elem_field_write: test/wcc/681_arr_elem_field_write.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_dot_str_chained_arg: test/wcc/692_dot_str_chained_arg.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_dot_slice_arg: test/wcc/691_dot_slice_arg.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_dot_tagged_source: test/wcc/693_dot_tagged_source.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_tagged_store_intlit: test/wcc/694_tagged_store_intlit.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_match_bind_struct: test/wcc/695_match_bind_struct.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_modtype_leaf_collision: test/wcc/696_modtype_leaf_collision.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_samemod_prefer: test/wcc/697_samemod_prefer.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_cgreturn_struct: test/wcc/698_cgreturn_struct.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_cgassign_struct: test/wcc/701_cgassign_struct.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_dot_explicit_deref: test/wcc/702_dot_explicit_deref.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_nested_structlit: test/wcc/703_nested_structlit.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_dot_structlit: test/wcc/704_dot_structlit.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_nested_call_rhs: test/wcc/705_nested_call_rhs.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_fnlabel_mangle: test/wcc/706_fnlabel_mangle.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_cgreturn_variant_zero: test/wcc/707_cgreturn_variant_zero.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_param_shadow_mod: test/wcc/708_param_shadow_mod.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_localoff_scope: test/wcc/709_localoff_scope.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_cast_enum_movl: test/wcc/710_cast_enum_movl.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_check_enum_fold: test/wcc/759_check_enum_fold.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_def_widen_const: test/wcc/760_def_widen_const.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_inferred_struct_arg_push: test/wcc/761_inferred_struct_arg_push.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_struct_abi_size: test/wcc/762_struct_abi_size.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_typeeq_fn_ast: test/wcc/763_typeeq_fn_ast.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_amp_fn_ident: test/wcc/764_amp_fn_ident.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_star_fn_deref: test/wcc/765_star_fn_deref.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_star_fn_deref_call: test/wcc/766_star_fn_deref_call.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_match_variant_dispatch: test/wcc/767_match_variant_dispatch.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_io_types_run: test/wcc/768_io_types_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_dot_aliased_ptr: test/wcc/769_dot_aliased_ptr.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_return_tagged_forward: test/wcc/770_return_tagged_forward.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_widen_transitive: test/wcc/771_widen_transitive.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_typeassert_nonident: test/wcc/772_typeassert_nonident.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_isas_spread_variant: test/wcc/773_isas_spread_variant.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_tagged_widen_named_variant: test/wcc/774_tagged_widen_named_variant.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_io_vtable_run: test/wcc/775_io_vtable_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_memio_vstream_run: test/wcc/776_memio_vstream_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
lib/memio/memio.ww lib/memio/vstream.ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_fmt_vstream_run: test/wcc/777_fmt_vstream_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
lib/fmt/fmt.ww lib/fmt/vstream.ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_fmt_vstream_mods_run: test/wcc/780_fmt_vstream_mods_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
lib/fmt/fmt.ww lib/fmt/vstream.ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_bufio_vstream_run: test/wcc/778_bufio_vstream_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
lib/bufio/bufio.ww lib/bufio/vstream.ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_log_vstream_run: test/wcc/779_log_vstream_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
lib/log/log.ww lib/log/vstream.ww \
|
|
lib/fmt/fmt.ww lib/fmt/vstream.ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_arrlit_str_full: test/wcc/711_arrlit_str_full.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_redecl: test/wcc/712_redecl.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_struct_field_index: test/wcc/713_struct_field_index.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_tagged_return_scratch: test/wcc/714_tagged_return_scratch.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_tagged_widen_f64: test/wcc/715_tagged_widen_f64.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_match_spill_pointer_payload: test/wcc/716_match_spill_pointer_payload.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_struct_byval_param: test/wcc/717_struct_byval_param.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_struct_multi_return_scratch: test/wcc/718_struct_multi_return_scratch.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_signed_data_emit: test/wcc/719_signed_data_emit.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_signed_data_emit_run: test/wcc/923_signed_data_emit_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_tagged_call_arg: test/wcc/720_tagged_call_arg.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_tagged_call_arg_run: test/wcc/924_tagged_call_arg_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_sret_struct_return: test/wcc/721_sret_struct_return.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_sret_struct_return_run: test/wcc/925_sret_struct_return_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_sret_narrow_field: test/wcc/730_sret_narrow_field.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_sret_narrow_field_run: test/wcc/930_sret_narrow_field_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_match_slice_variant: test/wcc/722_match_slice_variant.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_match_slice_variant_run: test/wcc/926_match_slice_variant_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_str_abi_run: test/wcc/928_str_abi_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_str_elem_cap_run: test/wcc/932_str_elem_cap_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_str_field_cap_run: test/wcc/933_str_field_cap_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_str_chained_field_cap_run: test/wcc/934_str_chained_field_cap_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_str_tuple_elem_cap_run: test/wcc/935_str_tuple_elem_cap_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_str_arrfield_cap_run: test/wcc/936_str_arrfield_cap_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_str_arrfield_store_cap_run: test/wcc/937_str_arrfield_store_cap_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_str_chainfield_store_cap_run: test/wcc/938_str_chainfield_store_cap_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_str_massign_store_cap_run: test/wcc/939_str_massign_store_cap_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_str_forrange_loopvar_run: test/wcc/940_str_forrange_loopvar_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_slice_store_cap_run: test/wcc/941_slice_store_cap_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_subslice_cap_run: test/wcc/942_subslice_cap_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_subslice_ptresz_run: test/wcc/943_subslice_ptresz_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_deref_slice_store_run: test/wcc/944_deref_slice_store_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_tuple_nary_destructure_run: test/wcc/945_tuple_nary_destructure_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_composite_call_arg: test/wcc/723_composite_call_arg.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_composite_call_arg_run: test/wcc/927_composite_call_arg_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_letdecl_zeroinit: test/wcc/724_letdecl_zeroinit.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_nested_if_labels: test/wcc/725_nested_if_labels.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_alias_leaf_collision: test/wcc/726_alias_leaf_collision.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_modcall_widen_slice: test/wcc/727_modcall_widen_slice.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_match_4arm_cross_module: test/wcc/728_match_4arm_cross_module.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_enum_modshadow: test/wcc/733_enum_modshadow.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_struct_modshadow: test/wcc/734_struct_modshadow.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_def_modshadow: test/wcc/735_def_modshadow.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_cstage_label_ssot: test/wcc/736_cstage_label_ssot.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_direnum: test/wcc/737_direnum.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_module_decl: test/wcc/738_module_decl.c $(LIB)/libwcc.a | $(BIN)
|
|
$(CC) $(CFLAGS) -Icmd/wcc -o $@ $< -Lout/lib -lwcc
|
|
|
|
$(BIN)/test_chained_index: test/wcc/739_chained_index.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_chained_write: test/wcc/740_chained_write.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_dotbase_chained: test/wcc/741_dotbase_chained.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_parse_error: test/wcc/742_parse_error.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_variadic_pack: test/wcc/743_variadic_pack.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_letcopy_struct: test/wcc/744_letcopy_struct.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_fnparams_bare_leaf_shadow: test/wcc/732_fnparams_bare_leaf_shadow.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_fnret_bare_leaf_shadow: test/wcc/731_fnret_bare_leaf_shadow.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_fnret34_modshadow: test/wcc/745_fnret34_modshadow.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_strdef_inline: test/wcc/746_strdef_inline.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_def_modqual_modshadow: test/wcc/747_def_modqual_modshadow.c \
|
|
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_size_strategy_convergence: test/wcc/748_size_strategy_convergence.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_sumtype_forward: test/wcc/749_sumtype_forward.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_mklabel_modscoped: test/wcc/750_mklabel_modscoped.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_vararg_seq_percall: test/wcc/751_vararg_seq_percall.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_modparam_callee: test/wcc/752_modparam_callee.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_convwrap_audit: test/wcc/753_convwrap_audit.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_slice_of_slice_index: test/wcc/754_slice_of_slice_index.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_amp_dot_idx: test/wcc/755_amp_dot_idx.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_alias_chain_unwrap: test/wcc/756_alias_chain_unwrap.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_letbind_void_bang_void: test/wcc/757_letbind_void_bang_void.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_cgalloc_str_field: test/wcc/758_cgalloc_str_field.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_match_4arm_cross_module_run: test/wcc/929_match_4arm_cross_module_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_variant_typekey_run: test/wcc/931_variant_typekey_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_use_promote_alias: test/wcc/699_use_promote_alias.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_field_signed: test/wcc/660_field_signed.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_frame_argcount: test/wcc/670_frame_argcount.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_selfhost: test/wcc/990_selfhost.c $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(BIN)/ww $(BIN)/wwdump $(BIN)/wwdump_ww $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_w6a_ww: test/wcc/991_w6a_ww.c $(BIN)/w6a $(BIN)/w6a_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_w6l_ww: test/wcc/992_w6l_ww.c $(BIN)/w6l $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_w6c_ww: test/wcc/994_w6c_ww.c $(BIN)/w6c_ww $(BIN)/wwdump_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_ww_ww: test/wcc/993_ww_ww.c $(BIN)/ww $(BIN)/ww_ww \
|
|
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_self_rebuild: test/wcc/995_self_rebuild.c $(BIN)/ww_ww \
|
|
$(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww $(BIN)/wwdump_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_selfcheck: test/wcc/950_selfcheck.c $(BIN)/wwdump_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_asserttyped_gap: test/wcc/901_asserttyped_gap.c $(BIN)/wwdump_ww | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_dyn_ww: test/wcc/996_dyn_ww.c $(BIN)/ww $(BIN)/w6l $(BIN)/w6l_ww \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_at_test_ww: test/wcc/997_at_test_ww.c $(BIN)/ww_ww $(BIN)/w6c_ww \
|
|
$(BIN)/w6a_ww $(BIN)/w6l_ww $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_fmt_run: test/wcc/970_fmt_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_log_run: test/wcc/971_log_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_fnmatch_run: test/wcc/972_fnmatch_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_shlex_run: test/wcc/973_shlex_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_getenv_run: test/wcc/974_getenv_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_dirs_run: test/wcc/975_dirs_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_stat_run: test/wcc/976_stat_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_time_run: test/wcc/977_time_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_intdiv_signed: test/wcc/978_intdiv_signed.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_hex_run: test/wcc/979_hex_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_utf8_run: test/wcc/968_utf8_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_bytes_run: test/wcc/967_bytes_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_decimal_run: test/wcc/922_decimal_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_stof_run: test/wcc/909_stof_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_ftos_run: test/wcc/908_ftos_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_strings_run: test/wcc/966_strings_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_memio_run: test/wcc/980_memio_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_temp_run: test/wcc/981_temp_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_getopt_run: test/wcc/982_getopt_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_base32_run: test/wcc/983_base32_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_base64_run: test/wcc/984_base64_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_adler32_run: test/wcc/985_adler32_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_crc16_run: test/wcc/986_crc16_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_crc32_run: test/wcc/987_crc32_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_crc64_run: test/wcc/988_crc64_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_siphash_run: test/wcc/989_siphash_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_bufio_run: test/wcc/998_bufio_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_random_run: test/wcc/999_random_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_checked_run: test/wcc/969_checked_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_floatarr_run: test/wcc/946_floatarr_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_deref_narrow_run: test/wcc/947_deref_narrow_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_idx_compound_run: test/wcc/948_idx_compound_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_dotbase_arr_run: test/wcc/949_dotbase_arr_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_continue_run: test/wcc/911_continue_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_sar_shr_run: test/wcc/912_sar_shr_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_callret_unsigned_arith_run: \
|
|
test/wcc/906_callret_unsigned_arith_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_def_mangle_run: test/wcc/913_def_mangle_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_arr_u16_store_run: test/wcc/914_arr_u16_store_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_arr_module_index_run: test/wcc/915_arr_module_index_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_arr_float_call_index_run: test/wcc/916_arr_float_call_index_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_def_float_lit_run: test/wcc/917_def_float_lit_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_struct_composite_init_run: test/wcc/918_struct_composite_init_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_array_static_init_run: test/wcc/919_array_static_init_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_array_init_acceptiffits_run: test/wcc/920_array_init_acceptiffits_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_amp_def_global_run: test/wcc/921_amp_def_global_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_f64cgen_run: test/wcc/951_f64cgen_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_floats_run: test/wcc/952_floats_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_size_type_run: test/wcc/957_size_type_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_types_sizelim_run: test/wcc/958_types_sizelim_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_types_intlim_run: test/wcc/959_types_intlim_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_opaque_decl_run: test/wcc/960_opaque_decl_run.c $(BIN)/ww $(BIN)/w6c \
|
|
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_opaque_guards: test/wcc/961_opaque_guards.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_opaque_assign_cast_run: test/wcc/962_opaque_assign_cast_run.c \
|
|
$(BIN)/ww $(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_sort_run: test/wcc/963_sort_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_f64crossmod_run: test/wcc/953_f64crossmod_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_tuprecv_run: test/wcc/954_tuprecv_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_f64xmm_run: test/wcc/955_f64xmm_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_f32lit_run: test/wcc/964_f32lit_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_f32stamp_run: test/wcc/965_f32stamp_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_f32arg_run: test/wcc/907_f32arg_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_tuprecv_f64_run: test/wcc/956_tuprecv_f64_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_modqualdestr_run: test/wcc/956_modqualdestr_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_tupparam_run: test/wcc/905_tupparam_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_structparam_run: test/wcc/946_structparam_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
$(BIN)/test_structret_run: test/wcc/946_structret_run.c $(BIN)/ww \
|
|
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
|
$(LIB)/libwwrt.a | $(BIN)
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
sizelint:
|
|
@sh tools/sizelint
|
|
|
|
test: all sizelint $(TESTS)
|
|
@WW=$(BIN)/ww BIN=$(BIN) sh test/run
|
|
|
|
test-unit: all sizelint $(TESTS)
|
|
@WW=$(BIN)/ww BIN=$(BIN) UNIT=1 sh test/run
|
|
|
|
install: all
|
|
mkdir -p $(PREFIX)/bin $(PREFIX)/lib
|
|
cp $(BIN)/ww $(PREFIX)/bin/
|
|
cp $(LIB)/libwcc.a $(PREFIX)/lib/
|
|
|
|
clean:
|
|
rm -rf $(OUT)
|
|
|
|
# ---- bootstrap (phase 10) ----------------------------------------------
|
|
# Four-stage self-host: Cstage (these C tools) → ww1 → ww2 → ww3 → ww4
|
|
# with cmp ww2 == ww3 and cmp ww3 == ww4. Stage 1 is wwdump_ww (the
|
|
# ww-built frontend); stages 2/3/4 assemble with w6a_ww and link with
|
|
# w6l_ww — every tool below the driver is now in ww. The C `ww` driver
|
|
# still orchestrates the pipeline (porting it is the remaining phase-10
|
|
# work).
|
|
#
|
|
# Why a fourth stage? Stage 3 proves ww1 and ww2 (which differ in how
|
|
# they were built) emit the same machine code. Stage 4 proves ww3 is
|
|
# byte-stable when used as a compiler — i.e. the fixed point is truly
|
|
# fixed, not merely a coincidental two-stage equilibrium.
|
|
BS = $(OUT)/bootstrap
|
|
bootstrap: all
|
|
@echo "=== stage 0 (Cstage): C-built tools ==="
|
|
@echo " $(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l"
|
|
@echo
|
|
@echo "=== stage 1: ww-built tools, used to drive stages 2/3/4 ==="
|
|
@ls -l $(BIN)/wwdump_ww $(BIN)/w6a_ww $(BIN)/w6l_ww $(BIN)/ww_ww
|
|
@rm -rf $(BS) && mkdir -p $(BS)
|
|
@echo
|
|
@echo "=== stage 2: ww2 = ww1 self-compiles main.combined.ww ==="
|
|
@$(BIN)/wwdump_ww -c selfhost/cmd/wwdump/main.combined.ww > $(BS)/ww2.s
|
|
@$(BIN)/w6a_ww -o $(BS)/ww2.o $(BS)/ww2.s
|
|
@$(BIN)/w6l_ww -o $(BS)/ww2 $(BS)/ww2.o $(LIB)/libwwrt.a
|
|
@ls -l $(BS)/ww2
|
|
@echo
|
|
@echo "=== stage 3: ww3 = ww2 self-compiles main.combined.ww ==="
|
|
@$(BS)/ww2 -c selfhost/cmd/wwdump/main.combined.ww > $(BS)/ww3.s
|
|
@$(BIN)/w6a_ww -o $(BS)/ww3.o $(BS)/ww3.s
|
|
@$(BIN)/w6l_ww -o $(BS)/ww3 $(BS)/ww3.o $(LIB)/libwwrt.a
|
|
@ls -l $(BS)/ww3
|
|
@echo
|
|
@echo "=== stage 4: ww4 = ww3 self-compiles main.combined.ww ==="
|
|
@$(BS)/ww3 -c selfhost/cmd/wwdump/main.combined.ww > $(BS)/ww4.s
|
|
@$(BIN)/w6a_ww -o $(BS)/ww4.o $(BS)/ww4.s
|
|
@$(BIN)/w6l_ww -o $(BS)/ww4 $(BS)/ww4.o $(LIB)/libwwrt.a
|
|
@ls -l $(BS)/ww4
|
|
@echo
|
|
@echo "=== fixed-point gates ==="
|
|
@cmp $(BS)/ww2.s $(BS)/ww3.s && echo " ww2.s == ww3.s ✓"
|
|
@cmp $(BS)/ww2.o $(BS)/ww3.o && echo " ww2.o == ww3.o ✓ (byte-identical .o)"
|
|
@cmp $(BS)/ww2 $(BS)/ww3 && echo " ww2 == ww3 ✓ (byte-identical exe)"
|
|
@cmp $(BS)/ww3.s $(BS)/ww4.s && echo " ww3.s == ww4.s ✓"
|
|
@cmp $(BS)/ww3.o $(BS)/ww4.o && echo " ww3.o == ww4.o ✓ (byte-identical .o)"
|
|
@cmp $(BS)/ww3 $(BS)/ww4 && echo " ww3 == ww4 ✓ (byte-identical exe, ww3 is byte-stable as a compiler)"
|
|
@echo
|
|
@echo "BOOTSTRAP OK: ww-cgen + w6a_ww + w6l_ww reach a fixed point that holds across two iterations."
|
|
@echo
|
|
@echo "Phase 10 remaining work:"
|
|
@echo " - delete cmd/wcc/ cmd/w6c/ cmd/w6a/ cmd/w6l/ cmd/ww/ in the final commit"
|
|
@echo
|
|
@echo "Already in selfhost/:"
|
|
@echo " - cmd/wcc/ : ww-cgen (lex/parse/check/cgen) — bootstrap fixed point"
|
|
@echo " - cmd/w6c/ : ww-w6c (lex/parse/cgen front-end) — matches wwdump_ww -c (test 994)"
|
|
@echo " - cmd/w6a/ : ww-w6a (lex/parse/asm/obj) — byte-identical to C w6a (test 991)"
|
|
@echo " - cmd/w6l/ : ww-w6l (linker w/ archive support) — byte-identical to C w6l (test 992)"
|
|
@echo " - cmd/ww/ : ww-driver (build/run/version) — byte-identical to C ww (test 993)"
|
|
|
|
# ---- nocc: bootstrap from a checked-in stage-0 binary, no cc -----------
|
|
# A fresh-checkout flow that never invokes cc. Mirrors `make bootstrap`'s
|
|
# fixed-point check but uses `bootstrap/$(ARCH)/{ww,w6c,w6a,w6l}` as the
|
|
# starting point and lands in $(OUT)/nocc/ so the cstage build under
|
|
# $(OUT)/ stays untouched. See bootstrap/README.md and BOOTSTRAP.md.
|
|
#
|
|
# `make bootstrap-snapshot` populates bootstrap/$(ARCH)/ from the
|
|
# currently-built wwstage so you can verify locally before deciding
|
|
# to commit the binaries.
|
|
ARCH ?= amd64
|
|
STAGE0 = bootstrap/$(ARCH)
|
|
NOCC_OUT = $(OUT)/nocc
|
|
NOCC_BIN = $(NOCC_OUT)/bin
|
|
NOCC_LIB = $(NOCC_OUT)/lib
|
|
NOCC_OBJ = $(NOCC_OUT)/obj
|
|
|
|
bootstrap-snapshot: wwstage
|
|
@mkdir -p $(STAGE0)
|
|
@cp $(BIN)/ww_ww $(STAGE0)/ww
|
|
@cp $(BIN)/w6c_ww $(STAGE0)/w6c
|
|
@cp $(BIN)/w6a_ww $(STAGE0)/w6a
|
|
@cp $(BIN)/w6l_ww $(STAGE0)/w6l
|
|
@echo "snapshot: $(STAGE0)/{ww,w6c,w6a,w6l} populated from $(BIN)/*_ww"
|
|
@echo " (gitignored — 'git add -f bootstrap/$(ARCH)/*' to ship)"
|
|
|
|
nocc:
|
|
@for f in ww w6c w6a w6l; do \
|
|
test -x $(STAGE0)/$$f || { \
|
|
echo "$@: missing $(STAGE0)/$$f"; \
|
|
echo "$@: run 'make bootstrap-snapshot' first, or read bootstrap/README.md"; \
|
|
exit 1; \
|
|
}; \
|
|
done
|
|
@echo "=== nocc: starting from $(STAGE0) (no cc invoked) ==="
|
|
@rm -rf $(NOCC_OUT)
|
|
@mkdir -p $(NOCC_BIN) $(NOCC_LIB) $(NOCC_OBJ)
|
|
@# Stage 0: drop bootstrap binaries under both natural names and
|
|
@# the _ww-suffixed names the driver expects when shelling out.
|
|
@for f in ww w6c w6a w6l; do \
|
|
cp $(STAGE0)/$$f $(NOCC_BIN)/$$f; \
|
|
cp $(STAGE0)/$$f $(NOCC_BIN)/$${f}_ww; \
|
|
done
|
|
@# Assemble libwwrt.a using stage-0 w6a — the linker needs it for
|
|
@# every wwstage-built binary in the next stage. Member order
|
|
@# follows $(RT_S) so the embedded symbol table matches the
|
|
@# cstage-built libwwrt.a (cstage uses ar rcs $(RT_OBJ), same
|
|
@# order).
|
|
@objs=""; for s in $(RT_S); do \
|
|
b=`basename $$s .s`; \
|
|
$(NOCC_BIN)/w6a -o $(NOCC_OBJ)/$$b.o $$s; \
|
|
objs="$$objs $(NOCC_OBJ)/$$b.o"; \
|
|
done; $(AR) rcs $(NOCC_LIB)/libwwrt.a $$objs
|
|
@echo "=== stage 1: stage-0 rebuilds the wwstage tools from source ==="
|
|
@# 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)/lib/ww \
|
|
-I $(CURDIR)/lib/ww/lex \
|
|
-I $(CURDIR)/lib/ww/parse \
|
|
-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 \
|
|
$(CURDIR)/selfhost/cmd/w6a/main.ww && mv main w6a_ww1
|
|
@cd $(NOCC_BIN) && ./ww build -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 \
|
|
-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 ✓"
|
|
@cmp $(NOCC_BIN)/w6a_ww1 $(STAGE0)/w6a && echo " w6a ✓"
|
|
@cmp $(NOCC_BIN)/w6l_ww1 $(STAGE0)/w6l && echo " w6l ✓"
|
|
@cmp $(NOCC_BIN)/ww_ww1 $(STAGE0)/ww && echo " ww ✓"
|
|
@echo
|
|
@echo "NOCC OK: $(STAGE0)/* reproduces itself from source. cc not invoked."
|
|
|
|
.PHONY: all cstage wwstage test test-unit sizelint install clean bootstrap nocc bootstrap-snapshot
|