a_star: don't crash on deserialization errors and limit static types
[nit.git] / Makefile
index d517613..3ca637e 100644 (file)
--- a/Makefile
+++ b/Makefile
 # limitations under the License.
 
 
+contrib_dir = ./contrib
+examples_dir = ./examples
+all_contribs = $(dir $(wildcard $(contrib_dir)/*/Makefile))
+
 # Additional program directories (contrib and examples) that are buildable
-PROGS=$(dir $(wildcard examples/*/Makefile contrib/*/Makefile))
+extras = $(filter-out $(contrib_dir)/nitc/,$(all_contribs))
+extras += $(dir $(wildcard $(examples_dir)/*/Makefile))
 
 all: tools man
        @echo ""
@@ -24,9 +29,13 @@ all: tools man
        @echo "To configure your shell environment, execute the following command:"
        @echo "    source misc/nit_env.sh install"
 
-# Compile all programs in $PROGS
+# Compile all programs in `contrib`, `examples` and `src`.
+#
+# Furthermore, build the toolchain’s `man` pages.
 full: all
-       for m in $(PROGS); do $(MAKE) -C "$$m" || exit 1; done
+       for directory in $(extras); do \
+               (cd "$${directory}" && $(MAKE)) || exit 1; \
+       done
 
 docs: doc/stdlib/index.html doc/nitc/index.html
 
@@ -79,6 +88,6 @@ clean:
        cd src; make clean
        cd tests; make clean
        cd share/man; make clean
-       for m in $(PROGS); do \
-               $(MAKE) clean -C "$$m"; \
-               done || true
+       for directory in $(extras); do \
+               (cd "$$directory" && $(MAKE) clean); \
+       done