diff --git a/Makefile b/Makefile index 9d8d17163..2886fdb7b 100644 --- a/Makefile +++ b/Makefile @@ -6,8 +6,8 @@ RM := rm RUSTCFLAGS := --opt-level=3 RMFLAGS := -# Output names -EXES := \ +# Possible programs +PROGS := \ cat \ dirname \ echo \ @@ -21,10 +21,20 @@ EXES := \ whoami \ yes \ +BUILD ?= $(PROGS) -TESTS := \ +# Output names +EXES := \ + $(filter $(BUILD),$(filter-out $(DONT_BUILD),$(PROGS))) + +# Programs with usable tests +TEST_PROGS := \ cat \ +TEST ?= $(TEST_PROGS) + +TESTS := \ + $(filter $(TEST),$(filter-out $(DONT_TEST),$(filter $(BUILD),$(filter-out $(DONT_BUILD),$(TEST_PROGS))))) # Utils stuff EXES_PATHS := $(addprefix build/,$(EXES)) diff --git a/README.md b/README.md index 759b5d1cb..bc4adc52b 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,42 @@ are either old, abandonned, hosted on CVS, written in platform-specific C, etc. Rust provides a good platform-agnostic way of writing systems utils that are easy to compile anywhere, and this is as good a way as any to try and learn it. +Build Instructions +------------------ + +To simply build all available utilities: +``` +make +``` + +To build all but a few of the available utilities: +``` +make DONT_BUILD='UTILITY_1 UTILITY_2' +``` + +To build only a few of the available utilities: +``` +make BUILD='UTILITY_1 UTILITY_2' +``` + +Test Instructions +----------------- + +To simply test all available utilities: +``` +make test +``` + +To test all but a few of the available utilities: +``` +make DONT_TEST='UTILITY_1 UTILITY_2' test +``` + +To test only a few of the available utilities: +``` +make TEST='UTILITY_1 UTILITY_2' test +``` + Contribute ----------