diff options
author | Bryan Hundven <bryanhundven@gmail.com> | 2023-01-16 11:11:52 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-16 11:11:52 -0800 |
commit | aa6cc4d7f1c0e82bb40981ff738792de462ebc50 (patch) | |
tree | d42cfd88331421cee5af397f0812a2754beea49f | |
parent | 691b1c5d7fde5e88ad6186728c4a5f2b17b1740b (diff) | |
parent | 376a289777fcd33465cec5c2e5db35523fa3265a (diff) | |
download | crosstool-ng-aa6cc4d7f1c0e82bb40981ff738792de462ebc50.tar.gz crosstool-ng-aa6cc4d7f1c0e82bb40981ff738792de462ebc50.tar.bz2 crosstool-ng-aa6cc4d7f1c0e82bb40981ff738792de462ebc50.zip |
Merge pull request #1763 from cpackham/tarball
Add option to build toolchain tarball
-rw-r--r-- | config/global/paths.in | 28 | ||||
-rw-r--r-- | scripts/build/internals.sh | 15 |
2 files changed, 43 insertions, 0 deletions
diff --git a/config/global/paths.in b/config/global/paths.in index 82ee4b39..e4cf7024 100644 --- a/config/global/paths.in +++ b/config/global/paths.in @@ -137,3 +137,31 @@ config STRIP_TARGET_TOOLCHAIN_EXECUTABLES An install-strip make target is provided that installs stripped executables, and may install libraries with unneeded or debugging sections stripped. + +config TARBALL_RESULT + bool + depends on EXPERIMENTAL + prompt "Create binary toolchain tarball" + default n + help + Create tarball of the final binary toolchain. + +if TARBALL_RESULT + +config TARBALL_RESULT_DIR + string + depends on TARBALL_RESULT + prompt "Output directory" + default "${CT_TOP_DIR}" + help + Directory where tarball will be created. + +config TARBALL_RESULT_FILENAME + string + depends on TARBALL_RESULT + prompt "Output filename" + default "toolchain${CT_TOOLCHAIN_PKGVERSION:+-${CT_TOOLCHAIN_PKGVERSION}}-${CT_HOST:+HOST-${CT_HOST}-}${CT_TARGET}" + help + Filename for toolchain tarball, without extension. + +endif diff --git a/scripts/build/internals.sh b/scripts/build/internals.sh index 821761c2..c4dc81dd 100644 --- a/scripts/build/internals.sh +++ b/scripts/build/internals.sh @@ -31,6 +31,7 @@ do_finish() { local strip_args local gcc_version local exe_suffix + local tarball CT_DoStep INFO "Finalizing the toolchain's directory" @@ -138,5 +139,19 @@ do_finish() { CT_InstallCopyingInformation fi + if [ "${CT_TARBALL_RESULT}" = y ]; then + tarball="${CT_TARBALL_RESULT_DIR}/${CT_TARBALL_RESULT_FILENAME}.tar.xz" + CT_DoLog EXTRA "Creating binary toolchain tarball: ${tarball}" + cp "${CT_TOP_DIR}/.config" "${CT_PREFIX_DIR}/${CT_TOOLCHAIN_PKGVERSION}.config" + (cd "${CT_PREFIX_DIR}" && \ + find ./. -print0 | \ + LC_ALL=C sort -z | \ + tar --numeric-owner --owner=0 --group=0 \ + --transform "s,^\./\.,${CT_TARBALL_RESULT_FILENAME},S" \ + --no-recursion --null -T - -Jcf "${tarball}") + CT_DoLog EXTRA "Calculating binary toolchain checksum" + sha256sum "${tarball}" > "${tarball}.asc" + fi + CT_EndStep } |