[Python-checkins] bpo-45573: Add Modules/Setup.stdlib with conditional modules (GH-29615)

tiran webhook-mailer at python.org
Thu Nov 18 08:40:10 EST 2021


https://github.com/python/cpython/commit/e4bb22fabbea72776b377733047e0f32e0388059
commit: e4bb22fabbea72776b377733047e0f32e0388059
branch: main
author: Christian Heimes <christian at python.org>
committer: tiran <christian at python.org>
date: 2021-11-18T14:40:01+01:00
summary:

bpo-45573: Add Modules/Setup.stdlib with conditional modules (GH-29615)

files:
A Misc/NEWS.d/next/Build/2021-11-18-12-18-43.bpo-45573.xsMZzn.rst
A Modules/Setup.stdlib.in
M .gitignore
M Makefile.pre.in
M configure
M configure.ac

diff --git a/.gitignore b/.gitignore
index e261d6c997135..0831c58d36748 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/Makefile.pre.in b/Makefile.pre.in
index 55336d24ed194..1afd9e1331949 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -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 \
@@ -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
@@ -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
diff --git a/Misc/NEWS.d/next/Build/2021-11-18-12-18-43.bpo-45573.xsMZzn.rst b/Misc/NEWS.d/next/Build/2021-11-18-12-18-43.bpo-45573.xsMZzn.rst
new file mode 100644
index 0000000000000..5dac52e53a718
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2021-11-18-12-18-43.bpo-45573.xsMZzn.rst
@@ -0,0 +1,2 @@
+``configure`` now creates ``Modules/Setup.stdlib`` with conditionally
+enabled/disabled extension module lines. The file is not used, yet.
diff --git a/Modules/Setup.stdlib.in b/Modules/Setup.stdlib.in
new file mode 100644
index 0000000000000..0722eae87a358
--- /dev/null
+++ b/Modules/Setup.stdlib.in
@@ -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
+ at 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
+ at MODULE_PYEXPAT_TRUE@pyexpat pyexpat.c
+
+# _elementtree libexpat via CAPI hook in pyexpat.
+ at MODULE__ELEMENTTREE_TRUE@_elementtree _elementtree.c
+
+
+############################################################################
+# Modules with some UNIX dependencies
+#
+
+# Linux and FreeBSD, needs sys/soundcard.h or linux/soundcard.h
+ at MODULE_OSSAUDIODEV_TRUE@ossaudiodev ossaudiodev.c
diff --git a/configure b/configure
index f8987128a01cf..fc7b8dc5968ab 100755
--- a/configure
+++ b/configure
@@ -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
@@ -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;;
diff --git a/configure.ac b/configure.ac
index 78b22d531b943..d2cb67a39cb4a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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
 



More information about the Python-checkins mailing list