11NAME? =kube-router
22GOARCH? =amd64
33DEV_SUFFIX? =-git
4- BUILD_DATE? =$(shell  date --iso-8601) 
4+ OSX =$(filter  Darwin,$(shell  uname) ) 
5+ BUILD_DATE? =$(shell  date +% Y-% m-% dT% H:% M:% S% z) 
56LOCAL_PACKAGES? =app app/controllers app/options app/watchers utils
67IMG_NAMESPACE? =cloudnativelabs
78GIT_COMMIT =$(shell  git describe --tags --dirty) 
@@ -12,10 +13,11 @@ REGISTRY?=$(if $(IMG_FQDN),$(IMG_FQDN)/$(IMG_NAMESPACE)/$(NAME),$(IMG_NAMESPACE)
1213REGISTRY_DEV? =$(REGISTRY )$(DEV_SUFFIX ) 
1314IN_DOCKER_GROUP =$(filter  docker,$(shell  groups) ) 
1415IS_ROOT =$(filter  0,$(shell  id -u) ) 
15- DOCKER =$(if  $(or  $(IN_DOCKER_GROUP ) ,$(IS_ROOT ) ) ,docker,sudo docker) 
16+ DOCKER =$(if  $(or  $(IN_DOCKER_GROUP ) ,$(IS_ROOT ) , $( OSX )  ,docker,sudo docker) 
1617MAKEFILE_DIR =$(dir  $(realpath  $(firstword  $(MAKEFILE_LIST ) ) ) ) 
1718UPSTREAM_IMPORT_PATH =$(GOPATH ) /src/github.com/cloudnativelabs/kube-router/
18- 
19+ BUILD_IN_DOCKER? =false
20+ DOCKER_BUILD_IMAGE? =golang:1.8.7-alpine
1921ifeq  ($(GOARCH ) , arm)
2022QEMU_ARCH =arm
2123ARCH_TAG_PREFIX =$(GOARCH ) 
@@ -34,12 +36,25 @@ $(info Building for GOARCH=$(GOARCH))
3436all : test kube-router container # # Default target. Runs tests, builds binaries and images.
3537
3638kube-router :
39+ ifeq  "$(BUILD_IN_DOCKER ) " "true"
3740	@echo Starting kube-router binary build.
38- 	GOARCH=$(GOARCH )  CGO_ENABLED=0 go build -ldflags ' -X github.com/cloudnativelabs/kube-router/app.version=$(GIT_COMMIT) -X github.com/cloudnativelabs/kube-router/app.buildDate=$(BUILD_DATE)' 
41+ 	$(DOCKER) run -v $(PWD):/go/src/github.com/cloudnativelabs/kube-router -w /go/src/github.com/cloudnativelabs/kube-router $(DOCKER_BUILD_IMAGE) \
42+ 	    sh -c ' \
43+ 	    GOARCH=$(GOARCH) CGO_ENABLED=0 go build \
44+ 		-ldflags "-X github.com/cloudnativelabs/kube-router/app.version=$(GIT_COMMIT) -X github.com/cloudnativelabs/kube-router/app.buildDate=$(BUILD_DATE)" \
45+ 		-o kube-router kube-router.go'
3946	@echo Finished kube-router binary build.
47+ else 
48+ 	GOARCH=$(GOARCH) CGO_ENABLED=0 go build -ldflags '-X github.com/cloudnativelabs/kube-router/app.version=$(GIT_COMMIT) -X github.com/cloudnativelabs/kube-router/app.buildDate=$(BUILD_DATE)' -o kube-router kube-router.go
49+ endif 
4050
4151test : gofmt gomoqs # # Runs code quality pipelines (gofmt, tests, coverage, lint, etc)
42- 	go test  github.com/cloudnativelabs/kube-router github.com/cloudnativelabs/kube-router/app/... github.com/cloudnativelabs/kube-router/utils/
52+ ifeq  "$(BUILD_IN_DOCKER ) " "true"
53+ 	$(DOCKER) run -v $(PWD):/go/src/github.com/cloudnativelabs/kube-router -w /go/src/github.com/cloudnativelabs/kube-router $(DOCKER_BUILD_IMAGE) \
54+ 	    sh -c 'go test github.com/cloudnativelabs/kube-router github.com/cloudnativelabs/kube-router/app/... github.com/cloudnativelabs/kube-router/utils/'
55+ else 
56+ 		go test github.com/cloudnativelabs/kube-router github.com/cloudnativelabs/kube-router/app/... github.com/cloudnativelabs/kube-router/utils/
57+ endif 
4358
4459vagrant-up : export docker=$(DOCKER ) 
4560vagrant-up : export DEV_IMG=$(REGISTRY_DEV ) :$(IMG_TAG ) 
174189endif 
175190
176191gobgp : vendor/github.com/osrg/gobgp/gobgp
177- 	$(DOCKER )  run -v $(PWD ) :/pwd golang:alpine  \ 
192+ 	$(DOCKER )  run -v $(PWD ) :/pwd $( DOCKER_BUILD_IMAGE ) \ 
178193	    sh -c '  \
179194	    apk add -U git &&  \ 
180195	    ln -s /pwd/vendor /go/src &&  \ 
0 commit comments