forked from ianrmurphy/PIDtoolbox
-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathMakefile
More file actions
60 lines (51 loc) · 2.16 KB
/
Makefile
File metadata and controls
60 lines (51 loc) · 2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
PREFIX ?= /usr/local
INSTALL_DIR = $(PREFIX)/share/pidscope
BIN_DIR = $(PREFIX)/bin
OCTAVE ?= octave
.PHONY: run install install-deps fetch-blackbox test clean
run:
$(OCTAVE) --gui --persist --eval "cd('$(CURDIR)'); PIDscope"
install-deps:
@echo "Installing Octave and required packages..."
@if command -v apt-get >/dev/null 2>&1; then \
sudo apt-get install -y octave octave-signal octave-statistics octave-control octave-image build-essential; \
elif command -v dnf >/dev/null 2>&1; then \
sudo dnf install -y octave octave-signal octave-statistics octave-control octave-image gcc make; \
elif command -v pacman >/dev/null 2>&1; then \
sudo pacman -S --noconfirm octave base-devel; \
else \
echo "Unknown package manager. Install octave and a C compiler manually."; exit 1; \
fi
fetch-blackbox: blackbox_decode blackbox_decode_INAV
blackbox_decode:
@echo "Building blackbox_decode (betaflight)..."
@rm -rf /tmp/bf-blackbox-tools
git clone --depth 1 https://github.com/betaflight/blackbox-tools.git /tmp/bf-blackbox-tools
make -C /tmp/bf-blackbox-tools obj/blackbox_decode
cp /tmp/bf-blackbox-tools/obj/blackbox_decode .
chmod +x blackbox_decode
rm -rf /tmp/bf-blackbox-tools
@echo "blackbox_decode ready."
blackbox_decode_INAV:
@echo "Building blackbox_decode_INAV (inav)..."
@rm -rf /tmp/inav-blackbox-tools
git clone --depth 1 https://github.com/iNavFlight/blackbox-tools.git /tmp/inav-blackbox-tools
make -C /tmp/inav-blackbox-tools obj/blackbox_decode
cp /tmp/inav-blackbox-tools/obj/blackbox_decode blackbox_decode_INAV
chmod +x blackbox_decode_INAV
rm -rf /tmp/inav-blackbox-tools
@echo "blackbox_decode_INAV ready."
install: fetch-blackbox
install -d $(INSTALL_DIR)
install -d $(BIN_DIR)
cp PIDscope.m VERSION $(INSTALL_DIR)/
cp -r src/ $(INSTALL_DIR)/
cp blackbox_decode blackbox_decode_INAV $(INSTALL_DIR)/
@printf '#!/bin/sh\nexec $(OCTAVE) --gui --eval "cd(\\\"$(INSTALL_DIR)\\\"); PIDscope"\n' > $(BIN_DIR)/pidscope
chmod +x $(BIN_DIR)/pidscope
@echo "Installed. Run with: pidscope"
test:
$(OCTAVE) --no-gui --eval "addpath(genpath('src')); addpath('tests'); run_tests"
clean:
rm -f blackbox_decode blackbox_decode_INAV
rm -f *.csv *.bbl *.bfl