python: Fix distcheck.
[gpgme.git] / lang / python / Makefile.am
1 # Makefile.am for the Python bindings.
2 # Copyright (C) 2016 g10 Code GmbH
3 #
4 # This file is part of GPGME.
5 #
6 # GPGME is free software; you can redistribute it and/or modify it
7 # under the terms of the GNU Lesser General Public License as
8 # published by the Free Software Foundation; either version 2.1 of the
9 # License, or (at your option) any later version.
10 #
11 # GPGME is distributed in the hope that it will be useful, but WITHOUT
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
14 # Public License for more details.
15 #
16 # You should have received a copy of the GNU Lesser General Public
17 # License along with this program; if not, see <http://www.gnu.org/licenses/>.
18
19 EXTRA_DIST = \
20         README \
21         gpgme.i \
22         helpers.c helpers.h \
23         gpgme-h-clean.py \
24         pyme
25
26 SUBDIRS = tests
27
28 COPY_FILES = \
29         $(srcdir)/README \
30         $(srcdir)/pyme \
31         $(srcdir)/helpers.c $(srcdir)/helpers.h
32
33 # Cleanup gpgme.h from deprecated functions and typedefs.
34 gpgme.h: ../../src/gpgme.h $(srcdir)/gpgme-h-clean.py
35         $(PYTHON) $(srcdir)/gpgme-h-clean.py $< >$@
36
37 # For VPATH builds we need to copy some files because Python's
38 # distutils are not VPATH-aware.
39 copystamp: $(COPY_FILES)
40         if test "$(srcdir)" != "$(builddir)" ; then cp -r $^ . ; fi
41         touch $@
42
43 errors.i:
44         sed -n -e \
45           '/GPG_ERR_[^ ]* =/s/ *\(.*\) = .*/%constant long \1 = \1;/p' \
46           `$(GPG_ERROR_CONFIG) --prefix`/include/gpg-error.h >$@
47
48 gpgme_wrap.c pyme/pygpgme.py: gpgme.i errors.i gpgme.h copystamp
49         $(SWIG) -python -py3 -builtin $(SWIGOPT) \
50           -o $(builddir)/gpgme_wrap.c -outdir $(builddir)/pyme \
51           $<
52
53 all-local: gpgme_wrap.c pyme/pygpgme.py copystamp
54         CFLAGS="$(CFLAGS) -I$(top_srcdir)" \
55           $(PYTHON) setup.py build --verbose
56
57 CLEANFILES = gpgme.h errors.i gpgme_wrap.c pyme/pygpgme.py \
58           copystamp
59
60 # Remove the rest.
61 #
62 # 'make distclean' clears the write bit, breaking rm -rf.  Fix the
63 # permissions.
64 clean-local:
65         rm -rf -- build
66         if test "$(srcdir)" != "$(builddir)" ; then \
67           find . -type d ! -perm -200 -exec chmod u+w {} ';' ; \
68           rm -rf README pyme helpers.c helpers.h ; \
69         fi
70
71 install-exec-local:
72         $(PYTHON) setup.py install \
73           --prefix $(DESTDIR)$(prefix) \
74           --record $(DESTDIR)$(pythondir)/pyme/install_files.txt \
75           --verbose
76
77 uninstall-local:
78         xargs <$(DESTDIR)$(pythondir)/pyme/install_files.txt -- rm -rf --
79         rm -rf -- $(DESTDIR)$(pythondir)/pyme