summaryrefslogtreecommitdiff
path: root/scripts/build/companion_tools/200-autoconf.sh
blob: bccef75816a5f11c5d92213230dbec73d67b3919 (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# Build script for autoconf

do_companion_tools_autoconf_get() {
    CT_GetFile "autoconf-${CT_AUTOCONF_VERSION}"    \
        {http,ftp,https}://ftp.gnu.org/gnu/autoconf
}

do_companion_tools_autoconf_extract() {
    CT_Extract "autoconf-${CT_AUTOCONF_VERSION}"
    CT_DoExecLog ALL chmod -R u+w "${CT_SRC_DIR}/autoconf-${CT_AUTOCONF_VERSION}"
    CT_Patch "autoconf" "${CT_AUTOCONF_VERSION}"
}

do_companion_tools_autoconf_for_build() {
    CT_DoStep INFO "Installing autoconf for build"
    CT_mkdir_pushd "${CT_BUILD_DIR}/build-autoconf-build"
    do_autoconf_backend host=${CT_BUILD} prefix="${CT_BUILD_COMPTOOLS_DIR}"
    CT_Popd
    CT_EndStep
}

do_companion_tools_autoconf_for_host() {
    CT_DoStep INFO "Installing autoconf for host"
    CT_mkdir_pushd "${CT_BUILD_DIR}/build-autoconf-host"
    do_autoconf_backend host=${CT_HOST} prefix="${CT_PREFIX_DIR}"
    CT_Popd
    CT_EndStep
}

do_autoconf_backend() {
    local host
    local prefix

    for arg in "$@"; do
        eval "${arg// /\\ }"
    done

    # Ensure configure gets run using the CONFIG_SHELL as configure seems to
    # have trouble when CONFIG_SHELL is set and /bin/sh isn't bash
    # For reference see:
    # http://www.gnu.org/software/autoconf/manual/autoconf.html#CONFIG_005fSHELL
    CT_DoLog EXTRA "Configuring autoconf"
    CT_DoExecLog CFG \
    ${CONFIG_SHELL} \
    "${CT_SRC_DIR}/autoconf-${CT_AUTOCONF_VERSION}/configure" \
                     --host="${host}" \
                     --prefix="${prefix}"

    CT_DoLog EXTRA "Building autoconf"
    CT_DoExecLog ALL make

    CT_DoLog EXTRA "Installing autoconf"
    CT_DoExecLog ALL make install
}