Skip to content

Commit 4912428

Browse files
committed
rusti: Add linenoise, wrap into core::rl and add rusti REPL tool
Add Brian Leibig to AUTHORS.txt for REPL contributions
1 parent 39c0d35 commit 4912428

21 files changed

+591
-13
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,6 @@
44
[submodule "src/libuv"]
55
path = src/libuv
66
url = git://github.com/graydon/libuv.git
7+
[submodule "src/linenoise"]
8+
path = src/linenoise
9+
url = git://github.com/antirez/linenoise.git

AUTHORS.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ Benjamin Peterson <[email protected]>
2323
Brendan Eich <[email protected]>
2424
Brian Anderson <[email protected]>
2525
Brian J. Burg <[email protected]>
26+
Brian Leibig <[email protected]>
2627
Chris Double <[email protected]>
2728
Chris Peterson <[email protected]>
2829
Damian Gryski <[email protected]>

Makefile.in

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ endif
7474

7575
CFG_RUSTC_FLAGS := $(RUSTFLAGS)
7676
CFG_GCCISH_CFLAGS :=
77+
CFG_GCCISH_CXXFLAGS :=
7778
CFG_GCCISH_LINK_FLAGS :=
7879

7980
ifdef CFG_DISABLE_OPTIMIZE
@@ -449,9 +450,10 @@ TSREQS := \
449450
$(SREQ3_T_$(target)_H_$(CFG_HOST_TRIPLE)))
450451
FUZZ := $(HBIN2_H_$(CFG_HOST_TRIPLE))/fuzzer$(X)
451452
CARGO := $(HBIN2_H_$(CFG_HOST_TRIPLE))/cargo$(X)
453+
RUSTI := $(HBIN2_H_$(CFG_HOST_TRIPLE))/rusti$(X)
452454
RUSTDOC := $(HBIN2_H_$(CFG_HOST_TRIPLE))/rustdoc$(X)
453455

454-
all: rustc $(GENERATED) docs $(FUZZ) $(CARGO) $(RUSTDOC)
456+
all: rustc $(GENERATED) docs $(FUZZ) $(CARGO) $(RUSTDOC) $(RUSTI)
455457

456458
endif
457459

configure

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,6 +508,12 @@ do
508508
make_dir rustllvm/$t
509509
done
510510

511+
make_dir linenoise
512+
for t in $CFG_TARGET_TRIPLES
513+
do
514+
make_dir linenoise/$t
515+
done
516+
511517
make_dir rt
512518
for t in $CFG_TARGET_TRIPLES
513519
do

mk/clean.mk

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,20 @@ clean: clean-misc $(CLEAN_STAGE_RULES)
2323

