| 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 |