@@ -118,52 +118,36 @@ def build_extensions(self):
118118 if not srcdir :
119119 # Maybe running on Windows but not using CYGWIN?
120120 raise ValueError ("No source directory; cannot proceed." )
121-
122- # Figure out the location of the source code for extension modules
123- # (This logic is copied in distutils.test.test_sysconfig,
124- # so building in a separate directory does not break test_distutils.)
125- moddir = os .path .join (os .getcwd (), srcdir , 'Modules' )
126- moddir = os .path .normpath (moddir )
127- srcdir , tail = os .path .split (moddir )
128121 srcdir = os .path .normpath (srcdir )
129- moddir = os .path .normpath (moddir )
130-
131- moddirlist = [moddir ]
132- incdirlist = ['./Include' ]
122+ moddirlist = [os .path .join (srcdir , 'Modules' )]
133123
134124 # Platform-dependent module source and include directories
135125 platform = self .get_platform ()
136126 if platform in ('darwin' , 'mac' ) and ("--disable-toolbox-glue" not in
137127 sysconfig .get_config_var ("CONFIG_ARGS" )):
138128 # Mac OS X also includes some mac-specific modules
139- macmoddir = os .path .join (os . getcwd (), srcdir , 'Mac/Modules' )
129+ macmoddir = os .path .join (srcdir , 'Mac/Modules' )
140130 moddirlist .append (macmoddir )
141131 incdirlist .append ('./Mac/Include' )
142132
143- alldirlist = moddirlist + incdirlist
144-
145133 # Fix up the paths for scripts, too
146134 self .distribution .scripts = [os .path .join (srcdir , filename )
147135 for filename in self .distribution .scripts ]
148136
149137 # Python header files
150- headers = glob ( "Include/*.h" ) + [ "pyconfig.h" ]
151-
138+ headers = [ sysconfig . get_config_h_filename () ]
139+ headers += glob ( os . path . join ( sysconfig . get_python_inc (), "*.h" ))
152140 for ext in self .extensions [:]:
153141 ext .sources = [ find_module_file (filename , moddirlist )
154142 for filename in ext .sources ]
155143 if ext .depends is not None :
156- ext .depends = [find_module_file (filename , alldirlist )
144+ ext .depends = [find_module_file (filename , moddirlist )
157145 for filename in ext .depends ]
158146 else :
159147 ext .depends = []
160148 # re-compile extensions if a header file has been changed
161149 ext .depends .extend (headers )
162150
163- ext .include_dirs .append ( '.' ) # to get config.h
164- for incdir in incdirlist :
165- ext .include_dirs .append ( os .path .join (srcdir , incdir ) )
166-
167151 # If a module has already been built statically,
168152 # don't build it here
169153 if ext .name in sys .builtin_module_names :
@@ -374,7 +358,7 @@ def detect_modules(self):
374358 config_h_vars = sysconfig .parse_config_h (open (config_h ))
375359
376360 platform = self .get_platform ()
377- ( srcdir ,) = sysconfig .get_config_vars ('srcdir' )
361+ srcdir = sysconfig .get_config_var ('srcdir' )
378362
379363 # Check for AtheOS which has libraries in non-standard locations
380364 if platform == 'atheos' :
@@ -1640,7 +1624,7 @@ def detect_tkinter(self, inc_dirs, lib_dirs):
16401624 def configure_ctypes_darwin (self , ext ):
16411625 # Darwin (OS X) uses preconfigured files, in
16421626 # the Modules/_ctypes/libffi_osx directory.
1643- ( srcdir ,) = sysconfig .get_config_vars ('srcdir' )
1627+ srcdir = sysconfig .get_config_var ('srcdir' )
16441628 ffi_srcdir = os .path .abspath (os .path .join (srcdir , 'Modules' ,
16451629 '_ctypes' , 'libffi_osx' ))
16461630 sources = [os .path .join (ffi_srcdir , p )
@@ -1669,7 +1653,7 @@ def configure_ctypes(self, ext):
16691653 if sys .platform == 'darwin' :
16701654 return self .configure_ctypes_darwin (ext )
16711655
1672- ( srcdir ,) = sysconfig .get_config_vars ('srcdir' )
1656+ srcdir = sysconfig .get_config_var ('srcdir' )
16731657 ffi_builddir = os .path .join (self .build_temp , 'libffi' )
16741658 ffi_srcdir = os .path .abspath (os .path .join (srcdir , 'Modules' ,
16751659 '_ctypes' , 'libffi' ))
0 commit comments