Skip to content

Commit

Permalink
GoArm Versions
Browse files Browse the repository at this point in the history
This patch correctly sets the GoArm version and architecture in
accordance with the GoArm version rules.
  • Loading branch information
akutz committed May 22, 2017
1 parent 162d6b9 commit 50df594
Show file tree
Hide file tree
Showing 16 changed files with 199 additions and 39 deletions.
163 changes: 141 additions & 22 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -57,25 +57,21 @@ GOOS := $(strip $(GOOS))
GOARCH := $(strip $(GOARCH))

ifneq (,$(GO)) # if go exists

GOOS_GOARCH := $(subst /, ,$(shell $(GO) version | awk '{print $$4}'))
ifeq (,$(GOOS))
GOOS := $(word 1,$(GOOS_GOARCH))
endif
ifeq (,$(GOARCH))
GOARCH := $(word 2,$(GOOS_GOARCH))
endif

else

ifeq (,$(GOOS))
GOOS := $(shell uname -s | tr A-Z a-z)
endif
ifeq (,$(GOARCH))
GOARCH := amd64
endif
endif

GOOS_GOARCH := $(GOOS)_$(GOARCH)

ifeq (,$(OS))
Expand All @@ -91,19 +87,72 @@ endif
endif

ifeq (,$(ARCH))

ifeq ($(GOARCH),386)
ARCH := i386
endif
endif # ifeq ($(GOARCH),386)

ifeq ($(GOARCH),amd64)
ARCH := x86_64
endif
endif # ifeq ($(GOARCH),amd64)

ifeq ($(GOARCH),arm)
ARCH := ARM
endif
ifeq (,$(strip $(GOARM)))
GOARM := 7
endif # ifeq (,$(strip $(GOARM)))
ARCH := ARMv$(GOARM)
endif # ifeq ($(GOARCH),arm)

ifeq ($(GOARCH),arm64)
ARCH := ARM64
endif
ARCH := ARMv8
endif # ifeq ($(GOARCH),arm64)

endif # ifeq (,$(ARCH))


# if GOARCH=arm & GOARM="" then figure out what
# the correct GOARM version is and export it
ifeq (arm,$(GOARCH))
ifeq (,$(strip $(GOARM)))
ifeq (ARMv5,$(ARCH))
GOARM := 5
endif # ifeq (ARMv5,$(ARCH))
ifeq (ARMv6,$(ARCH))
GOARM := 6
endif # ifeq (ARMv6,$(ARCH))
ifeq (ARMv7,$(ARCH))
GOARM := 7
endif # ifeq (ARMv7,$(ARCH))
endif # ifeq (,$(strip $(GOARM)))
export GOARM
endif # ifeq (arm,$(GOARCH))


# if GOARCH is arm64 then undefine & unexport GOARM
ifeq (arm64,$(GOARCH))
ifneq (undefined,$(origin GOARM))
undefine GOARM
unexport GOARM
endif
endif # ifeq ($(GOARCH),arm64)


