aboutsummaryrefslogtreecommitdiffstats
path: root/lang/python/Makefile.am
blob: a18a014a15d7a0bf28af2191652d5707fafbe476 (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
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
# Makefile.am for the Python bindings.
# Copyright (C) 2016 g10 Code GmbH
#
# This file is part of GPGME.
#
# GPGME is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation; either version 2.1 of the
# License, or (at your option) any later version.
#
# GPGME is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
# Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, see <http://www.gnu.org/licenses/>.

EXTRA_DIST = \
	README \
	MANIFEST.in \
	gpgme.i \
	helpers.c helpers.h private.h \
	gpgme-h-clean.py \
	examples \
	gpg

SUBDIRS = . tests

COPY_FILES = \
	$(srcdir)/gpgme.i \
	$(srcdir)/README \
	$(srcdir)/MANIFEST.in \
	$(srcdir)/gpgme-h-clean.py \
	$(srcdir)/examples \
	$(srcdir)/helpers.c $(srcdir)/helpers.h $(srcdir)/private.h

COPY_FILES_GPG = \
	$(srcdir)/gpg/callbacks.py \
	$(srcdir)/gpg/constants \
	$(srcdir)/gpg/core.py \
	$(srcdir)/gpg/errors.py \
	$(srcdir)/gpg/__init__.py \
	$(srcdir)/gpg/results.py \
	$(srcdir)/gpg/util.py

.PHONY: prepare
prepare:
	test -n "$(PREPAREDIR)"
	$(MKDIR_P)              "$(PREPAREDIR)/gpg"
	cp -R $(COPY_FILES)     "$(PREPAREDIR)"
	cp setup.py             "$(PREPAREDIR)"
	cp gpg/version.py       "$(PREPAREDIR)/gpg"
	ln -sf "$(abs_top_srcdir)/src/data.h" "$(PREPAREDIR)"
	ln -sf "$(abs_top_builddir)/config.h" "$(PREPAREDIR)"
	cp -R $(COPY_FILES_GPG) "$(PREPAREDIR)/gpg"

# For VPATH builds we need to copy some files because Python's
# distutils are not VPATH-aware.
copystamp: $(COPY_FILES) $(COPY_FILES_GPG)
	set -e ; for VERSION in $(PYTHON_VERSIONS); do \
	  $(MAKE) PREPAREDIR=python$${VERSION}-gpg prepare; \
	done
	touch $@

all-local: copystamp
	set -e ; set $(PYTHONS); for VERSION in $(PYTHON_VERSIONS); do \
	  PYTHON="$$1" ; shift ; \
	  cd python$${VERSION}-gpg && \
	  CFLAGS="$(CFLAGS)" \
	  abs_top_builddir="$(abs_top_builddir)" \
	    $$PYTHON setup.py build --verbose ; \
	  cd .. ; \
	done

python$(PYTHON_VERSION)-gpg/dist/gpg-$(VERSION).tar.gz \
python$(PYTHON_VERSION)-gpg/dist/gpg-$(VERSION).tar.gz.asc: copystamp
	cd python$(PYTHON_VERSION)-gpg && \
	CFLAGS="$(CFLAGS)" \
	abs_top_builddir="$(abs_top_builddir)" \
	  $(PYTHON) setup.py sdist --verbose
	gpg2 --detach-sign --armor python$(PYTHON_VERSION)-gpg/dist/gpg-$(VERSION).tar.gz

.PHONY: sdist
sdist: python$(PYTHON_VERSION)-gpg/dist/gpg-$(VERSION).tar.gz \
       python$(PYTHON_VERSION)-gpg/dist/gpg-$(VERSION).tar.gz.asc

.PHONY: upload
upload: python$(PYTHON_VERSION)-gpg/dist/gpg-$(VERSION).tar.gz \
        python$(PYTHON_VERSION)-gpg/dist/gpg-$(VERSION).tar.gz.asc
	twine upload $^

CLEANFILES = copystamp

# Remove the rest.
#
# 'make distclean' clears the write bit, breaking rm -rf.  Fix the
# permissions.
clean-local:
	rm -rf -- build
	for VERSION in $(PYTHON_VERSIONS); do \
	  find python$${VERSION}-gpg -type d ! -perm -200 -exec chmod u+w {} ';' ; \
	  rm -rf -- python$${VERSION}-gpg ; \
	done

install-exec-local:
	rm -f install_files.txt
	set -e ; set $(PYTHONS); for VERSION in $(PYTHON_VERSIONS); do \
	  PYTHON="$$1" ; shift ; \
	  cd python$${VERSION}-gpg ; \
	  abs_top_builddir="$(abs_top_builddir)" \
	  $$PYTHON setup.py install \
	  --prefix $(DESTDIR)$(prefix) \
	  --record files.txt \
	  --verbose ; \
	  cat files.txt >> ../install_files.txt ; \
	  rm files.txt ; \
	  cd .. ; \
	done
	$(MKDIR_P) $(DESTDIR)$(pythondir)/gpg
	mv install_files.txt $(DESTDIR)$(pythondir)/gpg

uninstall-local:
	xargs <$(DESTDIR)$(pythondir)/gpg/install_files.txt -- rm -rf --
	rm -rf -- $(DESTDIR)$(pythondir)/gpg