Packages

nerves_system_br

1.6.6
1.34.0 1.33.9 1.33.8 1.33.7 1.33.6 1.33.5 1.33.4 1.33.3 1.33.2 1.33.1 1.33.0 1.32.5 1.32.4 1.32.3 1.32.2 1.32.1 1.32.0 1.31.7 1.31.6 1.31.5 1.31.4 1.31.3 1.31.2 1.31.1 1.31.0 1.30.1 1.30.0 1.29.3 1.29.2 1.29.1 1.29.0 1.28.3 1.28.2 1.28.1 1.28.0 1.27.3 1.27.2 1.27.1 1.27.0 1.26.1 1.26.0 1.25.3 1.25.2 1.25.1 1.25.0 1.24.1 1.24.0 1.23.3 1.23.2 1.23.1 1.23.0 1.22.8 1.22.7 1.22.6 1.22.5 1.22.4 1.22.3 1.22.2 1.22.1 1.22.0 1.21.6 1.21.5 1.21.4 1.21.3 1.21.2 1.21.1 1.21.0 1.20.6 1.20.5 1.20.4 1.20.3 1.20.2 1.20.1 1.20.0 1.19.1 1.19.0 1.18.6 1.18.5 1.18.4 1.18.3 1.18.2 1.18.1 1.18.0 1.17.4 1.17.3 1.17.2 1.17.1 1.17.0 1.16.5 1.16.4 1.16.3 1.16.2 1.16.1 1.16.0 1.15.2 1.15.1 1.15.0 1.14.5 1.14.4 1.14.3 1.14.2 1.14.1 1.14.0 1.13.8 1.13.7 1.13.6 1.13.5 1.13.4 1.13.3 1.13.2 1.13.1 1.13.0 1.12.4 1.12.3 1.12.2 1.12.1 1.12.0 1.12.0-rc.0 1.11.4 1.11.3 1.11.2 1.11.1 1.11.0 1.10.3 1.10.2 1.10.1 1.10.0 1.9.5 1.9.4 1.9.3 1.9.2 1.9.1 1.9.0 1.8.6 1.8.5 1.8.4 1.8.3 1.8.2 1.8.1 1.8.0 1.7.3 1.7.2 1.7.1 1.7.0 1.6.8 1.6.7 1.6.6 1.6.5 1.6.4 1.6.3 1.6.2 1.6.1 1.6.0 1.5.6 1.5.5 1.5.4 1.5.3 1.5.2 1.5.1 1.5.0 1.4.5 1.4.4 1.4.3 1.4.2 1.4.1 1.4.0 1.3.2 1.3.1 1.3.0 1.2.2 1.2.1 1.2.0 1.1.0 1.0.1 1.0.0 1.0.0-rc.4 1.0.0-rc.3 1.0.0-rc.2 1.0.0-rc.1 1.0.0-rc.0 0.17.0 0.16.4 0.16.3 0.16.2 0.16.1-2017-11 0.16.0-2017-11 0.15.1 0.15.0 0.14.1 0.14.0 0.13.9 0.13.8 0.13.7 0.13.6 0.13.5 0.13.4 retired 0.13.3 0.13.2 0.13.0 0.12.1 0.12.0 0.11.1 0.11.0 0.10.1 0.10.0 0.9.4 0.9.3 0.9.2 0.9.1 0.9.0 0.8.2 0.8.1 0.8.0 0.7.0 0.6.1 0.6.0 0.5.2 0.5.1 0.5.0 0.4.2 0.4.1

Nerves System BR - Buildroot based build platform for Nerves Systems

Current section

Files

Jump to
nerves_system_br scripts mksystem.sh
Raw

scripts/mksystem.sh

#!/usr/bin/env bash
#
# This script creates a tarball with everything needed to build
# an application image on another system. It is useful to allow
# the parts that require Linux to be built separately from the
# parts that can be built on any system.
# It is intended to be called from Buildroot's Makefiles so that
# the environment is set up properly.
#
# Inputs:
# $1 = the archive name (if not passed, we'll make up a name)
# BASE_DIR = the build directory (aka, the future $NERVES_SYSTEM directory)
# PWD = the buildroot directory
#
# Outputs:
# Archive tarball
#
set -e
# The first parameter is the name of the archive to create. If it's not set
# we'll set it below.
ARCHIVE_NAME=$1
BR2_EXTERNAL_NERVES_PATH=$PWD/..
if [ -z $ARCHIVE_NAME ]; then
echo "ERROR: Please specify an archive name"
exit 1
fi
# Check the working directory
if [ ! -f $PWD/package/pkg-generic.mk ]; then
echo "ERROR: mksystem.sh must be run from the buildroot directory"
exit 1
fi
# Check BASE_DIR
if [ -z $BASE_DIR ]; then
echo "ERROR: BASE_DIR undefined? Script should be called from Buildroot."
exit 1
fi
NERVES_DEFCONFIG=$(grep BR2_DEFCONFIG= $BASE_DIR/.config | sed -e 's/BR2_DEFCONFIG=".*\/\(.*\)"/\1/')
WORK_DIR=$BASE_DIR/tmp-system
rm -fr $WORK_DIR
mkdir -p $WORK_DIR/$ARCHIVE_NAME
# Save the version to the archive in case we need it for debug
VERSION=$(cat ../VERSION)
echo $VERSION >$WORK_DIR/$ARCHIVE_NAME/nerves-system.tag
# Add some help text for the curious
cat << EOT > $WORK_DIR/$ARCHIVE_NAME/README.md
# Nerves system image
This is an automatically generated archive created by \`nerves_system_br\`. It is
useful for building embedded Elixir projects without worrying too much
about the cross-compiler and Linux parts. See http://nerves-project.org
for more information.
## Build information
Configuration: $NERVES_DEFCONFIG
nerves_system_br: $VERSION
EOT
# Copy common nerves shell scripts over
cp $BR2_EXTERNAL_NERVES_PATH/nerves-env.sh $WORK_DIR/$ARCHIVE_NAME
cp $BR2_EXTERNAL_NERVES_PATH/nerves.mk $WORK_DIR/$ARCHIVE_NAME
cp -R $BR2_EXTERNAL_NERVES_PATH/scripts $WORK_DIR/$ARCHIVE_NAME
# Copy the built configuration over
cp $BASE_DIR/.config $WORK_DIR/$ARCHIVE_NAME
# Copy the staging and images directories over
mkdir -p $WORK_DIR/$ARCHIVE_NAME/images $WORK_DIR/$ARCHIVE_NAME/staging
cp -R $BASE_DIR/images/* $WORK_DIR/$ARCHIVE_NAME/images
cp -R $BASE_DIR/staging/* $WORK_DIR/$ARCHIVE_NAME/staging
# Clean up extra files that were copied over and aren't needed
rm -f $WORK_DIR/$ARCHIVE_NAME/images/*.fw
rm -f $WORK_DIR/$ARCHIVE_NAME/images/$ARCHIVE_NAME.img
tar c -z -f $BASE_DIR/$ARCHIVE_NAME.tar.gz -C $WORK_DIR $ARCHIVE_NAME
rm -fr $WORK_DIR