external-toolchain-cross.bbclass 975 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. inherit external-toolchain cross
  2. EXTERNAL_CROSS_BINARIES ?= ""
  3. EXTERNAL_CROSS_NOPSEUDO = "gcc g++ cpp"
  4. wrap_bin () {
  5. bin="$1"
  6. shift
  7. script="${D}${bindir}/${TARGET_PREFIX}$bin"
  8. printf '#!/bin/sh\n' >$script
  9. for arg in "$@"; do
  10. printf '%s\n' "$arg"
  11. done >>"$script"
  12. printf 'exec ${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}%s "$@"\n' "$bin" >>"$script"
  13. chmod +x "$script"
  14. }
  15. do_install () {
  16. install -d ${D}${bindir}
  17. for bin in ${EXTERNAL_CROSS_BINARIES}; do
  18. if [ ! -e "${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}$bin" ]; then
  19. continue
  20. fi
  21. disable=0
  22. for nopseudo in ${EXTERNAL_CROSS_NOPSEUDO}; do
  23. case "$bin" in
  24. *$nopseudo)
  25. disable=1
  26. ;;
  27. esac
  28. done
  29. if [ $disable -eq 1 ]; then
  30. wrap_bin "$bin" "export PSEUDO_UNLOAD=1"
  31. else
  32. wrap_bin "$bin"
  33. fi
  34. done
  35. }