aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2015-01-24 21:35:03 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2015-01-24 21:39:07 -0800
commit829b089c80895d9a78938c5bc7747aea1cd48eb6 (patch)
tree53bd534741a90c547c5d87039efa5ee625da8081 /Makefile
parent5ef31853d5161d4b5a2dfc0df94e6eaaeb3215d0 (diff)
Removed implementation-specific material from repository.
The C and JS implementations are being split off into different repositories. This repository will just have the spec itself.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile149
1 files changed, 0 insertions, 149 deletions
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 62b0023..0000000
--- a/Makefile
+++ /dev/null
@@ -1,149 +0,0 @@
-SRCDIR=src
-DATADIR=data
-BUILDDIR?=build
-GENERATOR?=Unix Makefiles
-MINGW_BUILDDIR?=build-mingw
-MINGW_INSTALLDIR?=windows
-SPEC=spec.txt
-SITE=_site
-SPECVERSION=$(shell perl -ne 'print $$1 if /^version: *([0-9.]+)/' $(SPEC))
-FUZZCHARS?=2000000 # for fuzztest
-BENCHDIR=bench
-BENCHFILE=$(BENCHDIR)/benchinput.md
-ALLTESTS=alltests.md
-NUMRUNS?=10
-CMARK=$(BUILDDIR)/src/cmark
-PROG?=$(CMARK)
-BENCHINP?=README.md
-VERSION?=$(SPECVERSION)
-RELEASE?=CommonMark-$(VERSION)
-INSTALL_PREFIX?=/usr/local
-
-.PHONY: all cmake_build spec leakcheck clean fuzztest dingus upload test update-site upload-site debug mingw archive bench astyle
-
-all: cmake_build man/man3/cmark.3
-
-$(CMARK): cmake_build
-
-cmake_build: $(BUILDDIR)
- @make -j2 -C $(BUILDDIR)
- @echo "Binaries can be found in $(BUILDDIR)/src"
-
-$(BUILDDIR):
- @cmake --version > /dev/null || (echo "You need cmake to build this program: http://www.cmake.org/download/" && exit 1)
- mkdir -p $(BUILDDIR); \
- cd $(BUILDDIR); \
- cmake .. \
- -G "$(GENERATOR)" \
- -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) \
- -DCMAKE_INSTALL_PREFIX=$(INSTALL_PREFIX)
-
-install: $(BUILDDIR)
- make -C $(BUILDDIR) install
-
-debug:
- mkdir -p $(BUILDDIR); \
- cd $(BUILDDIR); \
- cmake .. -DCMAKE_BUILD_TYPE=Debug; \
- make
-
-mingw:
- mkdir -p $(MINGW_BUILDDIR); \
- cd $(MINGW_BUILDDIR); \
- cmake .. -DCMAKE_TOOLCHAIN_FILE=../toolchain-mingw32.cmake -DCMAKE_INSTALL_PREFIX=$(MINGW_INSTALLDIR) ;\
- make && make install
-
-man/man3/cmark.3: src/cmark.h | $(CMARK)
- python3 man/make_man_page.py $< > $@ \
-
-archive:
- git archive --prefix=$(RELEASE)/ -o $(RELEASE).tar.gz HEAD
- git archive --prefix=$(RELEASE)/ -o $(RELEASE).zip HEAD
-
-clean:
- rm -rf $(BUILDDIR) $(MINGW_BUILDDIR) $(MINGW_INSTALLDIR)
-
-# We include html_unescape.h in the repository, so this shouldn't
-# normally need to be generated.
-$(SRCDIR)/html_unescape.h: $(SRCDIR)/html_unescape.gperf
- gperf -L ANSI-C -I -t -N find_entity -H hash_entity -K entity -C -l \
- -F ',{0}' --null-strings -m5 -P -Q entity_pool $< > $@
-
-# We include case_fold_switch.inc in the repository, so this shouldn't
-# normally need to be generated.
-$(SRCDIR)/case_fold_switch.inc: $(DATADIR)/CaseFolding-3.2.0.txt
- perl tools/mkcasefold.pl < $< > $@
-
-# We include scanners.c in the repository, so this shouldn't
-# normally need to be generated.
-$(SRCDIR)/scanners.c: $(SRCDIR)/scanners.re
- re2c --case-insensitive -b -i --no-generation-date -o $@ $<
-
-test: $(SPEC) cmake_build
- make -C $(BUILDDIR) test || (cat $(BUILDDIR)/Testing/Temporary/LastTest.log && exit 1)
-
-$(ALLTESTS): spec.txt
- python3 test/spec_tests.py --spec $< --dump-tests | python3 -c 'import json; import sys; tests = json.loads(sys.stdin.read()); print("\n".join([test["markdown"] for test in tests]))' > $@
-
-leakcheck: $(ALLTESTS)
- cat $< | valgrind --leak-check=full --dsymutil=yes --error-exitcode=1 $(PROG) >/dev/null
- cat $< | valgrind --leak-check=full --dsymutil=yes --error-exitcode=1 $(PROG) -t man >/dev/null
- cat $< | valgrind --leak-check=full --dsymutil=yes --error-exitcode=1 $(PROG) -t xml >/dev/null
-
-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'
-
-progit:
- git clone https://github.com/progit/progit.git
-
-$(BENCHFILE): progit
- echo "" > $@
- for lang in ar az be ca cs de en eo es es-ni fa fi fr hi hu id it ja ko mk nl no-nb pl pt-br ro ru sr th tr uk vi zh zh-tw; do \
- cat progit/$$lang/*/*.markdown >> $@; \
- done
-
-bench: $(BENCHFILE)
- { sudo renice 99 $$$$; \
- for x in `seq 1 $(NUMRUNS)` ; do \
- /usr/bin/env time -p $(PROG) </dev/null >/dev/null ; \
- /usr/bin/env time -p $(PROG) $< >/dev/null ; \
- done \
- } 2>&1 | grep 'real' | awk '{print $$2}' | python3 'bench/stats.py'
-
-astyle:
- astyle --style=linux -t -p -r 'src/*.c' --exclude=scanners.c
- astyle --style=linux -t -p -r 'src/*.h' --exclude=html_unescape.h
-
-operf: $(CMARK)
- operf $< < $(BENCHINP) > /dev/null
-
-distclean: clean
- -rm -rf *.dSYM
- -rm -f README.html
- -rm -f spec.md fuzz.txt spec.html
- -rm -rf $(BENCHFILE) $(ALLTESTS) progit
-
-### Spec ###
-
-spec.md: $(SPEC)
- python3 tools/makespec.py markdown > $@
-
-spec.html: spec.txt tools/template.html ${CMARK}
- python3 tools/makespec.py html > $@
-
-spec.pdf: spec.md tools/template.tex tools/specfilter.hs
- pandoc -s $< --template tools/template.tex \
- --filter tools/specfilter.hs -o $@ --latex-engine=xelatex --toc \
- --number-sections -V documentclass=report -V tocdepth=2 \
- -V classoption=twosides
-
-### Website ###
-
-update-site: spec
- make -C $(SITE) update
-
-upload-site: spec
- make -C $(SITE) upload