@ -197,6 +197,47 @@ find_bins() {
}
wrap_bin_cc( ) {
local out = " $1 "
local bin = " $2 "
echo '#!/bin/sh' > " $out "
echo 'for arg in "$@"; do' >> " $out "
echo ' case "$arg" in -l*|-L*|-shared|-static)' >> " $out "
echo -n ' exec "' " $bin " '" ' " $CFLAGS " ' ${STAGING_DIR:+' >> " $out "
echo -n '-idirafter "$STAGING_DIR/usr/include" ' >> " $out "
echo -n '-L "$STAGING_DIR/usr/lib" ' >> " $out "
echo '-Wl,-rpath-link,"$STAGING_DIR/usr/lib"} "$@" ;;' >> " $out "
echo ' esac' >> " $out "
echo 'done' >> " $out "
echo -n 'exec "' " $bin " '" ' " $CFLAGS " ' ${STAGING_DIR:+' >> " $out "
echo '-idirafter "$STAGING_DIR/usr/include"} "$@"' >> " $out "
chmod +x " $out "
}
wrap_bin_ld( ) {
local out = " $1 "
local bin = " $2 "
echo '#!/bin/sh' > " $out "
echo -n 'exec "' " $bin " '" ' " $CFLAGS " ' ${STAGING_DIR:+' >> " $out "
echo -n '-L "$STAGING_DIR/usr/lib" ' >> " $out "
echo '-rpath-link "$STAGING_DIR/usr/lib"} "$@"' >> " $out "
chmod +x " $out "
}
wrap_bin_other( ) {
local out = " $1 "
local bin = " $2 "
echo '#!/bin/sh' > " $out "
echo 'exec "' " $bin " '" "$@"' >> " $out "
chmod +x " $out "
}
wrap_bins( ) {
if probe_cc; then
mkdir -p " $1 " || return 1
@ -212,27 +253,17 @@ wrap_bins() {
bin = '$(dirname "$0")/' " ${ out ##*/ } " '.bin'
fi
echo '#!/bin/sh' > " $out "
case " ${ cmd ##*/ } " in
*-*cc| *-*cc-*| *-*++| *-*++-*| *-cpp)
echo -n 'exec "' " $bin " '" ' " $CFLAGS " ' ' >> " $out "
echo -n '${STAGING_DIR:+-idirafter ' >> " $out "
echo -n '"$STAGING_DIR/usr/include" ' >> " $out "
echo -n '-L "$STAGING_DIR/usr/lib" ' >> " $out "
echo -n '-Wl,-rpath-link,' >> " $out "
echo '"$STAGING_DIR/usr/lib"} "$@"' >> " $out "
wrap_bin_cc " $out " " $bin "
; ;
*-ld)
echo -n 'exec "' " $bin " '" ${STAGING_DIR:+' >> " $out "
echo -n '-L "$STAGING_DIR/usr/lib" ' >> " $out "
echo -n '-rpath-link ' >> " $out "
echo '"$STAGING_DIR/usr/lib"} "$@"' >> " $out "
wrap_bin_ld " $out " " $bin "
; ;
*)
echo 'exec "' " $bin " '" "$@"' >> " $out "
wrap_bin_other " $out " " $bin "
; ;
esac
chmod +x " $out "
fi
done