scripts/wrapper.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Feb 24 22:31:15 2011 +0100 (2011-02-24)
changeset 2320 5f681a2a0a89
parent 1434 7e7290acccc1
permissions -rw-r--r--
docs: add an in-depth explanations of the build steps

The build process is quite complex: gcc is built three times, there are
two C library steps, there are those companion libraries...

People often wonder what all these steps do, and why they are needed.

Recently, someone proposed a tutorial on the crossgcc mailing list:
http://sourceware.org/ml/crossgcc/2011-01/msg00059.html

This meant that there was a need for such a tutorial, and explanations
on how a toolchain is built. So i decide to extend my answers:
http://sourceware.org/ml/crossgcc/2011-01/msg00060.html
http://sourceware.org/ml/crossgcc/2011-01/msg00125.html

into proper documentation in crosstool-NG.

Thanks go to Francesco for suggesting this. He has a fine tutorial
for beginners there:
http://fturco.org/wiki/doku.php?id=debian:cross-compiler

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 #!/bin/sh
     2 
     3 # this wrapper will not work under BSD systems or others
     4 # not containig the GNU readlink.
     5 # Under those, wrapper.c will forcibly be used
     6 # regardless of the config file setting.
     7 
     8 canonicalizedname=$(readlink -nm "${0}")
     9 dirname="$(dirname "${canonicalizedname}")"
    10 basename="$(basename "${canonicalizedname}")"
    11 
    12 ld_lib_path="$(dirname "${dirname}")/lib"
    13 
    14 case ":${LD_LIBRARY_PATH}:" in
    15     *":${ld_lib_path}:"*)   ;;
    16     *)  LD_LIBRARY_PATH="${ld_lib_path}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}";;
    17 esac
    18 
    19 export LD_LIBRARY_PATH
    20 exec "${dirname}/.${basename}" "$@"