1######################################################################
2# This file was autogenerated by 'configure'. Do not edit it directly!
3# Invocation was: ./configure
4######################################################################
5WITH_LOCK=yes
6WITH_DEFER=yes
7WITH_CACHE=yes
8WITH_DEBUG=yes
9WITH_PARALLEL=yes
10WITH_EXTENSIONS=yes
11WITH_COMPLETION=yes
12######################################################################
13SHELL     ?= sh
14PREFIX    ?= /usr/local
15
16CRAM_OPTS ?= -v
17
18PROJECT   ?= $(CURDIR)
19BIN       ?= ${PROJECT}/bin
20SRC       ?= ${PROJECT}/src
21TESTS     ?= ${PROJECT}/tests
22TOOLS     ?= ${PROJECT}/tools
23TEST      ?= ${PROJECT}/tests
24
25ZSH_VERSION     ?= zsh-5.3
26CONTAINER_ROOT  ?= /antigen
27USE_CONTAINER   ?= docker
28CONTAINER_IMAGE ?= desyncr/zsh-docker-
29
30TARGET     ?= ${BIN}/antigen.zsh
31SRC        ?= ${SRC}
32EXTENSIONS ?=
33GLOB       ?=
34
35WITH_DEBUG      ?= yes
36WITH_EXTENSIONS ?= yes
37WITH_DEFER      ?= yes
38WITH_LOCK       ?= yes
39WITH_PARALLEL   ?= yes
40WITH_CACHE      ?= yes
41WITH_COMPLETION ?= yes
42
43ifeq (${WITH_EXTENSIONS}, yes)
44EXTENSIONS += ${SRC}/ext/ext.zsh
45endif
46ifeq (${WITH_DEFER}, yes)
47EXTENSIONS += ${SRC}/ext/defer.zsh
48endif
49ifeq (${WITH_LOCK}, yes)
50EXTENSIONS += ${SRC}/ext/lock.zsh
51endif
52ifeq (${WITH_PARALLEL}, yes)
53EXTENSIONS += ${SRC}/ext/parallel.zsh
54endif
55ifeq (${WITH_CACHE}, yes)
56GLOB       += ${SRC}/boot.zsh
57EXTENSIONS += ${SRC}/ext/cache.zsh
58endif
59
60LIB     = $(filter-out ${SRC}/lib/log.zsh,$(sort $(wildcard ${PWD}/src/lib/*.zsh)))
61HELPERS = $(sort $(wildcard ${PWD}/src/helpers/*.zsh))
62COMMANDS= $(sort $(wildcard ${PWD}/src/commands/*.zsh))
63GLOB   += ${SRC}/antigen.zsh ${HELPERS} ${LIB} ${COMMANDS} ${EXTENSIONS}
64
65ifeq (${WITH_COMPLETION}, yes)
66GLOB  += ${SRC}/_antigen
67endif
68# If debug is enabled then load debug functions
69ifeq (${WITH_DEBUG}, yes)
70GLOB  += ${SRC}/lib/log.zsh
71endif
72
73VERSION      ?= develop
74VERSION_FILE  = ${PROJECT}/VERSION
75
76BANNER_SEP    =$(shell printf '%*s' 70 | tr ' ' '\#')
77BANNER_TEXT   =This file was autogenerated by \`make\`. Do not edit it directly!
78BANNER        =${BANNER_SEP}\n\# ${BANNER_TEXT}\n${BANNER_SEP}\n
79
80HEADER_TEXT   =\# Antigen: A simple plugin manager for zsh\n\
81\# Authors: Shrikant Sharat Kandula\n\
82\#          and Contributors <https://github.com/zsh-users/antigen/contributors>\n\
83\# Homepage: http://antigen.sharats.me\n\
84\# License: MIT License <mitl.sharats.me>\n
85
86define ised
87	sed $(1) $(2) > "$(2).1"
88	mv "$(2).1" "$(2)"
89endef
90
91define isede
92	sed -E $(1) $(2) > "$(2).1"
93	mv "$(2).1" "$(2)"
94endef
95
96.PHONY: itests tests install all
97
98build:
99	@echo Building Antigen...
100	@printf "${BANNER}" > ${BIN}/antigen.zsh
101	@printf "${HEADER_TEXT}" >> ${BIN}/antigen.zsh
102	@for src in ${GLOB}; do echo "----> $$src"; cat "$$src" >> ${TARGET}; done
103	@echo "-antigen-env-setup" >> ${TARGET}
104	@echo "${VERSION}" > ${VERSION_FILE}
105	@$(call ised,"s/{{ANTIGEN_VERSION}}/$$(cat ${VERSION_FILE})/",${TARGET})
106	@$(call ised,"s/{{ANTIGEN_REVISION}}/$$(git log -n1 --format=%h -- src)/",${TARGET})
107	@$(call ised,"s/{{ANTIGEN_REVISION_DATE}}/$$(git log -n1 --format='%ai' -- src)/",${TARGET})
108ifeq (${WITH_DEBUG}, no)
109	@$(call isede,"s/ (WARN|LOG|ERR|TRACE) .*&//",${TARGET})
110	@$(call isede,"/ (WARN|LOG|ERR|TRACE) .*/d",${TARGET})
111endif
112	@echo Done.
113	@ls -sh ${TARGET}
114
115release:
116	# Move to release branch
117	git checkout develop
118	git checkout -b release/${VERSION}
119	# Run build and tests
120	${MAKE} build tests
121	# Update changelog
122	${EDITOR} CHANGELOG.md
123	# Build release commit
124	git add CHANGELOG.md README.mkd ${VERSION_FILE}
125	git commit -S -m "Update changelog for ${VERSION}"
126	# Update binary artifact
127	git add ${TARGET}
128	git commit -S -m "Build release ${VERSION}"
129
130publish:
131	git push origin release/${VERSION}
132	# Merge release branch into develop before deploying
133
134deploy:
135	git checkout develop
136	git tag -m "Build release ${VERSION}" -s ${VERSION}
137	git archive --output=${VERSION}.tar.gz --prefix=antigen-$$(echo ${VERSION}|sed s/v//)/ ${VERSION}
138	zcat ${VERSION}.tar.gz | gpg --armor --detach-sign >${VERSION}.tar.gz.sign
139	# Verify signature
140	zcat ${VERSION}.tar.gz | gpg --verify ${VERSION}.tar.gz.sign -
141	# Push upstream
142	git push upstream ${VERSION}
143
144.container:
145ifeq (${USE_CONTAINER}, docker)
146	@docker run --rm --privileged=true -it -v ${PROJECT}:/antigen ${CONTAINER_IMAGE}${ZSH_VERSION} $(shell echo "${COMMAND}" | sed "s|${PROJECT}|${CONTAINER_ROOT}|g")
147else ifeq (${USE_CONTAINER}, no)
148	${COMMAND}
149endif
150
151info:
152	@${MAKE} .container COMMAND="sh -c 'cat ${PROJECT}/VERSION; zsh --version; git --version; env'"
153
154itests:
155	@${MAKE} tests CRAM_OPTS=-i
156
157tests:
158	@${MAKE} .container COMMAND="sh -c 'ZDOTDIR=${TESTS} ANTIGEN=${PROJECT} cram ${CRAM_OPTS} --shell=zsh ${TEST}'"
159
160stats:
161	@${MAKE} .container COMMAND="${TOOLS}/stats --zsh zsh --antigen ${PROJECT}"
162
163install:
164	mkdir -p ${PREFIX}/share && cp ${TARGET} ${PREFIX}/share/antigen.zsh
165
166clean:
167	rm -f ${PREFIX}/share/antigen.zsh
168
169install-deps:
170	sudo pip install cram=='0.6.*'
171
172all: clean build install
173