Python-2.1(Windows) Optional supproject build problems

Tim Peters tim.one at home.com
Sun Apr 22 04:07:54 EDT 2001


[David LeBlanc]
> All the projects say that needed 3rd party source headers are in
> ..\..\<3rdPartySource>. For example, the include path for expat/xmlparse
> is "..\..\expat\xmlparse". However, the pcbuild/readme.txt files says to
> put them in as a sibling of PCbuild's parent directory - in the example
> given, "dist".

Yes, both are correct.  The compiler is *in* PCbuild when it runs.  So .. is
PCbuild's parent.  A sibling xxx of anything yyy is yyy\..\xxx.  For example,
I'm Tim, and you get to my sibling Nancy by going from me up to our parent(s)
and then back down to her.  Plug in yyy == .. to deduce that a sibling of
PCbuild's parent is therefore

    PCbuild\..\..\xxx

> Alas, the grandparent (..\..) of PcBuild is "\" since I think most
> people are going to install to the root...

Are going to install *what* to the root?  A Python build tree is not the same
as a Python installation tree.  The Python build tree directly mirrors the
structure of the Python CVS tree on SourceForge, because any other
arrangement would be impractically painful to work with day to day.

My own Python build tree is here:

    C:\Code\python\dist\src\PCbuild

Guido's too.  This follows the recommendations of the Python-on-SourceForge
FAQ:

    http://python.sourceforge.net/sf-faq.html\

for setting up Python CVS access on Windows under a Code directory, and then
mirroring the CVS tree under that.

> From the PCbuild/readme.txt file:
> "The following subprojects will generally NOT build out of the box.
> They wrap code Python doesn't control, and you'll need to download
> the base packages first and unpack them into siblings of PCbuilds's
> parent directory; for example, if your PCbuild is
>  .......\dist\src\PCbuild\,
> unpack into new subdirectories of dist\."
>
> As you can see from reading this, the parent directory of PCbuild is
> src, not dist.

Sure, and a sibling of the parent is a sibling of src which is a child of
dist which is a subdirectory of dist, just as src is a subdirectory of dist.
If src is a subdirectory of dist, how could a sibling of src *not* be a
subdirectory of dist?  sibling *means* "same parent".  I don't see any
problem here -- it menns what it says.

> Actually, when I read the readme.txt file, initially I was under the
> impresion that there should be a dist directory under Python-2.1. Didn't
> make a whole lot of sense to me at the time, but one never knows ;-)

Right, it doesn't make sense if you're trying to build in an installation
tree.  So don't do that <wink>.  Seriously, the trees are the same thing on
Unix boxes, but that was thought too elaborate for Windows end users.  So the
Windows installation tree throws out huge gobs of the source distribution and
rearranges the rest; a Windows installation tree is not a good place to
*compile* Python.

> My sugggestion would be to have a directory under Python-2.1 called
> "packages" which would be the parent directory of all 3rd party sources
> needed to compile the "optional" packages, and to fix the VC project
> files appropriately.

If you want to spend the next month rearranging CVS on SourceForge to match
this scheme, and think you can convince all the people already building on
Windows via the CVS tree that this is a benefit for them, be my guest.  *I'm*
not touching it with a 10-foot python, though.  If you're determined to build
in an installation tree, work up MS project files and docs sufficient to do
that, submit them on SourceForge, and I expect we'll add them to the project
somewhere or other.

works-great-no-need-to-fix-ly y'rs  - tim





More information about the Python-list mailing list