python: simplify build, some fixups
* lang/python/gpg/version.py.in: Rename to lang/python/version.py.in. configure.ac: Generate version.py.in in lang/python. * lang/python/MANIFEST.in: Include version.py explicitly. * lang/python/gpg: Rename to 'src'. * lang/python/Makefile.am: Do not copy source files, do not use absolute directories, support lib64 in uninstall, clean also dist directory, use symlink for gpg src. * lang/python/setup.py.in: Use builddir, copy sources into builddir, copy version.py into module. -- Simplify build to symlink the gpg sources into builddir instead of copying. This requires handling of version.py as generated file. In addition apply some cleanups: Drop the absolution pathes, clean the dist directory as well, support lib64 for sitelib at uninstall. Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
This commit is contained in:
parent
e7d9c0c3d7
commit
49195c487e
@ -881,7 +881,7 @@ AC_CONFIG_FILES([lang/Makefile lang/cl/Makefile lang/cl/gpgme.asd])
|
||||
AM_COND_IF([HAVE_DOXYGEN], [AC_CONFIG_FILES([lang/qt/doc/Doxyfile])])
|
||||
AC_CONFIG_FILES(lang/qt/doc/Makefile)
|
||||
AC_CONFIG_FILES([lang/python/Makefile
|
||||
lang/python/gpg/version.py
|
||||
lang/python/version.py
|
||||
lang/python/tests/Makefile])
|
||||
AC_CONFIG_FILES([lang/python/setup.py], [chmod a+x lang/python/setup.py])
|
||||
AC_OUTPUT
|
||||
|
@ -1,4 +1,5 @@
|
||||
recursive-include examples *.py
|
||||
include gpgme.i
|
||||
include helpers.c helpers.h private.h
|
||||
include version.py
|
||||
recursive-include gpg *.py
|
||||
|
@ -22,28 +22,19 @@ EXTRA_DIST = \
|
||||
gpgme.i \
|
||||
helpers.c helpers.h private.h \
|
||||
examples \
|
||||
gpg
|
||||
src
|
||||
|
||||
SUBDIRS = . tests
|
||||
|
||||
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: copystamp
|
||||
|
||||
# For VPATH builds we need to copy some files because Python's
|
||||
# distutils are not VPATH-aware.
|
||||
copystamp:
|
||||
ln -sf "$(abs_top_srcdir)/src/data.h" .
|
||||
ln -sf "$(abs_top_builddir)/config.h" .
|
||||
if test $(srcdir) != . ; then cp -R $(COPY_FILES_GPG) gpg ; fi
|
||||
ln -sf "$(top_srcdir)/src/data.h" .
|
||||
ln -sf "$(top_builddir)/config.h" .
|
||||
ln -sf "$(srcdir)/src" gpg
|
||||
touch $@
|
||||
|
||||
all-local: copystamp
|
||||
@ -51,7 +42,7 @@ all-local: copystamp
|
||||
PYTHON="$$1" ; shift ; \
|
||||
CFLAGS="$(CFLAGS)" \
|
||||
srcdir="$(srcdir)" \
|
||||
abs_top_builddir="$(abs_top_builddir)" \
|
||||
top_builddir="$(top_builddir)" \
|
||||
$$PYTHON setup.py build --verbose --build-base=python$${VERSION}-gpg ; \
|
||||
done
|
||||
|
||||
@ -59,7 +50,7 @@ python$(PYTHON_VERSION)-gpg/dist/gpg-$(VERSION).tar.gz.asc: copystamp
|
||||
$(MKDIR_P) python$(PYTHON_VERSION)-gpg-dist
|
||||
CFLAGS="$(CFLAGS)" \
|
||||
srcdir="$(srcdir)" \
|
||||
abs_top_builddir="$(abs_top_builddir)" \
|
||||
top_builddir="$(top_builddir)" \
|
||||
$(PYTHON) setup.py sdist --verbose --dist-dir=python$(PYTHON_VERSION)-gpg-dist \
|
||||
--manifest=python$(PYTHON_VERSION)-gpg-dist/MANIFEST
|
||||
gpg2 --detach-sign --armor python$(PYTHON_VERSION)-gpg-dist/gpg-$(VERSION).tar.gz
|
||||
@ -75,6 +66,7 @@ upload: python$(PYTHON_VERSION)-gpg-dist/gpg-$(VERSION).tar.gz \
|
||||
CLEANFILES = copystamp \
|
||||
config.h \
|
||||
data.h \
|
||||
gpg \
|
||||
files.txt \
|
||||
install_files.txt
|
||||
|
||||
@ -84,22 +76,16 @@ CLEANFILES = copystamp \
|
||||
# permissions.
|
||||
clean-local:
|
||||
rm -rf -- build
|
||||
if test $(srcdir) != . ; then \
|
||||
find gpg -type d ! -perm -200 -exec chmod u+w {} ';' ; \
|
||||
for FILE in $(COPY_FILES_GPG); do \
|
||||
rm -rf -- gpg/$$(basename $$FILE) ; \
|
||||
done \
|
||||
fi
|
||||
for VERSION in $(PYTHON_VERSIONS); do \
|
||||
find python$${VERSION}-gpg -type d ! -perm -200 -exec chmod u+w {} ';' ; \
|
||||
rm -rf -- python$${VERSION}-gpg ; \
|
||||
find python$${VERSION}-gpg* -type d ! -perm -200 -exec chmod u+w {} ';' ; \
|
||||
rm -rf -- python$${VERSION}-gpg* ; \
|
||||
done
|
||||
|
||||
install-exec-local:
|
||||
set -e ; set $(PYTHONS); for VERSION in $(PYTHON_VERSIONS); do \
|
||||
PYTHON="$$1" ; shift ; \
|
||||
srcdir="$(srcdir)" \
|
||||
abs_top_builddir="$(abs_top_builddir)" \
|
||||
top_builddir="$(top_builddir)" \
|
||||
$$PYTHON setup.py \
|
||||
build \
|
||||
--build-base=python$${VERSION}-gpg \
|
||||
@ -110,6 +96,6 @@ install-exec-local:
|
||||
|
||||
uninstall-local:
|
||||
GV=$$(echo $(VERSION) | tr - _); for PV in $(PYTHON_VERSIONS); do \
|
||||
rm -rf -- "$(DESTDIR)$(prefix)/lib/python$$PV/site-packages/gpg" \
|
||||
"$(DESTDIR)$(prefix)/lib/python$$PV/site-packages/gpg-$$GV-py$$PV.egg-info" ; \
|
||||
rm -rf -- "$(DESTDIR)$(prefix)"/lib*/python$$PV/site-packages/gpg \
|
||||
"$(DESTDIR)$(prefix)"/lib*/python$$PV/site-packages/gpg-$$GV-py$$PV.egg-info ; \
|
||||
done
|
||||
|
@ -38,18 +38,17 @@ gpgme_config = ["gpgme-config"] + gpgme_config_flags
|
||||
gpgme_h = ""
|
||||
include_dirs = [os.getcwd()]
|
||||
library_dirs = []
|
||||
vpath_build = os.environ.get('srcdir', '.') != '.'
|
||||
in_tree = False
|
||||
extra_swig_opts = []
|
||||
extra_macros = dict()
|
||||
|
||||
abs_top_builddir = os.environ.get("abs_top_builddir")
|
||||
if abs_top_builddir:
|
||||
top_builddir = os.environ.get("top_builddir")
|
||||
if top_builddir:
|
||||
# In-tree build.
|
||||
in_tree = True
|
||||
gpgme_config = [os.path.join(abs_top_builddir, "src/gpgme-config")] + gpgme_config_flags
|
||||
gpgme_h = os.path.join(abs_top_builddir, "src/gpgme.h")
|
||||
library_dirs = [os.path.join(abs_top_builddir, "src/.libs")] # XXX uses libtool internals
|
||||
gpgme_config = [os.path.join(top_builddir, "src/gpgme-config")] + gpgme_config_flags
|
||||
gpgme_h = os.path.join(top_builddir, "src/gpgme.h")
|
||||
library_dirs = [os.path.join(top_builddir, "src/.libs")] # XXX uses libtool internals
|
||||
extra_macros.update(
|
||||
HAVE_CONFIG_H=1,
|
||||
HAVE_DATA_H=1,
|
||||
@ -210,23 +209,21 @@ class BuildExtFirstHack(build):
|
||||
# Copy due to http://bugs.python.org/issue2624
|
||||
# Avoid creating in srcdir
|
||||
for source, target in ((in_srcdir(n), in_build_base(n))
|
||||
for n in ('gpgme.i', 'helpers.c')):
|
||||
for n in ('gpgme.i', 'helpers.c', 'private.h', 'helpers.h')):
|
||||
if not up_to_date(source, target):
|
||||
shutil.copy2(source, target)
|
||||
|
||||
def run(self):
|
||||
self._generate()
|
||||
|
||||
# Append generated files via build_base
|
||||
if not os.path.exists(os.path.join(self.build_lib, "gpg")):
|
||||
os.makedirs(os.path.join(self.build_lib, "gpg"))
|
||||
shutil.copy2("version.py", os.path.join(self.build_lib, "gpg"))
|
||||
|
||||
def run(self):
|
||||
self._generate()
|
||||
|
||||
swig_sources.append(os.path.join(self.build_base, 'gpgme.i'))
|
||||
swig_opts.extend(['-I' + self.build_base,
|
||||
'-I' + in_srcdir('.'),
|
||||
'-outdir', os.path.join(self.build_lib, 'gpg')])
|
||||
if vpath_build:
|
||||
include_dirs.append(in_srcdir('.'))
|
||||
include_dirs.append(self.build_base)
|
||||
|
||||
self.run_command('build_ext')
|
||||
|
Loading…
Reference in New Issue
Block a user