scripts/build/libc/newlib.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Oct 25 23:35:55 2009 +0100 (2009-10-25)
changeset 1588 3ccb1f76576f
parent 1470 13bec17271ad
child 1589 c8619ad47c6d
permissions -rw-r--r--
libc/newlib: fix host/target confusion

newlib handles the build/host/target a bit differently as one would expect:
build : not used
host : the nachine that builds newlib
target : the machine on which newlib will run
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
mgl@1371
     8
mgl@1371
     9
do_libc_get() {
mgl@1371
    10
    libc_src="ftp://sources.redhat.com/pub/newlib"
mgl@1373
    11
    avr32headers_src="http://dev.doredevelopment.dk/avr32-toolchain/sources"
mgl@1373
    12
    
mgl@1373
    13
    CT_GetFile "newlib-${CT_LIBC_VERSION}" ${libc_src}
mgl@1371
    14
mgl@1373
    15
    if [ "${CT_ATMEL_AVR32_HEADERS}" = "y" ]; then
mgl@1373
    16
        CT_GetFile "avr32headers" ${avr32headers_src}
mgl@1373
    17
    fi
mgl@1371
    18
}
mgl@1371
    19
mgl@1371
    20
do_libc_extract() {
mgl@1371
    21
    CT_Extract "newlib-${CT_LIBC_VERSION}"
mgl@1371
    22
    CT_Patch "newlib-${CT_LIBC_VERSION}"
mgl@1371
    23
mgl@1373
    24
    if [ "${CT_ATMEL_AVR32_HEADERS}" = "y" ]; then
mgl@1373
    25
        CT_Extract "avr32headers"
mgl@1373
    26
    fi
mgl@1371
    27
}
mgl@1371
    28
mgl@1371
    29
do_libc_check_config() {
mgl@1371
    30
    :
mgl@1371
    31
}
mgl@1371
    32
mgl@1371
    33
do_libc_headers() {
mgl@1371
    34
    :
mgl@1371
    35
}
mgl@1371
    36
mgl@1371
    37
do_libc_start_files() {
mgl@1371
    38
    :
mgl@1371
    39
}
mgl@1371
    40
mgl@1371
    41
do_libc() {
mgl@1371
    42
    CT_DoStep INFO "Installing C library"
mgl@1371
    43
mgl@1371
    44
    mkdir -p "${CT_BUILD_DIR}/build-libc"
mgl@1371
    45
    cd "${CT_BUILD_DIR}/build-libc"
mgl@1371
    46
mgl@1371
    47
    CT_DoLog EXTRA "Configuring C library"
mgl@1371
    48
yann@1588
    49
    # Note: newlib handles the build/host/target a little bit differently
yann@1588
    50
    # than one would expect:
yann@1588
    51
    #   build  : not used
yann@1588
    52
    #   host   : the machine building newlib
yann@1588
    53
    #   target : the machine newlib runs on
mgl@1372
    54
#    CC="${CT_TARGET}-gcc ${CT_LIBC_EXTRA_CC_ARGS} ${extra_cc_args}" \
mgl@1469
    55
    BUILD_CC="${CT_BUILD}-gcc"                                      \
mgl@1469
    56
    CFLAGS="${CT_TARGET_CFLAGS} ${CT_LIBC_GLIBC_EXTRA_CFLAGS} -O"   \
mgl@1371
    57
    AR=${CT_TARGET}-ar                                              \
mgl@1371
    58
    RANLIB=${CT_TARGET}-ranlib                                      \
mgl@1371
    59
    CT_DoExecLog ALL                                                \
mgl@1371
    60
    "${CT_SRC_DIR}/newlib-${CT_LIBC_VERSION}/configure"             \
yann@1588
    61
        --host=${CT_BUILD}                                          \
mgl@1371
    62
        --target=${CT_TARGET}                                       \
mgl@1371
    63
        --prefix=${CT_PREFIX_DIR}                                   \
mgl@1371
    64
        ${extra_config}                                             \
mgl@1371
    65
        ${CT_LIBC_GLIBC_EXTRA_CONFIG}
mgl@1371
    66
    
mgl@1371
    67
    CT_DoLog EXTRA "Building C library"
mgl@1371
    68
mgl@1371
    69
    CT_DoExecLog ALL make
mgl@1371
    70
    
mgl@1371
    71
    CT_DoLog EXTRA "Installing C library"
mgl@1371
    72
mgl@1371
    73
    CT_DoExecLog ALL make install install_root="${CT_SYSROOT_DIR}"
mgl@1371
    74
mgl@1371
    75
    CT_EndStep
mgl@1371
    76
}
mgl@1371
    77
mgl@1371
    78
do_libc_finish() {
mgl@1373
    79
    CT_DoStep INFO "Installing Atmel AVR32 headers"
mgl@1373
    80
    
mgl@1373
    81
    if [ "${CT_ATMEL_AVR32_HEADERS}" = "y" ]; then
mgl@1373
    82
        CT_DoExecLog ALL cp -r ${CT_SRC_DIR}/avr32headers "${CT_PREFIX_DIR}/${CT_TARGET}/include/avr32"
mgl@1373
    83
    fi
mgl@1373
    84
mgl@1373
    85
    CT_EndStep
mgl@1371
    86
}