-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
58 lines (46 loc) · 1.66 KB
/
Makefile
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
TARGET_HOST ?= hopper
TARGET_USERNAME ?= $$USER
TARGET_HOST_USER ?= $(TARGET_USERNAME)@$(TARGET_HOST)
REMOTE_DIRECTORY ?= ~
DEB_BUILD_PATH ?= target/debian/hopper_*.deb
TARGET_ARCH := aarch64-unknown-linux-musl
RELEASE_BINARY_PATH := target/release/hopper
RELEASE_CROSS_BINARY_PATH := ./target/${TARGET_ARCH}/release/hopper
TARGET_PATH := ~/src/hopper_rust/
.PHONY: build
build:
cargo build \
--release \
--no-default-features \
--bin hopper \
--features audio
.PHONY: deploy-binary
deploy-binary: build
rsync -c ${RELEASE_BINARY_PATH} ${TARGET_HOST}:${TARGET_PATH}
.PHONY: build-deb
build-deb: build
cargo deb --no-build
.PHONE: install
install: build-deb
sudo dpkg -i $(DEB_BUILD_PATH)
.PHONY: install-dependencies
install-dependencies:
sudo apt update && sudo apt install libasound2-dev libudev-dev liblzma-dev libclang-dev protobuf-compiler -y
cargo install cargo-deb
.PHONY: build-docker
build-docker:
rm -rf docker_out
mkdir docker_out
DOCKER_BUILDKIT=1 docker build --tag hopper-builder --file Dockerfile --output type=local,dest=docker_out .
.PHONY: push-docker
push-docker: build-docker
rsync -avz --delete docker_out/* $(TARGET_HOST_USER):/home/$(TARGET_USERNAME)/hopper
rsync -avz --delete scripts/add_udev_rules $(TARGET_HOST_USER):/home/$(TARGET_USERNAME)/hopper/add_udev_rules
rsync -avz --delete scripts/install_wait_loop $(TARGET_HOST_USER):/home/$(TARGET_USERNAME)/hopper/install_wait_loop
.PHONY: deploy-docker
deploy-docker: push-docker
@echo "Installing hopper on $(TARGET_HOST)"
mosquitto_pub -h homepi -t "hopper/build" -n
.PHONY: deploy-with-ez-cd
deploy-with-ez-cd: build-docker
ez-cd-cli -f docker_out/hopper-rust.deb -d $(TARGET_HOST)