scripts/build/debug/100-dmalloc.sh
author Oron Peled <oron@actcom.co.il>
Mon Aug 03 00:49:25 2009 +0200 (2009-08-03)
changeset 1449 8ad2773e7ae3
parent 1126 1ab3d2e08c8b
child 1480 2d3be1a8fe93
permissions -rw-r--r--
[complib:mpfr] Fix building MPFR in some weird cases

The tmul test uses a compiled-in input file in $(srcdir).
The problem is that the Makefile passes it unquoted. The C code
tries to stringify it using clever macros, which may *usually* work.

In my case the source directory was named:
.../toolchain-powerpc-e500v2-linux-gnuspe-1.0-2.fc10/.../tests
And guess what? During testing I found out the program fails because
it tries to open:
.../toolchain-powerpc-e500v2-1-gnuspe-1.0-2.fc10/.../tests

Yes, CPP tokenized the macro before stringifying it and not surprisingly
the 'linux' part was converted to 1.
[on Fedora-10: cpp (GCC) 4.3.2 20081105 (Red Hat 4.3.2-7)]

So the attached patch simplify the macros and pass the path as string
from the Makefile.
yann@479
     1
# Build script for the dmalloc debug library facility
yann@479
     2
yann@479
     3
do_debug_dmalloc_get() {
yann@479
     4
    CT_GetFile "dmalloc-${CT_DMALLOC_VERSION}" http://dmalloc.com/releases/
yann@479
     5
}
yann@479
     6
yann@479
     7
do_debug_dmalloc_extract() {
yann@1126
     8
    CT_Extract "dmalloc-${CT_DMALLOC_VERSION}"
yann@1126
     9
    CT_Patch "dmalloc-${CT_DMALLOC_VERSION}"
yann@479
    10
}
yann@479
    11
yann@479
    12
do_debug_dmalloc_build() {
yann@479
    13
    CT_DoStep INFO "Installing dmalloc"
yann@479
    14
    CT_DoLog EXTRA "Configuring dmalloc"
yann@479
    15
yann@479
    16
    mkdir -p "${CT_BUILD_DIR}/build-dmalloc"
yann@479
    17
    cd "${CT_BUILD_DIR}/build-dmalloc"
yann@479
    18
yann@479
    19
    extra_config=
yann@479
    20
    case "${CT_CC_LANG_CXX}" in
yann@479
    21
        y)  extra_config="${extra_config} --enable-cxx";;
yann@479
    22
        *)  extra_config="${extra_config} --disable-cxx";;
yann@479
    23
    esac
yann@479
    24
    case "${CT_THREADS_NONE}" in
yann@479
    25
        y)  extra_config="${extra_config} --disable-threads";;
yann@479
    26
        *)  extra_config="${extra_config} --enable-threads";;
yann@479
    27
    esac
yann@479
    28
    case "${CT_SHARED_LIBS}" in
yann@479
    29
        y)  extra_config="${extra_config} --enable-shlib";;
yann@479
    30
        *)  extra_config="${extra_config} --disable-shlib";;
yann@479
    31
    esac
yann@479
    32
yann@523
    33
    CT_DoLog DEBUG "Extra config passed: '${extra_config}'"
yann@479
    34
yann@479
    35
    LD="${CT_TARGET}-ld"                                        \
yann@479
    36
    AR="${CT_TARGET}-ar"                                        \
yann@1074
    37
    CFLAGS=-fPIC                                                \
yann@669
    38
    CT_DoExecLog ALL                                            \
yann@479
    39
    "${CT_SRC_DIR}/dmalloc-${CT_DMALLOC_VERSION}/configure"     \
yann@479
    40
        --prefix=/usr                                           \
yann@479
    41
        --build="${CT_BUILD}"                                   \
yann@479
    42
        --host="${CT_TARGET}"                                   \
yann@669
    43
        ${extra_config}
yann@479
    44
yann@479
    45
    CT_DoLog EXTRA "Building dmalloc"
yann@857
    46
    CT_DoExecLog ALL make
yann@479
    47
yann@479
    48
    CT_DoLog EXTRA "Installing dmalloc"
yann@669
    49
    CT_DoExecLog ALL make DESTDIR="${CT_SYSROOT_DIR}" installincs installlib
yann@1219
    50
    CT_DoExecLog ALL make DESTDIR="${CT_DEBUGROOT_DIR}" installutil
yann@479
    51
yann@479
    52
    CT_EndStep
yann@479
    53
}