Skip to content

Commit

Permalink
bpo-45573: Add Modules/Setup.stdlib with conditional modules (GH-29615)
Browse files Browse the repository at this point in the history
  • Loading branch information
tiran authored Nov 18, 2021
1 parent 21fa7a3 commit e4bb22f
Show file tree
Hide file tree
Showing 6 changed files with 73 additions and 2 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ Misc/python-embed.pc
Misc/python-config.sh
Modules/Setup.config
Modules/Setup.local
Modules/Setup.stdlib
Modules/config.c
Modules/ld_so_aix
Programs/_freeze_module
Expand Down
13 changes: 11 additions & 2 deletions Makefile.pre.in
Original file line number Diff line number Diff line change
Expand Up @@ -898,11 +898,19 @@ oldsharedmods: $(SHAREDMODS) pybuilddir.txt
fi; \
done

Modules/Setup.local:
@# Create empty Setup.local when file was deleted by user
echo "# Edit this file for local setup changes" > $@

Modules/Setup.stdlib: $(srcdir)/Modules/Setup.stdlib.in config.status
./config.status $@

Makefile Modules/config.c: Makefile.pre \
$(srcdir)/Modules/config.c.in \
$(MAKESETUP) \
$(srcdir)/Modules/Setup \
Modules/Setup.local
Modules/Setup.local \
Modules/Setup.stdlib
$(SHELL) $(MAKESETUP) -c $(srcdir)/Modules/config.c.in \
-s Modules \
Modules/Setup.local \
Expand Down Expand Up @@ -2159,6 +2167,7 @@ libainstall: @DEF_MAKE_RULE@ python-config
$(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in
$(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile
$(INSTALL_DATA) $(srcdir)/Modules/Setup $(DESTDIR)$(LIBPL)/Setup
$(INSTALL_DATA) Modules/Setup.stdlib $(DESTDIR)$(LIBPL)/Setup.stdlib
$(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local
$(INSTALL_DATA) Misc/python.pc $(DESTDIR)$(LIBPC)/python-$(VERSION).pc
$(INSTALL_DATA) Misc/python-embed.pc $(DESTDIR)$(LIBPC)/python-$(VERSION)-embed.pc
Expand Down Expand Up @@ -2387,7 +2396,7 @@ distclean: clobber
if test "$$file" != "$(srcdir)/Lib/test/data/README"; then rm "$$file"; fi; \
done
-rm -f core Makefile Makefile.pre config.status Modules/Setup.local \
Modules/ld_so_aix Modules/python.exp Misc/python.pc \
Modules/Setup.stdlib Modules/ld_so_aix Modules/python.exp Misc/python.pc \
Misc/python-embed.pc Misc/python-config.sh
-rm -f python*-gdb.py
-rm -f Python/frozen_modules/*.h
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
``configure`` now creates ``Modules/Setup.stdlib`` with conditionally
enabled/disabled extension module lines. The file is not used, yet.
55 changes: 55 additions & 0 deletions Modules/Setup.stdlib.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# -*- makefile -*-
#
# This file is autogenerated from Modules/Setup.stdlib.in.
#

# The file is not used by default yet. For testing do:
#
# ln -sfr Modules/Setup.stdlib Modules/Setup.local
#

# * @MODULE_{NAME}_TRUE@ is removed when configure detects all build
# dependencies for a module. Otherwise the template variable is replaced
# by a comment "#" and the module is skipped.
# * Module lines without any compiler and linker flags automatically use
# $(MODULE_{NAME}_CFLAGS) and $(MODULE_{NAME}_LDFLAGS). These flags are
# generated by PY_STDLIB_MOD macro.
# * All source files automatically depend on $(PYTHON_HEADERS) and
# $(MODULE_{NAME}_DEPS).
#
# See Modules/Setup and Modules/makesetup
#


# Build modules statically or as shared extensions
*shared*
# *static*


############################################################################
# Modules that should always be present (POSIX and Windows):

# _decimal uses libmpdec
# either static libmpdec.a from Modules/_decimal/libmpdec or libmpdec.so
# with ./configure --with-system-libmpdec
@MODULE__DECIMAL_TRUE@_decimal _decimal/_decimal.c


############################################################################
# XML and text

# pyexpat module uses libexpat
# either static libexpat.a from Modules/expat or libexpat.so with
# ./configure --with-system-expat
@MODULE_PYEXPAT_TRUE@pyexpat pyexpat.c

# _elementtree libexpat via CAPI hook in pyexpat.
@MODULE__ELEMENTTREE_TRUE@_elementtree _elementtree.c


############################################################################
# Modules with some UNIX dependencies
#

# Linux and FreeBSD, needs sys/soundcard.h or linux/soundcard.h
@MODULE_OSSAUDIODEV_TRUE@ossaudiodev ossaudiodev.c
3 changes: 3 additions & 0 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -19437,6 +19437,8 @@ $as_echo "$py_cv_module__decimal" >&6; }
# generate output files
ac_config_files="$ac_config_files Makefile.pre Misc/python.pc Misc/python-embed.pc Misc/python-config.sh"

ac_config_files="$ac_config_files Modules/Setup.stdlib"

ac_config_files="$ac_config_files Modules/ld_so_aix"

cat >confcache <<\_ACEOF
Expand Down Expand Up @@ -20172,6 +20174,7 @@ do
"Misc/python.pc") CONFIG_FILES="$CONFIG_FILES Misc/python.pc" ;;
"Misc/python-embed.pc") CONFIG_FILES="$CONFIG_FILES Misc/python-embed.pc" ;;
"Misc/python-config.sh") CONFIG_FILES="$CONFIG_FILES Misc/python-config.sh" ;;
"Modules/Setup.stdlib") CONFIG_FILES="$CONFIG_FILES Modules/Setup.stdlib" ;;
"Modules/ld_so_aix") CONFIG_FILES="$CONFIG_FILES Modules/ld_so_aix" ;;

*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
Expand Down
1 change: 1 addition & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -6005,6 +6005,7 @@ AC_SUBST([MODULE_BLOCK])

# generate output files
AC_CONFIG_FILES(Makefile.pre Misc/python.pc Misc/python-embed.pc Misc/python-config.sh)
AC_CONFIG_FILES([Modules/Setup.stdlib])
AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix])
AC_OUTPUT

Expand Down

0 comments on commit e4bb22f

Please sign in to comment.