From e369e8fb4ab688f26334e93067fdd307d5793710 Mon Sep 17 00:00:00 2001
From: Riku Viitanen <riku.viitanen@protonmail.com>
Date: Sun, 3 Sep 2023 04:00:42 +0300
Subject: automate rpi-pico serprog builds

./build rpi-pico serprog
build bin/serprog/rpi-pico-serprog.uf2

Signed-off-by: Riku Viitanen <riku.viitanen@protonmail.com>
---
 script/build/rpi-pico/serprog | 48 +++++++++++++++++++++++++++++++++++++++++++
 script/update/project/repo    |  1 +
 2 files changed, 49 insertions(+)
 create mode 100755 script/build/rpi-pico/serprog

(limited to 'script')

diff --git a/script/build/rpi-pico/serprog b/script/build/rpi-pico/serprog
new file mode 100755
index 00000000..15a20a22
--- /dev/null
+++ b/script/build/rpi-pico/serprog
@@ -0,0 +1,48 @@
+#!/usr/bin/env sh
+
+# compile the serprog firmware for raspberry pi pico
+#
+#	Copyright (C) 2023 Riku Viitanen <riku.viitanen@protonmail.com>
+#
+#	This program is free software: you can redistribute it and/or modify
+#	it under the terms of the GNU General Public License as published by
+#	the Free Software Foundation, either version 3 of the License, or
+#	(at your option) any later version.
+#
+#	This program is distributed in the hope that it will be useful,
+#	but WITHOUT ANY WARRANTY; without even the implied warranty of
+#	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#	GNU General Public License for more details.
+#
+#	You should have received a copy of the GNU General Public License
+#	along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+
+[ "x${DEBUG+set}" = 'xset' ] && set -v
+set -u -e
+
+. "include/err.sh"
+
+serprog_release_dir=$(pwd)/bin/serprog
+sdk_dir=$(pwd)/util-fw/pico-sdk
+src_dir=$(pwd)/util-fw/pico-serprog
+
+main()
+{
+	printf "Compiling serprog firmware for Raspberry Pi Pico\n"
+
+	[ -d "${src_dir}/" ] || ./update project repo rpi-pico-serprog \
+		|| err "fetch rpi-pico-serprog failed!\n"
+
+	cd ${src_dir}
+	cmake -DPICO_SDK_PATH=${sdk_dir} .
+	make
+
+	mkdir -p ${serprog_release_dir}
+	mv pico_serprog.uf2 ${serprog_release_dir}/rpi-pico-serprog.uf2 \
+		|| err "rpi-pico serprog build failed!\n"
+
+	printf "\nDone!\n"
+}
+
+main $@
diff --git a/script/update/project/repo b/script/update/project/repo
index 91696586..336fa84a 100755
--- a/script/update/project/repo
+++ b/script/update/project/repo
@@ -84,6 +84,7 @@ clone_project()
 	[ ! -d "${location}" ] || \
 		rm -Rf "${location}" || \
 		    fail "clone_project: Can't remove directory '${location}'"
+	mkdir -p ${location%/*}
 	mv "${tmp_dir}" "${location}" || \
 	    fail "clone_project: could not copy temp file to destination"
 }
-- 
cgit v1.2.1