scripts/build/libc/newlib.sh
author Remy Bohmer <linux@bohmer.net>
Sun Jul 11 22:23:34 2010 +0200 (2010-07-11)
changeset 2021 3e52a1510f87
parent 1930 d78dac957ebc
child 2154 250cdcc86441
permissions -rw-r--r--
debug/gdb: Fix compilation for Mingw hosts

GDB requires PDcurses instead of ncurses while running on Windows.
So, do not always compile ncurses in case GDB needs to build.

PDcurses is provided by an earlier build step and is not described in
this file.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
[yann.morin.1998@anciense.nib.fr: we already have a way to detect ncurses usage]
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 }