Skip to content

Commit 0b9df72

Browse files
committed
Strip all the deb/dsc stuff out of Makefile
And migrate it to Python 3 only
1 parent 0427712 commit 0b9df72

File tree

1 file changed

+25
-107
lines changed

1 file changed

+25
-107
lines changed

Makefile

Lines changed: 25 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
# vim: set noet sw=4 ts=4 fileencoding=utf-8:
22

33
# External utilities
4-
PYTHON=python
4+
PYTHON=python3
55
PIP=pip
6-
PYTEST=py.test
7-
COVERAGE=coverage
6+
PYTEST=pytest
87
TWINE=twine
98
PYFLAGS=
109
MSGINIT=msginit
@@ -14,56 +13,22 @@ XGETTEXT=xgettext
1413
GCS=glib-compile-schemas
1514
DEST_DIR=/
1615

17-
# Horrid hack to ensure setuptools is installed in our python environment. This
18-
# is necessary with Python 3.3's venvs which don't install it by default.
19-
ifeq ($(shell python -c "import setuptools" 2>&1),)
20-
SETUPTOOLS:=
21-
else
22-
SETUPTOOLS:=$(shell wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | $(PYTHON))
23-
endif
24-
2516
# Find the location of the GObject introspection libs and cairo (required for
2617
# the develop target)
27-
PYVER:=$(shell $(PYTHON) $(PYFLAGS) -c "import sys; print(sys.version_info[0])")
28-
ifeq ($(PYVER),3)
2918
RTIMULIB:=$(wildcard /usr/lib/python3/dist-packages/RTIMU.*)
3019
CAIRO:=$(wildcard /usr/lib/python3/dist-packages/cairo)
3120
GI:=$(wildcard /usr/lib/python3/dist-packages/gi)
3221
GOBJECT:=
3322
GLIB:=
34-
else
35-
RTIMULIB:=$(wildcard /usr/lib/python2.7/dist-packages/RTIMU.*)
36-
CAIRO:=$(wildcard /usr/lib/python2.7/dist-packages/cairo)
37-
GI:=$(wildcard /usr/lib/python2.7/dist-packages/gi)
38-
GOBJECT:=$(wildcard /usr/lib/python2.7/dist-packages/gobject)
39-
GLIB:=$(wildcard /usr/lib/python2.7/dist-packages/glib)
40-
endif
4123

