File: cross-compile.sh

package info (click to toggle)
micro 2.0.15-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,128 kB
  • sloc: sh: 265; makefile: 77; xml: 53
file content (127 lines) | stat: -rwxr-xr-x 3,016 bytes parent folder | download
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
#!/bin/sh

set -e

VERSION="$1"
if [ -z "$VERSION" ]; then
	VERSION="$(go run tools/build-version.go)"
fi

mkdir -p binaries
mkdir -p micro-$VERSION

cp LICENSE micro-$VERSION
cp README.md micro-$VERSION
cp LICENSE-THIRD-PARTY micro-$VERSION
cp assets/packaging/micro.1 micro-$VERSION
cp assets/packaging/micro.desktop micro-$VERSION
cp assets/micro-logo-mark.svg micro-$VERSION/micro.svg

create_artefact_generic()
{
	mv micro micro-$VERSION/
	tar -czf micro-$VERSION-$1.tar.gz micro-$VERSION
	sha256sum micro-$VERSION-$1.tar.gz > micro-$VERSION-$1.tar.gz.sha
	mv micro-$VERSION-$1.* binaries
	rm micro-$VERSION/micro
}

create_artefact_windows()
{
	mv micro.exe micro-$VERSION/
	zip -r -q -T micro-$VERSION-$1.zip micro-$VERSION
	sha256sum micro-$VERSION-$1.zip > micro-$VERSION-$1.zip.sha
	mv micro-$VERSION-$1.* binaries
	rm micro-$VERSION/micro.exe
}

# Mac
echo "OSX 64"
GOOS=darwin GOARCH=amd64 make build
create_artefact_generic "osx"

# Mac ARM64
echo "MacOS ARM64"
GOOS=darwin GOARCH=arm64 make build
create_artefact_generic "macos-arm64"

# Linux
echo "Linux 64"
GOOS=linux GOARCH=amd64 make build
if ./tools/package-deb.sh $VERSION; then
	sha256sum micro-$VERSION-amd64.deb > micro-$VERSION-amd64.deb.sha
	mv micro-$VERSION-amd64.* binaries
fi
create_artefact_generic "linux64"

echo "Linux 64 fully static (same as linux64)"
# It is kept for the next release only to support...
# https://github.com/benweissmann/getmic.ro/blob/f90870e948afab8be9ec40884050044b59ed5b7c/index.sh#L197-L204
# ...and allow a fluent switch via:
# https://github.com/benweissmann/getmic.ro/pull/40
GOOS=linux GOARCH=amd64 make build
create_artefact_generic "linux64-static"

echo "Linux 32"
GOOS=linux GOARCH=386 make build
create_artefact_generic "linux32"

echo "Linux ARM 32"
GOOS=linux GOARM=6 GOARCH=arm make build
create_artefact_generic "linux-arm"

echo "Linux ARM 64"
GOOS=linux GOARCH=arm64 make build
create_artefact_generic "linux-arm64"

# Solaris
echo "Solaris 64"
GOOS=solaris GOARCH=amd64 make build
create_artefact_generic "solaris64"

# Illumos
echo "Illumos 64"
GOOS=illumos GOARCH=amd64 make build
create_artefact_generic "illumos64"

# NetBSD
echo "NetBSD 64"
GOOS=netbsd GOARCH=amd64 make build
create_artefact_generic "netbsd64"

echo "NetBSD 32"
GOOS=netbsd GOARCH=386 make build
create_artefact_generic "netbsd32"

# OpenBSD
echo "OpenBSD 64"
GOOS=openbsd GOARCH=amd64 make build
create_artefact_generic "openbsd64"

echo "OpenBSD 32"
GOOS=openbsd GOARCH=386 make build
create_artefact_generic "openbsd32"

# FreeBSD
echo "FreeBSD 64"
GOOS=freebsd GOARCH=amd64 make build
create_artefact_generic "freebsd64"

echo "FreeBSD 32"
GOOS=freebsd GOARCH=386 make build
create_artefact_generic "freebsd32"

# Windows
echo "Windows 64"
GOOS=windows GOARCH=amd64 make build
create_artefact_windows "win64"

echo "Windows ARM 64"
GOOS=windows GOARCH=arm64 make build
create_artefact_windows "win-arm64"

echo "Windows 32"
GOOS=windows GOARCH=386 make build
create_artefact_windows "win32"

rm -rf micro-$VERSION