scripts/build/libc/newlib.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Aug 23 14:32:16 2010 +0200 (2010-08-23)
changeset 2100 f9fcfc002c8a
parent 1930 d78dac957ebc
child 2154 250cdcc86441
permissions -rw-r--r--
debug/gdb: install dependable libs in a generic target static libs dir

For now, ncurses is the only dependable target library built for gdb.
But expat is coming, and there's no reason to install each library in
its own place.

So, install ncurses in a generic directory, where other dependable
libraries can be installed as well.

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 }