X Tutup
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Makefile.pre.in
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
# === Variables set by makesetup ===

MODBUILT_NAMES= _MODBUILT_NAMES_
MODBUILT_SHARED_NAMES= _MODBUILT_SHARED_NAMES_
MODDISABLED_NAMES= _MODDISABLED_NAMES_
MODOBJS= _MODOBJS_
MODLIBS= _MODLIBS_
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
``Modules/Setup`` now puts shared extensions in the same directory as
distutils. Before the change, ``makesetup`` created shared libraries in
``Modules/`` directory, which is not on the import path.
18 changes: 15 additions & 3 deletions Modules/makesetup
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,11 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
trap 'rm -f $rulesf' 0 1 2 3
echo "
# Rules appended by makesetup
\$(SHAREDMODS): pybuilddir.txt
" >$rulesf
DEFS=
BUILT=
BUILT_SHARED=
DISABLED=
MODS=
SHAREDMODS=
Expand Down Expand Up @@ -244,9 +246,15 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
esac
for mod in $mods
do
file="$srcdir/$mod\$(EXT_SUFFIX)"
case $doconfig in
no) SHAREDMODS="$SHAREDMODS $file";;
no)
file="\$(PYBUILDDIR)/$mod\$(EXT_SUFFIX)"
SHAREDMODS="$SHAREDMODS $file"
BUILT_SHARED="$BUILT_SHARED $mod"
;;
*)
file="\$(srcdir)/$mod\$(EXT_SUFFIX)"
;;
esac
rule="$file: $objs"
rule="$rule; \$(BLDSHARED) $objs $libs $ExtraLibs -o \$@"
Expand All @@ -256,7 +264,10 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |

case $SHAREDMODS in
'') ;;
*) DEFS="SHAREDMODS=$SHAREDMODS$NL$DEFS";;
*)
DEFS="PYBUILDDIR=\$(file < pybuilddir.txt)$NL$DEFS"
DEFS="SHAREDMODS=$SHAREDMODS$NL$DEFS"
;;
esac

case $noobjects in
Expand Down Expand Up @@ -296,6 +307,7 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
str="# Generated automatically from $makepre by makesetup."
echo "$str" >>$sedf
echo "s%_MODBUILT_NAMES_%$BUILT%" >>$sedf
echo "s%_MODBUILT_SHARED_NAMES_%$BUILT_SHARED%" >>$sedf
echo "s%_MODDISABLED_NAMES_%$DISABLED%" >>$sedf
echo "s%_MODOBJS_%$OBJS%" >>$sedf
echo "s%_MODLIBS_%$LIBS%" >>$sedf
Expand Down
5 changes: 5 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -431,6 +431,7 @@ def remove_configured_extensions(self):
# built modules and the disabled modules as configured by the Setup
# files.
sysconf_built = sysconfig.get_config_var('MODBUILT_NAMES').split()
sysconf_built_shared = sysconfig.get_config_var('MODBUILT_SHARED_NAMES').split()
sysconf_dis = sysconfig.get_config_var('MODDISABLED_NAMES').split()

mods_built = []
Expand All @@ -449,6 +450,10 @@ def remove_configured_extensions(self):
mods_configured]
# Remove the shared libraries built by a previous build.
for ext in mods_configured:
# don't remove shared extensions that have been
# declared in Modules/Setup and built by Makefile
if ext.name in sysconf_built_shared:
continue
fullpath = self.get_ext_fullpath(ext.name)
if os.path.exists(fullpath):
os.unlink(fullpath)
Expand Down
X Tutup