X-Git-Url: http://nitlanguage.org diff --git a/Makefile b/Makefile index bb5e193..4f4f71b 100644 --- a/Makefile +++ b/Makefile @@ -14,52 +14,77 @@ # 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)) -bin/nitc: c_src/nitc src/parser/parser.nit - @echo '***************************************************************' - @echo '* Compile nitc from NIT source files *' - @echo '***************************************************************' - mkdir .nit_compile 2> /dev/null || true - cp c_src/*.o c_src/*.cksum .nit_compile - src/git-gen-version.sh - c_src/nitc ${NITCOPT} --clibdir c_src/clib -o bin/nitc -O src/nitc.nit +# Additional program directories (contrib and examples) that are buildable +extras = $(filter-out $(contrib_dir)/nitc/,$(all_contribs)) +extras += $(dir $(wildcard $(examples_dir)/*/Makefile)) -bin/nitdoc: bin/nitc - @echo '***************************************************************' - @echo '* Compile nitdoc from NIT source files *' - @echo '***************************************************************' - src/git-gen-version.sh - bin/nitc ${NITCOPT} -o bin/nitdoc -O src/nitdoc.nit +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" -doc/stdlib/index.html: bin/nitdoc - @echo '***************************************************************' - @echo '* Generate doc for NIT standard library *' - @echo '***************************************************************' - bin/nitdoc lib/*.nit -d doc/stdlib +more: + cd src; make more -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 +# 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 + +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 "Nitlanguage.org" \ + --custom-overview-text "

Documentation for the standard library of Nit
Version $$(git describe)
Date: $$(git show --format="%cd" | head -1)

" \ + --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 "Nitlanguage.org" \ + --custom-overview-text "

Documentation for the Nit tools
Version $$(git describe)
Date: $$(git show --format="%cd" | head -1)

" \ + --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