From bdd2cb7b9a1d9d1e34e1c838311a57a9ea552516 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Sun, 10 Oct 2021 21:48:10 +0200 Subject: Extract basic Teensy image builder --- ulisp.nix | 71 ++++++++++++++++++--------------------------------------------- 1 file changed, 20 insertions(+), 51 deletions(-) (limited to 'ulisp.nix') diff --git a/ulisp.nix b/ulisp.nix index 6fc6e33..b422c58 100644 --- a/ulisp.nix +++ b/ulisp.nix @@ -1,65 +1,34 @@ -{ pkgs, teensy-core, ... }: +{ pkgs, ... }: -let - # hacky usage of arduino-cli to preprocess ulisp "ino" source into compilable C++ code - preprocessed-ulisp-arm = pkgs.stdenv.mkDerivation rec { - name = "preprocessed-ulisp-arm.cpp"; +# hacky usage of arduino-cli to preprocess ulisp "ino" source into compilable C++ code +pkgs.stdenv.mkDerivation rec { + name = "ulisp-arm.cpp"; - src = pkgs.fetchFromGitHub { - owner = "technoblogy"; - repo = "ulisp-arm"; - rev = "a25fff3ef1072bdc2733d8064fcf0738579ab7ed"; - sha256 = "p6H9To9vccHrP46Cv5m+cAFDVPXDCORUWcqOz18c3kg="; - }; - - outputHashMode = "flat"; - outputHashAlgo = "sha256"; - outputHash = "mutVLBFSpTXgUzu594zZ3akR/Z7e9n5SytU6WoQ6rKA="; - - buildInputs = with pkgs; [ - cacert - arduino-cli - ]; - - buildPhase = '' - export HOME=/tmp/arduino - arduino-cli core install arduino:samd - mv ulisp-arm.ino source.ino - arduino-cli compile --fqbn arduino:samd:arduino_zero_native --preprocess > ulisp-arm.cpp - echo 'extern "C" int main(void) { setup(); while(true) { loop(); } }' >> ulisp-arm.cpp - ''; - - installPhase = '' - cp ulisp-arm.cpp $out - ''; + src = pkgs.fetchFromGitHub { + owner = "technoblogy"; + repo = "ulisp-arm"; + rev = "a25fff3ef1072bdc2733d8064fcf0738579ab7ed"; + sha256 = "p6H9To9vccHrP46Cv5m+cAFDVPXDCORUWcqOz18c3kg="; }; -in pkgs.stdenv.mkDerivation rec { - name = "teensy-ulisp"; + outputHashMode = "flat"; + outputHashAlgo = "sha256"; + outputHash = "mutVLBFSpTXgUzu594zZ3akR/Z7e9n5SytU6WoQ6rKA="; buildInputs = with pkgs; [ - gcc-arm-embedded - teensy-core + cacert + arduino-cli ]; - phases = [ "buildPhase" "installPhase" ]; - buildPhase = '' - cp ${./test/Makefile} Makefile - cp ${preprocessed-ulisp-arm} ulisp-arm.cpp - - export CC=arm-none-eabi-gcc - export CXX=arm-none-eabi-g++ - export OBJCOPY=arm-none-eabi-objcopy - export SIZE=arm-none-eabi-size - - export TEENSY_PATH=${teensy-core} - - make + export HOME=/tmp/arduino + arduino-cli core install arduino:samd + mv ulisp-arm.ino source.ino + arduino-cli compile --fqbn arduino:samd:arduino_zero_native --preprocess > ulisp-arm.cpp + echo 'extern "C" int main(void) { setup(); while(true) { loop(); } }' >> ulisp-arm.cpp ''; installPhase = '' - mkdir $out - cp *.hex $out/ + cp ulisp-arm.cpp $out ''; } -- cgit v1.2.3