]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-46973: Add regen-configure make target (GH-31792)
authorChristian Heimes <christian@python.org>
Thu, 10 Mar 2022 17:03:27 +0000 (19:03 +0200)
committerGitHub <noreply@github.com>
Thu, 10 Mar 2022 17:03:27 +0000 (18:03 +0100)
.github/workflows/build.yml
Makefile.pre.in
Misc/NEWS.d/next/Build/2022-03-10-14-30-39.bpo-46973._LEvnc.rst [new file with mode: 0644]

index f6df74357d2f53d153c0a8c5c8283ea908ab297b..8b1709d37f9aa5a5b7b5ddf80a41452eaea0bd25 100644 (file)
@@ -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
index 9deffadb8881d9d70aa47e0213830f130ced2e4e..c4034dc248c65b9ccfa474b50c35a6ecb47d5883 100644 (file)
@@ -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 (file)
index 0000000..62d71d1
--- /dev/null
@@ -0,0 +1,2 @@
+Add ``regen-configure`` make target to regenerate configure script with
+Christian's container image ``quay.io/tiran/cpython_autoconf:269``.