aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lang/golang/golang-package.mk37
-rw-r--r--lang/golang/golang-values.mk3
2 files changed, 35 insertions, 5 deletions
diff --git a/lang/golang/golang-package.mk b/lang/golang/golang-package.mk
index 887d54dad..7522a9f4f 100644
--- a/lang/golang/golang-package.mk
+++ b/lang/golang/golang-package.mk
@@ -76,6 +76,28 @@ include $(GO_INCLUDE_DIR)/golang-values.mk
# not necessary.
#
# e.g. GO_PKG_GO_GENERATE:=1
+#
+#
+# GO_PKG_GCFLAGS - list of arguments, default empty
+#
+# Additional go tool compile arguments to use when building targets.
+#
+# e.g. GO_PKG_GCFLAGS:=-N -l
+#
+#
+# GO_PKG_LDFLAGS - list of arguments, default empty
+#
+# Additional go tool link arguments to use when building targets.
+#
+# e.g. GO_PKG_LDFLAGS:=-s -w
+#
+#
+# GO_PKG_LDFLAGS_X - list of string variable definitions, default empty
+#
+# Each definition will be passed as the parameter to the -X go tool
+# link argument, i.e. -ldflags "-X importpath.name=value"
+#
+# e.g. GO_PKG_LDFLAGS_X:=main.Version=$(PKG_VERSION) main.BuildStamp=$(SOURCE_DATE_EPOCH)
# Credit for this package build process (GoPackage/Build/Configure and
# GoPackage/Build/Compile) belong to Debian's dh-golang completely.
@@ -247,18 +269,25 @@ define GoPackage/Build/Compile
if [ "$(GO_PKG_SOURCE_ONLY)" != 1 ]; then \
echo "Building targets" ; \
case $(GO_ARCH) in \
- arm) installsuffix="-installsuffix v$(GO_ARM)" ;; \
- mips|mipsle) installsuffix="-installsuffix $(GO_MIPS)" ;; \
- mips64|mips64le) installsuffix="-installsuffix $(GO_MIPS64)" ;; \
+ arm) installsuffix="v$(GO_ARM)" ;; \
+ mips|mipsle) installsuffix="$(GO_MIPS)" ;; \
+ mips64|mips64le) installsuffix="$(GO_MIPS64)" ;; \
esac ; \
trimpath="all=-trimpath=$(GO_PKG_BUILD_DIR)" ; \
ldflags="all=-linkmode external -extldflags '$(TARGET_LDFLAGS)'" ; \
+ pkg_gcflags="$(GO_PKG_GCFLAGS)" ; \
+ pkg_ldflags="$(GO_PKG_LDFLAGS)" ; \
+ for def in $(GO_PKG_LDFLAGS_X); do \
+ pkg_ldflags="$$$$pkg_ldflags -X $$$$def" ; \
+ done ; \
go install \
- $$$$installsuffix \
+ $$$${installsuffix:+-installsuffix $$$$installsuffix} \
-gcflags "$$$$trimpath" \
-asmflags "$$$$trimpath" \
-ldflags "$$$$ldflags" \
-v \
+ $$$${pkg_gcflags:+-gcflags "$$$$pkg_gcflags"} \
+ $$$${pkg_ldflags:+-ldflags "$$$$pkg_ldflags"} \
$(1) \
$$$$targets ; \
retval=$$$$? ; \
diff --git a/lang/golang/golang-values.mk b/lang/golang/golang-values.mk
index caae21efb..78ad1b3de 100644
--- a/lang/golang/golang-values.mk
+++ b/lang/golang/golang-values.mk
@@ -13,7 +13,8 @@ include $(GO_INCLUDE_DIR)/golang-version.mk
unexport \
- GOARCH GOBIN GOCACHE GODEBUG GOFLAGS GOHOSTARCH GOOS GOPATH GORACE GOROOT GOTMPDIR GCCGO \
+ GOARCH GOBIN GOCACHE GOFLAGS GOHOSTARCH GOOS GOPATH GORACE GOROOT GOTMPDIR GCCGO \
+ GOGC GODEBUG GOMAXPROCS GOTRACEBACK \
CGO_ENABLED \
CGO_CFLAGS CGO_CFLAGS_ALLOW CGO_CFLAGS_DISALLOW \
CGO_CPPFLAGS CGO_CPPFLAGS_ALLOW CGO_CPPFLAGS_DISALLOW \