-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
72 lines (55 loc) · 2.39 KB
/
Copy pathMakefile
File metadata and controls
72 lines (55 loc) · 2.39 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
61
62
63
64
65
66
67
68
69
70
71
72
# wireless-programmer — build / release helpers
TARGET_MUSL ?= aarch64-unknown-linux-musl
CARGO ?= cargo
RUSTUP_TOOLCHAIN ?= stable
export RUSTUP_TOOLCHAIN
# Optional wireless iface for `make dev` (e.g. INTERFACE=wlan0).
INTERFACE ?=
.PHONY: all build release release-musl check test test-release-assertions clean fmt clippy dev deps-update
all: build
build:
$(CARGO) build --workspace
# Build and run the daemon in the foreground (local development).
# Override iface: make dev INTERFACE=wlp2s0
# Override data root / socket: DATA_DIR=/tmp/wp-dev make dev
dev:
$(CARGO) run -p wireless-programmer -- daemon --verbose \
$(if $(INTERFACE),--interface $(INTERFACE),)
release:
$(CARGO) build --workspace --release
# Static musl binary (default: aarch64). Override: make release-musl TARGET_MUSL=x86_64-unknown-linux-musl
# Optional: WIRELESS_PROGRAMMER_GIT_COMMIT / WIRELESS_PROGRAMMER_BUILD_TIME for version metadata.
release-musl:
RUSTFLAGS='-C target-feature=+crt-static' \
$(CARGO) build --workspace --release --target $(TARGET_MUSL)
@mkdir -p dist
@case "$(TARGET_MUSL)" in \
aarch64-*) dist_name=wireless-programmer-linux-arm64 ;; \
x86_64-*) dist_name=wireless-programmer-linux-amd64 ;; \
*) dist_name=wireless-programmer-$(TARGET_MUSL) ;; \
esac; \
cp -f target/$(TARGET_MUSL)/release/wireless-programmer "dist/$${dist_name}"; \
echo "wrote dist/$${dist_name}"
check:
$(CARGO) check --workspace
test:
$(CARGO) test --workspace --locked
test-release-assertions:
$(CARGO) test --workspace --locked --profile release-assertions
fmt:
$(CARGO) fmt --all
clippy:
$(CARGO) clippy --workspace --all-targets --locked -- -D warnings
# Refresh git crates (bigfred-shared-daemon) and rewrite Cargo.lock. Commit the lockfile afterwards.
deps-update:
$(CARGO) update -p bigfred-shared-daemon
clean:
$(CARGO) clean
rm -rf dist
# Hub runs Dropbear. Older images lack /usr/libexec/sftp-server; -O uses legacy scp.
# Harmless on images that ship openssh sftp-server (bigfred-os defconfig).
SCP ?= scp
SCP_OPTS ?= -O
hub-upload:
$(SCP) $(SCP_OPTS) dist/wireless-programmer-linux-arm64 root@192.168.0.1:/tmp/wireless-programmer
ssh root@192.168.0.1 'mkdir -p /data/opt/wireless-programmer && cp /tmp/wireless-programmer /data/opt/wireless-programmer/wireless-programmer && chmod 755 /data/opt/wireless-programmer/wireless-programmer && microinit stop wireless-programmer; microinit start wireless-programmer'