summaryrefslogtreecommitdiff
path: root/scripts/build/libc.sh
blob: 5f5aa6f3298f9eece2b9ddd2659d54bec7f3252f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# C library build routines. We don't invoke the corresponding functions directly
# because some of them build on top of another. E.g. moxiebox runtime requires
# newlib as a prerequisite.

# Define default hooks - download/unpack just the main package; no-op build hooks.
# The actual implementation can override just what it needs then.
eval "${CT_LIBC//[^A-Za-z0-9]/_}_get() { CT_Fetch \"\${CT_LIBC_${CT_LIBC_CHOICE_KSYM}_PKG_KSYM}\"; }"
eval "${CT_LIBC//[^A-Za-z0-9]/_}_extract() { CT_ExtractPatch \"\${CT_LIBC_${CT_LIBC_CHOICE_KSYM}_PKG_KSYM}\"; }"
for _m in headers main post_cc; do
    eval "${CT_LIBC//[^A-Za-z0-9]/_}_${_m}() { :; }"
done

# Source the selected libc.
. "${CT_LIB_DIR}/scripts/build/libc/${CT_LIBC}.sh"

do_libc_get()
{
    eval "${CT_LIBC//[^A-Za-z0-9]/_}_get"
}

do_libc_extract()
{
    eval "${CT_LIBC//[^A-Za-z0-9]/_}_extract"
}

do_libc_headers()
{
    eval "${CT_LIBC//[^A-Za-z0-9]/_}_headers"
}

do_libc_main()
{
    eval "${CT_LIBC//[^A-Za-z0-9]/_}_main"
}

do_libc_post_cc()
{
    eval "${CT_LIBC//[^A-Za-z0-9]/_}_post_cc"
}