2424
clean-misc:
2525
@$(call E, cleaning)
26-
$(Q)find rustllvm rt $(CFG_HOST_TRIPLE)/test \
26+
$(Q)find linenoise rustllvm rt $(CFG_HOST_TRIPLE)/test \
2727
-name '*.[odasS]' -o \
2828
-name '*.so' -o \
2929
-name '*.dylib' -o \
3030
-name '*.dll' -o \
3131
-name '*.def' -o \
3232
-name '*.bc' \
3333
| xargs rm -f
34-
$(Q)find rustllvm rt $(CFG_HOST_TRIPLE)\
34+
$(Q)find linenoise rustllvm rt $(CFG_HOST_TRIPLE)\
3535
-name '*.dSYM' \
3636
| xargs rm -Rf
3737
$(Q)rm -f $(RUNTIME_OBJS) $(RUNTIME_DEF)
3838
$(Q)rm -f $(RUSTLLVM_LIB_OBJS) $(RUSTLLVM_OBJS_OBJS) $(RUSTLLVM_DEF)
39+
$(Q)rm -f $(LINENOISE_OBJS)
3940
$(Q)rm -Rf $(DOCS)
4041
$(Q)rm -Rf $(GENERATED)
4142
$(Q)rm -f tmp/*.log tmp/*.rc tmp/*.rs
@@ -55,6 +56,7 @@ clean$(1)_H_$(2):
5556
$(Q)rm -f $$(HBIN$(1)_H_$(2))/rustc$(X)
5657
$(Q)rm -f $$(HBIN$(1)_H_$(2))/fuzzer$(X)
5758
$(Q)rm -f $$(HBIN$(1)_H_$(2))/cargo$(X)
59+
$(Q)rm -f $$(HBIN$(1)_H_$(2))/rusti$(X)
5860
$(Q)rm -f $$(HBIN$(1)_H_$(2))/serializer$(X)
5961
$(Q)rm -f $$(HBIN$(1)_H_$(2))/rustdoc$(X)
6062
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_RUNTIME)
@@ -81,6 +83,7 @@ clean$(1)_T_$(2)_H_$(3):
8183
$(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/rustc$(X)
8284
$(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/fuzzer$(X)
8385
$(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/cargo$(X)
86+
$(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/rusti$(X)
8487
$(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/serializer$(X)
8588
$(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/rustdoc$(X)
8689
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_RUNTIME)
@@ -95,6 +98,7 @@ clean$(1)_T_$(2)_H_$(3):
9598
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_RUSTLLVM)
9699
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/libstd.rlib
97100
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/libmorestack.a
101+
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/liblinenoise.a
98102
endef
99103

100104
$(foreach host, $(CFG_TARGET_TRIPLES), \

mk/dist.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,15 @@ PKG_FILES := \
2222
$(addprefix $(S)src/, \
2323
README.txt \
2424
cargo \
25+
rusti \
2526
rustc \
2627
compiletest \
2728
etc \
2829
fuzzer \
2930
libcore \
3031
libsyntax \
3132
libstd \
33+
linenoise \
3234
rt \
3335
rustdoc \
3436
rustllvm \

mk/install.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ install-host: $(SREQ$(ISTAGE)_T_$(CFG_HOST_TRIPLE)_H_$(CFG_HOST_TRIPLE))
7272
$(Q)mkdir -p $(PREFIX_ROOT)/share/man/man1
7373
$(Q)$(call INSTALL,$(HB2),$(PHB),rustc$(X))
7474
$(Q)$(call INSTALL,$(HB2),$(PHB),cargo$(X))
75+
$(Q)$(call INSTALL,$(HB2),$(PHB),rusti$(X))
7576
$(Q)$(call INSTALL,$(HB2),$(PHB),rustdoc$(X))
7677
$(Q)$(call INSTALL,$(HL),$(PHL),$(CFG_RUNTIME))
7778
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(CORELIB_GLOB))
@@ -91,6 +92,7 @@ HOST_LIB_FROM_HL_GLOB = \
9192
uninstall:
9293
$(Q)rm -f $(PHB)/rustc$(X)
9394
$(Q)rm -f $(PHB)/cargo$(X)
95+
$(Q)rm -f $(PHB)/rusti$(X)
9496
$(Q)rm -f $(PHB)/rustdoc$(X)
9597
$(Q)rm -f $(PHL)/$(CFG_RUSTLLVM)
9698
$(Q)rm -f $(PHL)/$(CFG_RUNTIME)

mk/platform.mk

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -212,20 +212,33 @@ ifeq ($(CFG_C_COMPILER),clang)
212212
ifeq ($(origin CPP),default)
213213
CPP=clang -E
214214
endif
215-
CFG_GCCISH_CFLAGS += -Wall -Werror -fno-rtti -g
215+
CFG_GCCISH_CFLAGS += -Wall -Werror -g
216+
CFG_GCCISH_CXXFLAGS += -fno-rtti
216217
CFG_GCCISH_LINK_FLAGS += -g
217218
# These flags will cause the compiler to produce a .d file
218219
# next to the .o file that lists header deps.
219220
CFG_DEPEND_FLAGS = -MMD -MP -MT $(1) -MF $(1:%.o=%.d)
220221

221222
define CFG_MAKE_CC
222-
CFG_COMPILE_C_$(1) = $$(CFG_GCCISH_CROSS)$$(CXX) \
223+
CFG_COMPILE_C_$(1) = $$(CFG_GCCISH_CROSS)$$(CC) \
224+
$$(CFG_GCCISH_CFLAGS) $$(CFG_CLANG_CFLAGS) \
225+
$$(CFG_GCCISH_CFLAGS_$$(HOST_$(1))) \
226+
$$(CFG_CLANG_CFLAGS_$$(HOST_$(1))) \
227+
$$(CFG_DEPEND_FLAGS) \
228+
-c -o $$(1) $$(2)
229+
CFG_LINK_C_$(1) = $$(CFG_GCCISH_CROSS)$$(CC) \
230+
$$(CFG_GCCISH_LINK_FLAGS) -o $$(1) \
231+
$$(CFG_GCCISH_LINK_FLAGS_$$(HOST_$(1))) \
232+
$$(CFG_GCCISH_DEF_FLAG)$$(3) $$(2) \
233+
$$(call CFG_INSTALL_NAME,$$(4))
234+
CFG_COMPILE_CXX_$(1) = $$(CFG_GCCISH_CROSS)$$(CXX) \
223235
$$(CFG_GCCISH_CFLAGS) $$(CFG_CLANG_CFLAGS) \
236+
$$(CFG_GCCISH_CXXFLAGS) \
224237
$$(CFG_GCCISH_CFLAGS_$$(HOST_$(1))) \
225238
$$(CFG_CLANG_CFLAGS_$$(HOST_$(1))) \
226239
$$(CFG_DEPEND_FLAGS) \
227240
-c -o $$(1) $$(2)
228-
CFG_LINK_C_$(1) = $$(CFG_GCCISH_CROSS)$$(CXX) \
241+
CFG_LINK_CXX_$(1) = $$(CFG_GCCISH_CROSS)$$(CXX) \
229242
$$(CFG_GCCISH_LINK_FLAGS) -o $$(1) \
230243
$$(CFG_GCCISH_LINK_FLAGS_$$(HOST_$(1))) \
231244
$$(CFG_GCCISH_DEF_FLAG)$$(3) $$(2) \
@@ -245,21 +258,35 @@ ifeq ($(CFG_C_COMPILER),gcc)
245258
ifeq ($(origin CPP),default)
246259
CPP=gcc -E
247260
endif
248-
CFG_GCCISH_CFLAGS += -Wall -Werror -fno-rtti -g
261+
CFG_GCCISH_CFLAGS += -Wall -Werror -g
262+
CFG_GCCISH_CXXFLAGS += -fno-rtti
249263
CFG_GCCISH_LINK_FLAGS += -g
250264
# These flags will cause the compiler to produce a .d file
251265
# next to the .o file that lists header deps.
252266
CFG_DEPEND_FLAGS = -MMD -MP -MT $(1) -MF $(1:%.o=%.d)
253267

254268
define CFG_MAKE_CC
255-
CFG_COMPILE_C_$(1) = $$(CFG_GCCISH_CROSS)$$(CXX) \
269+
CFG_COMPILE_C_$(1) = $$(CFG_GCCISH_CROSS)$$(CC) \
270+
$$(CFG_GCCISH_CFLAGS) \
271+
$$(CFG_GCCISH_CFLAGS_$$(HOST_$(1))) \
272+
$$(CFG_GCC_CFLAGS) \
273+
$$(CFG_GCC_CFLAGS_$$(HOST_$(1))) \
274+
$$(CFG_DEPEND_FLAGS) \
275+
-c -o $$(1) $$(2)
276+
CFG_LINK_C_$(1) = $$(CFG_GCCISH_CROSS)$$(CC) \
277+
$$(CFG_GCCISH_LINK_FLAGS) -o $$(1) \
278+
$$(CFG_GCCISH_LINK_FLAGS_$$(HOST_$(1))) \
279+
$$(CFG_GCCISH_DEF_FLAG)$$(3) $$(2) \
280+
$$(call CFG_INSTALL_NAME,$$(4))
281+
CFG_COMPILE_CXX_$(1) = $$(CFG_GCCISH_CROSS)$$(CXX) \
256282
$$(CFG_GCCISH_CFLAGS) \
283+
$$(CFG_GCCISH_CXXFLAGS) \
257284
$$(CFG_GCCISH_CFLAGS_$$(HOST_$(1))) \
258285
$$(CFG_GCC_CFLAGS) \
259286
$$(CFG_GCC_CFLAGS_$$(HOST_$(1))) \
260287
$$(CFG_DEPEND_FLAGS) \
261288
-c -o $$(1) $$(2)
262-
CFG_LINK_C_$(1) = $$(CFG_GCCISH_CROSS)$$(CXX) \
289+
CFG_LINK_CXX_$(1) = $$(CFG_GCCISH_CROSS)$$(CXX) \
263290
$$(CFG_GCCISH_LINK_FLAGS) -o $$(1) \
264291
$$(CFG_GCCISH_LINK_FLAGS_$$(HOST_$(1))) \
265292
$$(CFG_GCCISH_DEF_FLAG)$$(3) $$(2) \

mk/pp.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ else
99
$(S)src/test/*/*/*.rs) \
1010
$(wildcard $(S)src/fuzzer/*.rs) \
1111
$(wildcard $(S)src/cargo/*.rs)
12+
$(wildcard $(S)src/rusti/*.rs)
1213

1314
PP_INPUTS_FILTERED = $(shell echo $(PP_INPUTS) | xargs grep -L \
1415
"no-reformat\|xfail-pretty\|xfail-test")

mk/rt.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ RUNTIME_LIBS_$(1) := $$(LIBUV_LIB_$(1))
117117

118118
rt/$(1)/%.o: rt/%.cpp $$(MKFILE_DEPS)
119119
@$$(call E, compile: $$@)
120-
$$(Q)$$(call CFG_COMPILE_C_$(1), $$@, $$(RUNTIME_INCS_$(1)) \
120+
$$(Q)$$(call CFG_COMPILE_CXX_$(1), $$@, $$(RUNTIME_INCS_$(1)) \
121121
$$(SNAP_DEFINES)) $$<
122122

123123
rt/$(1)/%.o: rt/%.S $$(MKFILE_DEPS) \
@@ -133,7 +133,7 @@ rt/$(1)/$(CFG_RUNTIME): $$(RUNTIME_OBJS_$(1)) $$(MKFILE_DEPS) \
133133
$$(RUNTIME_DEF_$(1)) \
134134
$$(RUNTIME_LIBS_$(1))
135135
@$$(call E, link: $$@)
136-
$$(Q)$$(call CFG_LINK_C_$(1),$$@, $$(RUNTIME_OBJS_$(1)) \
136+
$$(Q)$$(call CFG_LINK_CXX_$(1),$$@, $$(RUNTIME_OBJS_$(1)) \
137137
$$(CFG_GCCISH_POST_LIB_FLAGS) $$(RUNTIME_LIBS_$(1)) \
138138
$$(CFG_LIBUV_LINK_FLAGS),$$(RUNTIME_DEF_$(1)),$$(CFG_RUNTIME))
139139

mk/rustllvm.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,14 @@ ALL_OBJ_FILES += $$(RUSTLLVM_OBJS_OBJS_$(1))
2525
rustllvm/$(1)/$(CFG_RUSTLLVM): $$(RUSTLLVM_OBJS_OBJS_$(1)) \
2626
$$(MKFILE_DEPS) $$(RUSTLLVM_DEF_$(1))
2727
@$$(call E, link: $$@)
28-
$$(Q)$$(call CFG_LINK_C_$(1),$$@,$$(RUSTLLVM_OBJS_OBJS_$(1)) \
28+
$$(Q)$$(call CFG_LINK_CXX_$(1),$$@,$$(RUSTLLVM_OBJS_OBJS_$(1)) \
2929
$$(CFG_GCCISH_PRE_LIB_FLAGS) $$(LLVM_LIBS_$(1)) \
3030
$$(CFG_GCCISH_POST_LIB_FLAGS) \
3131
$$(LLVM_LDFLAGS_$(1)),$$(RUSTLLVM_DEF_$(1)),$$(CFG_RUSTLLVM))
3232

3333
rustllvm/$(1)/%.o: rustllvm/%.cpp $$(MKFILE_DEPS) $$(LLVM_CONFIG_$(1))
3434
@$$(call E, compile: $$@)
35-
$$(Q)$$(call CFG_COMPILE_C_$(1), $$@, $$(LLVM_CXXFLAGS_$(1)) $$(RUSTLLVM_INCS_$(1))) $$<
35+
$$(Q)$$(call CFG_COMPILE_CXX_$(1), $$@, $$(LLVM_CXXFLAGS_$(1)) $$(RUSTLLVM_INCS_$(1))) $$<
3636
endef
3737

3838
# Instantiate template for all stages

mk/target.mk

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,29 @@ USE_SNAPSHOT_RUNTIME=0
1212
USE_SNAPSHOT_CORELIB=0
1313
USE_SNAPSHOT_STDLIB=0
1414

15+
LINENOISE_OBJS_$(2) := linenoise/$(2)/linenoise.o
16+
ALL_OBJ_FILES += $$(LINENOISE_OBJS_$(2))
17+
18+
linenoise/$(2)/linenoise.o: linenoise/linenoise.c $$(MKFILE_DEPS)
19+
@$$(call E, compile: $$@)
20+
$$(Q)$$(call CFG_COMPILE_C_$(2), $$@,) $$<
21+
22+
linenoise/$(2)/liblinenoise.a: $$(LINENOISE_OBJS_$(2))
23+
@$$(call E, link: $$@)
24+
$$(Q)ar rcs $$@ $$<
25+
1526
define TARGET_STAGE_N
1627

1728
$$(TLIB$(1)_T_$(2)_H_$(3))/libmorestack.a: \
1829
rt/$(2)/arch/$$(HOST_$(2))/libmorestack.a
1930
@$$(call E, cp: $$@)
2031
$$(Q)cp $$< $$@
2132

33+
$$(TLIB$(1)_T_$(2)_H_$(3))/liblinenoise.a: \
34+
linenoise/$(2)/liblinenoise.a
35+
@$$(call E, cp: $$@)
36+
$$(Q)cp $$< $$@
37+
2238
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_RUSTLLVM): \
2339
rustllvm/$(2)/$$(CFG_RUSTLLVM)
2440
@$$(call E, cp: $$@)

mk/tests.mk

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ check-stage$(1)-T-$(2)-H-$(3): \
229229
check-stage$(1)-T-$(2)-H-$(3)-bench \
230230
check-stage$(1)-T-$(2)-H-$(3)-pretty \
231231
check-stage$(1)-T-$(2)-H-$(3)-rustdoc \
232+
check-stage$(1)-T-$(2)-H-$(3)-rusti \
232233
check-stage$(1)-T-$(2)-H-$(3)-cargo \
233234
check-stage$(1)-T-$(2)-H-$(3)-doc-tutorial \
234235
check-stage$(1)-T-$(2)-H-$(3)-doc-tutorial-ffi \
@@ -289,6 +290,9 @@ check-stage$(1)-T-$(2)-H-$(3)-pretty-pretty: \
289290
check-stage$(1)-T-$(2)-H-$(3)-rustdoc: \
290291
check-stage$(1)-T-$(2)-H-$(3)-rustdoc-dummy
291292

293+
check-stage$(1)-T-$(2)-H-$(3)-rusti: \
294+
check-stage$(1)-T-$(2)-H-$(3)-rusti-dummy
295+
292296
check-stage$(1)-T-$(2)-H-$(3)-cargo: \
293297
check-stage$(1)-T-$(2)-H-$(3)-cargo-dummy
294298

@@ -371,6 +375,23 @@ check-stage$(1)-T-$(2)-H-$(3)-rustdoc-dummy: \
371375
$$(Q)$$(call CFG_RUN_TEST,$$<,$(2),$(3)) $$(TESTARGS) \
372376
--logfile tmp/check-stage$(1)-T-$(2)-H-$(3)-rustdoc.log
373377

378+
# Rules for the rusti test runner
379+
380+
$(3)/test/rustitest.stage$(1)-$(2)$$(X): \
381+
$$(RUSTI_CRATE) $$(RUSTI_INPUTS) \
382+
$$(TSREQ$(1)_T_$(2)_H_$(3)) \
383+
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_CORELIB) \
384+
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_STDLIB) \
385+
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBRUSTC)
386+
@$$(call E, compile_and_link: $$@)
387+
$$(STAGE$(1)_T_$(2)_H_$(3)) -o $$@ $$< --test
388+
389+
check-stage$(1)-T-$(2)-H-$(3)-rusti-dummy: \
390+
$(3)/test/rustitest.stage$(1)-$(2)$$(X)
391+
@$$(call E, run: $$<)
392+
$$(Q)$$(call CFG_RUN_TEST,$$<,$(2),$(3)) $$(TESTARGS) \
393+
--logfile tmp/check-stage$(1)-T-$(2)-H-$(3)-rusti.log
394+
374395
# Rules for the cargo test runner
375396

376397
$(3)/test/cargotest.stage$(1)-$(2)$$(X): \
@@ -756,6 +777,9 @@ check-stage$(1)-H-$(2)-pretty-pretty: \
756777
check-stage$(1)-H-$(2)-rustdoc: \
757778
$$(foreach target,$$(CFG_TARGET_TRIPLES), \
758779
check-stage$(1)-T-$$(target)-H-$(2)-rustdoc)
780+
check-stage$(1)-H-$(2)-rusti: \
781+
$$(foreach target,$$(CFG_TARGET_TRIPLES), \
782+
check-stage$(1)-T-$$(target)-H-$(2)-rusti)
759783
check-stage$(1)-H-$(2)-cargo: \
760784
$$(foreach target,$$(CFG_TARGET_TRIPLES), \
761785
check-stage$(1)-T-$$(target)-H-$(2)-cargo)
@@ -846,6 +870,9 @@ check-stage$(1)-H-all-pretty-pretty: \
846870
check-stage$(1)-H-all-rustdoc: \
847871
$$(foreach target,$$(CFG_TARGET_TRIPLES), \
848872
check-stage$(1)-H-$$(target)-rustdoc)
873+
check-stage$(1)-H-all-rusti: \
874+
$$(foreach target,$$(CFG_TARGET_TRIPLES), \
875+
check-stage$(1)-H-$$(target)-rusti)
849876
check-stage$(1)-H-all-cargo: \
850877
$$(foreach target,$$(CFG_TARGET_TRIPLES), \
851878
check-stage$(1)-H-$$(target)-cargo)
@@ -880,6 +907,7 @@ check-stage$(1)-pretty-rfail: check-stage$(1)-H-$$(CFG_HOST_TRIPLE)-pretty-rfail
880907
check-stage$(1)-pretty-bench: check-stage$(1)-H-$$(CFG_HOST_TRIPLE)-pretty-bench
881908
check-stage$(1)-pretty-pretty: check-stage$(1)-H-$$(CFG_HOST_TRIPLE)-pretty-pretty
882909
check-stage$(1)-rustdoc: check-stage$(1)-H-$$(CFG_HOST_TRIPLE)-rustdoc
910+
check-stage$(1)-rusti: check-stage$(1)-H-$$(CFG_HOST_TRIPLE)-rusti
883911
check-stage$(1)-cargo: check-stage$(1)-H-$$(CFG_HOST_TRIPLE)-cargo
884912
check-stage$(1)-doc-tutorial: check-stage$(1)-H-$$(CFG_HOST_TRIPLE)-doc-tutorial
885913
check-stage$(1)-doc-tutorial-ffi: check-stage$(1)-H-$$(CFG_HOST_TRIPLE)-doc-tutorial-ffi

mk/tools.mk

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ COMPILETEST_INPUTS := $(wildcard $(S)src/compiletest/*rs)
1212
CARGO_CRATE := $(S)src/cargo/cargo.rc
1313
CARGO_INPUTS := $(wildcard $(S)src/cargo/*rs)
1414

15+
# Rusti, the JIT REPL
16+
RUSTI_CRATE := $(S)src/rusti/rusti.rc
17+
RUSTI_INPUTS := $(wildcard $(S)src/rusti/*rs)
18+
1519
# Rustdoc, the documentation tool
1620
RUSTDOC_CRATE := $(S)src/rustdoc/rustdoc.rc
1721
RUSTDOC_INPUTS := $(wildcard $(S)src/rustdoc/*.rs)
@@ -62,12 +66,27 @@ $$(TBIN$(1)_T_$(4)_H_$(3))/cargo$$(X): \
6266
@$$(call E, compile_and_link: $$@)
6367
$$(STAGE$(1)_T_$(4)_H_$(3)) -o $$@ $$<
6468

69+
$$(TBIN$(1)_T_$(4)_H_$(3))/rusti$$(X): \
70+
$$(RUSTI_CRATE) $$(RUSTI_INPUTS) \
71+
$$(TSREQ$(1)_T_$(4)_H_$(3)) \
72+
$$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_CORELIB) \
73+
$$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_STDLIB) \
74+
$$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBRUSTC)
75+
@$$(call E, compile_and_link: $$@)
76+
$$(STAGE$(1)_T_$(4)_H_$(3)) -o $$@ $$<
77+
6578
$$(HBIN$(2)_H_$(4))/cargo$$(X): \
6679
$$(TBIN$(1)_T_$(4)_H_$(3))/cargo$$(X) \
6780
$$(HSREQ$(2)_H_$(4))
6881
@$$(call E, cp: $$@)
6982
$$(Q)cp $$< $$@
7083

84+
$$(HBIN$(2)_H_$(4))/rusti$$(X): \
85+
$$(TBIN$(1)_T_$(4)_H_$(3))/rusti$$(X) \
86+
$$(HSREQ$(2)_H_$(4))
87+
@$$(call E, cp: $$@)
88+
$$(Q)cp $$< $$@
89+
7190
$$(TBIN$(1)_T_$(4)_H_$(3))/rustdoc$$(X): \
7291
$$(RUSTDOC_CRATE) $$(RUSTDOC_INPUTS) \
7392
$$(TSREQ$(1)_T_$(4)_H_$(3)) \

0 commit comments

Comments
 (0)