SRCDIR=src | |
DATADIR=data | |
BUILDDIR=build | |
INSTALLDIR=windows | |
SPEC=spec.txt | |
PROG=$(BUILDDIR)\src\cmark.exe | |
GENERATOR=NMake Makefiles | |
all: $(BUILDDIR) | |
@pushd $(BUILDDIR) && $(MAKE) /nologo && popd | |
$(BUILDDIR): | |
@cmake --version > nul || (echo "You need cmake to build this program: http://www.cmake.org/download/" && exit 1) | |
-mkdir $(BUILDDIR) 2> nul | |
pushd $(BUILDDIR) && \ | |
cmake \ | |
-G "$(GENERATOR)" \ | |
-D CMAKE_BUILD_TYPE=$(BUILD_TYPE) \ | |
-D CMAKE_INSTALL_PREFIX=$(INSTALLDIR) \ | |
.. && \ | |
popd | |
install: all | |
@pushd $(BUILDDIR) && $(MAKE) /nologo install && popd | |
clean: | |
-rmdir /s /q $(BUILDDIR) $(MINGW_INSTALLDIR) 2> nul | |
$(SRCDIR)\case_fold_switch.inc: $(DATADIR)\CaseFolding-3.2.0.txt | |
perl mkcasefold.pl < $? > $@ | |
test: $(SPEC) all | |
@pushd $(BUILDDIR) && $(MAKE) /nologo test ARGS="-V" && popd | |
distclean: clean | |
del /q src\scanners.c 2> nul | |
del /q spec.md spec.html 2> nul | |
### Spec ### | |
spec.html: spec.txt template.html $(PROG) | |
python3 makespec.py html > $@ | |
spec.md: spec.txt | |
python3 makespec.py markdown > $@ | |
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 |