# See the License for the specific language governing permissions and
# limitations under the License.
-NITCOPT=
-all: bin/nitc bin/nitdoc 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
+# 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"
-bin/nitc: c_src/nitc src/parser/parser.nit
- @echo '***************************************************************'
- @echo '* Compile nitc from NIT source files *'
- @echo '***************************************************************'
- src/git-gen-version.sh
- cd src; ../c_src/nitc ${NITCOPT} --clibdir ../c_src/clib -o ../bin/nitc -O -v nitc.nit
+more:
+ cd src; make more
-bin/nitdoc: bin/nitc
- @echo '***************************************************************'
- @echo '* Compile nitdoc from NIT source files *'
- @echo '***************************************************************'
- src/git-gen-version.sh
- cd src; ../bin/nitc ${NITCOPT} -o ../bin/nitdoc -O -v nitdoc.nit
+# 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
-doc/stdlib/index.html: bin/nitdoc
- @echo '***************************************************************'
- @echo '* Generate doc for NIT standard library *'
- @echo '***************************************************************'
- bin/nitdoc lib/*.nit -d doc/stdlib --public --overview-text '<p>Documentation for the standard library of Nit</p>' --footer-text 'Nit standard library. Version '`git describe -- lib`'.'
+docs: doc/stdlib/index.html doc/nitc/index.html
-doc/nitc/index.html: bin/nitdoc
- bin/nitdoc src/nitc.nit src/nitdoc.nit -d doc/nitc --overview-text '<p>Documentation for the nit compiler</p>' --footer-text 'Nit compiler. Version '`git describe`'.'
+tools:
+ cd src; make
-c_src/nitc: c_src/*.c c_src/*.h c_src/nitc._build.sh c_src/Makefile
- @echo '***************************************************************'
- @echo '* Compile nitc from C source files *'
- @echo '***************************************************************'
- cd c_src; make
+bin/nitdoc:
+ cd src; make ../bin/nitdoc
-src/parser/parser.nit:
+bin/nitls:
+ cd src; make ../bin/nitls
+
+doc/stdlib/index.html: bin/nitdoc bin/nitls
@echo '***************************************************************'
- @echo '* Generate nit parser *'
+ @echo '* Generate doc for NIT standard library *'
@echo '***************************************************************'
- cd src/parser; make
+ bin/nitdoc lib -d doc/stdlib \
+ --custom-title "Nit Standard Library" \
+ --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)." \
+ --piwik-tracker "pratchett.info.uqam.ca/piwik/" \
+ --piwik-site-id "2" \
-clean:
- rm -rf -- .nit_compile 2> /dev/null || true
- cd c_src; make clean
- cd src/parser; make clean
- cd tests; make clean
+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"
-dist-clean: clean
- cd c_src; make dist-clean
- cd src/parser; make dist-clean
- rm -rf -- bin/nitc bin/nitdoc doc/stdlib
+man:
+ # Setup PATH to find nitc
+ PATH=$$PWD/bin:$$PATH $(MAKE) -C share/man
+clean:
+ rm -rf -- doc/stdlib doc/nitc || true
+ cd c_src; make clean
+ cd src; make clean
+ cd tests; make clean
+ 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