summaryrefslogtreecommitdiff
path: root/mkdeps.sh
blob: 3ce3e0560b6e7392132a1b532ee7857e3853b2d2 (plain) (blame)
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
#!/bin/sh
set -eu

export LANG=POSIX.UTF-8


no_main() {
	 grep -v '/main\.go$'
}

only_main() {
	 grep    '/main\.go$'
}

sources() {
	find src tests -name '*.go' | grep -v '^src/version\.go$'
}

libs() {
	sources | no_main
}

mains() {
	sources | only_main
}

libs  | varlist 'libs.go'
mains | varlist 'mains.go'

find tests/functional/*/*.go  | no_main | varlist 'functional-tests/lib.go'
find tests/functional/*/main.go         | varlist 'functional-tests/main.go'
find tests/fuzz/*/*.go        | no_main | varlist 'fuzz-targets/lib.go'
find tests/fuzz/*/main.go               | varlist 'fuzz-targets/main.go'
find tests/benchmarks/*/*.go  | no_main | varlist 'benchmarks/lib.go'
find tests/benchmarks/*/main.go         | varlist 'benchmarks/main.go'

sources | sort | sed 's/^\(.*\)\.go$/\1.a:\t\1.go/'
mains   | sort | sed 's/^\(.*\)\.go$/\1.bin:\t\1.a/'
mains   | sort | sed 's/^\(.*\)\.go$/\1.bin-check:\t\1.bin/'
mains   | sort | sed 's|^\(.*\)/main\.go$|\1/main.a:\t\1/$(NAME).a|'