From 434ffb7f1f86e6b0cdfad3ede59993934d86e464 Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Thu, 10 Mar 2022 19:03:27 +0200 Subject: [PATCH] bpo-46973: Add regen-configure make target (GH-31792) --- .github/workflows/build.yml | 8 +++++--- Makefile.pre.in | 16 +++++++++++----- .../2022-03-10-14-30-39.bpo-46973._LEvnc.rst | 2 ++ 3 files changed, 18 insertions(+), 8 deletions(-) create mode 100644 Misc/NEWS.d/next/Build/2022-03-10-14-30-39.bpo-46973._LEvnc.rst diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f6df74357d2..8b1709d37f9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -74,12 +74,14 @@ jobs: grep "aclocal 1.16.3" aclocal.m4 grep -q "runstatedir" configure grep -q "PKG_PROG_PKG_CONFIG" aclocal.m4 - - name: Regenerate autoconf files - run: docker run --rm -v $(pwd):/src quay.io/tiran/cpython_autoconf:269 - - name: Build CPython + - name: Configure CPython run: | # Build Python with the libpython dynamic library ./configure --with-pydebug --enable-shared + - name: Regenerate autoconf files with container image + run: make regen-configure + - name: Build CPython + run: | make -j4 regen-all make regen-stdlib-module-names - name: Check for changes diff --git a/Makefile.pre.in b/Makefile.pre.in index 9deffadb888..c4034dc248c 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1196,7 +1196,7 @@ regen-all: regen-opcode regen-opcode-targets regen-typeslots \ regen-pegen-metaparser regen-pegen regen-test-frozenmain \ regen-global-objects @echo - @echo "Note: make regen-stdlib-module-names and make autoconf should be run manually" + @echo "Note: make regen-stdlib-module-names and make regen-configure should be run manually" ############################################################################ # Special rules for object files @@ -2294,10 +2294,16 @@ recheck: # Regenerate configure and pyconfig.h.in .PHONY: autoconf autoconf: - # Regenerate the configure script from configure.ac using autoconf - (cd $(srcdir); autoconf -Wall) - # Regenerate pyconfig.h.in from configure.ac using autoheader - (cd $(srcdir); autoheader -Wall) + (cd $(srcdir); autoreconf -ivf -Werror) + +.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; \ + CMD="$$RUNTIME run --rm --pull=always -v $(abs_srcdir):/src$$OPT quay.io/tiran/cpython_autoconf:269"; \ + echo $$CMD; \ + $$CMD || exit $? # Create a tags file for vi tags:: diff --git a/Misc/NEWS.d/next/Build/2022-03-10-14-30-39.bpo-46973._LEvnc.rst b/Misc/NEWS.d/next/Build/2022-03-10-14-30-39.bpo-46973._LEvnc.rst new file mode 100644 index 00000000000..62d71d15fdc --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-03-10-14-30-39.bpo-46973._LEvnc.rst @@ -0,0 +1,2 @@ +Add ``regen-configure`` make target to regenerate configure script with +Christian's container image ``quay.io/tiran/cpython_autoconf:269``.