-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Jan 4, 2007, at 2:36 PM, Ronald Oussoren wrote:
> On 4 Jan, 2007, at 17:56, Fred L. Drake, Jr. wrote: > >> On Thursday 04 January 2007 11:33, Martin v. Löwis wrote: >>> For the python subdirectory, there is the issue that the framework >>> includes in OSX magically look for python.framework when >>> searching for >>> python/foo.h, which they find, so that may get us the wrong version. >>> Somebody would have to study the details here, first. >> >> If everything public gets included from Python.h, perhaps python/ >> object.h and >> friends could become pythonX.Y/object.h; I'm not sure this will >> solve the Mac >> OS framework magic issue, though, not being a Mac OS developer. > > That would solve the problem, however I don't think there is one. > An experiment seems to indicate that the include path is prefered > over the magic inclusion of framework headers (see the trace > below). I haven't checked yet if the behaviour shown below is > intentional, but I'd be surprised if it isn't. > > $ mkdir include > $ mkdir include/Python > $ cat > include/Python/object.h <<EOF > #error "my header included" > EOF > $ cat > demo.c <<-EOF > #include <Python/object.h> > EOF > $ > $ cc -c demo.c > In file included from demo.c:1: > /System/Library/Frameworks/Python.framework/Headers/object.h:227: > error: parse error before ‘FILE’ > /System/Library/Frameworks/Python.framework/Headers/object.h:353: > error: parse error before ‘PyType_IsSubtype’ > ... more errors removed, this clearly includes a header from the > python framework > $ > $ cc -I include -c t.c > In file included from demo.c:1: > include/Python/object.h:1:2: error: #error "my error" > > Therefore moving all headers into a directory named Python would > cause no problems users that use the normal way of linking with > python and would even allow users to use the python framework as a > normal framework. I think that's basically correct: framework includes are searched after normal includes. You might be able to confuse things if you used -F/-framework options, because I believe those are interleaved with -I paths, but then if you add -F presumably you should know what you're doing. Thanks for testing this. - -Barry -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin) iQCVAwUBRZ1abHEjvBPtnXfVAQJQtAP/XgGgI2z7xUGJlxBGfZiggIEtxRYzJObn TVl/2r7tJ58QCwTzc+eI/m18gcfi85q+hmS1hPc9tjq0ICiqZGjSI9hpSsq0Uqva WXKFscmvnNyZLrhemy8AjHSbA7dKKBGKBmqycjEt26am4LetoCD/HCt44+AaoI3d SIzFFiSKw/4= =4FpY -----END PGP SIGNATURE----- _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com