]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Revert "contrib: Add autoregen.py"
authorChristophe Lyon <christophe.lyon@linaro.org>
Wed, 4 Sep 2024 13:37:13 +0000 (13:37 +0000)
committerChristophe Lyon <christophe.lyon@linaro.org>
Wed, 4 Sep 2024 13:38:57 +0000 (13:38 +0000)
This reverts commit e1ad04ad6cd43fb5a876d787da5ac29f72a9c7e5.

contrib/autoregen.py [deleted file]

diff --git a/contrib/autoregen.py b/contrib/autoregen.py
deleted file mode 100755 (executable)
index faffc88..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-#!/usr/bin/env python3
-
-# This script helps to regenerate files managed by autotools and
-# autogen in binutils-gdb and gcc repositories.
-
-# It can be used by buildbots to check that the current repository
-# contents has been updated correctly, and by developers to update
-# such files as expected.
-
-import os
-import shutil
-import subprocess
-from pathlib import Path
-
-
-# On Gentoo, vanilla unpatched autotools are packaged separately.
-# We place the vanilla names first as we want to prefer those if both exist.
-AUTOCONF_NAMES = ["autoconf-vanilla-2.69", "autoconf-2.69", "autoconf"]
-AUTOMAKE_NAMES = ["automake-vanilla-1.15", "automake-1.15.1", "automake"]
-ACLOCAL_NAMES = ["aclocal-vanilla-1.15", "aclocal-1.15.1", "aclocal"]
-AUTOHEADER_NAMES = ["autoheader-vanilla-2.69", "autoheader-2.69", "autoheader"]
-AUTORECONF_NAMES = ["autoreconf-vanilla-2.69", "autoreconf-2.69", "autoreconf"]
-
-# Pick the first for each list that exists on this system.
-AUTOCONF_BIN = next(name for name in AUTOCONF_NAMES if shutil.which(name))
-AUTOMAKE_BIN = next(name for name in AUTOMAKE_NAMES if shutil.which(name))
-ACLOCAL_BIN = next(name for name in ACLOCAL_NAMES if shutil.which(name))
-AUTOHEADER_BIN = next(name for name in AUTOHEADER_NAMES if shutil.which(name))
-AUTORECONF_BIN = next(name for name in AUTORECONF_NAMES if shutil.which(name))
-
-AUTOGEN_BIN = "autogen"
-
-# autoconf-wrapper and automake-wrapper from Gentoo look at this environment variable.
-# It's harmless to set it on other systems though.
-EXTRA_ENV = {
-    "WANT_AUTOCONF": AUTOCONF_BIN.split("-", 1)[1] if "-" in AUTOCONF_BIN else "",
-    "WANT_AUTOMAKE": AUTOMAKE_BIN.split("-", 1)[1] if "-" in AUTOMAKE_BIN else "",
-    "AUTOCONF": AUTOCONF_BIN,
-    "ACLOCAL": ACLOCAL_BIN,
-    "AUTOMAKE": AUTOMAKE_BIN,
-    "AUTOGEN": AUTOGEN_BIN,
-}
-ENV = os.environ.copy()
-ENV.update(EXTRA_ENV)
-
-
-# Directories we should skip entirely because they're vendored or have different
-# autotools versions.
-SKIP_DIRS = [
-    # readline and minizip are maintained with different autotools versions
-    "readline",
-    "minizip",
-]
-
-# these directories are known to be re-generatable with a simple autoreconf
-# without special -I flags
-# Entries commented out (and directories not listed) are handled by
-# regenerate_manually().
-AUTORECONF_DIRS = [
-    # subdirs common to binutils-gdb and gcc
-    "libbacktrace",
-    "libdecnumber", # No Makefile.am
-    "libiberty", # No Makefile.am
-    "zlib",
-
-    # binutils-gdb subdirs
-    "bfd",
-    "binutils",
-    "etc",
-    "gas",
-    "gdb",
-    "gdbserver",
-    "gdbsupport",
-    "gnulib",
-    "gold",
-    "gprof",
-    "gprofng",
-    "gprofng/libcollector",
-    "ld",
-    "libctf",
-    "libsframe",
-    "opcodes",
-    "sim",
-
-    # gcc subdirs
-    "c++tools", # No aclocal.m4
-    "gcc", # No Makefile.am
-    #"fixincludes", # autoreconf complains about GCC_AC_FUNC_MMAP_BLACKLIST
-    "gnattools", # No aclocal.m4
-    "gotools",
-    "libada", # No aclocal.m4
-    "libatomic",
-    "libcc1",
-    "libcody", # No aclocal.m4
-    "libcpp", # No Makefile.am
-    "libffi",
-    "libgcc", # No aclocal.m4
-    "libgfortran",
-    # Hack: ACLOCAL_AMFLAGS = -I .. -I ../config in Makefile.in but we
-    # apply -I../config -I.. otherwise we do not match the current
-    # contents
-    #"libgm2",
-    "libgo",
-    "libgomp",
-    "libgrust",
-    "libitm",
-    "libobjc", # No Makefile.am
-    "libphobos",
-    "libquadmath",
-    "libsanitizer",
-    "libssp",
-    "libstdc++-v3",
-    # This does not cover libvtv/testsuite/other-tests/Makefile.in
-    "libvtv",
-    "lto-plugin",
-]
-
-
-# Run the shell command CMD.
-#
-# Print the command on stdout prior to running it.
-def run_shell(cmd: str):
-    print(f"+ {cmd}", flush=True)
-    res = subprocess.run(
-        f"{cmd}",
-        shell=True,
-        encoding="utf8",
-        env=ENV,
-    )
-    res.check_returncode()
-
-
-def regenerate_with_autoreconf():
-    run_shell(f"{AUTORECONF_BIN} -f")
-
-def regenerate_with_autogen():
-    run_shell(f"{AUTOGEN_BIN} Makefile.def")
-
-def regenerate_manually():
-    configure_lines = open("configure.ac").read().splitlines()
-    if folder.stem == "fixincludes" or folder.stem == "libgm2" or any(
-            True for line in configure_lines if line.startswith("AC_CONFIG_MACRO_DIR")
-    ):
-        include_arg = ""
-        include_arg2 = ""
-        if (folder / ".." / "config").is_dir():
-            include_arg = "-I../config"
-
-        # this is really a hack just for binutils-gdb/gprofng/libcollector
-        # make sure that the order of includes is done as --enable-maintainer-mode
-        if (folder / ".." / ".." / "config").is_dir():
-            include_arg = "-I../.."
-            include_arg2 = "-I../../config"
-
-        if folder.stem == "fixincludes":
-            include_arg = "-I.."
-            include_arg2 = "-I../config"
-
-        if folder.stem == "libgm2":
-            include_arg = "-I../config"
-            include_arg2 = "-I.."
-
-        # aclocal does not support the -f short option for force
-        run_shell(f"{ACLOCAL_BIN} --force {include_arg} {include_arg2}")
-
-    if (folder / "config.in").is_file() or any(
-        True for line in configure_lines if line.startswith("AC_CONFIG_HEADERS")
-    ):
-        run_shell(f"{AUTOHEADER_BIN} -f")
-
-    # The few lines below do not regenerate the exact same content as
-    # currently in the repo. Disable them for now.
-    # if (folder / "gm2-libs").is_dir():
-    #     run_shell(f"{AUTOCONF_BIN} -f gm2-libs/config-host.in > gm2-libs/config-host")
-    #     run_shell(f"{AUTOHEADER_BIN} gm2-libs/config-host.in")
-
-
-    # apparently automake is somehow unstable -> skip it for gotools
-    if any(
-        True for line in configure_lines if line.startswith("AM_INIT_AUTOMAKE")
-    ) and not str(folder).endswith("gotools"):
-        run_shell(f"{AUTOMAKE_BIN} -f")
-
-    run_shell(f"{AUTOCONF_BIN} -f")
-
-
-run_shell(f"{AUTOCONF_BIN} --version")
-run_shell(f"{AUTOMAKE_BIN} --version")
-run_shell(f"{ACLOCAL_BIN} --version")
-run_shell(f"{AUTOHEADER_BIN} --version")
-
-print(f"Extra environment: {EXTRA_ENV}", flush=True)
-
-config_folders: list[Path] = []
-autogen_folders: list[Path] = []
-repo_root = Path.cwd()
-
-for root, _, files in os.walk("."):
-    for file in files:
-        if file == "configure.ac":
-            config_folders.append(Path(root).resolve())
-        if file == "Makefile.tpl":
-            autogen_folders.append(Path(root).resolve())
-
-for folder in sorted(autogen_folders):
-    print(f"Entering directory {folder}", flush=True)
-    os.chdir(folder)
-    regenerate_with_autogen()
-
-for folder in sorted(config_folders):
-    if folder.stem in SKIP_DIRS:
-        print(f"Skipping directory {folder}", flush=True)
-        continue
-
-    print(f"Entering directory {folder}", flush=True)
-    os.chdir(folder)
-
-    if str(folder.relative_to(repo_root)) in AUTORECONF_DIRS:
-        regenerate_with_autoreconf()
-    else:
-        regenerate_manually()