[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