4224
# Calculate the base names of the distribution, the location of all source,
4325
# documentation, packaging, icon, and executable script files
4426
NAME:=$(shell $(PYTHON) $(PYFLAGS) setup.py --name)
45-
PKG_DIR:=$(subst -,_,$(NAME))
27+
WHEEL_NAME:=$(subst -,_,$(NAME))
4628
VER:=$(shell $(PYTHON) $(PYFLAGS) setup.py --version)
47-
DEB_ARCH:=$(shell dpkg --print-architecture)
48-
ifeq ($(shell lsb_release -si),Ubuntu)
49-
DEB_SUFFIX:=-1ubuntu1
50-
else
51-
DEB_SUFFIX:=
52-
endif
5329
PY_SOURCES:=$(shell \
5430
$(PYTHON) $(PYFLAGS) setup.py egg_info >/dev/null 2>&1 && \
55-
cat $(PKG_DIR).egg-info/SOURCES.txt | grep -v "\.egg-info" | grep -v "\.mo$$")
56-
DEB_SOURCES:=debian/changelog \
57-
debian/control \
58-
debian/copyright \
59-
debian/rules \
60-
debian/docs \
61-
$(wildcard debian/*.init) \
62-
$(wildcard debian/*.default) \
63-
$(wildcard debian/*.manpages) \
64-
$(wildcard debian/*.docs) \
65-
$(wildcard debian/*.doc-base) \
66-
$(wildcard debian/*.desktop)
31+
cat $(WHEEL_NAME).egg-info/SOURCES.txt | grep -v "\.egg-info" | grep -v "\.mo$$")
6732
DOC_SOURCES:=docs/conf.py \
6833
$(wildcard docs/*.png) \
6934
$(wildcard docs/*.svg) \
@@ -75,27 +40,15 @@ DOC_SOURCES:=docs/conf.py \
7540
SUBDIRS:=icons
7641

7742
# Calculate the name of all outputs
78-
DIST_WHEEL=dist/$(PKG_DIR)-$(VER)-py2.py3-none-any.whl
43+
DIST_WHEEL=dist/$(WHEEL_NAME)-$(VER)-py3-none-any.whl
7944
DIST_TAR=dist/$(NAME)-$(VER).tar.gz
8045
DIST_ZIP=dist/$(NAME)-$(VER).zip
81-
DIST_DEB=dist/python-$(NAME)_$(VER)$(DEB_SUFFIX)_all.deb \
82-
dist/python3-$(NAME)_$(VER)$(DEB_SUFFIX)_all.deb \
83-
dist/python-$(NAME)-doc_$(VER)$(DEB_SUFFIX)_all.deb \
84-
dist/$(NAME)-tools_$(VER)$(DEB_SUFFIX)_all.deb \
85-
dist/$(NAME)_$(VER)$(DEB_SUFFIX)_$(DEB_ARCH).build \
86-
dist/$(NAME)_$(VER)$(DEB_SUFFIX)_$(DEB_ARCH).buildinfo \
87-
dist/$(NAME)_$(VER)$(DEB_SUFFIX)_$(DEB_ARCH).changes
88-
DIST_DSC=dist/$(NAME)_$(VER)$(DEB_SUFFIX).tar.xz \
89-
dist/$(NAME)_$(VER)$(DEB_SUFFIX).dsc \
90-
dist/$(NAME)_$(VER)$(DEB_SUFFIX)_source.build \
91-
dist/$(NAME)_$(VER)$(DEB_SUFFIX)_source.buildinfo \
92-
dist/$(NAME)_$(VER)$(DEB_SUFFIX)_source.changes
9346
MAN_PAGES=man/sense_rec.1 man/sense_play.1 man/sense_csv.1 man/sense_emu_gui.1
94-
POT_FILE=$(PKG_DIR)/locale/$(NAME).pot
95-
PO_FILES:=$(wildcard $(PKG_DIR)/locale/*.po)
96-
MO_FILES:=$(patsubst $(PKG_DIR)/locale/%.po,$(PKG_DIR)/locale/%/LC_MESSAGES/$(NAME).mo,$(PO_FILES))
97-
GSCHEMA_FILES:=$(wildcard $(PKG_DIR)/*.gschema.xml)
98-
GSCHEMA_COMPILED=$(PKG_DIR)/gschemas.compiled
47+
POT_FILE=$(WHEEL_NAME)/locale/$(NAME).pot
48+
PO_FILES:=$(wildcard $(WHEEL_NAME)/locale/*.po)
49+
MO_FILES:=$(patsubst $(WHEEL_NAME)/locale/%.po,$(WHEEL_NAME)/locale/%/LC_MESSAGES/$(NAME).mo,$(PO_FILES))
50+
GSCHEMA_FILES:=$(wildcard $(WHEEL_NAME)/*.gschema.xml)
51+
GSCHEMA_COMPILED=$(WHEEL_NAME)/gschemas.compiled
9952

10053

10154
# Default target
@@ -107,10 +60,9 @@ all:
10760
@echo "make test - Run tests"
10861
@echo "make doc - Generate HTML and PDF documentation"
10962
@echo "make source - Create source package"
110-
@echo "make egg - Generate a PyPI egg package"
63+
@echo "make wheel - Generate a PyPI wheel package"
11164
@echo "make zip - Generate a source zip package"
11265
@echo "make tar - Generate a source tar package"
113-
@echo "make deb - Generate Debian packages"
11466
@echo "make dist - Generate all packages"
11567
@echo "make clean - Get rid of all generated files"
11668
@echo "make release - Create and tag a new release"
@@ -133,9 +85,7 @@ zip: $(DIST_ZIP)
13385

13486
tar: $(DIST_TAR)
13587

136-
deb: $(DIST_DEB) $(DIST_DSC)
137-
138-
dist: $(DIST_WHEEL) $(DIST_DEB) $(DIST_DSC) $(DIST_TAR) $(DIST_ZIP)
88+
dist: $(DIST_WHEEL) $(DIST_TAR) $(DIST_ZIP)
13989

14090
i18n: $(MO_FILES) $(PO_FILES) $(POT_FILE)
14191

@@ -175,19 +125,17 @@ endif
175125
endif
176126

177127
test:
178-
$(COVERAGE) run --rcfile coverage.cfg -m $(PYTEST) tests
179-
$(COVERAGE) report --rcfile coverage.cfg
128+
$(PYTEST)
180129

181130
clean:
182-
dh_clean
183-
rm -fr dist/ $(NAME).egg-info/ tags
131+
rm -fr dist/ build/ .pytest_cache/ .mypy_cache/ $(WHEEL_NAME).egg-info/ tags .coverage
184132
for dir in $(SUBDIRS); do \
185133
$(MAKE) -C $$dir clean; \
186134
done
187135
find $(CURDIR) -name "*.pyc" -delete
188136

189137
tags: $(PY_SOURCES)
190-
ctags -R --exclude="build/*" --exclude="debian/*" --exclude="docs/*" --languages="Python"
138+
ctags -R --exclude="build/*" --exclude="docs/*" --languages="Python"
191139

192140
$(SUBDIRS):
193141
$(MAKE) -C $@
@@ -205,10 +153,10 @@ $(PO_FILES): $(POT_FILE)
205153

206154
$(MO_FILES): $(PO_FILES)
207155
mkdir -p $(dir $@)
208-
$(MSGFMT) $(patsubst $(PKG_DIR)/locale/%/LC_MESSAGES/$(NAME).mo,$(PKG_DIR)/locale/%.po,$@) -o $@
156+
$(MSGFMT) $(patsubst $(WHEEL_NAME)/locale/%/LC_MESSAGES/$(NAME).mo,$(WHEEL_NAME)/locale/%.po,$@) -o $@
209157

210158
$(GSCHEMA_COMPILED): $(GSCHEMA_FILES)
211-
$(GCS) $(PKG_DIR)
159+
$(GCS) $(WHEEL_NAME)
212160

213161
$(DIST_TAR): $(PY_SOURCES) $(MO_FILES) $(GSCHEMA_COMPILED) $(SUBDIRS)
214162
$(PYTHON) $(PYFLAGS) setup.py sdist --formats gztar
@@ -217,46 +165,16 @@ $(DIST_ZIP): $(PY_SOURCES) $(MO_FILES) $(GSCHEMA_COMPILED) $(SUBDIRS)
217165
$(PYTHON) $(PYFLAGS) setup.py sdist --formats zip
218166

219167
$(DIST_WHEEL): $(PY_SOURCES) $(MO_FILES) $(GSCHEMA_COMPILED) $(SUBDIRS)
220-
$(PYTHON) $(PYFLAGS) setup.py bdist_wheel --universal
221-
222-
$(DIST_DEB): $(PY_SOURCES) $(MO_FILES) $(GSCHEMA_COMPILED) $(SUBDIRS) $(DEB_SOURCES) $(MAN_PAGES)
223-
# build the binary package in the parent directory then rename it to
224-
# project_version.orig.tar.gz
225-
$(PYTHON) $(PYFLAGS) setup.py sdist --dist-dir=../
226-
rename -f 's/$(NAME)-(.*)\.tar\.gz/$(NAME)_$$1\.orig\.tar\.gz/' ../*
227-
debuild -b
228-
mkdir -p dist/
229-
for f in $(DIST_DEB); do cp ../$${f##*/} dist/; done
168+
$(PYTHON) $(PYFLAGS) setup.py bdist_wheel
230169

