-
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathMakefile
More file actions
130 lines (98 loc) · 4.34 KB
/
Makefile
File metadata and controls
130 lines (98 loc) · 4.34 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
.PHONY: \
help \
install-tools \
pb \
adminui \
server \
server-noui \
server-linux-amd64-noui \
server-linux-arm64-noui \
webui \
client \
client-noui \
client-windows-amd64-noui \
client-linux-amd64-noui \
client-linux-arm64-noui \
client-darwin-arm64-noui \
client-debs \
client-debs-noui \
rpcclient \
rpcclient-linux-amd64 \
rpcclient-linux-arm64 \
run-rpcclient \
server-docker \
server-docker-publish \
release-artifacts
help:
echo "Read the Makefile to see options"
install-tools:
go install github.com/bufbuild/buf/cmd/buf@v1.64.0
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.36.11
go install connectrpc.com/connect/cmd/protoc-gen-connect-go@v1.19.1
pb:
cd protocol && buf lint && buf generate
cd webui && npx buf lint && npx buf generate
cd server-widget && npx buf lint && npx buf generate
cd adminui && npx buf lint && npx buf generate
adminui:
cd adminui && go generate
server:
make adminui && cd server && CGO_ENABLED=0 go build -o friendnet-server friendnet.org/server/cmd/server
server-noui:
cd server && CGO_ENABLED=0 go build -o friendnet-server friendnet.org/server/cmd/server
server-linux-amd64-noui:
cd server && CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o friendnet-server friendnet.org/server/cmd/server
server-linux-arm64-noui:
cd server && CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o friendnet-server friendnet.org/server/cmd/server
webui:
cd webui && go generate
client:
make webui && cd client && CGO_ENABLED=0 go build -o friendnet-client friendnet.org/client/cmd/client
client-noui:
cd client && CGO_ENABLED=0 go build -o friendnet-client friendnet.org/client/cmd/client
client-windows-amd64-noui:
cd client && CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags="-H windowsgui" -o friendnet-client.exe friendnet.org/client/cmd/client
client-linux-amd64-noui:
cd client && CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o friendnet-client friendnet.org/client/cmd/client
client-linux-arm64-noui:
cd client && CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o friendnet-client friendnet.org/client/cmd/client
client-darwin-arm64-noui:
cd client && CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o friendnet-client friendnet.org/client/cmd/client
client-debs:
cd packaging && node index.ts deb
client-debs-noui:
cd packaging && node index.ts deb --no-ui
rpcclient:
cd rpcclient && CGO_ENABLED=0 go build -o friendnet-rpcclient friendnet.org/rpcclient/cmd/cli
rpcclient-linux-amd64:
cd rpcclient && CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o friendnet-rpcclient friendnet.org/rpcclient/cmd/cli
rpcclient-linux-arm64:
cd rpcclient && CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o friendnet-rpcclient friendnet.org/rpcclient/cmd/cli
run-rpcclient:
make rpcclient && cd server && ../rpcclient/friendnet-rpcclient
server-docker:
docker build -t git.termer.net/termer/friendnet-server:latest -f server.Dockerfile .
server-docker-publish:
make server-docker && docker push git.termer.net/termer/friendnet-server:latest
release-artifacts:
rm -rf /tmp/fn-release
mkdir /tmp/fn-release
make webui
make client-linux-amd64-noui && mv client/friendnet-client /tmp/fn-release/friendnet-client-linux_amd64
make client-linux-arm64-noui && mv client/friendnet-client /tmp/fn-release/friendnet-client-linux_arm64
make client-windows-amd64-noui && mv client/friendnet-client.exe /tmp/fn-release/friendnet-client-windows_amd64.exe
#make client-darwin-arm64-noui && mv client/friendnet-client /tmp/fn-release/friendnet-client-macos_arm64
make client-debs-noui && mv client/*.deb /tmp/fn-release/
make adminui
make server-linux-amd64-noui && mv server/friendnet-server /tmp/fn-release/server
make rpcclient-linux-amd64 && mv rpcclient/friendnet-rpcclient /tmp/fn-release/rpcclient
chmod +x /tmp/fn-release/*
cd /tmp/fn-release && tar -czf friendnet-server-linux_amd64.tar.gz server rpcclient
rm /tmp/fn-release/server && rm /tmp/fn-release/rpcclient
make server-linux-arm64-noui && mv server/friendnet-server /tmp/fn-release/server
make rpcclient-linux-arm64 && mv rpcclient/friendnet-rpcclient /tmp/fn-release/rpcclient
chmod +x /tmp/fn-release/*
cd /tmp/fn-release && tar -czf friendnet-server-linux_arm64.tar.gz server rpcclient
rm /tmp/fn-release/server && rm /tmp/fn-release/rpcclient
make server-docker-publish
echo "Artifacts in /tmp/fn-release, and new server Docker image pushed"