| NAME = NanoWasm |
| SPECTECDIR = ../.. |
| SPECTEC = $(SPECTECDIR)/spectec |
| SPHINX = sphinx-build |
| BUILDDIR = _build |
| |
| |
| # Menu |
| |
| default: |
| @echo "Targets available:" |
| @echo "make check (run SpecTec)" |
| @echo "make rst (run SpecTec splicing)" |
| @echo "make html (run SpecTec + Sphinx)" |
| @echo "make latex (run SpecTec + Sphinx)" |
| @echo "make pdf (run SpecTec + Sphinx + Latex)" |
| @echo "make all (run everything)" |
| @echo "make out (run everything and update output directory)" |
| @echo "make spectec (build updir SpecTec)" |
| |
| all: rst html latex pdf |
| |
| |
| # Building SpecTec itself |
| |
| spectec: |
| (cd $(SPECTECDIR); make exe >/dev/null) |
| |
| |
| # Running SpecTec |
| |
| check: $(NAME).spectec |
| $(SPECTEC) $(NAME).spectec |
| |
| |
| # Running SpecTec splicing |
| |
| RSTFILE = $(NAME).rst |
| |
| rst: $(RSTFILE) |
| |
| $(RSTFILE): $(NAME).rst.in $(NAME).spectec |
| $(SPECTEC) $(NAME).spectec --splice-sphinx -p $< -o $@ |
| |
| |
| # Running Sphinx |
| |
| HTMLFILE = $(BUILDDIR)/html/$(NAME).html |
| TEXFILE = $(BUILDDIR)/latex/$(NAME).tex |
| |
| html: $(HTMLFILE) |
| |
| $(HTMLFILE): $(RSTFILE) conf.py |
| $(SPHINX) -b html -d $(BUILDDIR)/doctrees . $(BUILDDIR)/html |
| |
| latex: $(TEXFILE) |
| |
| $(TEXFILE): $(RSTFILE) conf.py |
| $(SPHINX) -b latex -d $(BUILDDIR)/doctrees . $(BUILDDIR)/latex |
| |
| |
| # Running Latex |
| |
| PDFFILE = $(BUILDDIR)/latex/$(NAME).pdf |
| |
| pdf: $(PDFFILE) |
| |
| $(PDFFILE): $(TEXFILE) |
| $(MAKE) -C $(BUILDDIR)/latex LATEXMKOPTS=" </dev/null" all-pdf |
| |
| |
| # Copying to output directory |
| |
| out: $(PDFFILE) $(HTMLFILE) |
| cp -rf $^ output |
| |
| |
| # Clean-up |
| |
| clean: |
| rm -f $(NAME).rst |
| rm -rf $(BUILDDIR) |