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