|
|
- NAME=zsh-syntax-highlighting
-
- INSTALL?=install -c
- PREFIX?=/usr/local
- SHARE_DIR?=$(DESTDIR)$(PREFIX)/share/$(NAME)
- DOC_DIR?=$(DESTDIR)$(PREFIX)/share/doc/$(NAME)
- ZSH?=zsh # zsh binary to run tests with
-
- all:
- cd docs && \
- cp highlighters.md all.md && \
- printf '\n\nIndividual highlighters documentation\n=====================================' >> all.md && \
- for doc in highlighters/*.md; do printf '\n\n'; cat "$$doc"; done >> all.md
-
- install: all
- $(INSTALL) -d $(SHARE_DIR)
- $(INSTALL) -d $(DOC_DIR)
- cp .version zsh-syntax-highlighting.zsh $(SHARE_DIR)
- cp COPYING.md README.md changelog.md $(DOC_DIR)
- sed -e '1s/ .*//' -e '/^\[build-status-[a-z]*\]: /d' < README.md > $(DOC_DIR)/README.md
- if [ x"true" = x"`git rev-parse --is-inside-work-tree 2>/dev/null`" ]; then \
- git rev-parse HEAD; \
- else \
- cat .revision-hash; \
- fi > $(SHARE_DIR)/.revision-hash
- :
- # The [ -e ] check below is to because sh evaluates this with (the moral
- # equivalent of) NONOMATCH in effect, and highlighters/*.zsh has no matches.
- for dirname in highlighters highlighters/*/ ; do \
- $(INSTALL) -d $(SHARE_DIR)/"$$dirname"; \
- for fname in "$$dirname"/*.zsh ; do [ -e "$$fname" ] && cp "$$fname" $(SHARE_DIR)"/$$dirname"; done; \
- done
- cp -R docs/* $(DOC_DIR)
-
- clean:
- rm -f docs/all.md
-
- test:
- @$(ZSH) -fc 'echo ZSH_PATCHLEVEL=$$ZSH_PATCHLEVEL'
- @result=0; \
- for test in highlighters/*; do \
- if [ -d $$test/test-data ]; then \
- echo "Running test $${test##*/}"; \
- env -i QUIET=$$QUIET $${TERM:+"TERM=$$TERM"} $(ZSH) -f tests/test-highlighting.zsh "$${test##*/}"; \
- : $$(( result |= $$? )); \
- fi \
- done; \
- exit $$result
-
- quiet-test:
- $(MAKE) test QUIET=y
-
- perf:
- @result=0; \
- for test in highlighters/*; do \
- if [ -d $$test/test-data ]; then \
- echo "Running test $${test##*/}"; \
- $(ZSH) -f tests/test-perfs.zsh "$${test##*/}"; \
- : $$(( result |= $$? )); \
- fi \
- done; \
- exit $$result
-
- .PHONY: all install clean test perf
|