blob: 9b95ddb151ae63523672163c8604aaaaccbf4543 [file] [log] [blame]
Change the location of pyconfig.h
The Python interpreter has a really strange behaviour: at *runtime*,
it reads a Makefile and a header file named pyconfig.h to get some
information about the configuration.
The Makefile is located in usr/lib/python2.7/config, which is fine
since this location is kept on the target.
However, by default, the pyconfig.h is installed in
usr/include/python2.7, but we completely remove the usr/include
directory for the target. Since making an exception just for
pyconfig.h is annoying, this patch also installs pyconfig.h to
usr/lib/python2.7/config, and modifies the sysconfig module so that it
looks in this location instead of usr/include.
The pyconfig.h is still kept in usr/include/python2.7, because it is
needed in the $(STAGING_DIR) when building third-party Python
extensions that contain C code.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
Lib/distutils/sysconfig.py | 3 ++-
Lib/sysconfig.py | 2 +-
Makefile.pre.in | 3 ++-
3 files changed, 5 insertions(+), 3 deletions(-)
Index: Python-2.7.2/Lib/distutils/sysconfig.py
===================================================================
--- Python-2.7.2.orig/Lib/distutils/sysconfig.py
+++ Python-2.7.2/Lib/distutils/sysconfig.py
@@ -193,7 +193,8 @@
else:
inc_dir = project_base
else:
- inc_dir = get_python_inc(plat_specific=1)
+ lib_dir = get_python_lib(plat_specific=1, standard_lib=1)
+ inc_dir = os.path.join(lib_dir, "config")
if get_python_version() < '2.2':
config_h = 'config.h'
else:
Index: Python-2.7.2/Lib/sysconfig.py
===================================================================
--- Python-2.7.2.orig/Lib/sysconfig.py
+++ Python-2.7.2/Lib/sysconfig.py
@@ -356,7 +356,7 @@
else:
inc_dir = _PROJECT_BASE
else:
- inc_dir = get_path('platinclude')
+ inc_dir = os.path.join(get_path('stdlib'), "config")
return os.path.join(inc_dir, 'pyconfig.h')
def get_scheme_names():
Index: Python-2.7.2/Makefile.pre.in
===================================================================
--- Python-2.7.2.orig/Makefile.pre.in
+++ Python-2.7.2/Makefile.pre.in
@@ -972,7 +972,6 @@
echo $(INSTALL_DATA) $$i $(INCLUDEPY); \
$(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY); \
done
- $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h
# Install the library and miscellaneous stuff needed for extending/embedding
# This goes into $(exec_prefix)
@@ -1006,6 +1005,8 @@
$(INSTALL_DATA) Modules/python.o $(DESTDIR)$(LIBPL)/python.o
$(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in
$(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile
+ $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(LIBPL)/pyconfig.h
+ $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h
$(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup
$(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local
$(INSTALL_DATA) Modules/Setup.config $(DESTDIR)$(LIBPL)/Setup.config