# ensure that GOARM is compatible with the GOOS &
# GOARCH per https://github.com/golang/go/wiki/GoArm
# when GOARCH=arm
ifeq (arm,$(GOARCH))
ifeq (darwin,$(GOOS))
GOARM_ALLOWED := 7
else
GOARM_ALLOWED := 5 6 7
endif # ifeq (darwin,$(GOOS))
ifeq (,$(strip $(filter $(GOARM),$(GOARM_ALLOWED))))
$(info incompatible GOARM version: $(GOARM))
$(info allowed GOARM versions are: $(GOARM_ALLOWED))
$(info plese see https://github.com/golang/go/wiki/GoArm)
exit 1
endif # ifeq (,$(strip $(filter $(GOARM),$(GOARM_ALLOWED))))
endif # ifeq (arm,$(GOARCH))

export OS
export ARCH
Expand Down Expand Up @@ -453,10 +502,15 @@ ifeq (1,$(VENDORED))
$(info No Vendor Import Path.......$(ROOT_IMPORT_PATH_NV))
endif
$(info Project Name................$(ROOT_IMPORT_NAME))
$(info OS / Arch...................$(GOOS)_$(GOARCH))
$(info OS / Arch...................$(OS)_$(ARCH))
$(info Build Tags..................$(BUILD_TAGS))
$(info Vendored....................$(VENDORED))
$(info GOPATH......................$(GOPATH))
$(info GOOS........................$(GOOS))
$(info GOARCH......................$(GOARCH))
ifneq (,$(GOARM))
$(info GOARM.......................$(GOARM))
endif
$(info GOHOSTOS....................$(GOHOSTOS))
$(info GOHOSTARCH..................$(GOHOSTARCH))
$(info GOVERSION...................$(GOVERSION))
Expand Down Expand Up @@ -675,6 +729,9 @@ endif
endif
TRAVIS_BRANCH := $(subst $(ASTERIK) ,,$(TRAVIS_BRANCH))
TRAVIS_BRANCH := $(subst $(LPAREN)HEAD detached at ,,$(TRAVIS_BRANCH))
TRAVIS_BRANCH := $(subst $(LPAREN)detached at ,,$(TRAVIS_BRANCH))
TRAVIS_BRANCH := $(subst $(LPAREN)HEAD detached from ,,$(TRAVIS_BRANCH))
TRAVIS_BRANCH := $(subst $(LPAREN)detached from ,,$(TRAVIS_BRANCH))
TRAVIS_BRANCH := $(subst $(RPAREN),,$(TRAVIS_BRANCH))

ifeq ($(origin TRAVIS_TAG), undefined)
Expand Down Expand Up @@ -918,6 +975,12 @@ endif
ifeq (darwin_amd64,$(GOOS)_$(GOARCH))
EMBED_EXECUTOR_DARWIN_AMD64 ?= 1
endif
ifeq (darwin_arm,$(GOOS)_$(GOARCH))
EMBED_EXECUTOR_DARWIN_ARM ?= 1
endif
ifeq (darwin_arm64,$(GOOS)_$(GOARCH))
EMBED_EXECUTOR_DARWIN_ARM64 ?= 1
endif
ifeq (windows_amd64,$(GOOS)_$(GOARCH))
EMBED_EXECUTOR_WINDOWS_AMD64 ?= 1
endif
Expand All @@ -928,21 +991,29 @@ EMBED_EXECUTOR_LINUX_AMD64 := 0
EMBED_EXECUTOR_LINUX_ARM := 0
EMBED_EXECUTOR_LINUX_ARM64 := 0
EMBED_EXECUTOR_DARWIN_AMD64 := 0
EMBED_EXECUTOR_DARWIN_ARM := 0
EMBED_EXECUTOR_DARWIN_ARM64 := 0
EMBED_EXECUTOR_WINDOWS_AMD64 := 0

ifeq (linux_amd64,$(findstring linux_amd64,$(EMED_EXECUTORS)))
ifeq (linux_amd64,$(filter linux_amd64,$(EMED_EXECUTORS)))
EMBED_EXECUTOR_LINUX_AMD64 := 1
endif
ifeq (linux_arm,$(findstring linux_arm,$(EMED_EXECUTORS)))
ifeq (linux_arm,$(filter linux_arm,$(EMED_EXECUTORS)))
EMBED_EXECUTOR_LINUX_ARM := 1
endif
ifeq (linux_arm64,$(findstring linux_arm64,$(EMED_EXECUTORS)))
ifeq (linux_arm64,$(filter linux_arm64,$(EMED_EXECUTORS)))
EMBED_EXECUTOR_LINUX_ARM64 := 1
endif
ifeq (darwin_amd64,$(findstring darwin_amd64,$(EMED_EXECUTORS)))
ifeq (darwin_amd64,$(filter darwin_amd64,$(EMED_EXECUTORS)))
EMBED_EXECUTOR_DARWIN_AMD64 := 1
endif
ifeq (windows_amd64,$(findstring windows_amd64,$(EMED_EXECUTORS)))
ifeq (darwin_arm,$(filter darwin_arm,$(EMED_EXECUTORS)))
EMBED_EXECUTOR_DARWIN_ARM := 1
endif
ifeq (darwin_arm64,$(filter darwin_arm64,$(EMED_EXECUTORS)))
EMBED_EXECUTOR_DARWIN_ARM64 := 1
endif
ifeq (windows_amd64,$(filter windows_amd64,$(EMED_EXECUTORS)))
EMBED_EXECUTOR_WINDOWS_AMD64 := 1
endif

Expand All @@ -953,31 +1024,40 @@ EXECUTOR_LINUX := $(shell env GOOS=linux GOARCH=amd64 go list -f '{{.Target}}' .
EXECUTOR_LINUX_ARM := $(shell env GOOS=linux GOARCH=arm go list -f '{{.Target}}' ./cli/lsx/lsx-linux)
EXECUTOR_LINUX_ARM64 := $(shell env GOOS=linux GOARCH=arm64 go list -f '{{.Target}}' ./cli/lsx/lsx-linux)
EXECUTOR_DARWIN := $(shell env GOOS=darwin GOARCH=amd64 go list -f '{{.Target}}' ./cli/lsx/lsx-darwin)
EXECUTOR_DARWIN_ARM := $(shell env GOOS=darwin GOARCH=arm go list -f '{{.Target}}' ./cli/lsx/lsx-darwin)
EXECUTOR_DARWIN_ARM64 := $(shell env GOOS=darwin GOARCH=arm64 go list -f '{{.Target}}' ./cli/lsx/lsx-darwin)
EXECUTOR_WINDOWS := $(shell env GOOS=windows GOARCH=amd64 go list -f '{{.Target}}' ./cli/lsx/lsx-windows)

EXECUTORS_BINDIR := ./api/server/executors/bin
EXECUTOR_LINUX_EMBED := $(EXECUTORS_BINDIR)/lsx-linux
EXECUTOR_LINUX_ARM_EMBED := $(EXECUTORS_BINDIR)/lsx-linux-arm
EXECUTOR_LINUX_ARM64_EMBED := $(EXECUTORS_BINDIR)/lsx-linux-arm64
EXECUTOR_DARWIN_EMBED := $(EXECUTORS_BINDIR)/lsx-darwin
EXECUTOR_DARWIN_ARM_EMBED := $(EXECUTORS_BINDIR)/lsx-darwin-arm
EXECUTOR_DARWIN_ARM64_EMBED := $(EXECUTORS_BINDIR)/lsx-darwin-arm64
EXECUTOR_WINDOWS_EMBED := $(EXECUTORS_BINDIR)/lsx-windows.exe

build-executor-linux: $(EXECUTOR_LINUX_EMBED)
build-executor-linux-arm: $(EXECUTOR_LINUX_ARM_EMBED)
build-executor-linux-arm64: $(EXECUTOR_LINUX_ARM64_EMBED)
build-executor-darwin: $(EXECUTOR_DARWIN_EMBED)
build-executor-darwin-arm: $(EXECUTOR_DARWIN_ARM_EMBED)
build-executor-darwin-arm64: $(EXECUTOR_DARWIN_ARM64_EMBED)
build-executor-windows: $(EXECUTOR_WINDOWS_EMBED)

clean-executor-linux:
rm -f $(EXECUTOR_LINUX_EMBED)
clean-executor-linux-arm:
rm -f $(EXECUTOR_LINUX_ARM_EMBED)

clean-executor-linux-arm64:
rm -f $(EXECUTOR_LINUX_ARM64_EMBED)

clean-executor-darwin:
rm -f $(EXECUTOR_DARWIN_EMBED)
clean-executor-darwin-arm:
rm -f $(EXECUTOR_DARWIN_ARM_EMBED)
clean-executor-darwin-arm64:
rm -f $(EXECUTOR_DARWIN_ARM64_EMBED)

clean-executor-windows:
rm -f $(EXECUTOR_WINDOWS_EMBED)
Expand Down Expand Up @@ -1044,9 +1124,25 @@ endif # ifeq (arm64,$$(GOARCH))
endif # ifeq (linux,$2)

ifeq (darwin,$2)
ifeq (1,$$(EMBED_EXECUTOR_DARWIN))

ifeq (amd64,$3)
ifeq (1,$$(EMBED_EXECUTOR_DARWIN_AMD64))
EXECUTORS_EMBEDDED += $$(EXECUTOR_DARWIN_EMBED)
endif
endif

ifeq (arm,$3)
ifeq (1,$$(EMBED_EXECUTOR_DARWIN_ARM))
EXECUTORS_EMBEDDED += $$(EXECUTOR_DARWIN_ARM_EMBED)
endif
endif # ifeq (arm,$$(GOARCH))

ifeq (arm64,$3)
ifeq (1,$$(EMBED_EXECUTOR_DARWIN_ARM64))
EXECUTORS_EMBEDDED += $$(EXECUTOR_DARWIN_ARM64_EMBED)
endif
endif # ifeq (arm64,$$(GOARCH))

endif # ifeq (darwin,$2)

endef
Expand All @@ -1055,6 +1151,8 @@ $(eval $(call EXECUTOR_RULES,$(EXECUTOR_LINUX),linux,amd64))
$(eval $(call EXECUTOR_RULES,$(EXECUTOR_LINUX_ARM),linux,arm))
$(eval $(call EXECUTOR_RULES,$(EXECUTOR_LINUX_ARM64),linux,arm64))
$(eval $(call EXECUTOR_RULES,$(EXECUTOR_DARWIN),darwin,amd64))
$(eval $(call EXECUTOR_RULES,$(EXECUTOR_DARWIN_ARM),darwin,arm))
$(eval $(call EXECUTOR_RULES,$(EXECUTOR_DARWIN_ARM64),darwin,arm64))
#$(eval $(call EXECUTOR_RULES,$(EXECUTOR_WINDOWS),windows))

$(EXECUTORS_GENERATED): $(EXECUTORS_EMBEDDED)
Expand Down Expand Up @@ -1157,26 +1255,32 @@ LSS_LINUX := $(shell GOOS=linux GOARCH=amd64 go list -f '{{.Target}}' -tags '$(B
LSS_LINUX_ARM := $(shell GOOS=linux GOARCH=arm go list -f '{{.Target}}' -tags '$(BUILD_TAGS)' ./cli/lss/lss-linux)
LSS_LINUX_ARM64 := $(shell GOOS=linux GOARCH=arm64 go list -f '{{.Target}}' -tags '$(BUILD_TAGS)' ./cli/lss/lss-linux)
LSS_DARWIN := $(shell GOOS=darwin GOARCH=amd64 go list -f '{{.Target}}' -tags '$(BUILD_TAGS)' ./cli/lss/lss-darwin)
LSS_DARWIN_ARM := $(shell GOOS=darwin GOARCH=arm go list -f '{{.Target}}' -tags '$(BUILD_TAGS)' ./cli/lss/lss-darwin)
LSS_DARWIN_ARM64 := $(shell GOOS=darwin GOARCH=arm64 go list -f '{{.Target}}' -tags '$(BUILD_TAGS)' ./cli/lss/lss-darwin)
LSS_WINDOWS := $(shell GOOS=windows GOARCH=amd64 go list -f '{{.Target}}' -tags '$(BUILD_TAGS)' ./cli/lss/lss-windows)

ifeq (linux,$(GOOS))

ifeq (amd64,$(GOARCH))
LSS := $(LSS_LINUX)
endif

ifeq (arm,$(GOARCH))
LSS := $(LSS_LINUX_ARM)
endif

ifeq (arm64,$(GOARCH))
LSS := $(LSS_LINUX_ARM64)
endif

endif # ifeq (linux,$(GOOS))

ifeq (darwin,$(GOOS))
ifeq (amd64,$(GOARCH))
LSS := $(LSS_DARWIN)
endif
ifeq (arm,$(GOARCH))
LSS := $(LSS_DARWIN_ARM)
endif
ifeq (arm64,$(GOARCH))
LSS := $(LSS_DARWIN_ARM64)
endif
endif # ifeq (darwin,$(GOOS))

ifeq (windows,$(GOOS))
Expand All @@ -1187,6 +1291,8 @@ build-lss-linux: $(LSS_LINUX)
build-lss-linux-arm: $(LSS_LINUX_ARM)
build-lss-linux-arm64: $(LSS_LINUX_ARM64)
build-lss-darwin: $(LSS_DARWIN)
build-lss-darwin-arm: $(LSS_DARWIN_ARM)
build-lss-darwin-arm64: $(LSS_DARWIN_ARM64)
build-lss-windows: $(LSS_WINDOWS)

define LSS_RULES
Expand Down Expand Up @@ -1221,7 +1327,11 @@ endif
endef

#$(eval $(call LSS_RULES,$(LSS_LINUX),linux,amd64))
#$(eval $(call LSS_RULES,$(LSS_LINUX_ARM),linux,arm))
#$(eval $(call LSS_RULES,$(LSS_LINUX_ARM64),linux,arm64))
#$(eval $(call LSS_RULES,$(LSS_DARWIN),darwin,amd64))
#$(eval $(call LSS_RULES,$(LSS_DARWIN_ARM),darwin,arm))
#$(eval $(call LSS_RULES,$(LSS_DARWIN_ARM64),darwin,arm64))
#$(eval $(call LSS_RULES,$(LSS_WINDOWS),windows,amd64))


Expand Down Expand Up @@ -1284,6 +1394,15 @@ build-generated:
build-client-nogofig:
go build ./client


clean-build:
rm -fr $(API_GENERATED_SRC) \
$(EXECUTORS_BINDIR) \
$(EXECUTORS_GENERATED) \
$(GOPATH)/bin/lsx-* \
$(GOPATH)/bin/*/lsx-*
$(MAKE) build

build:
$(MAKE) build-generated
$(MAKE) build-libstorage
Expand Down
2 changes: 0 additions & 2 deletions cli/lss/lss-darwin/lss-darwin_amd64.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// +build darwin

package main

import (
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// +build linux

package main

import (
Expand Down
9 changes: 9 additions & 0 deletions cli/lss/lss-darwin/lss-darwin_arm64.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package main

import (
"github.com/codedellemc/libstorage/cli/lss"
)

func main() {
lss.Run()
}
9 changes: 9 additions & 0 deletions cli/lss/lss-linux/lss-linux_amd64.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package main

import (
"github.com/codedellemc/libstorage/cli/lss"
)

func main() {
lss.Run()
}
9 changes: 9 additions & 0 deletions cli/lss/lss-linux/lss-linux_arm.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package main

import (
"github.com/codedellemc/libstorage/cli/lss"
)

func main() {
lss.Run()
}
9 changes: 9 additions & 0 deletions cli/lss/lss-linux/lss-linux_arm64.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package main

import (
"github.com/codedellemc/libstorage/cli/lss"
)

func main() {
lss.Run()
}
2 changes: 0 additions & 2 deletions cli/lss/lss-windows/lss-windows_amd64.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// +build windows

package main

import (
Expand Down
2 changes: 0 additions & 2 deletions cli/lsx/lsx-darwin/lsx_darwin_amd64.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// +build darwin

package main

import (
Expand Down
Loading

0 comments on commit 50df594

Please sign in to comment.