diff --git a/build b/build index 708c431b..786e7db2 100755 --- a/build +++ b/build @@ -12,7 +12,7 @@ else fi ARGS="-v" -while getopts "utc:l:dro:p" option +while getopts "utc:l:dro:ps" option do case "$option" in @@ -24,6 +24,8 @@ do r) ARGS="$ARGS -race";; o) ARGS="$ARGS -o $OPTARG";; p) ARGS="$ARGS -buildmode=pie";; + # statically linked executable + s) STATIC=" -linkmode external -extldflags=-static";; esac done @@ -31,7 +33,18 @@ if [ -z $TABLES ] && [ -z $DEBUG ]; then LDFLAGS="$LDFLAGS -s -w" fi -for CMD in ./cmd/mesh ./cmd/meshctl ./contrib/ui/mesh-ui ; do +#could be static +for CMD in ./cmd/mesh ./cmd/meshctl ; do + echo "Building: $CMD" + go build $ARGS -ldflags "${LDFLAGS}${STATIC}" -gcflags "$GCFLAGS" $CMD + + if [ $UPX ]; then + upx --brute $CMD + fi +done + +#dynamic only +for CMD in ./contrib/ui/mesh-ui ; do echo "Building: $CMD" go build $ARGS -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" $CMD