scripts/build/companion_tools/050-make.sh
author Daniel Price <daniel.price@gmail.com>
Tue Nov 20 16:59:17 2012 -0800 (2012-11-20)
changeset 3126 333d3e40cbd1
parent 2309 2e0f0757289d
permissions -rw-r--r--
scripts: refine static linking check to better guide the user

The current mechanism to check if static linking is possible, and the mesage
displayed on failure, can be puzzling to the unsuspecting user.

Also, the current implementation is not using the existing infrastructure,
and is thus difficult to enhance with new tests.

So, switch to using the standard CT_DoExecLog infra, and use four tests to
check for the host compiler:
- check we can run it
- check it can build a trivial program
- check it can statically link that program
- check if it statically link with libstdc++

That should cover most of the problems. Hopefully.

(At the same time, fix a typo in a comment)

Signed-off-by: Daniel Price <daniel.price@gmail.com>
[yann.morin.1998@free.fr: split original patch for self-contained changes]
[yann.morin.1998@free.fr: use steps to better see gcc's output]
[yann.morin.1998@free.fr: commit log]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <163f86b5216fc08c672a.1353459722@nipigon.dssd.com>
Patchwork-Id: 200536
yann@2285
     1
# Build script for make
yann@2285
     2
yann@2285
     3
CT_MAKE_VERSION=3.81
yann@2285
     4
yann@2285
     5
do_companion_tools_make_get() {
yann@2285
     6
    CT_GetFile "make-${CT_MAKE_VERSION}" \
yann@2285
     7
               {http,ftp}://ftp.gnu.org/gnu/make
yann@2285
     8
}
yann@2285
     9
yann@2285
    10
do_companion_tools_make_extract() {
yann@2285
    11
    CT_Extract "make-${CT_MAKE_VERSION}"
yann@2328
    12
    CT_DoExecLog ALL chmod -R u+w "${CT_SRC_DIR}/make-${CT_MAKE_VERSION}"
yann@2285
    13
    CT_Patch "make" "${CT_MAKE_VERSION}"
yann@2285
    14
}
yann@2285
    15
yann@2285
    16
do_companion_tools_make_build() {
yann@2285
    17
    CT_DoStep EXTRA "Installing make"
yann@2285
    18
    mkdir -p "${CT_BUILD_DIR}/build-make"
yann@2285
    19
    CT_Pushd "${CT_BUILD_DIR}/build-make"
yann@2285
    20
yann@2285
    21
    CT_DoExecLog CFG "${CT_SRC_DIR}/make-${CT_MAKE_VERSION}/configure" \
yann@2309
    22
                     --prefix="${CT_BUILDTOOLS_PREFIX_DIR}"
yann@2285
    23
    CT_DoExecLog ALL make
yann@2285
    24
    CT_DoExecLog ALL make install
yann@2285
    25
    CT_Popd
yann@2285
    26
    CT_EndStep
yann@2285
    27
}