[Python-Dev] setup.py and build subdirectories

Jeremy Hylton jeremy@alum.mit.edu
Thu, 18 Jan 2001 22:31:02 -0500 (EST)


I have a bunch of build directories under the source tree, e.g.
src/python/dist/src/build
src/python/dist/src/build-pg
src/python/dist/src/build-O3
...

The new setup.py did not successfully build in these directories.  I
hacked distutils a tiny bit and had some success.  Patch below.  I'm
not sure if the approach is kosher, but it allows me to build
successfully.

I also have a problem running 'make test' from these build
directories.  The reference to the distutils build directory has '..'
prepended to it that shouldn't exist.

Jeremy


Index: setup.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/setup.py,v
retrieving revision 1.8
diff -c -r1.8 setup.py
*** setup.py	2001/01/18 20:39:34	1.8
--- setup.py	2001/01/19 03:26:55
***************
*** 536,540 ****
            
  # --install-platlib
  if __name__ == '__main__':
!     sysconfig.set_python_build()
      main()
--- 536,541 ----
            
  # --install-platlib
  if __name__ == '__main__':
!     path, file = os.path.split(sys.argv[0])
!     sysconfig.set_python_build(path)
      main()
Index: Lib/distutils/sysconfig.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/distutils/sysconfig.py,v
retrieving revision 1.31
diff -c -r1.31 sysconfig.py
*** Lib/distutils/sysconfig.py	2001/01/17 15:16:52	1.31
--- Lib/distutils/sysconfig.py	2001/01/19 03:27:01
***************
*** 24,37 ****
  
  python_build = 0
  
! def set_python_build():
      """Set the python_build flag to true; this means that we're
      building Python itself.  Only called from the setup.py script
      shipped with Python.
      """
      
      global python_build
!     python_build = 1
  
  def get_python_inc(plat_specific=0, prefix=None):
      """Return the directory containing installed Python header files.
--- 24,37 ----
  
  python_build = 0
  
! def set_python_build(loc):
      """Set the python_build flag to true; this means that we're
      building Python itself.  Only called from the setup.py script
      shipped with Python.
      """
      
      global python_build
!     python_build = loc + "/"
  
  def get_python_inc(plat_specific=0, prefix=None):
      """Return the directory containing installed Python header files.
***************
*** 48,54 ****
          prefix = (plat_specific and EXEC_PREFIX or PREFIX)
      if os.name == "posix":
          if python_build:
!             return "Include/"
          return os.path.join(prefix, "include", "python" + sys.version[:3])
      elif os.name == "nt":
          return os.path.join(prefix, "Include") # include or Include?
--- 48,54 ----
          prefix = (plat_specific and EXEC_PREFIX or PREFIX)
      if os.name == "posix":
          if python_build:
!             return python_build + "Include/"
          return os.path.join(prefix, "include", "python" + sys.version[:3])
      elif os.name == "nt":
          return os.path.join(prefix, "Include") # include or Include?