scripts/build/libc/newlib.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed Jul 28 23:55:10 2010 +0200 (2010-07-28)
changeset 2043 efb1058baa31
parent 1930 d78dac957ebc
child 2154 250cdcc86441
permissions -rw-r--r--
cc/gcc: add option to enable/disable libmudflap

For some scenarii, libmudflap is not very usefull
or can break the build. Make in an optioon that
defaults to 'N' to be on the safe side.

For the core gcc-s, there is absolutely no need
to build libmidflap.

Idea from: Bernhard Pfund <bernhard@chapter7.ch>
     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 }