python,build: Reinstate prepare target.
authorAlon Bar-Lev <alon.barlev@gmail.com>
Tue, 28 Mar 2017 18:55:59 +0000 (21:55 +0300)
committerJustus Winter <justus@g10code.com>
Wed, 29 Mar 2017 09:28:18 +0000 (11:28 +0200)
* lang/python/Makefile.am: Fix 'prepare' target.
* lang/python/setup.py.in: Use 'abs_top_builddir' instead of guessing
the path.
--

'prepare' will prepare target at PREPAREDIR.  The automake integration
will also make use of prepare target.  Downstream distributors may
also make use of prepare target.

Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
lang/python/Makefile.am
lang/python/setup.py.in

index d91ead9..a18a014 100644 (file)
@@ -44,17 +44,22 @@ COPY_FILES_GPG = \
        $(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 \
-         $(MKDIR_P)              python$${VERSION}-gpg/gpg ; \
-         cp -R $(COPY_FILES)     python$${VERSION}-gpg ; \
-         cp setup.py             python$${VERSION}-gpg ; \
-         cp gpg/version.py       python$${VERSION}-gpg/gpg ; \
-         ln -sf "$(abs_top_srcdir)/src/data.h" python$${VERSION}-gpg ; \
-         ln -sf "$(abs_top_builddir)/config.h" python$${VERSION}-gpg ; \
-         cp -R $(COPY_FILES_GPG) python$${VERSION}-gpg/gpg ; \
+         $(MAKE) PREPAREDIR=python$${VERSION}-gpg prepare; \
        done
        touch $@
 
@@ -63,6 +68,7 @@ all-local: copystamp
          PYTHON="$$1" ; shift ; \
          cd python$${VERSION}-gpg && \
          CFLAGS="$(CFLAGS)" \
+         abs_top_builddir="$(abs_top_builddir)" \
            $$PYTHON setup.py build --verbose ; \
          cd .. ; \
        done
@@ -71,12 +77,10 @@ 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: prepare
-prepare: copystamp
-
 .PHONY: sdist
 sdist: python$(PYTHON_VERSION)-gpg/dist/gpg-$(VERSION).tar.gz \
        python$(PYTHON_VERSION)-gpg/dist/gpg-$(VERSION).tar.gz.asc
@@ -104,6 +108,7 @@ install-exec-local:
        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 \
index bf4efa3..8ddbf27 100755 (executable)
@@ -34,12 +34,13 @@ in_tree = False
 extra_swig_opts = []
 extra_macros = dict()
 
-if os.path.exists("../../../src/gpgme-config"):
+abs_top_builddir = os.environ.get("abs_top_builddir")
+if abs_top_builddir:
     # In-tree build.
     in_tree = True
-    gpgme_config = ["../../../src/gpgme-config"] + gpgme_config_flags
-    gpgme_h = "../../../src/gpgme.h"
-    library_dirs = ["../../../src/.libs"] # XXX uses libtool internals
+    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
     extra_macros.update(
         HAVE_CONFIG_H=1,
         HAVE_DATA_H=1,