@@ -232,7 +232,6 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
232232 yes) continue ;;
233233 esac
234234 objs=' '
235- custom_ldflags=' '
236235 if test " x$rust " = " x" ; then
237236 for src in $srcs
238237 do
@@ -272,51 +271,49 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
272271 esac
273272 echo " $rule " >> $rulesf
274273 done
274+
275+ case $doconfig in
276+ yes) OBJS=" $OBJS $objs " ;;
277+ esac
278+ for mod in $mods
279+ do
280+ file=" $srcdir /$mod \$ (EXT_SUFFIX)"
281+ case $doconfig in
282+ no)
283+ SHAREDMODS=" $SHAREDMODS $file "
284+ BUILT_SHARED=" $BUILT_SHARED $mod "
285+ ;;
286+ esac
287+ rule=" $file : $objs \$ (MODULE_${mods_upper} _LDEPS)"
288+ rule=" $rule ; \$ (BLDSHARED) $objs $libs \$ (LIBPYTHON) -o $file "
289+ echo " $rule " >> $rulesf
290+ done
275291 else
276292 prefixed_srcs=
277293 for src in $srcs
278294 do
279295 prefixed_srcs=" $prefixed_srcs $srcdir /$src "
280296 done
281297 objs=
282- # there's actually only one obj, so just set it to the lib
283- for lib in $libs
284- do
285- objs=" target/\$ (CARGO_TARGET_DIR)/$lib "
286- done
287298 libs=
288- # depends on the headers through cpython-sys
289- rule=" $objs : cpython-sys \$ (srcdir)/Cargo.toml \$ (srcdir)/Cargo.lock \$ (srcdir)/$srcdir /$manifest $prefixed_srcs \$ (PYTHON_HEADERS)"
290- rule=" $rule ; CARGO_TARGET_DIR=\$ (abs_builddir)/target PYTHON_BUILD_DIR=\$ (abs_builddir) \$ (CARGO_HOME)/bin/cargo build --lib --locked --package ${mods} --profile \$ (CARGO_PROFILE) \$ (if \$ (CARGO_TARGET),--target=\$ (CARGO_TARGET)) --manifest-path \$ (srcdir)/Cargo.toml"
291- echo " $rule " >> $rulesf
299+
292300 for mod in $mods
293301 do
294- case $UNAME_SYSTEM in
295- Darwin * )
296- custom_ldflags= " $custom_ldflags -Wl,-u,_PyInit_ $mod "
297- ;;
298- * )
299- custom_ldflags =" $custom_ldflags -Wl,--defsym=PyInit_ $mod =PyInit_ $mod "
302+ rust_shared= " target/ \$ (CARGO_TARGET)/ \$ (CARGO_TARGET_DIR)/lib $mod \$ (SHLIB_SUFFIX) "
303+ file= " $srcdir / $mod \$ (EXT_SUFFIX) "
304+ case $doconfig in
305+ no)
306+ SHAREDMODS= " $SHAREDMODS $file "
307+ BUILT_SHARED =" $BUILT_SHARED $mod "
300308 ;;
301309 esac
310+ # depends on the headers through cpython-sys
311+ rule=" $rust_shared : cpython-sys \$ (srcdir)/Cargo.toml \$ (srcdir)/Cargo.lock \$ (srcdir)/$srcdir /$manifest $prefixed_srcs \$ (PYTHON_HEADERS) \$ (MODULE_${mods_upper} _LDEPS) \$ (LIBPYTHON)"
312+ rule=" $rule ; CARGO_TARGET_DIR=\$ (abs_builddir)/target PYTHON_BUILD_DIR=\$ (abs_builddir) \$ (CARGO_HOME)/bin/cargo build --lib --locked --package ${mod} --profile \$ (CARGO_PROFILE) \$ (if \$ (CARGO_TARGET),--target=\$ (CARGO_TARGET)) --manifest-path \$ (srcdir)/Cargo.toml"
313+ echo " $rule " >> $rulesf
314+ echo " $file : $rust_shared ; mv $rust_shared $file " >> $rulesf
302315 done
303316 fi
304- case $doconfig in
305- yes) OBJS=" $OBJS $objs " ;;
306- esac
307- for mod in $mods
308- do
309- file=" $srcdir /$mod \$ (EXT_SUFFIX)"
310- case $doconfig in
311- no)
312- SHAREDMODS=" $SHAREDMODS $file "
313- BUILT_SHARED=" $BUILT_SHARED $mod "
314- ;;
315- esac
316- rule=" $file : $objs \$ (MODULE_${mods_upper} _LDEPS)"
317- rule=" $rule ; \$ (BLDSHARED) $custom_ldflags $objs $libs \$ (LIBPYTHON) -o $file "
318- echo " $rule " >> $rulesf
319- done
320317 done
321318
322319 case $SHAREDMODS in
0 commit comments