diff --git a/mk/check.mk b/mk/check.mk index 43829a4c951..40840a6440a 100644 --- a/mk/check.mk +++ b/mk/check.mk @@ -17,6 +17,21 @@ $(foreach submodule,$(SUBMODULES),\ $(eval $(call DEF_SUBMODULE_TEST_RULES,$(submodule)))) +define DEF_LIB_CRATE_TEST_RULES +servo-test-$(1): $$(DEPS_$(1)) + @$$(call E, compile: servo-test-$(1)) + $$(Q)$$(RUSTC) $$(RFLAGS_$(1)) --test -o $$@ $$< + +.PHONY: check-servo-$(1) +check-servo-$(1): servo-test-$(1) + @$$(call E, check: $(1)) + $$(Q)./servo-test-$(1) +endef + +$(foreach lib_crate,$(SERVO_LIB_CRATES),\ +$(eval $(call DEF_LIB_CRATE_TEST_RULES,$(lib_crate)))) + + # Testing targets servo-test: $(DEPS_servo) @@ -50,7 +65,7 @@ check-all: $(DEPS_CHECK_TARGETS_ALL) check-servo check-content tidy @$(call E, check: all) .PHONY: check-servo -check-servo: servo-test +check-servo: $(foreach lib_crate,$(SERVO_LIB_CRATES),check-servo-$(lib_crate)) servo-test @$(call E, check: servo) $(Q)./servo-test diff --git a/mk/clean.mk b/mk/clean.mk index ae995ef413e..448136fcdcd 100644 --- a/mk/clean.mk +++ b/mk/clean.mk @@ -47,5 +47,5 @@ clean-script: clean-servo: clean-gfx clean-util clean-net clean-script clean-msg @$(call E, "cleaning servo") - $(Q)rm -f servo servo-test libservo*.so + $(Q)rm -f servo servo-test $(foreach lib_crate,$(SERVO_LIB_CRATES),servo-test-$(lib_crate)) libservo*.so $(Q)cd $(BINDINGS_SRC) && rm -f *.pkl