diff --git a/Makefile b/Makefile index af0fc4f2fe..3636ce5cd4 100644 --- a/Makefile +++ b/Makefile @@ -12,6 +12,9 @@ GODEPS_PKG_DIR = Godeps/_workspace/pkg KUBE_GOFLAGS = $(GOFLAGS) export KUBE_GOFLAGS +KUBE_GOLDFLAGS = $(GOLDFLAGS) +export KUBE_GOLDFLAGS + # Build code. # # Args: @@ -19,6 +22,7 @@ export KUBE_GOFLAGS # package, the build will produce executable files under $(OUT_DIR)/go/bin. # If not specified, "everything" will be built. # GOFLAGS: Extra flags to pass to 'go' when building. +# GOLDFLAGS: Extra linking flags to pass to 'go' when building. # # Example: # make @@ -35,6 +39,7 @@ all: # directories will be run. If not specified, "everything" will be tested. # TESTS: Same as WHAT. # GOFLAGS: Extra flags to pass to 'go' when building. +# GOLDFLAGS: Extra linking flags to pass to 'go' when building. # # Example: # make check @@ -78,6 +83,7 @@ clean: # vetted. # TESTS: Same as WHAT. # GOFLAGS: Extra flags to pass to 'go' when building. +# GOLDFLAGS: Extra linking flags to pass to 'go' when building. # # Example: # make vet diff --git a/hack/lib/golang.sh b/hack/lib/golang.sh index 18b839315d..0935a1a865 100755 --- a/hack/lib/golang.sh +++ b/hack/lib/golang.sh @@ -369,7 +369,7 @@ kube::golang::build_binaries_for_platform() { local outfile=$(kube::golang::output_filename_for_binary "${binary}" "${platform}") CGO_ENABLED=0 go build -o "${outfile}" \ "${goflags[@]:+${goflags[@]}}" \ - -ldflags "${version_ldflags}" \ + -ldflags "${goldflags}" \ "${binary}" kube::log::progress "*" done @@ -377,7 +377,7 @@ kube::golang::build_binaries_for_platform() { local outfile=$(kube::golang::output_filename_for_binary "${binary}" "${platform}") go build -o "${outfile}" \ "${goflags[@]:+${goflags[@]}}" \ - -ldflags "${version_ldflags}" \ + -ldflags "${goldflags}" \ "${binary}" kube::log::progress "*" done @@ -386,12 +386,12 @@ kube::golang::build_binaries_for_platform() { # Use go install. if [[ "${#nonstatics[@]}" != 0 ]]; then go install "${goflags[@]:+${goflags[@]}}" \ - -ldflags "${version_ldflags}" \ + -ldflags "${goldflags}" \ "${nonstatics[@]:+${nonstatics[@]}}" fi if [[ "${#statics[@]}" != 0 ]]; then CGO_ENABLED=0 go install -installsuffix cgo "${goflags[@]:+${goflags[@]}}" \ - -ldflags "${version_ldflags}" \ + -ldflags "${goldflags}" \ "${statics[@]:+${statics[@]}}" fi fi @@ -405,7 +405,7 @@ kube::golang::build_binaries_for_platform() { pushd "$(dirname ${outfile})" >/dev/null go test -c \ "${goflags[@]:+${goflags[@]}}" \ - -ldflags "${version_ldflags}" \ + -ldflags "${goldflags}" \ "$(dirname ${test})" popd >/dev/null done @@ -447,16 +447,13 @@ kube::golang::build_binaries() { # Check for `go` binary and set ${GOPATH}. kube::golang::setup_env - # Fetch the version. - local version_ldflags - version_ldflags=$(kube::version::ldflags) - local host_platform host_platform=$(kube::golang::host_platform) # Use eval to preserve embedded quoted strings. - local goflags + local goflags goldflags eval "goflags=(${KUBE_GOFLAGS:-})" + goldflags="${KUBE_GOLDFLAGS:-} $(kube::version::ldflags)" local use_go_build local -a targets=()