From patchwork Wed Oct 10 06:07:54 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [1, of, 6] config+scripts: Extract CUSTOM / CUSTOM_LOCATION currently in linux.sh Date: Tue, 09 Oct 2012 20:07:54 -0000 From: David Holsgrove X-Patchwork-Id: 190550 Message-Id: <54e6f8f3b141d3502e51.1349849274@localhost.localdomain> To: bryanhundven@gmail.com, yann.morin.1998@free.fr Cc: crossgcc@sourceware.org # HG changeset patch # User David Holsgrove # Date 1349321174 -36000 # Node ID 54e6f8f3b141d3502e51e35cdda8aded03b597f4 # Parent 43ace4bb005eef085437e3d4fbaef528ef0ef005 config+scripts: Extract CUSTOM / CUSTOM_LOCATION currently in linux.sh Generalise in scripts/functions as GetCustom Add CUSTOM_LOCATION_ROOT_DIR to config/paths.in as a root directory which will be used if CUSTOM is selected as version, and no CUSTOM_LOCATION given for a component. --- For unsubscribe information see http://sourceware.org/lists.html#faq diff -r 43ace4bb005e -r 54e6f8f3b141 config/global/paths.in --- a/config/global/paths.in Wed Sep 26 16:37:31 2012 +0200 +++ b/config/global/paths.in Thu Oct 04 13:26:14 2012 +1000 @@ -60,6 +60,15 @@ # The reason you might also want to install elsewhere is if you are going # to package your shinny new toolchain for distribution. + +config CUSTOM_LOCATION_ROOT_DIR + string + depends on EXPERIMENTAL + prompt "directory containing custom source components" + help + This is the path CT-NG will attempt to use as a root for locating + local copies of source components (CUSTOM_LOCATION_ROOT_DIR/component) + config RM_RF_PREFIX_DIR bool prompt "| Remove the prefix dir prior to building" diff -r 43ace4bb005e -r 54e6f8f3b141 scripts/functions --- a/scripts/functions Wed Sep 26 16:37:31 2012 +0200 +++ b/scripts/functions Thu Oct 04 13:26:14 2012 +1000 @@ -516,6 +516,32 @@ return 1 } +# This function gets the custom source from either a tarball or directory +# Usage: CT_GetCustom custom_name +CT_GetCustom() { + local custom_name="$1" + local custom_location="$2" + + if [ ! -d "${custom_location}" ]; then + # 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.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}'";; + esac + CT_DoLog EXTRA "Using '${custom_name}' from local storage" + CT_DoExecLog DEBUG ln -sf "${custom_location}" \ + "${CT_TARBALLS_DIR}/${custom_name}" + else + CT_DoLog EXTRA "Using '${custom_name}' from local storage" + CT_DoExecLog DEBUG ln -snf "${custom_location}" \ + "${CT_SRC_DIR}/${custom_name}" + fi +} + # This function saves the specified to local storage if possible, # and if so, symlinks it for later usage # Usage: CT_SaveLocal