Merge: curl: basic Unix domain socket support
[nit.git] / Makefile
index da0acf0..5029f2a 100644 (file)
--- a/Makefile
+++ b/Makefile
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-NITCOPT=
+
+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 ""
+       @echo "Congratulations! Nit was succesfully compiled."
+       @echo "To configure your shell environment, execute the following command:"
+       @echo "    source misc/nit_env.sh install"
+
+more:
+       cd src; make more
 
-# Compile all programs in $PROGS
-full: all
-       for m in $(PROGS); do $(MAKE) -C "$$m" || exit 1; done
+# Compile all programs in `contrib`, `examples` and `src`.
+#
+# Furthermore, build the toolchain’s `man` pages.
+full: all more
+       for directory in $(extras); do \
+               (cd "$${directory}" && $(MAKE)) || exit 1; \
+       done
 
 docs: doc/stdlib/index.html doc/nitc/index.html
 
@@ -67,7 +82,8 @@ doc/nitc/index.html: bin/nitdoc bin/nitls
                --piwik-site-id "3"
 
 man:
-       $(MAKE) -C share/man
+       # Setup PATH to find nitc
+       PATH=$$PWD/bin:$$PATH $(MAKE) -C share/man
 
 clean:
        rm -rf -- doc/stdlib doc/nitc || true
@@ -75,6 +91,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