aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffery To <jeffery.to@gmail.com>2020-01-08 02:15:59 +0800
committerJeffery To <jeffery.to@gmail.com>2020-01-08 19:29:54 +0800
commit53603abaaecb63cfa786752d19878ea42974dc52 (patch)
treecbfa6c08aa84c0327bceff28ea87ee00256fd191
parent232634fb9a353019ca549a4891f55c2eebdc40a8 (diff)
golang: Make golang-values.mk more readable
This replaces conditional functions with conditional directives to make golang-values.mk more readable. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
-rw-r--r--lang/golang/golang-values.mk59
1 files changed, 43 insertions, 16 deletions
diff --git a/lang/golang/golang-values.mk b/lang/golang/golang-values.mk
index 02b10b1ed..873d71524 100644
--- a/lang/golang/golang-values.mk
+++ b/lang/golang/golang-values.mk
@@ -119,6 +119,9 @@ unexport \
unexport \
GOEXPERIMENT
+
+# GOOS / GOARCH
+
go_arch=$(subst \
aarch64,arm64,$(subst \
i386,386,$(subst \
@@ -135,28 +138,52 @@ GO_HOST_OS:=$(call tolower,$(HOST_OS))
GO_HOST_ARCH:=$(call go_arch,$(subst \
armv6l,arm,$(subst \
armv7l,arm,$(subst \
- i486,i386,$(subst \
- i586,i386,$(subst \
- i686,i386,$(HOST_ARCH)))))))
+ i686,i386,$(HOST_ARCH)))))
GO_HOST_OS_ARCH:=$(GO_HOST_OS)_$(GO_HOST_ARCH)
-GO_HOST_TARGET_SAME:=$(if $(and $(findstring $(GO_OS_ARCH),$(GO_HOST_OS_ARCH)),$(findstring $(GO_HOST_OS_ARCH),$(GO_OS_ARCH))),1)
-GO_HOST_TARGET_DIFFERENT:=$(if $(GO_HOST_TARGET_SAME),,1)
-
-# ensure binaries can run on older CPUs
-GO_386:=387
+ifeq ($(GO_OS_ARCH),$(GO_HOST_OS_ARCH))
+ GO_HOST_TARGET_SAME:=1
+else
+ GO_HOST_TARGET_DIFFERENT:=1
+endif
-GO_ARM:=$(if $(CONFIG_arm_v7),7,$(if $(CONFIG_arm_v6),6,$(if $(findstring $(GO_ARCH),arm),5,)))
+ifeq ($(GO_ARCH),386)
+ # ensure binaries can run on older CPUs
+ GO_386:=387
+
+ # -fno-plt: causes "unexpected GOT reloc for non-dynamic symbol" errors
+ GO_CFLAGS_TO_REMOVE:=-fno-plt
+
+else ifeq ($(GO_ARCH),arm)
+ ifeq ($(CONFIG_arm_v7),y)
+ GO_ARM:=7
+ else ifeq ($(CONFIG_arm_v6),y)
+ GO_ARM:=6
+ else
+ GO_ARM:=5
+ endif
+
+else ifneq ($(filter $(GO_ARCH),mips mipsle),)
+ ifeq ($(CONFIG_HAS_FPU),y)
+ GO_MIPS:=hardfloat
+ else
+ GO_MIPS:=softfloat
+ endif
+
+ # -mips32r2: conflicts with -march=mips32 set by go
+ GO_CFLAGS_TO_REMOVE:=-mips32r2
+
+else ifneq ($(filter $(GO_ARCH),mips64 mips64le),)
+ ifeq ($(CONFIG_HAS_FPU),y)
+ GO_MIPS64:=hardfloat
+ else
+ GO_MIPS64:=softfloat
+ endif
-GO_MIPS:=$(if $(filter $(GO_ARCH),mips mipsle),$(if $(CONFIG_HAS_FPU),hardfloat,softfloat),)
+endif
-GO_MIPS64:=$(if $(filter $(GO_ARCH),mips64 mips64le),$(if $(CONFIG_HAS_FPU),hardfloat,softfloat),)
-# -fno-plt: causes "unexpected GOT reloc for non-dynamic symbol" errors
-# -mips32r2: conflicts with -march=mips32 set by go
-GO_CFLAGS_TO_REMOVE:=$(if \
-$(filter $(GO_ARCH),386),-fno-plt,$(if \
-$(filter $(GO_ARCH),mips mipsle),-mips32r2,))
+# Target Go
GO_ARCH_DEPENDS:=@(aarch64||arm||i386||i686||mips||mips64||mips64el||mipsel||powerpc64||x86_64)