blackmagic init at 1.6.1

This commit is contained in:
Peter Jones 2017-06-14 16:43:16 -07:00
parent 07dc20e436
commit e33c7fa4c1
No known key found for this signature in database
GPG key ID: 9DAFAA8D01941E49
3 changed files with 110 additions and 0 deletions

View file

@ -0,0 +1,59 @@
{ stdenv, lib, fetchFromGitHub
, gcc-arm-embedded, bash, libftdi
, python, pythonPackages
}:
with lib;
stdenv.mkDerivation rec {
name = "blackmagic-${version}";
version = "1.6.1";
src = fetchFromGitHub {
owner = "blacksphere";
repo = "blackmagic";
rev = "d3a8f27fdbf952194e8fc5ce9b2fc9bcef7c545c";
sha256 = "0c3l7cfqag3g7zrfn4mmikkx7076hb1r856ybhhdh0f6zji2j6jx";
fetchSubmodules = true;
};
buildInputs = [
gcc-arm-embedded
libftdi
python
pythonPackages.intelhex
];
postPatch = ''
# Prevent calling out to `git' to generate a version number:
substituteInPlace src/Makefile \
--replace '`git describe --always --dirty`' '${version}'
# Fix scripts that generate headers:
for f in $(find scripts libopencm3/scripts -type f); do
patchShebangs "$f"
done
'';
buildPhase = "${stdenv.shell} ${./helper.sh}";
installPhase = ":"; # buildPhase does this.
meta = {
description = "In-application debugger for ARM Cortex microcontrollers";
longDescription = ''
The Black Magic Probe is a modern, in-application debugging tool
for embedded microprocessors. It allows you to see what is going
on "inside" an application running on an embedded microprocessor
while it executes.
This package builds the firmware for all supported platforms,
placing them in separate directories under the firmware
directory. It also places the FTDI version of the blackmagic
executable in the bin directory.
'';
homepage = https://github.com/blacksphere/blackmagic;
license = licenses.gpl3Plus;
maintainers = with maintainers; [ pjones ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,49 @@
################################################################################
# Build all of the platforms manually since the `all_platforms' target
# doesn't preserve all of the build outputs and overrides CFLAGS.
set -e
set -u
################################################################################
# Prevent a warning from shellcheck:
out=${out:-/tmp}
################################################################################
export CFLAGS=$NIX_CFLAGS_COMPILE
################################################################################
PRODUCTS="blackmagic.bin blackmagic.hex blackmagic_dfu.bin blackmagic_dfu.hex"
################################################################################
make_platform() {
echo "Building for hardware platform $1"
make clean
make PROBE_HOST="$1"
if [ "$1" = libftdi ]; then
mkdir -p "$out/bin"
install -m 0555 blackmagic "$out/bin"
fi
for f in $PRODUCTS; do
if [ -r "$f" ]; then
mkdir -p "$out/firmware/$1"
install -m 0444 "$f" "$out/firmware/$1"
fi
done
}
################################################################################
# Start by building libopencm3:
make -C libopencm3
################################################################################
# And now all of the platforms:
cd src
for platform in platforms/*/Makefile.inc; do
probe=$(basename "$(dirname "$platform")")
make_platform "$probe"
done

View file

@ -6500,6 +6500,8 @@ with pkgs;
bison3 = callPackage ../development/tools/parsing/bison/3.x.nix { };
bison = bison3;
blackmagic = callPackage ../development/tools/misc/blackmagic { };
bloaty = callPackage ../development/tools/bloaty { };
bossa = callPackage ../development/tools/misc/bossa {