do not use python<version> subdir when including Python .h file
authorJoel Brobecker <brobecker@gnat.com>
Mon, 31 Jan 2011 04:41:27 +0000 (04:41 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Mon, 31 Jan 2011 04:41:27 +0000 (04:41 +0000)
commitac534cba292dd37e6c0e2a6e30e455a92018cf66
treeb4d315f2bc935a85dc019f9a2072fb272e51f95a
parentc2f0d045af0d6add5f901d7d2f5175f289054978
do not use python<version> subdir when including Python .h file

This is preparation work for being able to build GDB with Python
support on MinGW.

So far, the "python<version>" subdirectory needs to be specified
when including a Python header file.  In order to do that, we have
some special configury that tweaks the include path returned by
python-config.py such that the use of the subdirectory in the include
is necessary.  This was done in order to protect ourselves from
possible filename conflicts, since some of the filenames chosen by
Python were a little generic.

The problem is that this cannot work with a standard Python install
on MinGW systems.  On such systems, the .h files are located in
<python_prefix>/include.  So, in preparation for allowing us to build
GDB on MinGW with Python support enabled, this patch changes the
requirement to provide the "python<version>" subdirectory in the
include directive.

The positive consequence is that we no longer need to have a set
of #include directives for each version of Python, since the include
directive is now the same for all versions of Python.  However, the
downside is that we are losing the level of protection we were trying
to achieve by forcing the subdirectory in the include directive.
In order to reduce a bit the consequences of a possible conflict,
this patch also changes the location where the -I/path/to/python
switch goes, to be last in the list (suggested by Doug Evans).

One last change is the fact that we are now including Python.h
and all other Python include headers using angle brackets rather
than double-quotes.  This fixes a problem on case-insensitive
systems where #include "Python.h" causes our gdb/python/python.h
header to be included instead of Python's <Python.h> header.

gdb/ChangeLog:

* configure.ac: Remove fallback behavior for building
against Python.  Remove tweaking of Python include path.
Add PYTHON_CPPFLAGS and PYTHON_LIBS substitution.
(AC_TRY_LIBPYTHON):  Adjust program used in linking test.
If link is successful, set PYTHON_CPPFLAGS and PYTHON_LIBS.
Always restore CPPFLAGS and LIBS after linking test.
* configure: Regenerated.
* Makefile.in (INTERNAL_CPPFLAGS): Add @PYTHON_CPPFLAGS@.
(INSTALLED_LIBS, CLIBS): Add @PYTHON_LIBS@.
* python/python-internal.h: Adjust includes of Python .h files.
gdb/ChangeLog
gdb/Makefile.in
gdb/configure
gdb/configure.ac
gdb/python/python-internal.h
This page took 0.025357 seconds and 4 git commands to generate.