diff options
author | John MacFarlane <jgm@berkeley.edu> | 2015-01-24 21:35:03 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2015-01-24 21:39:07 -0800 |
commit | 829b089c80895d9a78938c5bc7747aea1cd48eb6 (patch) | |
tree | 53bd534741a90c547c5d87039efa5ee625da8081 /Makefile | |
parent | 5ef31853d5161d4b5a2dfc0df94e6eaaeb3215d0 (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-- | Makefile | 149 |
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 |