231-
$(DIST_DSC): $(PY_SOURCES) $(PO_FILES) $(GSCHEMA_COMPILED) $(SUBDIRS) $(DEB_SOURCES) $(MAN_PAGES)
232-
# build the source package in the parent directory then rename it to
233-
# project_version.orig.tar.gz
234-
$(PYTHON) $(PYFLAGS) setup.py sdist --dist-dir=../
235-
rename -f 's/$(NAME)-(.*)\.tar\.gz/$(NAME)_$$1\.orig\.tar\.gz/' ../*
236-
debuild -S
237-
mkdir -p dist/
238-
for f in $(DIST_DSC); do cp ../$${f##*/} dist/; done
239-
240-
changelog: $(PY_SOURCES) $(MO_FILES) $(GSCHEMA_COMPILED) $(DOC_SOURCES) $(DEB_SOURCES)
241-
# ensure there are no current uncommitted changes
170+
release:
171+
$(MAKE) clean
242172
test -z "$(shell git status --porcelain)"
243-
# update the debian changelog with new release information
244-
dch --newversion $(VER)$(DEB_SUFFIX) --controlmaint
245-
# commit the changes and add a new tag
246-
git commit debian/changelog -m "Updated changelog for release $(VER)"
173+
git tag -s v$(VER) -m "Release v$(VER)"
174+
git push origin v$(VER)
247175

248-
release-pi: $(DIST_TAR) $(DIST_WHEEL) $(DIST_DEB) $(DIST_DSC)
249-
git tag -s v$(VER) -m "Release $(VER)"
250-
git push --tags
251-
# build a source archive and upload to PyPI
176+
upload: $(DIST_TAR) $(DIST_WHEEL)
177+
$(TWINE) check $(DIST_TAR) $(DIST_WHEEL)
252178
$(TWINE) upload $(DIST_TAR) $(DIST_WHEEL)
253-
# build the deb source archive and upload to Raspbian
254-
dput raspberrypi dist/$(NAME)_$(VER)$(DEB_SUFFIX)_source.changes
255-
dput raspberrypi dist/$(NAME)_$(VER)$(DEB_SUFFIX)_$(DEB_ARCH).changes
256-
257-
release-ubuntu: $(DIST_DEB) $(DIST_DSC)
258-
# build the deb source archive and upload to the PPA
259-
dput waveform-ppa dist/$(NAME)_$(VER)$(DEB_SUFFIX)_source.changes
260-
261-
.PHONY: all install develop test doc source wheel zip tar deb dist clean tags changelog release-pi release-ubuntu $(SUBDIRS)
262179

180+
.PHONY: all install develop test doc source wheel zip tar dist clean tags release upload $(SUBDIRS)

0 commit comments

Comments
 (0)