scripts/tarball.sh
changeset 87 adb773fccc6b
child 115 95ca955e8a58
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/scripts/tarball.sh	Sat May 12 09:54:29 2007 +0000
     1.3 @@ -0,0 +1,88 @@
     1.4 +#!/bin/bash
     1.5 +
     1.6 +# This scripts makes a tarball of the configured toolchain
     1.7 +# Pre-requisites:
     1.8 +#  - crosstool-NG is configured
     1.9 +#  - components tarball are available
    1.10 +#  - toolchain is built successfully
    1.11 +
    1.12 +# We need the functions first:
    1.13 +. "${CT_TOP_DIR}/scripts/functions"
    1.14 +
    1.15 +# Log to a temporary file until we have built our environment
    1.16 +CT_ACTUAL_LOG_FILE="${CT_TOP_DIR}/$$.log"
    1.17 +
    1.18 +# Override log level
    1.19 +unset CT_LOG_ERROR CT_LOG_WARN CT_LOG_EXTRA CT_LOG_DEBUG
    1.20 +CT_LOG_INFO=y
    1.21 +CT_LOG_LEVEL_MAX="INFO"
    1.22 +
    1.23 +# Parse the configuration file:
    1.24 +. ${CT_TOP_DIR}/.config
    1.25 +
    1.26 +CT_DoBuildTargetTriplet
    1.27 +
    1.28 +# Kludge: if any of the config options needs either CT_TARGET or CT_TOP_DIR,
    1.29 +# re-parse them:
    1.30 +. "${CT_TOP_DIR}/.config"
    1.31 +
    1.32 +# Build the files' base names
    1.33 +CT_KERNEL_FILE="${CT_KERNEL}-${CT_KERNEL_VERSION}"
    1.34 +CT_BINUTILS_FILE="binutils-${CT_BINUTILS_VERSION}"
    1.35 +CT_LIBC_FILE="${CT_LIBC}-${CT_LIBC_VERSION}"
    1.36 +for addon in ${CT_LIBC_ADDONS_LIST}; do
    1.37 +    CT_LIBC_ADDONS_FILES="${CT_LIBC_ADDONS_FILES} ${CT_LIBC}-${addon}-${CT_LIBC_VERSION}"
    1.38 +done
    1.39 +[ "${CT_LIBC_GLIBC_USE_PORTS}" = "y" ] && CT_LIBC_ADDONS_FILES="${CT_LIBC_ADDONS_FILES} ${CT_LIBC}-ports-${CT_LIBC_VERSION}"
    1.40 +[ "${CT_LIBC_UCLIBC_LOCALES}" = "y" ]  && CT_LIBC_ADDONS_FILES="${CT_LIBC_ADDONS_FILES} ${CT_LIBC}-locales-030818"
    1.41 +[ "${CT_CC_USE_CORE}" = "y" ]          && CT_CC_CORE_FILE="${CT_CC_CORE}-${CT_CC_CORE_VERSION}"
    1.42 +CT_CC_FILE="${CT_CC}-${CT_CC_VERSION}"
    1.43 +[ "${CT_ARCH_FLOAT_SW_LIBFLOAT}" = "y" ] && CT_LIBFLOAT_FILE="libfloat-990616"
    1.44 +
    1.45 +# Build a one-line list of the files to ease scanning below
    1.46 +CT_TARBALLS_DIR="${CT_TOP_DIR}/targets/tarballs"
    1.47 +CT_TARBALLS=" "
    1.48 +for file_var in CT_KERNEL_FILE CT_BINUTILS_FILE CT_LIBC_FILE CT_LIBC_ADDONS_FILES CT_CC_CORE_FILE CT_CC_FILE CT_LIBFLOAT_FILE; do
    1.49 +    for file in ${!file_var}; do
    1.50 +        ext=`CT_GetFileExtension "${file}"`
    1.51 +        CT_TestAndAbort "Missing tarball for: \"${file}\"" -z "${ext}"
    1.52 +        CT_TARBALLS="${CT_TARBALLS}${file}${ext} "
    1.53 +    done
    1.54 +done
    1.55 +
    1.56 +# We need to emulate a build directory:
    1.57 +CT_BUILD_DIR="${CT_TOP_DIR}/targets/${CT_TARGET}/build"
    1.58 +mkdir -p "${CT_BUILD_DIR}"
    1.59 +CT_MktempDir tempdir
    1.60 +
    1.61 +# Save crosstool-ng, as it is configured for the current toolchain.
    1.62 +topdir=`basename "${CT_TOP_DIR}"`
    1.63 +CT_Pushd "${CT_TOP_DIR}/.."
    1.64 +
    1.65 +botdir=`pwd`
    1.66 +
    1.67 +# Build the list of files to exclude:
    1.68 +echo "${topdir}/*.log" >"${tempdir}/${CT_TARGET}.list"
    1.69 +echo "${topdir}/targets/*-*-*-*" >>"${tempdir}/${CT_TARGET}.list"
    1.70 +for t in `ls -1 "${topdir}/targets/tarballs/"`; do
    1.71 +    case "${CT_TARBALLS}" in
    1.72 +        *" ${t} "*) ;;
    1.73 +        *)          echo "${topdir}/targets/tarballs/${t}" >>"${tempdir}/${CT_TARGET}.list"
    1.74 +    esac
    1.75 +done
    1.76 +
    1.77 +CT_DoLog INFO "Saving crosstool"
    1.78 +tar cfj "${CT_PREFIX_DIR}/${topdir}.${CT_TARGET}.tar.bzip2" \
    1.79 +    --no-wildcards-match-slash                              \
    1.80 +    -X "${tempdir}/${CT_TARGET}.list"                       \
    1.81 +    "${topdir}"                                             2>/dev/null
    1.82 +
    1.83 +CT_Popd
    1.84 +
    1.85 +# Save the generated toolchain
    1.86 +CT_DoLog INFO "Saving the generated toolchain"
    1.87 +tar cfj "${botdir}/${CT_TARGET}.tar.bz2" "${CT_PREFIX_DIR}" 2>/dev/null
    1.88 +
    1.89 +rm -f "${CT_PREFIX_DIR}/${topdir}.${CT_TARGET}.tar.bzip2"
    1.90 +rm -rf "${tempdir}"
    1.91 +rm -f "${CT_TOP_DIR}/$$.log"