From ae7c8d0336381dd4c10e809e9c8926f9deeafeb8 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Thu, 14 Mar 2019 03:48:10 -0400
Subject: [PATCH] support cross compiling

Upstream-Status: Inappropriate [oe specific]

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 setup.py | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/setup.py b/setup.py
index 5ceae344..07863340 100755
--- a/setup.py
+++ b/setup.py
@@ -105,7 +105,7 @@ _LIB_IMAGING = (
     "codec_fd",
 )
 
-DEBUG = False
+DEBUG = True
 
 
 class DependencyException(Exception):
@@ -396,21 +396,16 @@ class pil_build_ext(build_ext):
                     _add_directory(library_dirs, match.group(1))
 
         # include, rpath, if set as environment variables:
-        for k in ("C_INCLUDE_PATH", "CPATH", "INCLUDE"):
+        for k in ('C_INCLUDE_PATH', 'CPATH', 'INCLUDE', 'STAGING_INCDIR'):
             if k in os.environ:
                 for d in os.environ[k].split(os.path.pathsep):
                     _add_directory(include_dirs, d)
 
-        for k in ("LD_RUN_PATH", "LIBRARY_PATH", "LIB"):
+        for k in ('LD_RUN_PATH', 'LIBRARY_PATH', 'LIB', 'STAGING_LIBDIR'):
             if k in os.environ:
                 for d in os.environ[k].split(os.path.pathsep):
                     _add_directory(library_dirs, d)
 
-        prefix = sysconfig.get_config_var("prefix")
-        if prefix:
-            _add_directory(library_dirs, os.path.join(prefix, "lib"))
-            _add_directory(include_dirs, os.path.join(prefix, "include"))
-
         #
         # add platform directories
 
@@ -469,8 +464,6 @@ class pil_build_ext(build_ext):
             or sys.platform.startswith("gnu")
             or sys.platform.startswith("freebsd")
         ):
-            for dirname in _find_library_dirs_ldconfig():
-                _add_directory(library_dirs, dirname)
             if sys.platform.startswith("linux") and os.environ.get(
                 "ANDROID_ROOT", None
             ):
-- 
2.20.1

