-
Notifications
You must be signed in to change notification settings - Fork 29
/
Copy pathMakefile
93 lines (72 loc) · 4.43 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
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
WIN_SYSROOT := $(HOME)/win-sysroot
CGO_FLAGS_AARCH64 := ""
CGO_FLAGS_ALLOW_WIN := ".*"
CGO_FLAGS_AMD64 := "-m64"
CGO_FLAGS_ARM := ""
CGO_FLAGS_I686 := "-m32"
CGO_FLAGS_WIN_AMD64 := "-m64 --sysroot=$(WIN_SYSROOT) -I$(WIN_SYSROOT)/include"
CGO_FLAGS_WIN_I686 := "-m32 --sysroot=$(WIN_SYSROOT) -I$(WIN_SYSROOT)/include"
CGO_LDFLAGS_ALLOW_WIN := ".*"
CGO_LDFLAGS_WIN := "--sysroot=$(WIN_SYSROOT) -L$(WIN_SYSROOT)/lib"
GCFLAGS_DEBUG := 'all=-N -l'
LDFLAGS_RELEASE := 'all=-w -s'
PACKAGE_BIN := config ir keys webroot `ls dsp*`
all: dsp dsp-debug
.PHONY: clean clean-all fmt keys test
clean:
rm -rf dist/
rm -f dsp dsp-debug
clean-all:
rm -rf dist/
rm -f dsp dsp-debug dsp-linux-aarch64 dsp-linux-aarch64-debug dsp-linux-amd64 dsp-linux-amd64-debug dsp-linux-arm dsp-linux-arm-debug dsp-win-amd64.exe dsp-win-amd64-debug.exe dsp-win-i686.exe dsp-win-i686-debug.exe
dsp:
go build -o dsp -ldflags $(LDFLAGS_RELEASE)
dsp-debug:
go build -o dsp-debug -gcflags $(GCFLAGS_DEBUG)
dsp-linux-aarch64:
CGO_ENABLED=1 CGO_CFLAGS=$(CGO_FLAGS_AARCH64) CC=aarch64-linux-gnu-gcc GOOS=linux GOARCH=arm64 go build -o dsp-linux-aarch64 -ldflags $(LDFLAGS_RELEASE)
dsp-linux-aarch64-debug:
CGO_ENABLED=1 CGO_CFLAGS=$(CGO_FLAGS_AARCH64) CC=aarch64-linux-gnu-gcc GOOS=linux GOARCH=arm64 go build -o dsp-linux-aarch64-debug -gcflags $(GCFLAGS_DEBUG)
dsp-linux-amd64:
CGO_ENABLED=1 CGO_CFLAGS=$(CGO_FLAGS_AMD64) CC=x86_64-linux-gnu-gcc GOOS=linux GOARCH=amd64 go build -o dsp-linux-amd64 -ldflags $(LDFLAGS_RELEASE)
dsp-linux-amd64-debug:
CGO_ENABLED=1 CGO_CFLAGS=$(CGO_FLAGS_AMD64) CC=x86_64-linux-gnu-gcc GOOS=linux GOARCH=amd64 go build -o dsp-linux-amd64-debug -gcflags $(GCFLAGS_DEBUG)
dsp-linux-arm:
CGO_ENABLED=1 CGO_CFLAGS=$(CGO_FLAGS_ARM) CC=arm-linux-gnu-gcc GOOS=linux GOARCH=arm GOARM=7 go build -o dsp-linux-arm -ldflags $(LDFLAGS_RELEASE)
dsp-linux-arm-debug:
CGO_ENABLED=1 CGO_CFLAGS=$(CGO_FLAGS_ARM) CC=arm-linux-gnu-gcc GOOS=linux GOARCH=arm GOARM=7 go build -o dsp-linux-arm-debug -gcflags $(GCFLAGS_DEBUG)
dsp-win-amd64.exe:
CGO_ENABLED=1 CGO_CFLAGS=$(CGO_FLAGS_WIN_AMD64) CGO_LDFLAGS=$(CGO_LDFLAGS_WIN) CGO_CFLAGS_ALLOW=$(CGO_FLAGS_ALLOW_WIN) CGO_LDFLAGS_ALLOW=$(CGO_LDFLAGS_ALLOW_WIN) CC=x86_64-w64-mingw32-gcc GOOS=windows GOARCH=amd64 go build -o dsp-win-amd64.exe -ldflags $(LDFLAGS_RELEASE)
dsp-win-amd64-debug.exe:
CGO_ENABLED=1 CGO_CFLAGS=$(CGO_FLAGS_WIN_AMD64) CGO_LDFLAGS=$(CGO_LDFLAGS_WIN) CGO_CFLAGS_ALLOW=$(CGO_FLAGS_ALLOW_WIN) CGO_LDFLAGS_ALLOW=$(CGO_LDFLAGS_ALLOW_WIN) CC=x86_64-w64-mingw32-gcc GOOS=windows GOARCH=amd64 go build -o dsp-win-amd64-debug.exe -gcflags $(GCFLAGS_DEBUG)
dsp-win-i686.exe:
CGO_ENABLED=1 CGO_CFLAGS=$(CGO_FLAGS_WIN_I686) CGO_LDFLAGS=$(CGO_LDFLAGS_WIN) CGO_CFLAGS_ALLOW=$(CGO_FLAGS_ALLOW_WIN) CGO_LDFLAGS_ALLOW=$(CGO_LDFLAGS_ALLOW_WIN) CC=i686-w64-mingw32-gcc GOOS=windows GOARCH=386 go build -o dsp-win-i686.exe -ldflags $(LDFLAGS_RELEASE)
dsp-win-i686-debug.exe:
CGO_ENABLED=1 CGO_CFLAGS=$(CGO_FLAGS_WIN_I686) CGO_LDFLAGS=$(CGO_LDFLAGS_WIN) CGO_CFLAGS_ALLOW=$(CGO_FLAGS_ALLOW_WIN) CGO_LDFLAGS_ALLOW=$(CGO_LDFLAGS_ALLOW_WIN) CC=i686-w64-mingw32-gcc GOOS=windows GOARCH=386 go build -o dsp-win-i686-debug.exe -gcflags $(GCFLAGS_DEBUG)
dist:
mkdir dist
mkdir dist/bin
mkdir dist/bin/go-dsp-guitar
cp -r $(PACKAGE_BIN) dist/bin/go-dsp-guitar/
mkdir dist/src
mkdir dist/src/go-dsp-guitar
rsync -rlpv . dist/src/go-dsp-guitar/ --exclude dist/ --exclude ".*" --exclude "dsp*"
cd dist/bin/ && tar cvzf go-dsp-guitar-vX.X.X.tar.gz --exclude=".[^/]*" go-dsp-guitar && cd ../../
cd dist/src/ && tar cvzf go-dsp-guitar-vX.X.X.src.tar.gz --exclude=".[^/]*" go-dsp-guitar && cd ../../
fmt:
gofmt -w .
find \( -iname '*.css' -o -iname '*.js' -o -iname '*.json' -o -iname '*.md' -o -iname '*.xhtml' \) -execdir sed -i s/[[:space:]]*$$// {} \;
keys:
mkdir keys
openssl genrsa -out keys/private.pem 4096
openssl req -new -x509 -days 365 -sha512 -key keys/private.pem -out keys/public.pem -subj "/C=DE/ST=Berlin/L=Berlin/O=None/OU=None/CN=localhost"
test:
go test -cover github.com/andrepxx/go-dsp-guitar/circular
go test -cover github.com/andrepxx/go-dsp-guitar/fft
go test -cover github.com/andrepxx/go-dsp-guitar/level
go test -cover github.com/andrepxx/go-dsp-guitar/oversampling
go test -cover github.com/andrepxx/go-dsp-guitar/path
go test -cover github.com/andrepxx/go-dsp-guitar/random
go test -cover github.com/andrepxx/go-dsp-guitar/resample
go test -cover github.com/andrepxx/go-dsp-guitar/tuner
go test -cover github.com/andrepxx/go-dsp-guitar/wave