diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/addToolVersion.sh | 86 | ||||
-rw-r--r-- | scripts/build/arch/xtensa.sh | 8 | ||||
-rw-r--r-- | scripts/build/binutils/binutils.sh | 29 | ||||
-rw-r--r-- | scripts/build/cc.sh | 6 | ||||
-rw-r--r-- | scripts/build/cc/100-gcc.sh | 68 | ||||
-rw-r--r-- | scripts/build/companion_libs/120-ppl.sh | 144 | ||||
-rw-r--r-- | scripts/build/companion_libs/130-cloog.sh | 75 | ||||
-rw-r--r-- | scripts/build/companion_libs/200-libelf.sh | 7 | ||||
-rwxr-xr-x[-rw-r--r--] | scripts/build/companion_libs/210-expat.sh | 33 | ||||
-rw-r--r-- | scripts/build/companion_libs/320-libiconv.sh | 1 | ||||
-rw-r--r-- | scripts/build/debug/300-gdb.sh | 33 | ||||
-rw-r--r-- | scripts/build/kernel/linux.sh | 57 | ||||
-rw-r--r-- | scripts/build/libc/avr-libc.sh | 14 | ||||
-rw-r--r-- | scripts/build/libc/glibc.sh | 16 | ||||
-rw-r--r-- | scripts/build/libc/musl.sh | 14 | ||||
-rw-r--r-- | scripts/build/libc/newlib.sh | 10 | ||||
-rw-r--r-- | scripts/build/libc/uClibc.sh | 16 | ||||
-rw-r--r-- | scripts/functions | 85 | ||||
-rwxr-xr-x | scripts/patch-rework.sh | 62 | ||||
-rw-r--r-- | scripts/saveSample.sh.in | 6 | ||||
-rwxr-xr-x | scripts/showSamples.sh | 8 |
21 files changed, 252 insertions, 526 deletions
diff --git a/scripts/addToolVersion.sh b/scripts/addToolVersion.sh index 123bcb4..b35ad0c 100755 --- a/scripts/addToolVersion.sh +++ b/scripts/addToolVersion.sh @@ -14,37 +14,37 @@ myname="$0" doHelp() { cat <<-EOF - Usage: ${myname} <--tool> <[options] version [...]> ... - 'tool' in one of: - gcc, binutils, glibc, uClibc, newlib, linux, gdb, dmalloc, - duma, strace, ltrace, libelf, gmp, mpfr, ppl, cloog, mpc, - mingw-w64, expat, ncurses - - Valid options for all tools: - --stable, -s, +x (default) - mark the version as being stable (as opposed to experimental, below) - - --experimental, -x, +s - mark the version as being experimental (as opposed to stable, above) - - --current, -c, +o (default) - mark the version as being cuurent (as opposed to obsolete, below) - - --obsolete, -o, +c - mark the version as being obsolete (as opposed to current, above) - - Note: setting a new tool resets to the defaults: 'stable' and 'current'. - - 'version' is a valid version for the specified tool. - - Examples: - add stable current version 2.6.19.2 to linux kernel: - ${myname} --linux 2.6.19.2 - - add experimental obsolete version 2.3.5 and stable current versions 2.6.1 - and 2.6.2 to glibc, add stable obsolete version 3.3.3 to gcc: - ${myname} --glibc -x -o 2.3.5 -s -c 2.6.1 2.6.2 --gcc -o 3.3.3 - EOF + Usage: ${myname} <--tool> <[options] version [...]> ... + 'tool' in one of: + gcc, binutils, glibc, uClibc, newlib, linux, gdb, dmalloc, + duma, strace, ltrace, libelf, gmp, mpfr, isl, cloog, mpc, + mingw-w64, expat, ncurses + + Valid options for all tools: + --stable, -s, +x (default) + mark the version as being stable (as opposed to experimental, below) + + --experimental, -x, +s + mark the version as being experimental (as opposed to stable, above) + + --current, -c, +o (default) + mark the version as being cuurent (as opposed to obsolete, below) + + --obsolete, -o, +c + mark the version as being obsolete (as opposed to current, above) + + Note: setting a new tool resets to the defaults: 'stable' and 'current'. + + 'version' is a valid version for the specified tool. + + Examples: + add stable current version 2.6.19.2 to linux kernel: + ${myname} --linux 2.6.19.2 + + add experimental obsolete version 2.3.5 and stable current versions 2.6.1 + and 2.6.2 to glibc, add stable obsolete version 3.3.3 to gcc: + ${myname} --glibc -x -o 2.3.5 -s -c 2.6.1 2.6.2 --gcc -o 3.3.3 + EOF } # Extract field $3 from version $1 with separator $2 @@ -117,19 +117,19 @@ addToolVersion() { fi ;; binutils) - # Extract 'M'ajor and 'm'inor from version string + # Extract 'M'ajor, 'm'inor, sometimes 'p'atch from version string + # TODO: Rework this ver_M=$(getVersionField "${version}" . 1) ver_m=$(getVersionField "${version}" . 2) - if [ \( ${ver_M} -eq 2 -a ${ver_m} -eq 22 \) ]; then - SedExpr1="${SedExpr1}\n select BINUTILS_2_22_or_later" - elif [ \( ${ver_M} -eq 2 -a ${ver_m} -eq 21 \) ]; then - SedExpr1="${SedExpr1}\n select BINUTILS_2_21_or_later" - elif [ \( ${ver_M} -eq 2 -a ${ver_m} -eq 20 \) ]; then - SedExpr1="${SedExpr1}\n select BINUTILS_2_20_or_later" - elif [ \( ${ver_M} -eq 2 -a ${ver_m} -eq 19 \) ]; then - SedExpr1="${SedExpr1}\n select BINUTILS_2_19_or_later" - elif [ \( ${ver_M} -eq 2 -a ${ver_m} -eq 18 \) ]; then - SedExpr1="${SedExpr1}\n select BINUTILS_2_18_or_later" + ver_p=$(getVersionField "${version}" . 3) + if [ ${ver_M} -eq 2 -a ${ver_m} -eq 25 -a ${ver_p} -eq 1 ]; then + SedExpr1="${SedExpr1}\n select BINUTILS_2_25_1_or_later" + elif [ ${ver_M} -eq 2 -a ${ver_m} -eq 25 -a -z ${ver_p} ]; then + SedExpr1="${SedExpr1}\n select BINUTILS_2_25_or_later" + elif [ ${ver_M} -eq 2 -a ${ver_m} -eq 24 ]; then + SedExpr1="${SedExpr1}\n select BINUTILS_2_24_or_later" + elif [ ${ver_M} -eq 2 -a ${ver_m} -eq 23 -a ${ver_p} -eq 2 ]; then + SedExpr1="${SedExpr1}\n select BINUTILS_2_23_2_or_later" fi ;; uClibc) @@ -187,7 +187,7 @@ while [ $# -gt 0 ]; do --ltrace) EXP=; OBS=; cat=LTRACE; tool=ltrace; tool_prefix=debug; dot2suffix=;; --gmp) EXP=; OBS=; cat=GMP; tool=gmp; tool_prefix=companion_libs; dot2suffix=;; --mpfr) EXP=; OBS=; cat=MPFR; tool=mpfr; tool_prefix=companion_libs; dot2suffix=;; - --ppl) EXP=; OBS=; cat=PPL; tool=ppl; tool_prefix=companion_libs; dot2suffix=;; + --isl) EXP=; OBS=; cat=ISL; tool=isl; tool_prefix=companion_libs; dot2suffix=;; --cloog) EXP=; OBS=; cat=CLOOG; tool=cloog; tool_prefix=companion_libs; dot2suffix=;; --mpc) EXP=; OBS=; cat=MPC; tool=mpc; tool_prefix=companion_libs; dot2suffix=;; --libelf) EXP=; OBS=; cat=LIBELF; tool=libelf; tool_prefix=companion_libs; dot2suffix=;; diff --git a/scripts/build/arch/xtensa.sh b/scripts/build/arch/xtensa.sh index 7e49312..c7bd432 100644 --- a/scripts/build/arch/xtensa.sh +++ b/scripts/build/arch/xtensa.sh @@ -22,13 +22,7 @@ CT_ConfigureXtensa() { custom_overlay="xtensa-overlay.tar" fi - if [ -n "${CT_CUSTOM_LOCATION_ROOT_DIR}" \ - -a -z "${custom_location}" ]; then - custom_location="${CT_CUSTOM_LOCATION_ROOT_DIR}" - fi - - CT_TestAndAbort "${custom_overlay}: CT_CUSTOM_LOCATION_ROOT_DIR or CT_ARCH_XTENSA_CUSTOM_OVERLAY_LOCATION must be set." \ - -z "${CT_CUSTOM_LOCATION_ROOT_DIR}" -a -z "${custom_location}" + CT_TestAndAbort "${custom_overlay}: CT_ARCH_XTENSA_CUSTOM_OVERLAY_LOCATION must be set." -z "${custom_location}" local full_file="${custom_location}/${custom_overlay}" local basename="${component}-${version}" diff --git a/scripts/build/binutils/binutils.sh b/scripts/build/binutils/binutils.sh index b3ea88e..69605db 100644 --- a/scripts/build/binutils/binutils.sh +++ b/scripts/build/binutils/binutils.sh @@ -5,8 +5,8 @@ # Download binutils do_binutils_get() { if [ "${CT_BINUTILS_CUSTOM}" = "y" ]; then - CT_GetCustom "binutils" "${CT_BINUTILS_VERSION}" \ - "${CT_BINUTILS_CUSTOM_LOCATION}" + CT_GetCustom "binutils" "${CT_BINUTILS_CUSTOM_VERSION}" \ + "${CT_BINUTILS_CUSTOM_LOCATION}" else if echo ${CT_BINUTILS_VERSION} |${grep} -q linaro; then YYMM=`echo ${CT_BINUTILS_VERSION} |cut -d- -f3 |${sed} -e 's,^..,,'` @@ -22,8 +22,8 @@ do_binutils_get() { if [ -n "${CT_ARCH_BINFMT_FLAT}" ]; then if [ "${CT_ELF2FLT_CUSTOM}" = "y" ]; then - CT_GetCustom "elf2flt" "${CT_ELF2FLT_VERSION}" \ - "${CT_ELF2FLT_CUSTOM_LOCATION}" + CT_GetCustom "elf2flt" "${CT_ELF2FLT_CUSTOM_VERSION}" \ + "${CT_ELF2FLT_CUSTOM_LOCATION}" else CT_GetGit elf2flt "${CT_ELF2FLT_GIT_CSET}" git://wh0rd.org/elf2flt.git fi @@ -32,19 +32,12 @@ do_binutils_get() { # Extract binutils do_binutils_extract() { - # If using custom directory location, nothing to do - if ! [ "${CT_BINUTILS_CUSTOM}" = "y" \ - -a -d "${CT_SRC_DIR}/binutils-${CT_BINUTILS_VERSION}" ]; then - CT_Extract "binutils-${CT_BINUTILS_VERSION}" - CT_Patch "binutils" "${CT_BINUTILS_VERSION}" - fi + CT_Extract "binutils-${CT_BINUTILS_VERSION}" + CT_Patch "binutils" "${CT_BINUTILS_VERSION}" if [ -n "${CT_ARCH_BINFMT_FLAT}" ]; then - if ! [ "${CT_ELF2FLT_CUSTOM}" = "y" \ - -a -d "${CT_SRC_DIR}/elf2flt-${CT_ELF2FLT_VERSION}" ]; then - CT_Extract "elf2flt-${CT_ELF2FLT_GIT_CSET}" - CT_Patch "elf2flt" "${CT_ELF2FLT_GIT_CSET}" - fi + CT_Extract "elf2flt-${CT_ELF2FLT_GIT_CSET}" + CT_Patch "elf2flt" "${CT_ELF2FLT_GIT_CSET}" fi if [ -n "${CT_ARCH_XTENSA_CUSTOM_NAME}" ]; then @@ -235,7 +228,7 @@ do_binutils_backend() { "${CT_BINUTILS_EXTRA_CONFIG_ARRAY[@]}" if [ "${static_build}" = "y" ]; then - extra_make_flags+=("LDFLAGS=-all-static") + extra_make_flags+=("LDFLAGS=${ldflags} -all-static") CT_DoLog EXTRA "Prepare binutils for static build" CT_DoExecLog ALL ${make} ${JOBSFLAGS} configure-host fi @@ -358,6 +351,10 @@ do_binutils_for_target() { extra_config+=("--disable-multilib") fi + if [ "${CT_BINUTILS_FOR_TARGET_IBERTY}" = "y" ]; then + extra_config+=("--enable-install-libiberty") + fi + [ "${CT_TOOLCHAIN_ENABLE_NLS}" != "y" ] && extra_config+=("--disable-nls") CT_DoExecLog CFG \ diff --git a/scripts/build/cc.sh b/scripts/build/cc.sh index 3c8aaef..0db6b9c 100644 --- a/scripts/build/cc.sh +++ b/scripts/build/cc.sh @@ -38,21 +38,21 @@ do_cc_core_pass_1() { # Core pass 2 the cc facilities do_cc_core_pass_2() { - for f in ${CT_CC_FACILITY_LIST}; do + for f in ${CT_CC_FACILITY_LIST}; do do_${f}_core_pass_2 done } # Build for build the cc facilities do_cc_for_build() { - for f in ${CT_CC_FACILITY_LIST}; do + for f in ${CT_CC_FACILITY_LIST}; do do_${f}_for_build done } # Build for host the cc facilities do_cc_for_host() { - for f in ${CT_CC_FACILITY_LIST}; do + for f in ${CT_CC_FACILITY_LIST}; do do_${f}_for_host done } diff --git a/scripts/build/cc/100-gcc.sh b/scripts/build/cc/100-gcc.sh index 6ed9e9c..022cebb 100644 --- a/scripts/build/cc/100-gcc.sh +++ b/scripts/build/cc/100-gcc.sh @@ -8,7 +8,8 @@ do_gcc_get() { local linaro_series="" if [ "${CT_CC_GCC_CUSTOM}" = "y" ]; then - CT_GetCustom "gcc" "${CT_CC_GCC_VERSION}" "${CT_CC_GCC_CUSTOM_LOCATION}" + CT_GetCustom "gcc" "${CT_CC_GCC_CUSTOM_VERSION}" \ + "${CT_CC_GCC_CUSTOM_LOCATION}" else # Account for the Linaro versioning linaro_version="$( echo "${CT_CC_GCC_VERSION}" \ @@ -27,9 +28,10 @@ do_gcc_get() { ftp://{gcc.gnu.org,sourceware.org}/pub/gcc/releases/gcc-${CT_CC_GCC_VERSION} else YYMM=`echo ${CT_CC_GCC_VERSION} |cut -d- -f3 |${sed} -e 's,^..,,'` - CT_GetFile "gcc-${CT_CC_GCC_VERSION}" \ - "http://launchpad.net/gcc-linaro/${linaro_series}/${linaro_version}/+download" \ - https://releases.linaro.org/${YYMM}/components/toolchain/gcc-linaro/${linaro_series} \ + CT_GetFile "gcc-${CT_CC_GCC_VERSION}" \ + "https://releases.linaro.org/components/toolchain/gcc-linaro/${linaro_version}" \ + "https://releases.linaro.org/${YYMM}/components/toolchain/gcc-linaro/${linaro_series}" \ + "http://launchpad.net/gcc-linaro/${linaro_series}/${linaro_version}/+download" \ http://cbuild.validation.linaro.org/snapshots fi @@ -48,12 +50,6 @@ do_gcc_get() { # Extract gcc do_gcc_extract() { - # If using custom directory location, nothing to do - if [ "${CT_CC_GCC_CUSTOM}" = "y" \ - -a -d "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}" ]; then - return 0 - fi - CT_Extract "gcc-${CT_CC_GCC_VERSION}" CT_Patch "gcc" "${CT_CC_GCC_VERSION}" @@ -148,9 +144,7 @@ do_gcc_core_pass_2() { ;; *) core_opts+=( "mode=static" ) - if [ "${CT_CC_GCC_4_3_or_later}" = "y" ]; then - core_opts+=( "build_libgcc=yes" ) - fi + core_opts+=( "build_libgcc=yes" ) ;; esac @@ -317,20 +311,13 @@ do_gcc_core_backend() { extra_config+=("--with-mpc=${complibs}") fi if [ "${CT_CC_GCC_USE_GRAPHITE}" = "y" ]; then - if [ "${CT_PPL}" = "y" ]; then - extra_config+=("--with-ppl=${complibs}") - # With PPL 0.11+, also pull libpwl if needed - if [ "${CT_PPL_NEEDS_LIBPWL}" = "y" ]; then - host_libstdcxx_flags+=("-L${complibs}/lib") - host_libstdcxx_flags+=("-lpwl") - fi - fi if [ "${CT_ISL}" = "y" ]; then extra_config+=("--with-isl=${complibs}") fi - extra_config+=("--with-cloog=${complibs}") + if [ "${CT_CLOOG}" = "y" ]; then + extra_config+=("--with-cloog=${complibs}") + fi elif [ "${CT_CC_GCC_HAS_GRAPHITE}" = "y" ]; then - extra_config+=("--with-ppl=no") extra_config+=("--with-isl=no") extra_config+=("--with-cloog=no") fi @@ -486,16 +473,8 @@ do_gcc_core_backend() { CT_DoExecLog ALL ${make} ${JOBSFLAGS} -C libbacktrace fi - # Starting with GCC 4.3, libgcc.mk is no longer built, - # and libgcc.mvars is used instead. - - if [ "${CT_CC_GCC_4_3_or_later}" = "y" ]; then - libgcc_rule="libgcc.mvars" - core_targets=( gcc target-libgcc ) - else - libgcc_rule="libgcc.mk" - core_targets=( gcc ) - fi + libgcc_rule="libgcc.mvars" + core_targets=( gcc target-libgcc ) # On bare metal and canadian build the host-compiler is used when # actually the build-system compiler is required. Choose the correct @@ -731,10 +710,8 @@ do_gcc_backend() { if [ -n "${CT_CC_GCC_ENABLE_CXX_FLAGS}" ]; then extra_config+=("--enable-cxx-flags=${CT_CC_GCC_ENABLE_CXX_FLAGS}") fi - if [ "${CT_CC_GCC_4_8_or_later}" = "y" ]; then - if [ "${CT_THREADS}" = "none" ]; then - extra_config+=(--disable-libatomic) - fi + if [ "${CT_THREADS}" = "none" ]; then + extra_config+=(--disable-libatomic) fi if [ "${CT_CC_GCC_LIBMUDFLAP}" = "y" ]; then extra_config+=(--enable-libmudflap) @@ -811,20 +788,13 @@ do_gcc_backend() { extra_config+=("--with-mpc=${complibs}") fi if [ "${CT_CC_GCC_USE_GRAPHITE}" = "y" ]; then - if [ "${CT_PPL}" = "y" ]; then - extra_config+=("--with-ppl=${complibs}") - # With PPL 0.11+, also pull libpwl if needed - if [ "${CT_PPL_NEEDS_LIBPWL}" = "y" ]; then - host_libstdcxx_flags+=("-L${complibs}/lib") - host_libstdcxx_flags+=("-lpwl") - fi - fi if [ "${CT_ISL}" = "y" ]; then extra_config+=("--with-isl=${complibs}") fi - extra_config+=("--with-cloog=${complibs}") + if [ "${CT_CLOOG}" = "y" ]; then + extra_config+=("--with-cloog=${complibs}") + fi elif [ "${CT_CC_GCC_HAS_GRAPHITE}" = "y" ]; then - extra_config+=("--with-ppl=no") extra_config+=("--with-isl=no") extra_config+=("--with-cloog=no") fi @@ -842,10 +812,6 @@ do_gcc_backend() { if [ "${CT_THREADS}" = "none" ]; then extra_config+=("--disable-threads") - if [ "${CT_CC_GCC_4_2_or_later}" = y ]; then - CT_Test "Disabling libgomp for no-thread gcc>=4.2" "${CT_CC_GCC_LIBGOMP}" = "Y" - extra_config+=("--disable-libgomp") - fi else if [ "${CT_THREADS}" = "win32" ]; then extra_config+=("--enable-threads=win32") diff --git a/scripts/build/companion_libs/120-ppl.sh b/scripts/build/companion_libs/120-ppl.sh deleted file mode 100644 index dc7ce33..0000000 --- a/scripts/build/companion_libs/120-ppl.sh +++ /dev/null @@ -1,144 +0,0 @@ -# This file adds the functions to build the PPL library -# Copyright 2009 Yann E. MORIN -# Licensed under the GPL v2. See COPYING in the root of this package - -do_ppl_get() { :; } -do_ppl_extract() { :; } -do_ppl_for_build() { :; } -do_ppl_for_host() { :; } -do_ppl_for_target() { :; } - -# Overide functions depending on configuration -if [ "${CT_PPL}" = "y" ]; then - -# Download PPL -do_ppl_get() { - CT_GetFile "ppl-${CT_PPL_VERSION}" \ - http://bugseng.com/products/ppl/download/ftp/releases/${CT_PPL_VERSION} \ - ftp://ftp.cs.unipr.it/pub/ppl/releases/${CT_PPL_VERSION} -} - -# Extract PPL -do_ppl_extract() { - CT_Extract "ppl-${CT_PPL_VERSION}" - CT_Patch "ppl" "${CT_PPL_VERSION}" -} - -# Build PPL for running on build -# - always build statically -# - we do not have build-specific CFLAGS -# - install in build-tools prefix -do_ppl_for_build() { - local -a ppl_opts - local ppl_cflags - local ppl_cxxflags - - case "${CT_TOOLCHAIN_TYPE}" in - native|cross) return 0;; - esac - - CT_DoStep INFO "Installing PPL for build" - CT_mkdir_pushd "${CT_BUILD_DIR}/build-ppl-build-${CT_BUILD}" - - ppl_cflags="${CT_CFLAGS_FOR_BUILD}" - ppl_cxxflags="${CT_CFLAGS_FOR_BUILD}" - if [ "${CT_PPL_NEEDS_FPERMISSIVE}" = "y" ]; then - ppl_cxxflags+=" -fpermissive" - fi - - ppl_opts+=( "host=${CT_BUILD}" ) - ppl_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" ) - ppl_opts+=( "cflags=${ppl_cflags}" ) - ppl_opts+=( "cxxflags=${ppl_cxxflags}" ) - ppl_opts+=( "ldflags=${CT_LDFLAGS_FOR_BUILD}" ) - do_ppl_backend "${ppl_opts[@]}" - - CT_Popd - CT_EndStep -} - -# Build PPL for running on host -do_ppl_for_host() { - local -a ppl_opts - local ppl_cflags - local ppl_cxxflags - - CT_DoStep INFO "Installing PPL for host" - CT_mkdir_pushd "${CT_BUILD_DIR}/build-ppl-host-${CT_HOST}" - - ppl_cflags="${CT_CFLAGS_FOR_HOST}" - ppl_cxxflags="${CT_CFLAGS_FOR_HOST}" - if [ "${CT_PPL_NEEDS_FPERMISSIVE}" = "y" ]; then - ppl_cxxflags+=" -fpermissive" - fi - - ppl_opts+=( "host=${CT_HOST}" ) - ppl_opts+=( "prefix=${CT_HOST_COMPLIBS_DIR}" ) - ppl_opts+=( "cflags=${ppl_cflags}" ) - ppl_opts+=( "cxxflags=${ppl_cxxflags}" ) - ppl_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" ) - do_ppl_backend "${ppl_opts[@]}" - - CT_Popd - CT_EndStep -} - -# Build PPL -# Parameter : description : type : default -# host : machine to run on : tuple : (none) -# prefix : prefix to install into : dir : (none) -# cflags : cflags to use : string : (empty) -# ldflags : ldflags to use : string : (empty) -do_ppl_backend() { - local host - local prefix - local cflags - local cxxflags - local ldflags - local arg - - for arg in "$@"; do - eval "${arg// /\\ }" - done - - CT_DoLog EXTRA "Configuring PPL" - - CT_DoExecLog CFG \ - CFLAGS="${cflags}" \ - CXXFLAGS="${cxxflags}" \ - LDFLAGS="${ldflags}" \ - "${CT_SRC_DIR}/ppl-${CT_PPL_VERSION}/configure" \ - --build=${CT_BUILD} \ - --host=${host} \ - --prefix="${prefix}" \ - --with-libgmp-prefix="${prefix}" \ - --with-libgmpxx-prefix="${prefix}" \ - --with-gmp-prefix="${prefix}" \ - --enable-watchdog \ - --disable-debugging \ - --disable-assertions \ - --disable-ppl_lcdd \ - --disable-ppl_lpsol \ - --disable-shared \ - --enable-interfaces='c c++' \ - --enable-static - - # Maybe-options: - # --enable-optimization=speed or sspeed (yes, with 2 's') - - CT_DoLog EXTRA "Building PPL" - CT_DoExecLog ALL ${make} ${JOBSFLAGS} - - if [ "${CT_COMPLIBS_CHECK}" = "y" ]; then - CT_DoLog EXTRA "Checking PPL" - CT_DoExecLog ALL ${make} ${JOBSFLAGS} -s check - fi - - CT_DoLog EXTRA "Installing PPL" - CT_DoExecLog ALL ${make} install - - # Remove spuriously installed file - CT_DoExecLog ALL rm -f "${prefix}/bin/ppl-config" -} - -fi # CT_PPL diff --git a/scripts/build/companion_libs/130-cloog.sh b/scripts/build/companion_libs/130-cloog.sh index 2d06d06..2376570 100644 --- a/scripts/build/companion_libs/130-cloog.sh +++ b/scripts/build/companion_libs/130-cloog.sh @@ -11,43 +11,20 @@ do_cloog_for_target() { :; } # Overide functions depending on configuration if [ "${CT_CLOOG}" = "y" ]; then -cloog_basename() { - printf "cloog" - if [ "${CT_PPL}" = "y" ]; then - printf -- "-ppl" - fi -} -cloog_basename_version() { - cloog_basename - printf -- "-${CT_CLOOG_VERSION}" -} - # Download CLooG do_cloog_get() { - CT_GetFile "$(cloog_basename_version)" \ + CT_GetFile "cloog-${CT_CLOOG_VERSION}" \ http://www.bastoul.net/cloog/pages/download \ ftp://gcc.gnu.org/pub/gcc/infrastructure } # Extract CLooG do_cloog_extract() { - local _t - - # Version 0.15.3 has a dirname 'cloog-ppl' (with no version in it!) - # while versions 0.15.4 onward do have the version in the dirname. - # But, because the infrastructure properly creates the extracted - # directories (with tar's --strip-components), we can live safely... - CT_Extract "$(cloog_basename_version)" - CT_Patch "$(cloog_basename)" "${CT_CLOOG_VERSION}" + CT_Extract "cloog-${CT_CLOOG_VERSION}" + CT_Patch "cloog" "${CT_CLOOG_VERSION}" # Help the autostuff in case it thinks there are things to regenerate... - CT_DoExecLog DEBUG mkdir -p "${CT_SRC_DIR}/$(cloog_basename_version)/m4" - - if [ "${CT_CLOOG_NEEDS_AUTORECONF}" = "y" ]; then - CT_Pushd "${CT_SRC_DIR}/$(cloog_basename_version)" - CT_DoExecLog CFG ./autogen.sh - CT_Popd - fi + CT_DoExecLog DEBUG mkdir -p "${CT_SRC_DIR}/cloog-${CT_CLOOG_VERSION}/m4" } # Build CLooG for running on build @@ -102,47 +79,37 @@ do_cloog_backend() { local prefix local cflags local ldflags - local cloog_src_dir="${CT_SRC_DIR}/$(cloog_basename_version)" local arg local -a cloog_opts - local -a cloog_targets - local -a cloog_install_targets for arg in "$@"; do eval "${arg// /\\ }" done if [ "${CT_CLOOG_0_18_or_later}" = y ]; then - cloog_opts+=( --with-gmp=system --with-gmp-prefix="${prefix}" ) - cloog_opts+=( --with-isl=system --with-isl-prefix="${prefix}" ) - cloog_opts+=( --without-osl ) - cloog_targets=( all ) - cloog_install_targets=( install ) - else - cloog_opts+=( --with-gmp="${prefix}" ) - cloog_opts+=( --with-ppl="${prefix}" ) - cloog_targets=( libcloog.la ) - cloog_install_targets=( install-libLTLIBRARIES install-pkgincludeHEADERS ) + cloog_opts+=( --with-gmp=system --with-gmp-prefix="${prefix}" ) + cloog_opts+=( --with-isl=system --with-isl-prefix="${prefix}" ) + cloog_opts+=( --without-osl ) fi CT_DoLog EXTRA "Configuring CLooG" - CT_DoExecLog CFG \ - CFLAGS="${cflags}" \ - LDFLAGS="${ldflags}" \ - LIBS="-lm" \ - "${cloog_src_dir}/configure" \ - --build=${CT_BUILD} \ - --host=${host} \ - --prefix="${prefix}" \ - --with-bits=gmp \ - --with-host-libstdcxx='-lstdc++' \ - --disable-shared \ - --enable-static \ + CT_DoExecLog CFG \ + CFLAGS="${cflags}" \ + LDFLAGS="${ldflags}" \ + LIBS="-lm" \ + "${CT_SRC_DIR}/cloog-${CT_CLOOG_VERSION}/configure" \ + --build=${CT_BUILD} \ + --host=${host} \ + --prefix="${prefix}" \ + --with-bits=gmp \ + --with-host-libstdcxx='-lstdc++' \ + --disable-shared \ + --enable-static \ "${cloog_opts[@]}" CT_DoLog EXTRA "Building CLooG" - CT_DoExecLog ALL ${make} ${JOBSFLAGS} "${cloog_targets[@]}" + CT_DoExecLog ALL ${make} ${JOBSFLAGS} if [ "${CT_COMPLIBS_CHECK}" = "y" ]; then CT_DoLog EXTRA "Checking CLooG" @@ -150,7 +117,7 @@ do_cloog_backend() { fi CT_DoLog EXTRA "Installing CLooG" - CT_DoExecLog ALL ${make} "${cloog_install_targets[@]}" + CT_DoExecLog ALL ${make} install } fi # CT_CLOOG diff --git a/scripts/build/companion_libs/200-libelf.sh b/scripts/build/companion_libs/200-libelf.sh index 58aa315..529bba2 100644 --- a/scripts/build/companion_libs/200-libelf.sh +++ b/scripts/build/companion_libs/200-libelf.sh @@ -135,6 +135,13 @@ do_libelf_backend() { CT_DoExecLog ALL ${make} CT_DoLog EXTRA "Installing libelf" + + # Guard against $destdir$prefix == // + # which is a UNC path on Cygwin/MSYS2 + if [[ ${destdir} == / ]] && [[ ${prefix} == /* ]]; then + destdir= + fi + CT_DoExecLog ALL ${make} instroot="${destdir}" install } diff --git a/scripts/build/companion_libs/210-expat.sh b/scripts/build/companion_libs/210-expat.sh index 304482c..7801d33 100644..100755 --- a/scripts/build/companion_libs/210-expat.sh +++ b/scripts/build/companion_libs/210-expat.sh @@ -22,13 +22,18 @@ if [ "${CT_EXPAT}" = "y" ]; then # Do not need expat for build at this time. do_expat_for_host() { + local -a expat_opts + CT_DoStep INFO "Installing expat for host" CT_mkdir_pushd "${CT_BUILD_DIR}/build-expat-host-${CT_HOST}" - do_expat_backend host="${CT_HOST}" \ - prefix="${CT_HOST_COMPLIBS_DIR}" \ - cflags="${CT_CFLAGS_FOR_HOST}" \ - ldflags="${CT_LDFLAGS_FOR_HOST}" + expat_opts+=( "host=${CT_HOST}" ) + expat_opts+=( "prefix=${CT_HOST_COMPLIBS_DIR}" ) + expat_opts+=( "cflags=${CT_CFLAGS_FOR_HOST}" ) + expat_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" ) + expat_opts+=( "static_build=${CT_STATIC_TOOLCHAIN}" ) + + do_expat_backend "${expat_opts[@]}" CT_Popd CT_EndStep @@ -37,12 +42,17 @@ fi if [ "${CT_EXPAT_TARGET}" = "y" ]; then do_expat_for_target() { + local -a expat_opts + CT_DoStep INFO "Installing expat for target" CT_mkdir_pushd "${CT_BUILD_DIR}/build-expat-target-${CT_TARGET}" - do_expat_backend host="${CT_TARGET}" \ - prefix="/usr" \ - destdir="${CT_SYSROOT_DIR}" + expat_opts+=( "host=${CT_TARGET}" ) + expat_opts+=( "prefix=/usr" ) + expat_opts+=( "destdir=${CT_SYSROOT_DIR}" ) + expat_opts+=( "static_build=y" ) + + do_expat_backend "${expat_opts[@]}" CT_Popd CT_EndStep @@ -60,11 +70,17 @@ do_expat_backend() { local cflags local ldflags local arg + local -a extra_config for arg in "$@"; do eval "${arg// /\\ }" done + if [ "${static_build}" = "y" ]; then + extra_config+=("--disable-shared") + extra_config+=("--enable-static") + fi + CT_DoLog EXTRA "Configuring expat" CT_DoExecLog CFG \ @@ -74,8 +90,7 @@ do_expat_backend() { --build=${CT_BUILD} \ --host=${host} \ --prefix="${prefix}" \ - --enable-static \ - --disable-shared + "${extra_config[@]}" CT_DoLog EXTRA "Building expat" CT_DoExecLog ALL ${make} ${JOBSFLAGS} diff --git a/scripts/build/companion_libs/320-libiconv.sh b/scripts/build/companion_libs/320-libiconv.sh index 06908b5..0c9e5cf 100644 --- a/scripts/build/companion_libs/320-libiconv.sh +++ b/scripts/build/companion_libs/320-libiconv.sh @@ -102,6 +102,7 @@ do_libiconv_backend() { --build=${CT_BUILD} \ --host="${host}" \ --prefix="${prefix}" \ + --disable-nls \ "${extra_config[@]}" \ CT_DoLog EXTRA "Building libiconv" diff --git a/scripts/build/debug/300-gdb.sh b/scripts/build/debug/300-gdb.sh index beef5ff..418e85c 100644 --- a/scripts/build/debug/300-gdb.sh +++ b/scripts/build/debug/300-gdb.sh @@ -7,7 +7,8 @@ do_debug_gdb_get() { local linaro_series="" if [ "${CT_GDB_CUSTOM}" = "y" ]; then - CT_GetCustom "gdb" "${CT_GDB_VERSION}" "${CT_GDB_CUSTOM_LOCATION}" + CT_GetCustom "gdb" "${CT_GDB_CUSTOM_VERSION}" \ + "${CT_GDB_CUSTOM_LOCATION}" else # Account for the Linaro versioning linaro_version="$( echo "${CT_GDB_VERSION}" \ @@ -33,12 +34,6 @@ do_debug_gdb_get() { } do_debug_gdb_extract() { - # If using custom directory location, nothing to do - if [ "${CT_GDB_CUSTOM}" = "y" \ - -a -d "${CT_SRC_DIR}/gdb-${CT_GDB_VERSION}" ]; then - return 0 - fi - CT_Extract "gdb-${CT_GDB_VERSION}" CT_Patch "gdb" "${CT_GDB_VERSION}" @@ -100,10 +95,10 @@ do_debug_gdb_build() { LD_for_gdb="${CT_HOST}-ld -static" fi - # Disable binutils options when building from the binutils-gdb repo. - cross_extra_config+=("--disable-binutils") - cross_extra_config+=("--disable-ld") - cross_extra_config+=("--disable-gas") + # Disable binutils options when building from the binutils-gdb repo. + cross_extra_config+=("--disable-binutils") + cross_extra_config+=("--disable-ld") + cross_extra_config+=("--disable-gas") CT_DoLog DEBUG "Extra config passed: '${cross_extra_config[*]}'" @@ -191,10 +186,10 @@ do_debug_gdb_build() { export ac_cv_func_strncmp_works=yes - # Disable binutils options when building from the binutils-gdb repo. - native_extra_config+=("--disable-binutils") - native_extra_config+=("--disable-ld") - native_extra_config+=("--disable-gas") + # Disable binutils options when building from the binutils-gdb repo. + native_extra_config+=("--disable-binutils") + native_extra_config+=("--disable-ld") + native_extra_config+=("--disable-gas") CT_DoLog DEBUG "Extra config passed: '${native_extra_config[*]}'" @@ -261,10 +256,10 @@ do_debug_gdb_build() { fi fi - # Disable binutils options when building from the binutils-gdb repo. - gdbserver_extra_config+=("--disable-binutils") - gdbserver_extra_config+=("--disable-ld") - gdbserver_extra_config+=("--disable-gas") + # Disable binutils options when building from the binutils-gdb repo. + gdbserver_extra_config+=("--disable-binutils") + gdbserver_extra_config+=("--disable-ld") + gdbserver_extra_config+=("--disable-gas") CT_DoExecLog CFG \ CC="${CT_TARGET}-gcc" \ diff --git a/scripts/build/kernel/linux.sh b/scripts/build/kernel/linux.sh index 49fe613..f0f2402 100644 --- a/scripts/build/kernel/linux.sh +++ b/scripts/build/kernel/linux.sh @@ -23,13 +23,9 @@ do_kernel_get() { local rel_dir local korg_base mirror_base - if [ "${CT_KERNEL_LINUX_USE_CUSTOM_HEADERS}" = "y" ]; then - return 0 - fi - if [ "${CT_KERNEL_LINUX_CUSTOM}" = "y" ]; then - CT_GetCustom "linux" "${CT_KERNEL_VERSION}" \ - "${CT_KERNEL_LINUX_CUSTOM_LOCATION}" + CT_GetCustom "linux" "${CT_KERNEL_LINUX_CUSTOM_VERSION}" \ + "${CT_KERNEL_LINUX_CUSTOM_LOCATION}" else # Not a custom tarball case "${CT_KERNEL_VERSION}" in 2.6.*.*|3.*.*|4.*.*) @@ -59,11 +55,6 @@ do_kernel_get() { # Extract kernel do_kernel_extract() { - # If using a custom headers tree, nothing to do - if [ "${CT_KERNEL_LINUX_USE_CUSTOM_HEADERS}" = "y" ]; then - return 0 - fi - # If using a custom directory location, nothing to do if [ "${CT_KERNEL_LINUX_CUSTOM}" = "y" \ -a -d "${CT_SRC_DIR}/linux-${CT_KERNEL_VERSION}" ]; then @@ -81,32 +72,16 @@ do_kernel_extract() { CT_Patch "linux" "${CT_KERNEL_VERSION}" } -# Wrapper to the actual headers install method -do_kernel_headers() { - CT_DoStep INFO "Installing kernel headers" - - if [ "${CT_KERNEL_LINUX_USE_CUSTOM_HEADERS}" = "y" ]; then - do_kernel_custom - else - do_kernel_install - fi - - CT_EndStep -} - # Install kernel headers using headers_install from kernel sources. -do_kernel_install() { +do_kernel_headers() { local kernel_path local kernel_arch - CT_DoLog DEBUG "Using kernel's headers_install" + CT_DoStep INFO "Installing kernel headers" mkdir -p "${CT_BUILD_DIR}/build-kernel-headers" kernel_path="${CT_SRC_DIR}/linux-${CT_KERNEL_VERSION}" - if [ "${CT_KERNEL_LINUX_CUSTOM}" = "y" ]; then - kernel_path="${CT_SRC_DIR}/linux-custom" - fi V_OPT="V=${CT_KERNEL_LINUX_VERBOSE_LEVEL}" kernel_arch="${CT_ARCH}" @@ -145,28 +120,6 @@ do_kernel_install() { -o -name '..check.cmd' \ \) \ -exec rm {} \; -} -# Use custom headers (most probably by using make headers_install in a -# modified (read: customised) kernel tree, or using pre-2.6.18 headers, such -# as 2.4). In this case, simply copy the headers in place -do_kernel_custom() { - local tar_opt - - CT_DoLog EXTRA "Installing custom kernel headers" - - mkdir -p "${CT_SYSROOT_DIR}/usr" - cd "${CT_SYSROOT_DIR}/usr" - if [ "${CT_KERNEL_LINUX_CUSTOM_IS_TARBALL}" = "y" ]; then - case "${CT_KERNEL_LINUX_CUSTOM_PATH}" in - *.tar) ;; - *.tgz) tar_opt=--gzip;; - *.tar.gz) tar_opt=--gzip;; - *.tar.bz2) tar_opt=--bzip2;; - *.tar.xz) tar_opt=--xz;; - esac - CT_DoExecLog ALL tar x ${tar_opt} -vf ${CT_KERNEL_LINUX_CUSTOM_PATH} - else - CT_DoExecLog ALL cp -rv "${CT_KERNEL_LINUX_CUSTOM_PATH}/include" . - fi + CT_EndStep } diff --git a/scripts/build/libc/avr-libc.sh b/scripts/build/libc/avr-libc.sh index 103a795..b73f990 100644 --- a/scripts/build/libc/avr-libc.sh +++ b/scripts/build/libc/avr-libc.sh @@ -6,24 +6,14 @@ do_libc_get() { libc_src="http://download.savannah.gnu.org/releases/avr-libc" if [ "${CT_LIBC_AVR_LIBC_CUSTOM}" = "y" ]; then - CT_GetCustom "avr-libc" "${CT_LIBC_VERSION}" \ - "${CT_LIBC_AVR_LIBC_CUSTOM_LOCATION}" + CT_GetCustom "avr-libc" "${CT_LIBC_AVR_LIBC_CUSTOM_VERSION}" \ + "${CT_LIBC_AVR_LIBC_CUSTOM_LOCATION}" else # ! custom location CT_GetFile "avr-libc-${CT_LIBC_VERSION}" "${libc_src}" fi # ! custom location } do_libc_extract() { - # If using custom directory location, nothing to do. - if [ "${CT_LIBC_AVR_LIBC_CUSTOM}" = "y" ]; then - # Abort if the custom directory is not found. - if ! [ -d "${CT_SRC_DIR}/avr-libc-${CT_LIBC_VERSION}" ]; then - CT_Abort "Directory not found: ${CT_SRC_DIR}/avr-libc-${CT_LIBC_VERSION}" - fi - - return 0 - fi - CT_Extract "avr-libc-${CT_LIBC_VERSION}" CT_Patch "avr-libc" "${CT_LIBC_VERSION}" } diff --git a/scripts/build/libc/glibc.sh b/scripts/build/libc/glibc.sh index 126e9e0..d45248a 100644 --- a/scripts/build/libc/glibc.sh +++ b/scripts/build/libc/glibc.sh @@ -6,16 +6,10 @@ do_libc_extract() { local addon - # Attempt CT_EXTRACT only if NOT custom, or CUSTOM_LOCATION is not a directory - if [ "${CT_LIBC_CUSTOM}" != "y" \ - -o ! -d "${CT_LIBC_CUSTOM_LOCATION}" ]; then - CT_Extract "${CT_LIBC}-${CT_LIBC_VERSION}" - fi + CT_Extract "${CT_LIBC}-${CT_LIBC_VERSION}" CT_Pushd "${CT_SRC_DIR}/${CT_LIBC}-${CT_LIBC_VERSION}" # Attempt CT_PATCH only if NOT custom - if [ "${CT_LIBC_CUSTOM}" != "y" ]; then - CT_Patch nochdir "${CT_LIBC}" "${CT_LIBC_VERSION}" - fi + CT_Patch nochdir "${CT_LIBC}" "${CT_LIBC_VERSION}" # Extract the add-opns if => 2.17 if [ "${CT_LIBC_GLIBC_2_17_or_later}" != "y" ]; then @@ -554,9 +548,9 @@ do_libc_get() { addons_list=($(do_libc_add_ons_list " ")) # Main source - if [ "${CT_LIBC_CUSTOM}" = "y" ]; then - CT_GetCustom "glibc" "${CT_LIBC_VERSION}" "${CT_LIBC_GLIBC_CUSTOM_LOCATION}" - CT_LIBC_CUSTOM_LOCATION="${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}" + if [ "${CT_LIBC_GLIBC_CUSTOM}" = "y" ]; then + CT_GetCustom "glibc" "${CT_LIBC_GLIBC_CUSTOM_VERSION}" \ + "${CT_LIBC_GLIBC_CUSTOM_LOCATION}" else if echo ${CT_LIBC_VERSION} |${grep} -q linaro; then # Linaro glibc releases come from regular downloads... diff --git a/scripts/build/libc/musl.sh b/scripts/build/libc/musl.sh index f8f135c..f7dbb97 100644 --- a/scripts/build/libc/musl.sh +++ b/scripts/build/libc/musl.sh @@ -8,24 +8,14 @@ do_libc_get() { libc_src="http://www.musl-libc.org/releases" if [ "${CT_LIBC_MUSL_CUSTOM}" = "y" ]; then - CT_GetCustom "musl" "${CT_LIBC_VERSION}" \ - "${CT_LIBC_MUSL_CUSTOM_LOCATION}" + CT_GetCustom "musl" "${CT_LIBC_MUSL_CUSTOM_VERSION}" \ + "${CT_LIBC_MUSL_CUSTOM_LOCATION}" else # ! custom location CT_GetFile "musl-${CT_LIBC_VERSION}" "${libc_src}" fi # ! custom location } do_libc_extract() { - # If using custom directory location, nothing to do. - if [ "${CT_LIBC_MUSL_CUSTOM}" = "y" ]; then - # Abort if the custom directory is not found. - if ! [ -d "${CT_SRC_DIR}/musl-${CT_LIBC_VERSION}" ]; then - CT_Abort "Directory not found: ${CT_SRC_DIR}/musl-${CT_LIBC_VERSION}" - fi - - return 0 - fi - CT_Extract "musl-${CT_LIBC_VERSION}" CT_Patch "musl" "${CT_LIBC_VERSION}" } diff --git a/scripts/build/libc/newlib.sh b/scripts/build/libc/newlib.sh index a4fe82e..ba52268 100644 --- a/scripts/build/libc/newlib.sh +++ b/scripts/build/libc/newlib.sh @@ -14,8 +14,8 @@ do_libc_get() { ftp://sourceware.org/pub/newlib}" if [ "${CT_LIBC_NEWLIB_CUSTOM}" = "y" ]; then - CT_GetCustom "newlib" "${CT_LIBC_VERSION}" \ - "${CT_LIBC_NEWLIB_CUSTOM_LOCATION}" + CT_GetCustom "newlib" "${CT_LIBC_NEWLIB_CUSTOM_VERSION}" \ + "${CT_LIBC_NEWLIB_CUSTOM_LOCATION}" else # ! custom location if echo ${CT_LIBC_VERSION} |${grep} -q linaro; then YYMM=`echo ${CT_LIBC_VERSION} |cut -d- -f3 |${sed} -e 's,^..,,'` @@ -30,12 +30,6 @@ do_libc_get() { } do_libc_extract() { - # If using custom directory location, nothing to do - if [ "${CT_LIBC_NEWLIB_CUSTOM}" = "y" \ - -a -d "${CT_SRC_DIR}/newlib-${CT_LIBC_VERSION}" ]; then - return 0 - fi - CT_Extract "newlib-${CT_LIBC_VERSION}" CT_Patch "newlib" "${CT_LIBC_VERSION}" diff --git a/scripts/build/libc/uClibc.sh b/scripts/build/libc/uClibc.sh index f5b871c..422412c 100644 --- a/scripts/build/libc/uClibc.sh +++ b/scripts/build/libc/uClibc.sh @@ -19,8 +19,8 @@ fi # Download uClibc do_libc_get() { if [ "${CT_LIBC_UCLIBC_CUSTOM}" = "y" ]; then - CT_GetCustom "${uclibc_name}" "${CT_LIBC_VERSION}" \ - "${CT_LIBC_UCLIBC_CUSTOM_LOCATION}" + CT_GetCustom "${uclibc_name}" "${CT_LIBC_UCLIBC_CUSTOM_VERSION}" \ + "${CT_LIBC_UCLIBC_CUSTOM_LOCATION}" else CT_GetFile "${uclibc_name}-${CT_LIBC_VERSION}" ${libc_src} fi @@ -34,16 +34,8 @@ do_libc_get() { # Extract uClibc do_libc_extract() { - # If not using custom directory location, extract and patch - # Note: we do the inverse test we do in other components, - # because here we still need to extract the locales, even for - # custom location directory. Just use negate the whole test, - # to keep it the same as for other components. - if ! [ "${CT_LIBC_UCLIBC_CUSTOM}" = "y" \ - -a -d "${CT_SRC_DIR}/${uclibc_name}-${CT_LIBC_VERSION}" ]; then - CT_Extract "${uclibc_name}-${CT_LIBC_VERSION}" - CT_Patch "${uclibc_name}" "${CT_LIBC_VERSION}" - fi + CT_Extract "${uclibc_name}-${CT_LIBC_VERSION}" + CT_Patch "${uclibc_name}" "${CT_LIBC_VERSION}" # uClibc locales # Extracting pregen locales ourselves is kinda diff --git a/scripts/functions b/scripts/functions index e266626..5a64232 100644 --- a/scripts/functions +++ b/scripts/functions @@ -1,4 +1,6 @@ -# This file contains some usefull common functions -*- sh -*- +# -*- mode: sh; tab-width: 4 -*- +# vi: ts=4:sw=4:sts=4:et +# This file contains some usefull common functions # Copyright 2007 Yann E. MORIN # Licensed under the GPL v2. See COPYING in the root of this package @@ -625,39 +627,58 @@ CT_GetLocal() { } # This function gets the custom source from either a tarball or directory -# Usage: CT_GetCustom <component> <custom_version> <custom_location> +# Usage: CT_GetCustom <name> <version> <location> CT_GetCustom() { - local custom_component="$1" - local custom_version="$2" - local custom_location="$3" - local custom_name="${custom_component}-${custom_version}" - - CT_TestAndAbort "${custom_name}: CT_CUSTOM_LOCATION_ROOT_DIR or ${custom_component}'s CUSTOM_LOCATION must be set." \ - -z "${CT_CUSTOM_LOCATION_ROOT_DIR}" -a -z "${custom_location}" - - if [ -n "${CT_CUSTOM_LOCATION_ROOT_DIR}" \ - -a -z "${custom_location}" ]; then - custom_location="${CT_CUSTOM_LOCATION_ROOT_DIR}/${custom_component}" + local component_name="$1" + local component_version="$2" + local component_location="$3" + + # Some local variables we use to help us figure out what to do + local component_location_type="dir" # str: 'file' or 'dir' + local component_location_filename="" # filename... if it's a file + + CT_TestAndAbort \ + "${component_name}: Custom location setting is empty" \ + -z "${component_location}" + + CT_TestAndAbort \ + "${component_name}: Custom version setting is empty" \ + -z "${component_version}" + + if [ -f "${component_location}" ]; then + component_location_type="file" + component_location_filename="$(basename ${component_location})" + elif [ -d "${component_location}" ]; then + # Yes, it's the default, but it rules out the else case in the `if'. + component_location_type="dir" + # as -d and -f say: it's a <directory|file> and is readable! + else + CT_Abort "${component_name}: Unable to read ${component_location}, make sure the setting is correct and double check the permissions!" fi - CT_DoLog EXTRA "Using '${custom_name}' from custom location" - if [ ! -d "${custom_location}" ]; then + if [ "${component_location_type}" = "file" ]; then + CT_DoLog EXTRA "Got '${component_location}' from custom location" # We need to know the custom tarball extension, # so we can create a properly-named symlink, which # we use later on in 'extract' - case "${custom_location}" in - *.tar.xz) custom_name="${custom_name}.tar.xz";; - *.tar.bz2) custom_name="${custom_name}.tar.bz2";; - *.tar.gz|*.tgz) custom_name="${custom_name}.tar.gz";; - *.tar) custom_name="${custom_name}.tar";; - *) CT_Abort "Unknown extension for custom tarball '${custom_location}'";; + case "${component_location}" in + *.tar.xz|*.tar.bz2|*.tar.lzma|*.tar.gz|*.tgz|*.tar|*.zip) ;; + *) CT_Abort "Unknown extension for custom tarball '${component_location}'" ;; esac - CT_DoExecLog DEBUG ln -sf "${custom_location}" \ - "${CT_TARBALLS_DIR}/${custom_name}" - else - CT_DoExecLog DEBUG ln -snf "${custom_location}" \ - "${CT_SRC_DIR}/${custom_name}" + [ ! -L "${CT_TARBALLS_DIR}/${component_location_filename}" ] && \ + CT_DoExecLog DEBUG ln -sf "${component_location}" \ + "${CT_TARBALLS_DIR}/${component_location_filename}" + elif [ "${component_location_type}" = "dir" ]; then + CT_DoLog EXTRA "Got '${component_location}' from custom location" + [ ! -d "${CT_SRC_DIR}/${component_name}-${component_version}" ] && \ + CT_DoExecLog DEBUG cp -al "${component_location}" \ + "${CT_SRC_DIR}/${component_name}-${component_version}" + + # Don't try to extract from source directory, it's extracted! + touch "${CT_SRC_DIR}/.${component_name}-${component_version}.extracted" fi + # Don't patch a custom source, it's custom! + touch "${CT_SRC_DIR}/.${component_name}-${component_version}.patched" } # This function saves the specified to local storage if possible, @@ -938,18 +959,18 @@ CT_Extract() { basename="$1" shift - if ! ext="$(CT_GetFileExtension "${basename}")"; then - CT_DoLog WARN "'${basename}' not found in '${CT_TARBALLS_DIR}'" - return 1 - fi - local full_file="${CT_TARBALLS_DIR}/${basename}${ext}" - # Check if already extracted if [ -e "${CT_SRC_DIR}/.${basename}.extracted" ]; then CT_DoLog DEBUG "Already extracted '${basename}'" return 0 fi + if ! ext="$(CT_GetFileExtension "${basename}")"; then + CT_DoLog WARN "'${basename}' not found in '${CT_TARBALLS_DIR}'" + return 1 + fi + local full_file="${CT_TARBALLS_DIR}/${basename}${ext}" + # Check if previously partially extracted if [ -e "${CT_SRC_DIR}/.${basename}.extracting" ]; then CT_DoLog ERROR "The '${basename}' sources were partially extracted." diff --git a/scripts/patch-rework.sh b/scripts/patch-rework.sh index 2809348..d05d2c1 100755 --- a/scripts/patch-rework.sh +++ b/scripts/patch-rework.sh @@ -11,35 +11,35 @@ diff="$@" do_help() { cat <<-_EOF_ - ${0##*/}: transform a patchset of non-p1 patches into -p1 patches - - Usage: - ${0##*/} <basedir> <src> <dst> [diffopts ...] - - Where: - basedir - points to the directory of the component to patch - - src - points to the directory containing the existing patchset - to transform - - dst - points to the directory where to put transformed patches - - diffopts - optional options to pass to diff, for debug purposes. You - should not need it - - Example: - Transform Gentoo patches against gcc-4.4.2 (some of which are - -p0, -p1 or even -p2 patches) into all -p1 patches: - - tar xjf gcc-4.4.2.tar.bz2 - patch-rework.sh gcc-4.4.2 \\ - /path/to/gentoo/gcc/patches \\ - gcc-4.4.2.patches - _EOF_ + ${0##*/}: transform a patchset of non-p1 patches into -p1 patches + + Usage: + ${0##*/} <basedir> <src> <dst> [diffopts ...] + + Where: + basedir + points to the directory of the component to patch + + src + points to the directory containing the existing patchset + to transform + + dst + points to the directory where to put transformed patches + + diffopts + optional options to pass to diff, for debug purposes. You + should not need it + + Example: + Transform Gentoo patches against gcc-4.4.2 (some of which are + -p0, -p1 or even -p2 patches) into all -p1 patches: + + tar xjf gcc-4.4.2.tar.bz2 + patch-rework.sh gcc-4.4.2 \\ + /path/to/gentoo/gcc/patches \\ + gcc-4.4.2.patches + _EOF_ } # Sanity checks @@ -48,8 +48,8 @@ if [ -z "${base}" \ -o ! -d "${src}" \ -o -e "${dst}" -a ! -d "${dst}" \ ]; then - do_help - exit 1 + do_help + exit 1 fi mkdir -p "${dst}" diff --git a/scripts/saveSample.sh.in b/scripts/saveSample.sh.in index 34e6594..a070dc2 100644 --- a/scripts/saveSample.sh.in +++ b/scripts/saveSample.sh.in @@ -37,12 +37,6 @@ if [ "${CT_CUSTOM_PATCH}" = "y" ]; then echo "You will not be able to (easily) share this sample in this case." read -p "Press Ctrl-C to stop now, or Enter to continue..." fi -if [ "${CT_KERNEL_LINUX_USE_CUSTOM_HEADERS}" = "y" ]; then - exec >&7 - echo "You are using custom Linux headers." - echo "You will not be able to (easily) share this sample in this case." - read -p "Press Ctrl-C to stop now, or Enter to continue..." -fi # Do not use a progress bar unset CT_LOG_PROGRESS_BAR diff --git a/scripts/showSamples.sh b/scripts/showSamples.sh index 8aef5ed..aed3dd1 100755 --- a/scripts/showSamples.sh +++ b/scripts/showSamples.sh @@ -69,7 +69,7 @@ dump_single_sample() { printf " %-*s : %s\n" ${width} "OS" "${CT_KERNEL}${CT_KERNEL_VERSION:+-}${CT_KERNEL_VERSION}" if [ -n "${CT_GMP}" \ -o -n "${CT_MPFR}" \ - -o -n "${CT_PPL}" \ + -o -n "${CT_ISL}" \ -o -n "${CT_CLOOG}" \ -o -n "${CT_MPC}" \ -o -n "${CT_LIBELF}" \ @@ -77,7 +77,7 @@ dump_single_sample() { -o -n "${CT_NCURSES}" \ -o -n "${CT_GMP_TARGET}" \ -o -n "${CT_MPFR_TARGET}" \ - -o -n "${CT_PPL_TARGET}" \ + -o -n "${CT_ISL_TARGET}" \ -o -n "${CT_CLOOG_TARGET}" \ -o -n "${CT_MPC_TARGET}" \ -o -n "${CT_LIBELF_TARGET}" \ @@ -89,8 +89,8 @@ dump_single_sample() { fi [ -z "${CT_GMP}" -a -z "${CT_GMP_TARGET}" ] || printf " gmp-%s" "${CT_GMP_VERSION}" [ -z "${CT_MPFR}" -a -z "${CT_MPFR_TARGET}" ] || printf " mpfr-%s" "${CT_MPFR_VERSION}" - [ -z "${CT_PPL}" -a -z "${CT_PPL_TARGET}" ] || printf " ppl-%s" "${CT_PPL_VERSION}" - [ -z "${CT_CLOOG}" -a -z "${CT_CLOOG_TARGET}" ] || printf " cloog-ppl-%s" "${CT_CLOOG_VERSION}" + [ -z "${CT_ISL}" -a -z "${CT_ISL_TARGET}" ] || printf " isl-%s" "${CT_ISL_VERSION}" + [ -z "${CT_CLOOG}" -a -z "${CT_CLOOG_TARGET}" ] || printf " cloog-%s" "${CT_CLOOG_VERSION}" [ -z "${CT_MPC}" -a -z "${CT_MPC_TARGET}" ] || printf " mpc-%s" "${CT_MPC_VERSION}" [ -z "${CT_LIBELF}" -a -z "${CT_LIBELF_TARGET}" ] || printf " libelf-%s" "${CT_LIBELF_VERSION}" [ -z "${CT_EXPAT}" -a -z "${CT_EXPAT_TARGET}" ] || printf " expat-%s" "${CT_EXPAT_VERSION}" |