1# SPDX-FileCopyrightText: 2022 Amolith <amolith@secluded.site>
 2#
 3# SPDX-License-Identifier: CC0-1.0
 4
 5TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
 6
 7.PHONY: default clean all aix dragonfly darwin freebsd illumos netbsd linux openbsd plan9 solaris windows
 8
 9default:
10	go build -o out/earl .
11
12clean:
13	rm -rf out
14
15release: clean all
16	if ! [ -f "$HOME/.config/hut/config" ] ; then $(secret-tool lookup Title 'SourceHut API Key') | hut init ; fi
17	for i in out/* ; do hut git artifact upload -r earl "$i" --revision $(TAG) ; done
18	for i in out/* ; do curl -H "Authorization: Bearer $(secret-tool lookup Title 'earl')" "https://earl.run/update?oldName=$(basename $i)&name=$(basename $i)&url=https%3A%2F%2Fgit.sr.ht%2F~amolith%2Fearl%2Frefs%2Fdownload%2F$TAG%2F$(basename $i)" ; done
19
20all: darwin dragonfly freebsd illumos netbsd openbsd plan9 linux solaris windows
21
22aix:
23	GOOS=aix GOARCH=ppc64 CGO_ENABLED=0 go build -o out/earl-aix-ppc64 .
24
25darwin:
26	GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -o out/earl-darwin-amd64 .
27	GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build -o out/earl-darwin-arm64 .
28
29dragonfly:
30	GOOS=dragonfly GOARCH=amd64 CGO_ENABLED=0 go build -o out/earl-dragonfly-amd64 .
31
32freebsd:
33	GOOS=freebsd GOARCH=386 CGO_ENABLED=0 go build -o out/earl-freebsd-i386 .
34	GOOS=freebsd GOARCH=amd64 CGO_ENABLED=0 go build -o out/earl-freebsd-amd64 .
35	GOOS=freebsd GOARCH=arm CGO_ENABLED=0 go build -o out/earl-freebsd-arm .
36
37illumos:
38	GOOS=illumos GOARCH=amd64 CGO_ENABLED=0 go build -o out/earl-illumos-amd64 .
39
40linux:
41	GOOS=linux GOARCH=386 CGO_ENABLED=0 go build -o out/earl-linux-i386 .
42	GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o out/earl-linux-amd64 .
43	GOOS=linux GOARCH=arm CGO_ENABLED=0 go build -o out/earl-linux-arm .
44	GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -o out/earl-linux-arm64 .
45	GOOS=linux GOARCH=ppc64 CGO_ENABLED=0 go build -o out/earl-linux-ppc64 .
46	GOOS=linux GOARCH=ppc64le CGO_ENABLED=0 go build -o out/earl-linux-ppc64le .
47	GOOS=linux GOARCH=mips CGO_ENABLED=0 go build -o out/earl-linux-mips .
48	GOOS=linux GOARCH=mipsle CGO_ENABLED=0 go build -o out/earl-linux-mipsle .
49	GOOS=linux GOARCH=mips64 CGO_ENABLED=0 go build -o out/earl-linux-mips64 .
50	GOOS=linux GOARCH=mips64le CGO_ENABLED=0 go build -o out/earl-linux-mips64le .
51	GOOS=linux GOARCH=riscv64 CGO_ENABLED=0 go build -o out/earl-linux-riscv64 .
52	GOOS=linux GOARCH=s390x CGO_ENABLED=0 go build -o out/earl-linux-s390x .
53
54netbsd:
55	GOOS=netbsd GOARCH=386 CGO_ENABLED=0 go build -o out/earl-netbsd-i386 .
56	GOOS=netbsd GOARCH=amd64 CGO_ENABLED=0 go build -o out/earl-netbsd-amd64 .
57	GOOS=netbsd GOARCH=arm CGO_ENABLED=0 go build -o out/earl-netbsd-arm .
58
59openbsd:
60	GOOS=openbsd GOARCH=386 CGO_ENABLED=0 go build -o out/earl-openbsd-i386 .
61	GOOS=openbsd GOARCH=amd64 CGO_ENABLED=0 go build -o out/earl-openbsd-amd64 .
62	GOOS=openbsd GOARCH=arm CGO_ENABLED=0 go build -o out/earl-openbsd-arm .
63	GOOS=openbsd GOARCH=arm64 CGO_ENABLED=0 go build -o out/earl-openbsd-arm64 .
64
65plan9:
66	GOOS=plan9 GOARCH=386 CGO_ENABLED=0 go build -o out/earl-plan9-i386 .
67	GOOS=plan9 GOARCH=amd64 CGO_ENABLED=0 go build -o out/earl-plan9-amd64 .
68	GOOS=plan9 GOARCH=arm CGO_ENABLED=0 go build -o out/earl-plan9-arm .
69
70solaris:
71	GOOS=solaris GOARCH=amd64 CGO_ENABLED=0 go build -o out/earl-solaris-amd64 .
72
73windows:
74	GOOS=windows GOARCH=386 CGO_ENABLED=0 go build -o out/earl-windows-i386.exe .
75	GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -o out/earl-windows-amd64.exe .
76	GOOS=windows GOARCH=arm CGO_ENABLED=0 go build -o out/earl-windows-arm.exe .
77	GOOS=windows GOARCH=arm64 CGO_ENABLED=0 go build -o out/earl-windows-arm64.exe .