oe-setup-builddir 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. #!/bin/sh
  2. # OE Build Enviroment Setup Script
  3. #
  4. # Copyright (C) 2006-2011 Linux Foundation
  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 the
  14. # 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, write to the Free Software
  18. # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  19. if [ -z "$BUILDDIR" ]; then
  20. echo >&2 "Error: The build directory (BUILDDIR) must be set!"
  21. exit 1
  22. fi
  23. mkdir -p $BUILDDIR/conf
  24. if ! (test -d "$BUILDDIR"); then
  25. echo >&2 "Error: The builddir ($BUILDDIR) does not exist!"
  26. exit 1
  27. fi
  28. if ! (test -w "$BUILDDIR"); then
  29. echo >&2 "Error: Cannot write to $BUILDDIR, perhaps try sourcing with a writable path? i.e. . oe-init-build-env ~/my-build"
  30. exit 1
  31. fi
  32. cd "$BUILDDIR"
  33. TEMPLATECONF=${TEMPLATECONF:-meta/conf}
  34. #
  35. # $TEMPLATECONF can point to a directory for the template local.conf & bblayers.conf
  36. #
  37. if [ "x" != "x$TEMPLATECONF" ]; then
  38. if ! (test -d "$TEMPLATECONF"); then
  39. # Allow TEMPLATECONF=meta-xyz/conf as a shortcut
  40. if [ -d "$OEROOT/$TEMPLATECONF" ]; then
  41. TEMPLATECONF="$OEROOT/$TEMPLATECONF"
  42. fi
  43. if ! (test -d "$TEMPLATECONF"); then
  44. echo >&2 "Error: '$TEMPLATECONF' must be a directory containing local.conf & bblayers.conf"
  45. return
  46. fi
  47. fi
  48. OECORELAYERCONF="$TEMPLATECONF/bblayers.conf.sample"
  49. OECORELOCALCONF="$TEMPLATECONF/local.conf.sample"
  50. fi
  51. if [ "x" = "x$OECORELOCALCONF" ]; then
  52. OECORELOCALCONF="$OEROOT/meta/conf/local.conf.sample"
  53. fi
  54. if ! (test -r "$BUILDDIR/conf/local.conf"); then
  55. cat <<EOM
  56. You had no conf/local.conf file. This configuration file has therefore been
  57. created for you with some default values. You may wish to edit it to use a
  58. different MACHINE (target hardware) or enable parallel build options to take
  59. advantage of multiple cores for example. See the file for more information as
  60. common configuration options are commented.
  61. The Yocto Project has extensive documentation about OE including a reference manual
  62. which can be found at:
  63. http://yoctoproject.org/documentation
  64. For more information about OpenEmbedded see their website:
  65. http://www.openembedded.org/
  66. EOM
  67. cp -f $OECORELOCALCONF $BUILDDIR/conf/local.conf
  68. fi
  69. if [ "x" = "x$OECORELAYERCONF" ]; then
  70. OECORELAYERCONF="$OEROOT/meta/conf/bblayers.conf.sample"
  71. fi
  72. if ! (test -r "$BUILDDIR/conf/bblayers.conf"); then
  73. cat <<EOM
  74. You had no conf/bblayers.conf file. The configuration file has been created for
  75. you with some default values. To add additional metadata layers into your
  76. configuration please add entries to this file.
  77. The Yocto Project has extensive documentation about OE including a reference manual
  78. which can be found at:
  79. http://yoctoproject.org/documentation
  80. For more information about OpenEmbedded see their website:
  81. http://www.openembedded.org/
  82. EOM
  83. # Put the abosolute path to the layers in bblayers.conf so we can run
  84. # bitbake without the init script after the first run
  85. sed "s|##COREBASE##|$OEROOT|g" $OECORELAYERCONF > $BUILDDIR/conf/bblayers.conf
  86. fi
  87. # Prevent disturbing a new GIT clone in same console
  88. unset OECORELOCALCONF
  89. unset OECORELAYERCONF
  90. cat <<EOM
  91. ### Shell environment set up for builds. ###
  92. You can now run 'bitbake <target>'
  93. Common targets are:
  94. core-image-minimal
  95. core-image-sato
  96. meta-toolchain
  97. meta-toolchain-sdk
  98. adt-installer
  99. meta-ide-support
  100. You can also run generated qemu images with a command like 'runqemu qemux86'
  101. EOM