oe-run-native 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/bin/bash
  2. #
  3. # Copyright (c) 2016, Intel Corporation.
  4. # All Rights Reserved
  5. #
  6. # This program is free software; you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation; either version 2 of the License, or
  9. # (at your option) any later version.
  10. #
  11. # This program is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
  14. # the GNU General Public License for more details.
  15. #
  16. # You should have received a copy of the GNU General Public License
  17. # along with this program; if not, see <http://www.gnu.org/licenses/>
  18. #
  19. #
  20. # This script is for running tools from native oe sysroot
  21. #
  22. if [ $# -lt 1 -o "$1" = '--help' -o "$1" = '-h' ] ; then
  23. echo 'oe-run-native: the following arguments are required: <native recipe> <native tool>'
  24. echo 'Usage: oe-run-native native-recipe tool [parameters]'
  25. echo ''
  26. echo 'OpenEmbedded run-native - runs native tools'
  27. echo ''
  28. echo 'arguments:'
  29. echo ' native-recipe The recipe which provoides tool'
  30. echo ' tool Native tool to run'
  31. echo ''
  32. exit 2
  33. fi
  34. native_recipe="$1"
  35. tool="$2"
  36. if [ "${native_recipe%-native}" = "$native_recipe" ]; then
  37. echo Error: $native_recipe is not a native recipe
  38. echo Error: Use \"oe-run-native -h\" for help
  39. exit 1
  40. fi
  41. shift
  42. SYSROOT_SETUP_SCRIPT=`which oe-find-native-sysroot 2> /dev/null`
  43. if [ -z "$SYSROOT_SETUP_SCRIPT" ]; then
  44. echo "Error: Unable to find oe-find-native-sysroot script"
  45. exit 1
  46. fi
  47. . $SYSROOT_SETUP_SCRIPT $native_recipe
  48. OLD_PATH=$PATH
  49. # look for a tool only in native sysroot
  50. PATH=$OECORE_NATIVE_SYSROOT/usr/bin:$OECORE_NATIVE_SYSROOT/bin:$OECORE_NATIVE_SYSROOT/usr/sbin:$OECORE_NATIVE_SYSROOT/sbin$(find $OECORE_NATIVE_SYSROOT/usr/bin/*-native -maxdepth 1 -type d -printf ":%p")
  51. tool_find=`/usr/bin/which $tool 2>/dev/null`
  52. if [ -n "$tool_find" ] ; then
  53. # add old path to allow usage of host tools
  54. PATH=$PATH:$OLD_PATH "$@"
  55. else
  56. echo "Error: Unable to find '$tool' in $PATH"
  57. echo "Error: Have you run 'bitbake $native_recipe -caddto_recipe_sysroot'?"
  58. exit 1
  59. fi