summaryrefslogtreecommitdiff
path: root/Makefile
blob: 86a82ec622345ef22cd03a239363a10934e57b81 (plain)
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
.PHONY: build

VERSION = $(shell git describe --tags)
GUIVERSION = $(shell git describe --tags)
# BUILDTIME = $(shell date +%Y.%m.%d)
BUILDTIME = $(shell date +%s)

all: install

# This will re-generate ALL of the needed autogenerated .pb.go files
generate:
	go generate

build-all-oses: go-build build-darwin build-windows

go-build: goimports
	GO111MODULE=off go build \
		-ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}"

verbose:
	GO111MODULE=off go build -v -x \
		-ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}"

install: goimports
	GO111MODULE=off go install \
		-ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}"

build-darwin:
	GOOS=darwin GOARCH=amd64 GO111MODULE=off go build -v -o wit-darwin.x86 \
		-ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}"

build-darwin-arm64:
	GOOS=darwin GOARCH=arm64 GO111MODULE=off go build -v -o wit-darwin.arm \
		-ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}"

build-windows:
	GOOS=windows GOARCH=amd64 GO111MODULE=off go build -v -o wit.exe \
		-ldflags "-X main.VERSION=v0.7.46 -X main.BUILDTIME=2025.02.22_0643 -X gui.GUIVERSION=v0.7.46"

vet:
	GO111MODULE=off go vet

stderr: go-build
	echo "writing to /tmp/wit-test.log"
	./wit-test >/tmp/wit-test.log 2>&1

goimports:
	goimports -w *.go
	# // to globally reset paths:
	# // gofmt -w -r '"go.wit.com/gui/gadgets" -> "go.wit.com/lib/gadgets"' *.go

clean:
	rm -f go.*
	go-mod-clean purge

gpl:
	wit-test --witcom

check-git-clean:
	@git diff-index --quiet HEAD -- || (echo "Git repository is dirty, please commit your changes first"; exit 1)

old-debian-release: install
	wit-test debian --dry-run --verbose --release

debian-release-build-only: install
	wit-test debian --verbose --release

apt-update:
	apt-get update \
		-o Dir::Etc::sourcelist=/etc/apt/sources.list.d/wit.list \
		-o Dir::Etc::sourceparts=/dev/null \
		-o APT::Get::List-Cleanup=0

merge:
	forge merge --all

publish:
	GUIRELEASE_REASON="automated" wit publish
	forge show

deb:
	wit build deb --verbose
	forge normal

deb-forcedirty:
	wit build deb --verbose --force
	forge normal

deb-all:
	wit build deb --verbose --all
	forge normal