Merge: doc: fixed some typos and other misc. corrections
[nit.git] / Makefile
index 87df8a1..4f4f71b 100644 (file)
--- a/Makefile
+++ b/Makefile
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-NITCOPT=
 
-all: tools doc/stdlib/index.html
+contrib_dir = ./contrib
+examples_dir = ./examples
+all_contribs = $(dir $(wildcard $(contrib_dir)/*/Makefile))
 
-docs: doc/stdlib/index.html doc/nitc/index.html doc/newmodel/index.html
-       #cd doc; make
+# Additional program directories (contrib and examples) that are buildable
+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 `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
 
 tools:
        cd src; make
@@ -27,46 +48,43 @@ tools:
 bin/nitdoc:
        cd src; make ../bin/nitdoc
 
-doc/stdlib/index.html: bin/nitdoc
+bin/nitls:
+       cd src; make ../bin/nitls
+
+doc/stdlib/index.html: bin/nitdoc bin/nitls
        @echo '***************************************************************'
        @echo '* Generate doc for NIT standard library                       *'
        @echo '***************************************************************'
-       bin/nitdoc lib/* -d doc/stdlib --public \
+       bin/nitdoc lib -d doc/stdlib \
                --custom-title "Nit Standard Library" \
-               --custom-menu-items "<li><a href=\"http://nitlanguage.org/\">Nitlanguage.org</a></li>" \
+               --custom-brand "<a href=\"http://nitlanguage.org/\">Nitlanguage.org</a>" \
                --custom-overview-text "<p>Documentation for the standard library of Nit<br/>Version $$(git describe)<br/>Date: $$(git show --format="%cd" | head -1)</p>" \
                --custom-footer-text "Nit standard library. Version $$(git describe)." \
-               --github nit \
-               --source "https://github.com/privat/nit/blob/$$(git show --format="%H" | head -1)/%f#L%l-%L"
+               --piwik-tracker "pratchett.info.uqam.ca/piwik/" \
+               --piwik-site-id "2" \
 
-doc/nitc/index.html: bin/nitdoc
-       bin/nitdoc src/nitc.nit src/nitdoc.nit src/nits.nit -d doc/nitc \
-               --custom-title "Nit Compiler and Tools" \
-               --custom-menu-items "<li><a href=\"http://nitlanguage.org/\">Nitlanguage.org</a></li>" \
-               --custom-overview-text "<p>Documentation for the Nit compiler and tools<br/>Version $$(git describe)<br/>Date: $$(git show --format="%cd" | head -1)</p>" \
-               --custom-footer-text "Nit compiler. Version $$(git describe)." \
-               --github nit \
-               --source "https://github.com/privat/nit/blob/$$(git show --format="%H" | head -1)/%f#L%l-%L"
+doc/nitc/index.html: bin/nitdoc bin/nitls
+       bin/nitdoc lib src/nit*.nit src/test_*.nit -d doc/nitc \
+               --private \
+               --custom-title "Nit Compilers and Tools" \
+               --custom-brand "<a href=\"http://nitlanguage.org/\">Nitlanguage.org</a>" \
+               --custom-overview-text "<p>Documentation for the Nit tools<br/>Version $$(git describe)<br/>Date: $$(git show --format="%cd" | head -1)</p>" \
+               --custom-footer-text "Nit tools. Version $$(git describe)." \
+               --piwik-tracker "pratchett.info.uqam.ca/piwik/" \
+               --piwik-site-id "3"
 
-doc/newmodel/index.html: bin/nitdoc
-       bin/nitdoc src/nit.nit src/nitmetrics.nit src/nitg.nit -d doc/newmodel \
-               --custom-title "Nit New Model" \
-               --custom-menu-items "<li><a href=\"http://nitlanguage.org/\">Nitlanguage.org</a></li>" \
-               --custom-overview-text "<p>Documentation for the Nit tools based on the new metamodel<br/>Version $$(git describe)<br/>Date: $$(git show --format="%cd" | head -1)</p>" \
-               --custom-footer-text "Nit new metamodel. Version $$(git describe)." \
-               --github nit \
-               --source "https://github.com/privat/nit/blob/$$(git show --format="%H" | head -1)/%f#L%l-%L"
+man:
+       # Setup PATH to find nitc
+       PATH=$$PWD/bin:$$PATH $(MAKE) -C share/man
 
 clean:
-       rm -rf -- .nit_compile 2> /dev/null || true
+       rm -rf -- doc/stdlib doc/nitc || true
        cd c_src; make clean
        cd src; make clean
-       cd doc; make clean
        cd tests; make clean
-
-distclean: clean
-       rm -rf -- bin/nitc bin/nitdoc bin/nits doc/stdlib doc/nitc/ 2> /dev/null || true
-       cd c_src; make distclean
-       cd src/parser; make distclean
-       cd doc; make distclean
-       cd tests; make distclean
+       cd share/man; make clean
+       -for directory in $(extras); do \
+               (echo "CLEANING $$directory" && cd "$$directory" && $(MAKE) clean); \
+       done
+       @echo ""
+       @echo "Nit was succesfully cleaned."
\ No newline at end of file