Copy head@r259933 -> user/gjb/hacking/release-embedded for initial
inclusion of (at least) arm builds with the release.

Sponsored by:	The FreeBSD Foundation
Burn mergeinfo on the new branch.

Sponsored by:	The FreeBSD Foundation
MFH: Tracking commit.

Sponsored by:	The FreeBSD Foundation
Implement cross build support for embedded devices into
release.sh:

 - Modify release/release.sh to recognize an 'EMBEDDEDBUILD'
   variable.  When set, release/release.sh will build the chroot
   userland as is done for big-iron builds.

 - Instead of running the 'buildworld', 'buildkernel', and
   'release' targets in the chroot, a separate script is run.
   The script tools/release/${XDEV}/release.sh sets up the rest
   of the chroot workspace, such as installing ports that will
   be needed, and building the 'xdev' target.

 - crochet (by kientzle@) is checked out from the upstream
   repository (and if needed, u-boot, in the case of Raspberry
   Pi).

 - tools/release/${XDEV}/release.sh then runs crochet with
   a configuration file specific to the ${KERNCONF} being built.

Note that this is effectively a first-pass attempt to integrate
this into the release process.

Tested against:	head@r259961
Sponsored by:	The FreeBSD Foundation
MFH: Tracking commit

Sponsored by:	The FreeBSD Foundation
Remove commented options to include src/ and ports/.
Reduce image size from 4G to 1G, and enable autosize.

Sponsored by:	The FreeBSD Foundation
MFH: Tracking commit.

Sponsored by:	The FreeBSD Foundation
MFH: tracking commit (head@r260486)

Sponsored by:	The FreeBSD Foundation
MFH: tracking commit (head@r260487)
  - Unbreak all the things.

Sponsored by:	The FreeBSD Foundation
MFH: Tracking commit (r260891)

Sponsored by:	The FreeBSD Foundation
Move tools/release/${XDEV}/ to release/tools/${XDEV}/.

In general, the workflow used for the latest releases has been
to checkout head/release/ to a directory outside of any build
environments, modify the release.conf accordingly, and run:

	# ./release.sh -c ./release.conf

By moving tools/release/${XDEV}/ (for RPI-B build testing, in
this case), any dependency on a different branch of the source
tree can be removed.  In particular, release.sh expects the
tools/release/${XDEV}/crochet-${KERNEL}.conf file to exist, so
by moving the crochet configuration file to a directory in
release/, it becomes possible to build images for branches that
do not yet have the necessary configuration files and/or scripts.

Sponsored by:	The FreeBSD Foundation
When bootstrapping the build chroot, the default environment is
set up for the amd64/amd64 TARGET/TARGET_ARCH combination.

Some of the build tools used here (u-boot in particular) require
use of gcc(1).  The lang/gcc* from ports/ will install as 'gccNN'
instead of 'gcc', so they cannot be used without extra hacks.

Add an EMBEDDED_WORLD_FLAGS variable to be used to properly set
up the build chroot.  For the RPI-B case, EMBEDDED_WORLD_FLAGS
is set to 'WITH_GCC=1', which is used to set up the build chroot.

While here, in followup to r260895, do not rely on the necessary
configuration files and/or scripts to exist in the build target
src/ tree.

To work around cases where files do not exist, copy (from the
local release/ checkout) the tools/${XDEV}/crochet-${KERNEL}.conf
to ${CHROOTDIR}/tmp/external/crochet-${KERNEL}.conf to make them
accessible to the external utilities that need them (i.e., crochet).

Sponsored by:	The FreeBSD Foundation
Add initial support for building arm BEAGLEBONE images.

 - In arm/release.sh:
   - Move crochet work directory creation to occur earlier,
     since its parent directory is needed to store a fetched
     u-boot version.

   - Add a before_build() function as a quick hack to run
     board-specific (kernel configuration specific, really)
     commands, if any.

   - For the BEAGLEBONE kernel, a specific version of u-boot
     source is needed.  Fetch the source in before_build() for
     this case.  Unfortunately, there are no checksums available
     (that I can find) for these sources.  For a quick solution,
     add the hard-coded sha256 of the tarball, and fetch from
     my public_html/ directory.  A more permanent solution for
     this needs to be found.

Add initial release.sh and crochet configuration files for the
BEAGLEBONE build.

Sponsored by:	The FreeBSD Foundation
Explicitly set XDEV_ARCH and TARGET_ARCH to 'armv6', which resolves
boot-time issues when building 10.0-RELEASE images.

Sponsored by:	The FreeBSD Foundation
Fix TARGET_ARCH and XDEV_ARCH for BEAGLEBONE, should be arm/armv6.

Sponsored by:	The FreeBSD Foundation
Remove EMBEDDED_WORLD_FLAGS from release.sh, and move the gcc(1)
build to arm/release.sh.

This prevents needing to build a separate chroot environment for
the arm/armv6 builds when it is not absolutely necessary.  This
is useful for situations where a single userland build is used
to populate more than one chroot.

Sponsored by:	The FreeBSD Foundation
Copy resulting images to top level /R directory of the chroot
to match behavior of 'make install' target of src/release/.
Generate sha256 and md5 checksums while here.

Sponsored by:	The FreeBSD Foundation
Add initial support for the PANDABOARD.

Sponsored by:	The FreeBSD Foundation
Compress arm/armv6 images before generating checksums to reduce
image size for download.

Sponsored by:	The FreeBSD Foundation
Include 'TARGET-TARGET_ARCH' in the resulting image name similar
to 'make -V OSRELEASE' output.

This probably should use 'make -V OSRELEASE' directly, but for
now, this keeps the line length reasonable for readability.

Sponsored by:	The FreeBSD Foundation