summaryrefslogtreecommitdiffstats
path: root/Makefile.python.am
blob: 2d62853489ad70ae23bc58df4406e863f6197c39 (plain)
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
pkgname = $(shell basename "$(abs_srcdir)")
pkgpythondir = $(pythondir)/$(pkgname)

if VERBOSE_MAKE
VERBOSITY="--verbose"
else
VERBOSITY="--quiet"
endif !VERBOSE_MAKE

all-local:
	cd $(srcdir); $(PYTHON) setup.py \
		$(VERBOSITY) \
		build \
		--build-base "$(abs_builddir)/build"

install-exec-local:
	$(PYTHON) $(srcdir)/setup.py \
		$(VERBOSITY) \
		install \
		--prefix "$(DESTDIR)$(prefix)" \
		--single-version-externally-managed \
		--record "$(DESTDIR)$(pkgpythondir)/install_files.txt" \
		--optimize 1

uninstall-local:
	cat "$(DESTDIR)$(pkgpythondir)/install_files.txt" | xargs rm -rf
	rm -rf "$(DESTDIR)$(pkgpythondir)"

clean-local:
	$(PYTHON) "$(srcdir)/setup.py" clean --all
	rm -rf "$(srcdir)/build" "$(srcdir)/dist" "$(srcdir)/MANIFEST"
	find "$(srcdir)" \
		-name "*.py[co]" -delete -o	\
		-name "__pycache__" -delete -o	\
		-name "*.egg-info" -exec rm -rf {} +

# take list of all Python source files and copy them into distdir
# SOURCES.txt does not contain directories so we need to create those
dist-hook:
	$(PYTHON) "$(srcdir)/setup.py" egg_info
	PYTHON_SOURCES=$$(cat "$(srcdir)/$(pkgname).egg-info/SOURCES.txt") || exit $$?;	\
	for FILEN in $${PYTHON_SOURCES}; 						\
	do										\
		if test -x "$(srcdir)/$${FILEN}"; then MODE=755; else MODE=644; fi;	\
		$(INSTALL) -D -m $${MODE} "$(srcdir)/$${FILEN}" "$(distdir)/$${FILEN}" || exit $$?;	\
	done

WHEELDISTDIR = $(top_builddir)/dist/wheels
.PHONY: bdist_wheel
bdist_wheel:
	rm -rf $(WHEELDISTDIR)/$(pkgname)*.whl
	$(PYTHON) "$(srcdir)/setup.py" bdist_wheel --dist-dir=$(WHEELDISTDIR)