-
-
Notifications
You must be signed in to change notification settings - Fork 69
Expand file tree
/
Copy pathMakefile
More file actions
139 lines (109 loc) · 6.51 KB
/
Makefile
File metadata and controls
139 lines (109 loc) · 6.51 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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
.PHONY: dist
# Compile the binaries for all targets.
build: build-aarch64-unknown-linux-musl \
build-armv5te-unknown-linux-musleabi \
build-armv7-unknown-linux-musleabihf \
build-x86_64-unknown-linux-musl
build-aarch64-unknown-linux-musl:
cross build --target aarch64-unknown-linux-musl --release
build-armv5te-unknown-linux-musleabi:
cross build --target armv5te-unknown-linux-musleabi --release
build-armv7-unknown-linux-musleabihf:
cross build --target armv7-unknown-linux-musleabihf --release
build-x86_64-unknown-linux-musl:
cross build --target x86_64-unknown-linux-musl --release
build-mipsel-unknown-linux-musl:
# mipsel is a tier-3 target.
rustup toolchain add nightly-2025-10-22-x86_64-unknown-linux-gnu
cross +nightly-2025-10-22 build -Z build-std=std --target mipsel-unknown-linux-musl --release
# Build distributable binaries for all targets.
dist: dist-aarch64-unknown-linux-musl \
dist-armv5te-unknown-linux-musleabi \
dist-armv7-unknown-linux-musleabihf \
dist-x86_64-unknown-linux-musl
dist-aarch64-unknown-linux-musl: build-aarch64-unknown-linux-musl package-aarch64-unknown-linux-musl
dist-armv5te-unknown-linux-musleabi: build-armv5te-unknown-linux-musleabi package-armv5te-unknown-linux-musleabi
dist-armv7-unknown-linux-musleabihf: build-armv7-unknown-linux-musleabihf package-armv7-unknown-linux-musleabihf
dist-x86_64-unknown-linux-musl: build-x86_64-unknown-linux-musl package-x86_64-unknown-linux-musl
# Package the compiled binaries.
package-aarch64-unknown-linux-musl:
$(eval PKG_VERSION := $(shell cargo metadata --no-deps --format-version 1 | jq -r '.packages[0].version'))
mkdir -p dist
# .tar.gz
tar -czvf dist/chirpstack-concentratord-sx1301_$(PKG_VERSION)_arm64.tar.gz -C target/aarch64-unknown-linux-musl/release chirpstack-concentratord-sx1301
tar -czvf dist/chirpstack-concentratord-sx1302_$(PKG_VERSION)_arm64.tar.gz -C target/aarch64-unknown-linux-musl/release chirpstack-concentratord-sx1302
tar -czvf dist/chirpstack-concentratord-2g4_$(PKG_VERSION)_arm64.tar.gz -C target/aarch64-unknown-linux-musl/release chirpstack-concentratord-2g4
# .deb
(cd chirpstack-concentratord-sx1302 && cargo deb --target aarch64-unknown-linux-musl --no-build --no-strip)
(cd chirpstack-concentratord-sx1301 && cargo deb --target aarch64-unknown-linux-musl --no-build --no-strip)
(cd chirpstack-concentratord-2g4 && cargo deb --target aarch64-unknown-linux-musl --no-build --no-strip)
cp target/aarch64-unknown-linux-musl/debian/*.deb ./dist
package-armv5te-unknown-linux-musleabi: package-multitech-conduit \
package-multitech-conduit-ap
package-armv7-unknown-linux-musleabihf: package-kerlink-ifemtocell package-multitech-conduit-ap3
$(eval PKG_VERSION := $(shell cargo metadata --no-deps --format-version 1 | jq -r '.packages[0].version'))
mkdir -p dist
# .tar.gz
tar -czvf dist/chirpstack-concentratord-sx1301_$(PKG_VERSION)_armv7hf.tar.gz -C target/armv7-unknown-linux-musleabihf/release chirpstack-concentratord-sx1301
tar -czvf dist/chirpstack-concentratord-sx1302_$(PKG_VERSION)_armv7hf.tar.gz -C target/armv7-unknown-linux-musleabihf/release chirpstack-concentratord-sx1302
tar -czvf dist/chirpstack-concentratord-2g4_$(PKG_VERSION)_armv7hf.tar.gz -C target/armv7-unknown-linux-musleabihf/release chirpstack-concentratord-2g4
# .deb
(cd chirpstack-concentratord-sx1302 && cargo deb --target armv7-unknown-linux-musleabihf --no-build --no-strip)
(cd chirpstack-concentratord-sx1301 && cargo deb --target armv7-unknown-linux-musleabihf --no-build --no-strip)
(cd chirpstack-concentratord-2g4 && cargo deb --target armv7-unknown-linux-musleabihf --no-build --no-strip)
cp target/armv7-unknown-linux-musleabihf/debian/*.deb ./dist
package-x86_64-unknown-linux-musl:
$(eval PKG_VERSION := $(shell cargo metadata --no-deps --format-version 1 | jq -r '.packages[0].version'))
mkdir -p dist
# .tar.gz
tar -czvf dist/chirpstack-concentratord-sx1301_$(PKG_VERSION)_amd64.tar.gz -C target/x86_64-unknown-linux-musl/release chirpstack-concentratord-sx1301
tar -czvf dist/chirpstack-concentratord-sx1302_$(PKG_VERSION)_amd64.tar.gz -C target/x86_64-unknown-linux-musl/release chirpstack-concentratord-sx1302
tar -czvf dist/chirpstack-concentratord-2g4_$(PKG_VERSION)_amd64.tar.gz -C target/x86_64-unknown-linux-musl/release chirpstack-concentratord-2g4
# .deb
(cd chirpstack-concentratord-sx1302 && cargo deb --target x86_64-unknown-linux-musl --no-build --no-strip)
(cd chirpstack-concentratord-sx1301 && cargo deb --target x86_64-unknown-linux-musl --no-build --no-strip)
(cd chirpstack-concentratord-2g4 && cargo deb --target x86_64-unknown-linux-musl --no-build --no-strip)
cp target/x86_64-unknown-linux-musl/debian/*.deb ./dist
package-kerlink-ifemtocell:
cd packaging/vendor/kerlink/ifemtocell && ./package.sh
mkdir -p dist/vendor/kerlink/ifemtocell
cp packaging/vendor/kerlink/ifemtocell/*.ipk dist/vendor/kerlink/ifemtocell
package-multitech-conduit:
cd packaging/vendor/multitech/conduit && ./package-sx1301.sh && ./package-sx1302.sh && ./package-2g4.sh
mkdir -p dist/vendor/multitech/conduit
cp packaging/vendor/multitech/conduit/*.ipk dist/vendor/multitech/conduit
package-multitech-conduit-ap:
cd packaging/vendor/multitech/conduit-ap && ./package.sh
mkdir -p dist/vendor/multitech/conduit-ap
cp packaging/vendor/multitech/conduit-ap/*.ipk dist/vendor/multitech/conduit-ap
package-multitech-conduit-ap3:
cd packaging/vendor/multitech/conduit-ap3 && ./package.sh
mkdir -p dist/vendor/multitech/conduit-ap3
cp packaging/vendor/multitech/conduit-ap3/*.ipk dist/vendor/multitech/conduit-ap3
# Update the version.
version:
test -n "$(VERSION)"
sed -i 's/^ version.*/ version = "$(VERSION)"/g' ./chirpstack-concentratord-2g4/Cargo.toml
sed -i 's/^ version.*/ version = "$(VERSION)"/g' ./chirpstack-concentratord-sx1301/Cargo.toml
sed -i 's/^ version.*/ version = "$(VERSION)"/g' ./chirpstack-concentratord-sx1302/Cargo.toml
sed -i 's/^ version.*/ version = "$(VERSION)"/g' ./gateway-id/Cargo.toml
sed -i 's/^ version.*/ version = "$(VERSION)"/g' ./gateway-location/Cargo.toml
sed -i 's/^ version.*/ version = "$(VERSION)"/g' ./libconcentratord/Cargo.toml
make test
git add .
git commit -v -m "Bump version to $(VERSION)"
git tag -a v$(VERSION) -m "v$(VERSION)"
# Cleanup dist.
clean:
cargo clean
rm -rf dist
# Run tests.
test:
cross clippy --target x86_64-unknown-linux-musl
cross test --target x86_64-unknown-linux-musl
# Enter the devshell.
devshell:
nix-shell
# Dependencies
dev-dependencies:
cargo install cross --git https://github.com/cross-rs/cross --rev 452dc27a11d4f58d65309f8455c5cf7558f60513 --locked --root .cargo