aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuilhem Moulin <guilhem@fripost.org>2019-06-25 15:26:46 +0200
committerGuilhem Moulin <guilhem@fripost.org>2019-06-26 01:04:41 +0200
commitd36536e3743f5868f39908762bdab728802232b3 (patch)
tree782fcae9c4861a66260a0b87396d9765e543ecf4
parent3f2c2fdaa542cf9a0a170d56d2dc1bd16144f6b8 (diff)
Use 'arduino-mk' as build system.
It feels simpler than `arduino-builder` and we can rely on more OS-shipped components. Also for some reason with `arduino-builder` weak symbols don't always seem to be overriden properly.
-rw-r--r--.gitignore1
-rw-r--r--.kaleidoscope-builder.conf4
-rw-r--r--Makefile32
-rw-r--r--README23
4 files changed, 46 insertions, 14 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/.kaleidoscope-builder.conf b/.kaleidoscope-builder.conf
deleted file mode 100644
index 72af0b9..0000000
--- a/.kaleidoscope-builder.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-DEFAULT_SKETCH="model01"
-if [ -n "${XDG_RUNTIME_DIR+x}" ]; then
- KALEIDOSCOPE_TEMP_PATH="$XDG_RUNTIME_DIR/kaleidoscope"
-fi
diff --git a/Makefile b/Makefile
index ba2d8ab..86ad49e 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,30 @@
-BOARD_HARDWARE_PATH ?= ./lib/hardware
-KALEIDOSCOPE_PLUGIN_MAKEFILE_DIR ?= keyboardio/build-tools/makefiles
+AVR_TOOLS_DIR = /usr
+ARDUINO_DIR = /usr/local/arduino
+ARDMK_DIR = /usr/share/arduino
+ARDMK_VENDOR = arduino
--include $(BOARD_HARDWARE_PATH)/$(KALEIDOSCOPE_PLUGIN_MAKEFILE_DIR)/rules.mk
+ARCHITECTURE = avr
+BOARD_TAG = model01
+ALTERNATE_CORE = keyboardio
+
+ARDUINO_SKETCHBOOK = ./lib
+ARDUINO_VERSION = $(shell tr "." "0" <$(ARDUINO_DIR)/lib/version.txt)
+
+SOURCEDIR = ./src
+OBJDIR = ./build
+LOCAL_CPP_SRCS = $(wildcard $(SOURCEDIR)/*.cpp)
+LOCAL_INO_SRCS = $(wildcard $(SOURCEDIR)/*.ino)
+
+USER_LIB_PATH = $(ALTERNATE_CORE_PATH)/libraries
+ARDUINO_LIBS = EEPROM Kaleidoscope Kaleidoscope-HIDAdaptor-KeyboardioHID KeyboardioHID KeyboardioScanner
+
+# extra definitions from boards.txt
+CXXFLAGS = -DARDUINO_AVR_MODEL01 \
+ -DUSB_MANUFACTURER="\"keyboardio\"" -DUSB_PRODUCT="\"Model 01\"" \
+ -DKALEIDOSCOPE_HARDWARE_H="\"Kaleidoscope-Hardware-Model01.h\""
+
+AVRDUDE_OPTS = -q
+AVRDUDE_CONF = /etc/avrdude.conf
+#MONITOR_PORT = $(firstword $(wildcard /dev/serial/by-id/usb-keyboardio_Model_01_*))
+
+include $(ARDMK_DIR)/Arduino.mk
diff --git a/README b/README
index eaa54fd..25e0ee7 100644
--- a/README
+++ b/README
@@ -8,10 +8,20 @@ https://git.madhouse-project.org/algernon/Model01-Sketch#base-layer
Build
=====
-Arduino 1.6.7 or newer is required. Unfortunately, as of 2019-06-25 the
-version found in Debian sid is too old (cf. #780706, #925578, #927329).
-Dowload a recent version at https://www.arduino.cc and it unpack to
-/usr/local/arduino.
+On Debian systems, the following packages are required:
+
+ - avr-libc
+ - avrdude
+ - binutils-avr
+ - gcc-avr
+ - arduino-mk
+
+Running `apt install arduino-mk` should pull in all required
+dependencies. Moreover Arduino 1.6.7 or newer is required.
+Unfortunately, as of 2019-06-25 the version found in Debian sid is too
+Unfortunately, as of 2019-06-25 the version found in Debian sid is too
+old (cf. #780706, #925578, #927329). Dowload a recent version at
+https://www.arduino.cc and it unpack to /usr/local/arduino.
Initialize (or update) submodules:
@@ -22,8 +32,7 @@ Initialize (or update) submodules:
"avr/bootloaders/*" \
"avr/libraries/Kaleidoscope" \
"avr/libraries/Kaleidoscope-HIDAdaptor-KeyboardioHID" \
- "avr/libraries/Keyboardio*" \
- "build-tools"
+ "avr/libraries/Keyboardio*"
~$ make
@@ -31,7 +40,7 @@ Initialize (or update) submodules:
Flash firmware
==============
- ~$ make flash
+ ~$ make upload
Press down the 'prog' key while the board is rebooting. You can release
it once it glows red.