/
makefile
64 lines (45 loc) · 1.79 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
59
60
61
62
63
appname := QuickClip-1.1.2
applicationDir := QuickClip
sources := $(wildcard *.go)
build = cd ./cmd && GOOS=$(1) GOARCH=$(2) go build -o ../bin/$(appname)$(3) $(4)
tar = mkdir -p build && cd ../ && tar --exclude $(applicationDir)/static/js/src -cvzf ./$(appname)_$(1)_$(2).tar.gz $(applicationDir)/bin $(applicationDir)/config $(applicationDir)/static $(applicationDir)/templates && mv $(appname)_$(1)_$(2).tar.gz $(applicationDir)/build
.PHONY: all linux
all: linux
run: web
cd ./cmd && go run .
web:
tsc -b
minify-all-js static/js/out
build: web all linux clean
docker: cleanall web
cd ./cmd && GOOS=linux GOARCH=amd64 go build -o ../bin/QuickClip -ldflags '-extldflags "-fno-PIC -static"' -buildmode pie -tags 'osusergo netgo static_build'
cd ../ && tar --exclude QuickClip/static/js/src -cvzf ./app.tar.gz QuickClip/bin QuickClip/config QuickClip/static QuickClip/templates && mv app.tar.gz QuickClip/docker/
rm -rf bin
sudo systemctl start docker
cd docker && bash build.sh
rm -rf docker/QuickClip
rm -rf docker/app.tar.gz
docker-release: docker
sudo docker push mikmuellerdev/quickclip:latest
clean:
rm -rf bin
rm -rf log
rm -rf static/js/out
cleanall: clean
rm -rf build
rm -rf docker/QuickClip
rm -rf docker/app.tar.gz
##### LINUX BUILDS #####
linux: build/linux_arm.tar.gz build/linux_arm64.tar.gz build/linux_386.tar.gz build/linux_amd64.tar.gz
build/linux_386.tar.gz: $(sources)
$(call build,linux,386,)
$(call tar,linux,386)
build/linux_amd64.tar.gz: $(sources)
$(call build,linux,amd64, -ldflags '-extldflags "-fno-PIC -static"' -buildmode pie -tags 'osusergo netgo static_build')
$(call tar,linux,amd64)
build/linux_arm.tar.gz: $(sources)
$(call build,linux,arm,)
$(call tar,linux,arm)
build/linux_arm64.tar.gz: $(sources)
$(call build,linux,arm64,)
$(call tar,linux,arm64)