aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
blob: fc783c9a76420baff6ccc67fab3860f84ff24d4a (plain) (blame)
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
NAME = $(shell cargo metadata --no-deps --format-version 1 | jq '.packages[0].name')
VERSION = $(shell cargo metadata --no-deps --format-version 1 | jq '.packages[0].version')

DEB_PACKAGE = $(NAME)_$(VERSION)_amd64.deb

all: build
.PHONY: all

build:
	@cargo build --all-targets
.PHONY: build

release:
	@cargo build --release --all-targets
	@./build/fix-glibc-function-versions ./target/release/rbw
	@./build/fix-glibc-function-versions ./target/release/rbw-agent
	@mv ./target/release/rbw.new ./target/release/rbw
	@mv ./target/release/rbw-agent.new ./target/release/rbw-agent
.PHONY: release

test:
	@RUST_BACKTRACE=1 cargo test
.PHONY: test

check:
	@cargo check --all-targets
.PHONY: check

doc:
	@cargo doc --workspace
.PHONY: doc

clean:
	@rm -rf *.log pkg
.PHONY: clean

cleanall: clean
	@cargo clean
.PHONY: cleanall

package: pkg/$(DEB_PACKAGE)
.PHONY: package

pkg:
	@mkdir pkg

pkg/$(DEB_PACKAGE): release | pkg
	@cargo deb --no-build && mv target/debian/$(DEB_PACKAGE) pkg

pkg/$(DEB_PACKAGE).minisig: pkg/$(DEB_PACKAGE)
	@minisign -Sm pkg/$(DEB_PACKAGE)

release-dir-deb:
	@ssh tozt.net mkdir -p releases/teleterm/deb
.PHONY: release-dir-deb

publish: publish-crates-io publish-git-tags publish-deb
.PHONY: publish

publish-crates-io: test
	@cargo publish
.PHONY: publish-crates-io

# force shell instead of exec to work around
# https://savannah.gnu.org/bugs/?57962 since i have ~/.bin/git as a directory
publish-git-tags: test
	@:; git tag $(VERSION)
	@:; git push --tags
.PHONY: publish-git-tags

publish-deb: test pkg/$(DEB_PACKAGE) pkg/$(DEB_PACKAGE).minisig release-dir-deb
	@scp pkg/$(DEB_PACKAGE) pkg/$(DEB_PACKAGE).minisig tozt.net:releases/rbw/deb
.PHONY: publish-deb