diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/build/companion_tools.sh | 38 | ||||
-rw-r--r-- | scripts/build/companion_tools/200-autoconf.sh | 32 | ||||
-rw-r--r-- | scripts/crosstool-NG.sh.in | 10 |
3 files changed, 80 insertions, 0 deletions
diff --git a/scripts/build/companion_tools.sh b/scripts/build/companion_tools.sh new file mode 100644 index 00000000..b703c415 --- /dev/null +++ b/scripts/build/companion_tools.sh @@ -0,0 +1,38 @@ +# Wrapper to build the companion tools facilities + +# List all companion tools facilities, and parse their scripts +CT_COMP_TOOLS_FACILITY_LIST= +for f in "${CT_LIB_DIR}/scripts/build/companion_tools/"*.sh; do + _f="$(basename "${f}" .sh)" + _f="${_f#???-}" + __f="CT_COMP_TOOLS_${_f}" + if [ "${!__f}" = "y" ]; then + CT_DoLog DEBUG "Enabling companion tools '${_f}'" + . "${f}" + CT_COMP_TOOLS_FACILITY_LIST="${CT_COMP_TOOLS_FACILITY_LIST} ${_f}" + else + CT_DoLog DEBUG "Disabling companion tools '${_f}'" + fi +done + +# Download the companion tools facilities +do_companion_tools_get() { + for f in ${CT_COMP_TOOLS_FACILITY_LIST}; do + do_companion_tools_${f}_get + done +} + +# Extract and patch the companion tools facilities +do_companion_tools_extract() { + for f in ${CT_COMP_TOOLS_FACILITY_LIST}; do + do_companion_tools_${f}_extract + done +} + +# Build the companion tools facilities +do_companion_tools() { + for f in ${CT_COMP_TOOLS_FACILITY_LIST}; do + do_companion_tools_${f}_build + done +} + diff --git a/scripts/build/companion_tools/200-autoconf.sh b/scripts/build/companion_tools/200-autoconf.sh new file mode 100644 index 00000000..6b404c43 --- /dev/null +++ b/scripts/build/companion_tools/200-autoconf.sh @@ -0,0 +1,32 @@ +# Build script for autoconf + +CT_AUTOCONF_VERSION=2.65 + +do_companion_tools_autoconf_get() { + CT_GetFile "autoconf-${CT_AUTOCONF_VERSION}" \ + {ftp,http}://ftp.gnu.org/gnu/autoconf +} + +do_companion_tools_autoconf_extract() { + CT_Extract "autoconf-${CT_AUTOCONF_VERSION}" + CT_Patch "autoconf-${CT_AUTOCONF_VERSION}" +} + +do_companion_tools_autoconf_build() { + CT_DoStep EXTRA "Installing autoconf" + mkdir -p "${CT_BUILD_DIR}/build-autoconf" + CT_Pushd "${CT_BUILD_DIR}/build-autoconf" + + # Ensure configure gets run using the CONFIG_SHELL as configure seems to + # have trouble when CONFIG_SHELL is set and /bin/sh isn't bash + # For reference see: + # http://www.gnu.org/software/autoconf/manual/autoconf.html#CONFIG_005fSHEL + + CT_DoExecLog ALL ${CONFIG_SHELL} \ + "${CT_SRC_DIR}/autoconf-${CT_AUTOCONF_VERSION}/configure" \ + --prefix="${CT_TOOLS_OVERIDE_DIR}" + CT_DoExecLog ALL make + CT_DoExecLog ALL make install + CT_Popd + CT_EndStep +} diff --git a/scripts/crosstool-NG.sh.in b/scripts/crosstool-NG.sh.in index 12434450..50db26fa 100644 --- a/scripts/crosstool-NG.sh.in +++ b/scripts/crosstool-NG.sh.in @@ -114,6 +114,7 @@ CT_DoLog INFO "Building environment variables" # export any variable, nor re-parse the configuration and functions files. . "${CT_LIB_DIR}/scripts/build/internals.sh" . "${CT_LIB_DIR}/scripts/build/arch/${CT_ARCH}.sh" +. "${CT_LIB_DIR}/scripts/build/companion_tools.sh" . "${CT_LIB_DIR}/scripts/build/kernel/${CT_KERNEL}.sh" . "${CT_LIB_DIR}/scripts/build/companion_libs/gmp.sh" . "${CT_LIB_DIR}/scripts/build/companion_libs/mpfr.sh" @@ -493,6 +494,7 @@ if [ -z "${CT_RESTART}" ]; then CT_DoLog INFO "Downloading forbidden by configuration, skipping downloads" else CT_DoStep INFO "Retrieving needed toolchain components' tarballs" + do_companion_tools_get do_kernel_get do_gmp_get do_mpfr_get @@ -512,6 +514,14 @@ if [ -z "${CT_RESTART}" ]; then CT_DoForceRmdir "${CT_SRC_DIR}" CT_DoExecLog ALL mkdir -p "${CT_SRC_DIR}" fi + + if [ "${CT_COMP_TOOLS}" = "y" ]; then + CT_DoStep INFO "Extracting, patching and installing companion tools" + do_companion_tools_extract + do_companion_tools + CT_EndStep + fi + CT_DoStep INFO "Extracting and patching toolchain components" do_kernel_extract do_gmp_extract |