From 300d3155af0cb2d0fdf3fabe2e34a0e6ec832cf0 Mon Sep 17 00:00:00 2001 From: Seth Michael Larson Date: Wed, 6 Dec 2023 17:26:24 -0600 Subject: [PATCH] [3.9] gh-112160: Add 'regen-configure' make target (#112164) Add 'regen-configure' make target --- .github/workflows/build.yml | 6 +++++- Makefile.pre.in | 12 ++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 40099807b94c0c..aa27c48acb97c5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -93,8 +93,12 @@ jobs: grep "aclocal 1.16.3" aclocal.m4 grep -q "runstatedir" configure grep -q "PKG_PROG_PKG_CONFIG" aclocal.m4 + - name: Configure CPython + run: | + # Build Python with the libpython dynamic library + ./configure --config-cache --with-pydebug --enable-shared - name: Regenerate autoconf files - run: docker run --rm -v $(pwd):/src quay.io/tiran/cpython_autoconf:269 + run: make regen-configure - name: Build CPython run: | ./configure --with-pydebug diff --git a/Makefile.pre.in b/Makefile.pre.in index c0272bfcdd9d4f..a276d535c7f196 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1815,6 +1815,18 @@ autoconf: # Regenerate pyconfig.h.in from configure.ac using autoheader (cd $(srcdir); autoheader -Wall) +# See https://github.com/tiran/cpython_autoconf container +.PHONY: regen-configure +regen-configure: + @if command -v podman >/dev/null; then RUNTIME="podman"; else RUNTIME="docker"; fi; \ + if ! command -v $$RUNTIME; then echo "$@ needs either Podman or Docker container runtime." >&2; exit 1; fi; \ + if command -v selinuxenabled >/dev/null && selinuxenabled; then OPT=":Z"; fi; \ + # Manifest corresponds with tag '269' \ + CPYTHON_AUTOCONF_MANIFEST="sha256:f370fee95eefa3d57b00488bce4911635411fa83e2d293ced8cf8a3674ead939" \ + CMD="$$RUNTIME run --rm --pull=missing -v $(abs_srcdir):/src$$OPT quay.io/tiran/cpython_autoconf@$$CPYTHON_AUTOCONF_MANIFEST"; \ + echo $$CMD; \ + $$CMD || exit $? + # Create a tags file for vi tags:: ctags -w $(srcdir)/Include/*.h $(srcdir)/Include/cpython/*.h $(srcdir)/Include/internal/*.h