diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 87 |
1 files changed, 45 insertions, 42 deletions
@@ -29,49 +29,54 @@ debug: cmake .. -DCMAKE_BUILD_TYPE=Debug; \ cmake --build . -tarball: +tarball: spec.html rm -rf $(PKGDIR); \ mkdir -p $(PKGDIR)/man/man1; \ cp -r src $(PKGDIR)/; \ + cp spec.html $(PKGDIR); \ cp CMakeLists.txt $(PKGDIR); \ + perl -ne '$$p++ if /^### JavaScript/; print if (!$$p)' Makefile > $(PKGDIR)/Makefile; \ cp man/man1/cmark.1 $(PKGDIR)/man/man1/; \ cp README.md LICENSE spec.txt runtests.pl $(PKGDIR)/; \ - tar cvzf cmark-$(SPECVERSION).tar.gz $(PKGDIR) + tar czf cmark-$(SPECVERSION).tar.gz $(PKGDIR); \ + rm -rf $(PKGDIR) clean: rm -rf $(BUILDDIR) $(PROG): all +$(SRCDIR)/case_fold_switch.inc: $(DATADIR)/CaseFolding-3.2.0.txt + perl mkcasefold.pl < $< > $@ + man/man1/cmark.1: man/cmark.1.md pandoc $< -o $@ -s -t man -README.html: README.md template.html - pandoc --template template.html -S -s -t html5 -o $@ $< - -spec: test spec.html +test: $(SPEC) + perl runtests.pl $< $(PROG) -spec.md: $(SPEC) - perl spec2md.pl < $< > $@ +testlib: $(SPEC) + perl runtests.pl $< ./wrapper.py -spec.html: spec.md template.html - pandoc --no-highlight --number-sections --template template.html -s --toc -S $< | \ - perl -pe 's/a href="@([^"]*)"/a id="\1" href="#\1" class="definition"/g' | \ - perl -pe 's/␣/<span class="space"> <\/span>/g' \ - > $@ +leakcheck: $(PROG) + cat leakcheck.md | valgrind --leak-check=full --dsymutil=yes $(PROG) +fuzztest: + { for i in `seq 1 10`; do \ + cat /dev/urandom | head -c $(FUZZCHARS) | iconv -f latin1 -t utf-8 | tee fuzz-$$i.txt | \ + /usr/bin/env time -p $(PROG) >/dev/null && rm fuzz-$$i.txt ; \ + done } 2>&1 | grep 'user\|abnormally' -spec.pdf: spec.md template.tex specfilter.hs - pandoc -s $< --template template.tex \ - --filter ./specfilter.hs -o $@ --latex-engine=xelatex --toc \ - --number-sections -V documentclass=report -V tocdepth=2 \ - -V classoption=twosides +operf: $(PROG) + operf $(PROG) <$(BENCHINP) >/dev/null -test: $(SPEC) - perl runtests.pl $< $(PROG) +distclean: clean + -rm -f js/commonmark.js + -rm -rf *.dSYM + -rm -f README.html + -rm -f spec.md fuzz.txt spec.html -testlib: $(SPEC) - perl runtests.pl $< ./wrapper.py +### JavaScript ### js/commonmark.js: js/lib/index.js ${JSMODULES} browserify --standalone commonmark $< -o $@ @@ -85,35 +90,33 @@ jshint: benchjs: node js/bench.js ${BENCHINP} -$(SRCDIR)/case_fold_switch.inc: $(DATADIR)/CaseFolding-3.2.0.txt - perl mkcasefold.pl < $< > $@ +npm: + cd js; npm publish dingus: js/commonmark.js echo "Starting dingus server at http://localhost:9000" && python -m SimpleHTTPServer 9000 -leakcheck: $(PROG) - cat leakcheck.md | valgrind --leak-check=full --dsymutil=yes $(PROG) +### Spec ### -operf: $(PROG) - operf $(PROG) <$(BENCHINP) >/dev/null +spec.md: $(SPEC) + perl spec2md.pl < $< > $@ -fuzztest: - { for i in `seq 1 10`; do \ - cat /dev/urandom | head -c $(FUZZCHARS) | iconv -f latin1 -t utf-8 | tee fuzz-$$i.txt | \ - /usr/bin/env time -p $(PROG) >/dev/null && rm fuzz-$$i.txt ; \ - done } 2>&1 | grep 'user\|abnormally' +spec.html: spec.md template.html + pandoc --no-highlight --number-sections --template template.html -s --toc -S $< | \ + perl -pe 's/a href="@([^"]*)"/a id="\1" href="#\1" class="definition"/g' | \ + perl -pe 's/␣/<span class="space"> <\/span>/g' \ + > $@ + +spec.pdf: spec.md template.tex specfilter.hs + pandoc -s $< --template template.tex \ + --filter ./specfilter.hs -o $@ --latex-engine=xelatex --toc \ + --number-sections -V documentclass=report -V tocdepth=2 \ + -V classoption=twosides + +### Website ### update-site: spec.html js/commonmark.js make -C $(SITE) update upload-site: spec.html make -C $(SITE) upload - -npm: - cd js; npm publish - -distclean: clean - -rm -f js/commonmark.js - -rm -rf *.dSYM - -rm -f README.html - -rm -f spec.md fuzz.txt spec.html |