
* lang/python/Makefile.am (uninstall-local): Get platlib path relative to data path. -- For unknown reasons (at least on my system) Python 3.1x's sysconfig returns a platlib (== directory for site-specific, platform-specific files) starting with /usr/local although the prefix config variable is /usr. This broke uninstallation because a wrong folder was (tried to) remove. Python 2.7 and 3.9 return a platlib starting with just /usr. In order to always get the correct relative path we use the data path instead of the prefix config variable as anchor directory.
113 lines
3.4 KiB
Makefile
113 lines
3.4 KiB
Makefile
# 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 <https://gnu.org/licenses/>.
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
|
|
EXTRA_DIST = \
|
|
README \
|
|
MANIFEST.in \
|
|
gpgme.i \
|
|
helpers.c helpers.h private.h
|
|
|
|
if RUN_GPG_TESTS
|
|
tests = tests
|
|
else
|
|
tests =
|
|
endif
|
|
|
|
SUBDIRS = . ${tests} examples doc src
|
|
|
|
.PHONY: prepare
|
|
prepare: copystamp
|
|
|
|
# For VPATH builds we need to copy some files because Python's
|
|
# distutils are not VPATH-aware.
|
|
copystamp:
|
|
ln -sf "$(top_srcdir)/src/data.h" .
|
|
ln -sf "$(top_builddir)/conf/config.h" .
|
|
ln -sf "$(srcdir)/src" gpg
|
|
touch $@
|
|
|
|
all-local: copystamp
|
|
set -e ; for PYTHON in $(PYTHONS); do \
|
|
CPP="$(CPP)" \
|
|
CFLAGS="$(CFLAGS)" \
|
|
srcdir="$(srcdir)" \
|
|
top_builddir="$(top_builddir)" \
|
|
$$PYTHON setup.py build --verbose --build-base="$$(basename "$${PYTHON}")-gpg" ; \
|
|
done
|
|
|
|
python$(PYTHON_VERSION)-gpg/dist/gpg-$(VERSION).tar.gz.asc: copystamp
|
|
$(MKDIR_P) python$(PYTHON_VERSION)-gpg-dist
|
|
CPP="$(CPP)" \
|
|
CFLAGS="$(CFLAGS)" \
|
|
srcdir="$(srcdir)" \
|
|
top_builddir="$(top_builddir)" \
|
|
$(PYTHON) setup.py sdist --verbose --dist-dir=python$(PYTHON_VERSION)-gpg-dist \
|
|
--manifest=python$(PYTHON_VERSION)-gpg-dist/MANIFEST
|
|
gpgbin=gpgconf --list-components | grep OpenPGP | sed -e 's/gpg:OpenPGP://g'
|
|
$(gpgbin) --detach-sign --armor python$(PYTHON_VERSION)-gpg-dist/gpg-$(VERSION).tar.gz
|
|
|
|
.PHONY: sdist
|
|
sdist: 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 \
|
|
config.h \
|
|
data.h \
|
|
gpg
|
|
|
|
# Remove the rest.
|
|
#
|
|
# 'make distclean' clears the write bit, breaking rm -rf. Fix the
|
|
# permissions.
|
|
clean-local:
|
|
rm -rf -- build dist gpg.egg-info
|
|
for PYTHON in $(PYTHONS); do \
|
|
find "$$(basename "$${PYTHON}")-gpg" -type d ! -perm -200 -exec chmod u+w {} ';' ; \
|
|
rm -rf -- "$$(basename "$${PYTHON}")-gpg" ; \
|
|
done
|
|
|
|
install-exec-local:
|
|
set -e ; for PYTHON in $(PYTHONS); do \
|
|
CPP="$(CPP)" \
|
|
CFLAGS="$(CFLAGS)" \
|
|
srcdir="$(srcdir)" \
|
|
top_builddir="$(top_builddir)" \
|
|
$$PYTHON setup.py \
|
|
build \
|
|
--build-base="$$(basename "$${PYTHON}")-gpg" \
|
|
install \
|
|
--prefix "$(DESTDIR)$(prefix)" \
|
|
--verbose ; \
|
|
done
|
|
|
|
uninstall-local:
|
|
set -x; \
|
|
GV=$$(echo $(VERSION) | tr - _); \
|
|
normalizedGV=$$(echo $$GV | sed s/_beta/b/); \
|
|
for PYTHON in $(PYTHONS); do \
|
|
PLATLIB="$(prefix)/$$("$${PYTHON}" -c 'import sysconfig, os; print(os.path.relpath(sysconfig.get_path("platlib", scheme="posix_prefix"), sysconfig.get_path("data", scheme="posix_prefix")))')" ; \
|
|
rm -rf -- "$(DESTDIR)$${PLATLIB}/gpg" \
|
|
"$(DESTDIR)$${PLATLIB}"/gpg-$$GV-py*.egg-info \
|
|
"$(DESTDIR)$${PLATLIB}"/gpg-$$normalizedGV-py*.egg ; \
|
|
done
|