#!/bin/sh set -eu export LANG=POSIX.UTF-8 libs() { find src tests -name '*.go' | grep -Ev '/(main|meta)\.go$' | grep -Ev '/_cgo_(import|gotypes)\.go$' | grep -Ev '\.cgo1\.go$' } mains() { find src tests -name '*.go' | grep '/main\.go$' } docs() { find doc/*.en.*.adoc } xdocs() { for l in `find po/doc/*.po | xargs -I% basename % .po`; do docs | sed 's|/\(.*\)\.en\.\(.*\)$|/\1.'"$l"'.\2|' done } pos() { find po/ -name '*.po' | grep -Ev '^po/(doc|tests)/' } libs | varlist 'libs.go' mains | varlist 'mains.go' docs | varlist 'manpages.en.N.adoc' xdocs | varlist 'manpages.XX.N.adoc' pos | varlist 'sources.po' find tests/functional/*/*.go -not -name main.go | varlist 'functional/lib.go' find tests/functional/*/main.go | varlist 'functional/main.go' find tests/fuzz/*/*.go -not -name main.go | varlist 'fuzz/lib.go' find tests/fuzz/*/main.go | varlist 'fuzz/main.go' find tests/benchmarks/*/*.go -not -name main.go | varlist 'benchmarks/lib.go' find tests/benchmarks/*/main.go | varlist 'benchmarks/main.go' { libs; mains; } | 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|'