Tell setup.py the location of headers/libraries

Allow the libraries detection routine to look for headers and libs in
other directories than /usr/include or /usr/lib through the
environment variables PYTHON_MODULES_INCLUDE and PYTHON_MODULES_LIB.

We can then use it to look for libraries in the buildroot staging
directory.

Patch ported to python2.7 by Maxime Ripard <ripard@archos.com>
---
 setup.py |   13 +++++++++++++
 1 file changed, 13 insertions(+)

Index: Python-2.7.2/setup.py
===================================================================
--- Python-2.7.2.orig/setup.py
+++ Python-2.7.2/setup.py
@@ -372,6 +372,19 @@
             os.unlink(tmpfile)
 
     def detect_modules(self):
+        try:
+            modules_include_dirs = os.environ["PYTHON_MODULES_INCLUDE"].split()
+        except KeyError:
+            modules_include_dirs = ['/usr/include']
+        try:
+            modules_lib_dirs = os.environ["PYTHON_MODULES_LIB"].split()
+        except KeyError:
+            modules_lib_dirs = ['/usr/lib']
+        for dir in modules_include_dirs:
+            add_dir_to_list(self.compiler.include_dirs, dir)
+        for dir in modules_lib_dirs:
+            add_dir_to_list(self.compiler.library_dirs, dir)
+
         # Ensure that /usr/local is always used
         if os.environ.get('CROSS_COMPILING') != 'yes':
             add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
