From 826a8d9c50fe21fffa7b84f75584c272a500cf95 Mon Sep 17 00:00:00 2001
From: David Gibson <david@gibson.dropbear.id.au>
Date: Fri, 10 Aug 2018 12:39:18 +1000
Subject: [PATCH 2/9] pylibfdt: Correctly set build output directory

Our Makefile currently passes PYLIBFDT_objdir into setup.py in an attempt
to set the correct place to put the Python extension module output.  But
that gets passed in the 'package_dir' map in distutils.

But that's basically not what package_dir controls.  What actually makes us
find the module in the right place is the --inplace passed to setup.py
(causing the module to go into the current directory), and the following
'mv' in the Makefile to move it into the right final location.

We can simplify setup.py by dropping the useless objdir stuff, and get the
module put in the right place straight way by instead using the --build-lib
setup.py option.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Simon Glass <sjg@chromium.org>
---

 pylibfdt/Makefile.pylibfdt |  6 ++----
 pylibfdt/setup.py          | 11 +++--------
 2 files changed, 5 insertions(+), 12 deletions(-)

diff --git a/pylibfdt/Makefile.pylibfdt b/pylibfdt/Makefile.pylibfdt
index 9507d3d..0b5364e 100644
--- a/pylibfdt/Makefile.pylibfdt
+++ b/pylibfdt/Makefile.pylibfdt
@@ -6,15 +6,13 @@ PYLIBFDT_srcs = $(addprefix $(LIBFDT_srcdir)/,$(LIBFDT_SRCS)) \
 PYMODULE = $(PYLIBFDT_objdir)/_libfdt.so
 
 define run_setup
-	SOURCES="$(1)" CPPFLAGS="$(CPPFLAGS)" OBJDIR="$(PYLIBFDT_objdir)"
-	VERSION="$(dtc_version)"
+	SOURCES="$(1)" CPPFLAGS="$(CPPFLAGS)" VERSION="$(dtc_version)"
 	$(PYLIBFDT_objdir)/setup.py --quiet $(2)
 endef
 
 $(PYMODULE): $(PYLIBFDT_srcs)
 	@$(VECHO) PYMOD $@
-	$(call run_setup, $^, build_ext --inplace)
-	mv _libfdt.so $@
+	$(call run_setup, $^, build_ext --build-lib=$(PYLIBFDT_objdir))
 
 install_pylibfdt: $(PYMODULE)
 	$(VECHO) INSTALL-PYLIB; \
diff --git a/pylibfdt/setup.py b/pylibfdt/setup.py
index 8d97ab8..a9e8051 100755
--- a/pylibfdt/setup.py
+++ b/pylibfdt/setup.py
@@ -7,7 +7,6 @@ Written by Simon Glass <sjg@chromium.org>
 
 Files to be built into the extension are provided in SOURCES
 C flags to use are provided in CPPFLAGS
-Object file directory is provided in OBJDIR
 Version is provided in VERSION
 
 If these variables are not given they are parsed from the Makefiles. This
@@ -73,7 +72,6 @@ def GetEnvFromMakefiles():
             Version string
             List of files to build
             List of extra C preprocessor flags needed
-            Object directory to use (always '')
     """
     basedir = os.path.dirname(os.path.dirname(os.path.abspath(sys.argv[0])))
     makevars = ParseMakefile(os.path.join(basedir, 'Makefile'))
@@ -84,21 +82,19 @@ def GetEnvFromMakefiles():
     files = [os.path.join(basedir, 'libfdt', fname) for fname in files]
     files.append('pylibfdt/libfdt.i')
     cflags = ['-I%s/libfdt' % basedir]
-    objdir = ''
-    return  version, files, cflags, objdir
+    return  version, files, cflags
 
 
 progname = sys.argv[0]
 files = os.environ.get('SOURCES', '').split()
 cflags = os.environ.get('CPPFLAGS', '').split()
-objdir = os.environ.get('OBJDIR')
 version = os.environ.get('VERSION')
 
 # If we were called directly rather than through our Makefile (which is often
 # the case with Python module installation), read the settings from the
 # Makefile.
-if not all((version, files, cflags, objdir)):
-    version, files, cflags, objdir = GetEnvFromMakefiles()
+if not all((version, files, cflags)):
+    version, files, cflags= GetEnvFromMakefiles()
 
 libfdt_module = Extension(
     '_libfdt',
@@ -112,6 +108,5 @@ setup(
     author='Simon Glass <sjg@chromium.org>',
     description='Python binding for libfdt',
     ext_modules=[libfdt_module],
-    package_dir={'': objdir},
     py_modules=['pylibfdt/libfdt'],
 )
-- 
2.19.0.444.g18242da7ef-goog

