summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile87
1 files changed, 45 insertions, 42 deletions
diff --git a/Makefile b/Makefile
index 3842941..1297fc8 100644
--- a/Makefile
+++ b/Makefile
@@ -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