scripts/build/libc/newlib.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Oct 05 23:59:16 2010 +0200 (2010-10-05)
changeset 2134 af1a779a7f1a
parent 1930 d78dac957ebc
child 2154 250cdcc86441
permissions -rw-r--r--
scripts: update distclean

The toolchains are now built in .build/ rather than in targets/
so distclean has to get rid of that.

We also clean up the old dir, as users may have old samples that
still refer to the old location.

Do not hide messages during distclean, and do not ignore errors.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 # This file adds functions to build the Newlib C library
     2 # Copyright 2009 DoréDevelopment
     3 # Licensed under the GPL v2. See COPYING in the root of this package
     4 #
     5 # Edited by Martin Lund <mgl@doredevelopment.dk>
     6 #
     7 
     8 libc_newlib_version() {
     9     if [ -z "${CT_LIBC_NEWLIB_CVS}" ]; then
    10         echo "${CT_LIBC_VERSION}"
    11     else
    12         echo "cvs${CT_LIBC_VERSION:+-${CT_LIBC_VERSION}}"
    13     fi
    14 }
    15 
    16 do_libc_get() {
    17     local libc_src
    18     local avr32headers_src
    19     local save_chunks
    20 
    21     libc_src="ftp://sources.redhat.com/pub/newlib"
    22     avr32headers_src="http://dev.doredevelopment.dk/avr32-toolchain/sources"
    23 
    24     save_chunks="${CT_DOWNLOAD_MAX_CHUNKS}"
    25     CT_DOWNLOAD_MAX_CHUNKS=1
    26 
    27     if [ -z "${CT_LIBC_NEWLIB_CVS}" ]; then
    28         CT_GetFile "newlib-${CT_LIBC_VERSION}" ${libc_src}
    29     else
    30         CT_GetCVS "newlib-$(libc_newlib_version)"                   \
    31                   ":pserver:anoncvs@sources.redhat.com:/cvs/src"    \
    32                   "newlib"                                          \
    33                   "${CT_LIBC_VERSION}"                              \
    34                   "newlib-$(libc_newlib_version)=src"
    35     fi
    36 
    37     if [ "${CT_ATMEL_AVR32_HEADERS}" = "y" ]; then
    38         CT_GetFile "avr32headers" ${avr32headers_src}
    39     fi
    40 
    41     CT_DOWNLOAD_MAX_CHUNKS="${save_chunks}"
    42 }
    43 
    44 do_libc_extract() {
    45     CT_Extract "newlib-$(libc_newlib_version)"
    46     CT_Patch "newlib" "$(libc_newlib_version)"
    47 
    48     if [ "${CT_ATMEL_AVR32_HEADERS}" = "y" ]; then
    49         CT_Extract "avr32headers"
    50     fi
    51 }
    52 
    53 do_libc_check_config() {
    54     :
    55 }
    56 
    57 do_libc_headers() {
    58     :
    59 }
    60 
    61 do_libc_start_files() {
    62     CT_DoStep INFO "Installing C library"
    63 
    64     mkdir -p "${CT_BUILD_DIR}/build-libc"
    65     cd "${CT_BUILD_DIR}/build-libc"
    66 
    67     CT_DoLog EXTRA "Configuring C library"
    68 
    69     # Note: newlib handles the build/host/target a little bit differently
    70     # than one would expect:
    71     #   build  : not used
    72     #   host   : the machine building newlib
    73     #   target : the machine newlib runs on
    74     CC_FOR_BUILD="${CT_BUILD}-gcc"                      \
    75     CFLAGS_FOR_TARGET="${CT_TARGET_CFLAGS} -O"          \
    76     AR=${CT_TARGET}-ar                                  \
    77     RANLIB=${CT_TARGET}-ranlib                          \
    78     CT_DoExecLog ALL                                    \
    79     "${CT_SRC_DIR}/newlib-$(libc_newlib_version)/configure" \
    80         --host=${CT_BUILD}                              \
    81         --target=${CT_TARGET}                           \
    82         --prefix=${CT_PREFIX_DIR}
    83 
    84     CT_DoLog EXTRA "Building C library"
    85     CT_DoExecLog ALL make ${PARALLELMFLAGS}
    86 
    87     CT_DoLog EXTRA "Installing C library"
    88     CT_DoExecLog ALL make install install_root="${CT_SYSROOT_DIR}"
    89 
    90     CT_EndStep
    91 }
    92 
    93 do_libc() {
    94     :
    95 }
    96 
    97 do_libc_finish() {
    98     CT_DoStep INFO "Finishing C library"
    99     
   100     if [ "${CT_ATMEL_AVR32_HEADERS}" = "y" ]; then
   101         CT_DoLog EXTRA "Installing Atmel's AVR32 headers"
   102         CT_DoExecLog ALL cp -r ${CT_SRC_DIR}/avr32headers "${CT_PREFIX_DIR}/${CT_TARGET}/include/avr32"
   103     fi
   104 
   105     CT_EndStep
   106 }