From 66a2b086805dea2898191cca50b0ced33f7ad67a Mon Sep 17 00:00:00 2001 From: David Holsgrove Date: Thu, 11 Oct 2012 14:39:45 +1000 Subject: libc/newlib: Add CUSTOM version and CUSTOM_LOCATION config options and GetCustom CUSTOM_LOCATION config options only presented in menuconfig if component CUSTOM version selected. Signed-off-by: "David Holsgrove" [yann.morin.1998@free.fr: fix indentation] Signed-off-by: "Yann E. MORIN" Message-Id: PatchWork-Id: 190795 diff --git a/config/libc/newlib.in b/config/libc/newlib.in index 35c3fcf..16ac247 100644 --- a/config/libc/newlib.in +++ b/config/libc/newlib.in @@ -52,8 +52,25 @@ config LIBC_NEWLIB_CVS In a word: use the CVS snapshot at your own risk! +config LIBC_NEWLIB_CUSTOM + bool + prompt "Custom newlib" + depends on EXPERIMENTAL + endchoice +if LIBC_NEWLIB_CUSTOM + +config LIBC_NEWLIB_CUSTOM_LOCATION + string + prompt "Full path to custom newlib source" + default "" + help + Enter the path to the directory (or tarball) of your source for newlib, + or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/newlib + +endif # LIBC_NEWLIB_CUSTOM + config LIBC_VERSION string prompt "use CVS tag" if LIBC_NEWLIB_CVS @@ -63,6 +80,7 @@ config LIBC_VERSION default "1.19.0" if LIBC_NEWLIB_V_1_19_0 default "1.18.0" if LIBC_NEWLIB_V_1_18_0 default "1.17.0" if LIBC_NEWLIB_V_1_17_0 + default "custom" if LIBC_NEWLIB_CUSTOM help Enter the tag you want to use. Leave empty to use the 'head' of the repository. diff --git a/scripts/build/libc/newlib.sh b/scripts/build/libc/newlib.sh index 3907d7b..3e91631 100644 --- a/scripts/build/libc/newlib.sh +++ b/scripts/build/libc/newlib.sh @@ -20,7 +20,10 @@ do_libc_get() { libc_src="ftp://sources.redhat.com/pub/newlib" avr32headers_src="http://dev.doredevelopment.dk/avr32-toolchain/sources" - if [ -z "${CT_LIBC_NEWLIB_CVS}" ]; then + if [ "${CT_LIBC_NEWLIB_CUSTOM}" = "y" ]; then + CT_GetCustom "newlib" "${CT_LIBC_VERSION}" \ + "${CT_LIBC_NEWLIB_CUSTOM_LOCATION}" + elif [ -z "${CT_LIBC_NEWLIB_CVS}" ]; then CT_GetFile "newlib-${CT_LIBC_VERSION}" ${libc_src} else CT_GetCVS "newlib-$(libc_newlib_version)" \ @@ -36,6 +39,12 @@ 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-$(libc_newlib_version)" ]; then + return 0 + fi + CT_Extract "newlib-$(libc_newlib_version)" CT_Patch "newlib" "$(libc_newlib_version)" -- cgit v0.10.2-6-g49f6