blob: a459df01f1e59aa742d73b32f8fe2f49c2e91a6d [file] [log] [blame]
Change setup.py to respect the SYSROOT environment variable.
This is needed to build the installed standard modules (e.g. readline & zlib).
--- a/setup.py
+++ b/setup.py
@@ -57,6 +57,8 @@ MACOS = (HOST_PLATFORM == 'darwin')
AIX = (HOST_PLATFORM.startswith('aix'))
VXWORKS = ('vxworks' in HOST_PLATFORM)
+# We must respect the user specified sysroot!
+GENTOO_SYSROOT = os.getenv('SYSROOT', '')
SUMMARY = """
Python is an interpreted, interactive, object-oriented programming
@@ -126,6 +128,9 @@ def sysroot_paths(make_vars, subdirs):
headers or libraries.
"""
+ if GENTOO_SYSROOT:
+ return [GENTOO_SYSROOT]
+
dirs = []
for var_name in make_vars:
var = sysconfig.get_config_var(var_name)
@@ -653,8 +658,8 @@ class PyBuildExt(build_ext):
# directories (i.e. '.' and 'Include') must be first. See issue
# 10520.
if not CROSS_COMPILING:
- add_dir_to_list(self.compiler.library_dirs, '/usr/local/@@GENTOO_LIBDIR@@')
- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
+ add_dir_to_list(self.compiler.library_dirs, GENTOO_SYSROOT + '/usr/local/@@GENTOO_LIBDIR@@')
+ add_dir_to_list(self.compiler.include_dirs, GENTOO_SYSROOT + '/usr/local/include')
# only change this for cross builds for 3.3, issues on Mageia
if CROSS_COMPILING:
self.add_cross_compiling_paths()
@@ -670,9 +675,9 @@ class PyBuildExt(build_ext):
# building a framework with different architectures than
# the one that is currently installed (issue #7473)
add_dir_to_list(self.compiler.library_dirs,
- sysconfig.get_config_var("LIBDIR"))
+ GENTOO_SYSROOT + sysconfig.get_config_var("LIBDIR"))
add_dir_to_list(self.compiler.include_dirs,
- sysconfig.get_config_var("INCLUDEDIR"))
+ GENTOO_SYSROOT + sysconfig.get_config_var("INCLUDEDIR"))
system_lib_dirs = ['/@@GENTOO_LIBDIR@@', '/usr/@@GENTOO_LIBDIR@@']
system_include_dirs = ['/usr/include']
@@ -957,11 +962,11 @@ class PyBuildExt(build_ext):
elif curses_library:
readline_libs.append(curses_library)
elif self.compiler.find_library_file(self.lib_dirs +
- ['/usr/@@GENTOO_LIBDIR@@/termcap'],
+ [GENTOO_SYSROOT + '/usr/@@GENTOO_LIBDIR@@/termcap'],
'termcap'):
readline_libs.append('termcap')
self.add(Extension('readline', ['readline.c'],
- library_dirs=['/usr/@@GENTOO_LIBDIR@@/termcap'],
+ library_dirs=[GENTOO_SYSROOT + '/usr/@@GENTOO_LIBDIR@@/termcap'],
extra_link_args=readline_extra_link_args,
libraries=readline_libs))
else:
@@ -975,7 +980,7 @@ class PyBuildExt(build_ext):
if curses_library == 'ncursesw':
curses_defines.append(('HAVE_NCURSESW', '1'))
if not CROSS_COMPILING:
- curses_includes.append('/usr/include/ncursesw')
+ curses_includes.append(GENTOO_SYSROOT + '/usr/include/ncursesw')
# Bug 1464056: If _curses.so links with ncursesw,
# _curses_panel.so must link with panelw.
panel_library = 'panelw'
@@ -1127,6 +1132,7 @@ class PyBuildExt(build_ext):
db_inc_paths.append('/usr/local/include/db3%d' % x)
db_inc_paths.append('/pkg/db-3.%d/include' % x)
db_inc_paths.append('/opt/db-3.%d/include' % x)
+ db_inc_paths = [GENTOO_SYSROOT + x for x in db_inc_paths]
if CROSS_COMPILING:
db_inc_paths = []
@@ -1373,7 +1379,7 @@ class PyBuildExt(build_ext):
sysroot = macosx_sdk_root()
for d_ in self.inc_dirs + sqlite_inc_paths:
- d = d_
+ d = GENTOO_SYSROOT + d_
if MACOS and is_macosx_sdk_path(d):
d = os.path.join(sysroot, d[1:])
@@ -1684,7 +1684,7 @@
def detect_uuid(self):
# Build the _uuid module if possible
- uuid_incs = find_file("uuid.h", self.inc_dirs, ["/usr/include/uuid"])
+ uuid_incs = find_file("uuid.h", self.inc_dirs, [GENTOO_SYSROOT + "/usr/include/uuid"])
if uuid_incs is not None:
if self.compiler.find_library_file(self.lib_dirs, 'uuid'):
uuid_libs = ['uuid']
@@ -1803,7 +1809,7 @@ class PyBuildExt(build_ext):
# For 8.4a2, the X11 headers are not included. Rather than include a
# complicated search, this is a hard-coded path. It could bail out
# if X11 libs are not found...
- include_dirs.append('/usr/X11R6/include')
+ include_dirs.append(GENTOO_SYSROOT + '/usr/X11R6/include')
frameworks = ['-framework', 'Tcl', '-framework', 'Tk']
# All existing framework builds of Tcl/Tk don't support 64-bit
@@ -1917,8 +1923,8 @@ class PyBuildExt(build_ext):
added_lib_dirs.append('/usr/X11R5/@@GENTOO_LIBDIR@@')
else:
# Assume default location for X11
- include_dirs.append('/usr/X11/include')
- added_lib_dirs.append('/usr/X11/@@GENTOO_LIBDIR@@')
+ include_dirs.append(GENTOO_SYSROOT + '/usr/X11/include')
+ added_lib_dirs.append(GENTOO_SYSROOT + '/usr/X11/@@GENTOO_LIBDIR@@')
# If Cygwin, then verify that X is installed before proceeding
if CYGWIN: