-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMakefile
More file actions
164 lines (131 loc) · 5.47 KB
/
Makefile
File metadata and controls
164 lines (131 loc) · 5.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
########################################################
# Makefile for re-rest
#
# useful targets (not all implemented yet!):
# make clean ------------------- Clean up garbage
# make pyflakes/pep8/coverage -- source code checks
# make tests ------------------- run all unit tests (export LOG=true for /tmp/ logging)
# - "nosetests -v --with-cover --cover-min-percentage=80 --cover-package=rerest test/"
########################################################
# > VARIABLE = value
#
# Normal setting of a variable - values within it are recursively
# expanded when the variable is USED, not when it's declared.
#
# > VARIABLE := value
#
# Setting of a variable with simple expansion of the values inside -
# values within it are expanded at DECLARATION time.
########################################################
# # This doesn't evaluate until it's called. The -D argument is the
# # directory of the target file ($@), kinda like `dirname`.
# ASCII2MAN = a2x -D $(dir $@) -d manpage -f manpage $<
# MANPAGES := docs/man/man1/re-rest.1
NAME := rerest
PKGNAME := re-rest
SHORTNAME := rerest
TESTPACKAGE := rerest
RPMSPECDIR := contrib/rpm
RPMSPEC := $(RPMSPECDIR)/$(PKGNAME).spec
# VERSION file provides one place to update the software version.
VERSION := $(shell cat VERSION)
RPMRELEASE = $(shell awk '/global _short_release/{print $$NF; exit}' $(RPMSPEC).in)
# Build the spec file on the fly. Substitute version numbers from the
# # canonical VERSION file.
$(RPMSPECDIR)/re-rest.spec: $(RPMSPECDIR)/re-rest.spec.in
sed "s/%VERSION%/$(VERSION)/" $< > $@
# Build the distutils setup file on the fly.
setup.py: setup.py.in VERSION $(RPMSPECDIR)/re-rest.spec.in
sed -e "s/%VERSION%/$(VERSION)/" -e "s/%RELEASE%/$(RPMRELEASE)/" $< > $@
# # To force a rebuild of the docs run 'touch VERSION && make docs'
# docs: $(MANPAGES)
# # Regenerate %.1.asciidoc if %.1.asciidoc.in has been modified more
# # recently than %.1.asciidoc.
# %.1.asciidoc: %.1.asciidoc.in VERSION
# sed "s/%VERSION%/$(VERSION)/" $< > $@
# # Regenerate %.1 if %.1.asciidoc or VERSION has been modified more
# # recently than %.1. (Implicitly runs the %.1.asciidoc recipe)
# %.1: %.1.asciidoc
# $(ASCII2MAN)
tag:
git tag -s -m $(TAG) $(TAG)
virtualenv:
@echo "#############################################"
@echo "# Creating a virtualenv"
@echo "#############################################"
virtualenv $(NAME)env
. $(NAME)env/bin/activate && pip install -r requirements.txt
. $(NAME)env/bin/activate && pip install pep8 nose coverage mock
# If there are any special things to install do it here
#. $(NAME)env/bin/activate && PUT INSTALL THING HERER
ci-unittests:
@echo "#############################################"
@echo "# Running Unit Tests in virtualenv"
@echo "#############################################"
. $(NAME)env/bin/activate && nosetests -v --with-cover --cover-min-percentage=80 --cover-package=$(TESTPACKAGE) test/
ci-list-deps:
@echo "#############################################"
@echo "# Listing all pip deps"
@echo "#############################################"
. $(NAME)env/bin/activate && pip freeze
ci-pep8:
@echo "#############################################"
@echo "# Running PEP8 Compliance Tests in virtualenv"
@echo "#############################################"
. $(NAME)env/bin/activate && pep8 --ignore=E501,E121,E124 src/$(SHORTNAME)/
ci: clean virtualenv ci-list-deps ci-pep8 ci-unittests
:
tests: coverage pep8 pyflakes
:
unittests:
@echo "#############################################"
@echo "# Running Unit Tests"
@echo "#############################################"
nosetests -v --with-cover --cover-min-percentage=80 --cover-package=$(TESTPACKAGE) test/
clean:
@find . -type f -regex ".*\.py[co]$$" -delete
@find . -type f \( -name "*~" -or -name "#*" \) -delete
@rm -fR build dist rpm-build MANIFEST htmlcov .coverage recore.egg-info
@rm -rf $(NAME)env
pep8:
@echo "#############################################"
@echo "# Running PEP8 Compliance Tests"
@echo "#############################################"
pep8 --ignore=E501,E121,E124 src/$(SHORTNAME)/
pyflakes:
@echo "#############################################"
@echo "# Running Pyflakes Sanity Tests"
@echo "# Note: most import errors may be ignored"
@echo "#############################################"
-pyflakes src/rerest
install: clean
python ./setup.py install
sdist: setup.py clean
python setup.py sdist
rpmcommon: $(RPMSPECDIR)/re-rest.spec sdist
@mkdir -p rpm-build
@cp dist/$(NAME)-$(VERSION)-$(RPMRELEASE).tar.gz rpm-build/$(VERSION)-$(RPMRELEASE).tar.gz
srpm: rpmcommon
@rpmbuild --define "_topdir %(pwd)/rpm-build" \
--define "_builddir %{_topdir}" \
--define "_rpmdir %{_topdir}" \
--define "_srcrpmdir %{_topdir}" \
--define "_specdir $(RPMSPECDIR)" \
--define "_sourcedir %{_topdir}" \
-bs $(RPMSPEC)
@echo "#############################################"
@echo "$(PKGNAME) SRPM is built:"
@find rpm-build -maxdepth 2 -name '$(PKGNAME)*src.rpm' | awk '{print " " $$1}'
@echo "#############################################"
rpm: rpmcommon
@rpmbuild --define "_topdir %(pwd)/rpm-build" \
--define "_builddir %{_topdir}" \
--define "_rpmdir %{_topdir}" \
--define "_srcrpmdir %{_topdir}" \
--define "_specdir $(RPMSPECDIR)" \
--define "_sourcedir %{_topdir}" \
-ba $(RPMSPEC)
@echo "#############################################"
@echo "$(PKGNAME) RPMs are built:"
@find rpm-build -maxdepth 2 -name '$(PKGNAME)*.rpm' | awk '{print " " $$1}'
@echo "#############################################"