summaryrefslogtreecommitdiff
path: root/ulisp.nix
diff options
context:
space:
mode:
authorAdrian Kummerlaender2021-10-10 21:48:10 +0200
committerAdrian Kummerlaender2021-10-10 21:48:10 +0200
commitbdd2cb7b9a1d9d1e34e1c838311a57a9ea552516 (patch)
treedd1bafa866328ad6853f955200d78f8a6080a54b /ulisp.nix
parent59918fa4f925c063c8beec7142f786eda5746cc4 (diff)
downloadteensy-env-bdd2cb7b9a1d9d1e34e1c838311a57a9ea552516.tar
teensy-env-bdd2cb7b9a1d9d1e34e1c838311a57a9ea552516.tar.gz
teensy-env-bdd2cb7b9a1d9d1e34e1c838311a57a9ea552516.tar.bz2
teensy-env-bdd2cb7b9a1d9d1e34e1c838311a57a9ea552516.tar.lz
teensy-env-bdd2cb7b9a1d9d1e34e1c838311a57a9ea552516.tar.xz
teensy-env-bdd2cb7b9a1d9d1e34e1c838311a57a9ea552516.tar.zst
teensy-env-bdd2cb7b9a1d9d1e34e1c838311a57a9ea552516.zip
Extract basic Teensy image builder
Diffstat (limited to 'ulisp.nix')
-rw-r--r--ulisp.nix71
1 files changed, 20 insertions, 51 deletions
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
'';
}