@@ -22,8 +22,8 @@ INSTALL_SIZE ?= $(shell du out/minikube-windows-amd64.exe | cut -f1)
22
22
BUILDROOT_BRANCH ?= 2017.02
23
23
REGISTRY? =gcr.io/k8s-minikube
24
24
25
- MINIKUBE_BUILD_IMAGE ?= karalabe/xgo-1.8.3
26
- LOCALKUBE_BUILD_IMAGE ?= gcr.io/google_containers/kube-cross:v1.8.3-1
25
+ HYPERKIT_BUILD_IMAGE ?= karalabe/xgo-1.8.3
26
+ BUILD_IMAGE ?= gcr.io/google_containers/kube-cross:v1.8.3-1
27
27
ISO_BUILD_IMAGE ?= $(REGISTRY ) /buildroot-image
28
28
29
29
ISO_VERSION ?= v0.23.6
@@ -32,6 +32,8 @@ ISO_BUCKET ?= minikube/iso
32
32
GOOS ?= $(shell go env GOOS)
33
33
GOARCH ?= $(shell go env GOARCH)
34
34
BUILD_DIR ?= ./out
35
+ $(shell mkdir -p $(BUILD_DIR))
36
+
35
37
ORG := k8s.io
36
38
REPOPATH ?= $(ORG ) /minikube
37
39
@@ -53,24 +55,16 @@ LOCALKUBEFILES := GOPATH=$(GOPATH) go list -f '{{join .Deps "\n"}}' ./cmd/local
53
55
MINIKUBEFILES := GOPATH=$(GOPATH ) go list -f '{{join .Deps "\n"}}' ./cmd/minikube/ | grep k8s.io | GOPATH=$(GOPATH ) xargs go list -f '{{ range $$file := .GoFiles }} {{$$.Dir}}/{{$$file}}{{"\n"}}{{end}}'
54
56
HYPERKIT_FILES := GOPATH=$(GOPATH ) go list -f '{{join .Deps "\n"}}' k8s.io/minikube/cmd/drivers/hyperkit | grep k8s.io | GOPATH=$(GOPATH ) xargs go list -f '{{ range $$file := .GoFiles }} {{$$.Dir}}/{{$$file}}{{"\n"}}{{end}}'
55
57
56
- KVM_DRIVER_FILES := $(shell go list -f '{{join .Deps "\n"}}' ./cmd/drivers/kvm/ | grep k8s.io | xargs go list -f '{{ range $$file := .GoFiles }} {{$$.Dir}}/{{$$file}}{{"\n"}}{{end}}')
57
-
58
- MINIKUBE_ENV_linux := CGO_ENABLED=1 GOARCH=amd64 GOOS=linux
59
- MINIKUBE_ENV_darwin := CGO_ENABLED=1 GOARCH=amd64 GOOS=darwin
60
- MINIKUBE_ENV_windows := CGO_ENABLED=0 GOARCH=amd64 GOOS=windows
58
+ MINIKUBE_TEST_FILES := go list -f '{{ if .TestGoFiles }} {{.ImportPath}} {{end}}' ./... | grep k8s.io | GOPATH=$(GOPATH ) xargs go list -f '{{ range $$file := .GoFiles }} {{$$.Dir}}/{{$$file}}{{"\n"}}{{end}}'
61
59
62
- # extra env vars that need to be set in cross build container
63
- MINIKUBE_ENV_darwin_DOCKER := CC=o64-clang CXX=o64-clang++
60
+ KVM_DRIVER_FILES := $(shell go list -f '{{join .Deps "\n"}}' ./cmd/drivers/kvm/ | grep k8s.io | xargs go list -f '{{ range $$file := .GoFiles }} {{$$.Dir}}/{{$$file}}{{"\n"}}{{end}}')
64
61
65
62
MINIKUBE_BUILD_TAGS := container_image_ostree_stub containers_image_openpgp
66
63
MINIKUBE_INTEGRATION_BUILD_TAGS := integration $(MINIKUBE_BUILD_TAGS )
67
64
68
- MINIKUBE_DOCKER_CMD := docker run -e IN_DOCKER=1 --user $(shell id -u) :$(shell id -g) --workdir /go/src/$(REPOPATH ) --entrypoint /bin/bash -v $(PWD ) :/go/src/$(REPOPATH ) $(MINIKUBE_BUILD_IMAGE ) -c
69
- KUBE_CROSS_DOCKER_CMD := docker run -w /go/src/$(REPOPATH ) --user $(shell id -u) :$(shell id -g) -e IN_DOCKER=1 -v $(shell pwd) :/go/src/$(REPOPATH ) $(LOCALKUBE_BUILD_IMAGE )
70
-
71
- # $(call MINIKUBE_GO_BUILD_CMD, output file, OS)
72
- define MINIKUBE_GO_BUILD_CMD
73
- $(MINIKUBE_ENV_$(2 ) ) go build -tags "$(MINIKUBE_BUILD_TAGS ) " --installsuffix cgo -ldflags="$(MINIKUBE_LDFLAGS ) $(K8S_VERSION_LDFLAGS ) " -a -o $(1 ) k8s.io/minikube/cmd/minikube
65
+ # $(call DOCKER, image, command)
66
+ define DOCKER
67
+ docker run --rm -e IN_DOCKER=1 --user $(shell id -u) :$(shell id -g) -w /go/src/$(REPOPATH ) -v $(GOPATH ) :/go --entrypoint /bin/bash $(1 ) -c '$(2 ) '
74
68
endef
75
69
76
70
ifeq ($(BUILD_IN_DOCKER ) ,y)
@@ -99,7 +93,7 @@ out/minikube$(IS_EXE): gopath out/minikube-$(GOOS)-$(GOARCH)$(IS_EXE)
99
93
100
94
out/localkube : $(shell $(LOCALKUBEFILES ) )
101
95
ifeq ($(LOCALKUBE_BUILD_IN_DOCKER ) ,y)
102
- $(KUBE_CROSS_DOCKER_CMD) make $@
96
+ $(call DOCKER,$(BUILD_IMAGE),/usr/bin/ make $@)
103
97
else
104
98
CGO_ENABLED=1 go build -tags static_build -ldflags=$(LOCALKUBE_LDFLAGS) -o $(BUILD_DIR)/localkube ./cmd/localkube
105
99
endif
@@ -109,9 +103,9 @@ out/minikube-windows-amd64.exe: out/minikube-windows-amd64
109
103
110
104
out/minikube-% -amd64 : pkg/minikube/assets/assets.go $(shell $(MINIKUBEFILES ) )
111
105
ifeq ($(MINIKUBE_BUILD_IN_DOCKER ) ,y)
112
- $(MINIKUBE_DOCKER_CMD) '$(MINIKUBE_ENV_$*_DOCKER) $(call MINIKUBE_GO_BUILD_CMD,$@,$*)'
106
+ $(call DOCKER,$(BUILD_IMAGE),GOOS=$* /usr/bin/make $@)
113
107
else
114
- $(call MINIKUBE_GO_BUILD_CMD,$@,$*)
108
+ go build -tags "$(MINIKUBE_BUILD_TAGS)" -ldflags="$(MINIKUBE_LDFLAGS) $(K8S_VERSION_LDFLAGS)" -a -o $@ k8s.io/minikube/cmd/minikube
115
109
endif
116
110
117
111
.PHONY : e2e-% -amd64
@@ -179,7 +173,7 @@ integration-versioned: out/minikube
179
173
go test -v -test.timeout=30m $(REPOPATH ) /test/integration --tags=" $( MINIKUBE_INTEGRATION_BUILD_TAGS) versioned" $(TEST_ARGS )
180
174
181
175
.PHONY : test
182
- test : pkg/minikube/assets/assets.go
176
+ test : $( shell $( MINIKUBE_TEST_FILES ) ) pkg/minikube/assets/assets.go
183
177
./test.sh
184
178
185
179
.PHONY : gopath
@@ -188,8 +182,8 @@ ifneq ($(GOPATH)/src/$(REPOPATH),$(PWD))
188
182
$(warning Warning: Building minikube outside the GOPATH, should be $(GOPATH)/src/$(REPOPATH) but is $(PWD))
189
183
endif
190
184
191
- pkg/minikube/assets/assets.go : out/localkube $(GOPATH ) /bin/go-bindata $(shell find deploy/addons -type f)
192
- $(GOPATH ) /bin/go-bindata -nomemcopy -o pkg/minikube/assets/assets.go -pkg assets ./out/localkube deploy/addons/...
185
+ pkg/minikube/assets/assets.go : $(GOPATH ) /bin/go-bindata $(shell find deploy/addons -type f)
186
+ $(GOPATH ) /bin/go-bindata -nomemcopy -o pkg/minikube/assets/assets.go -pkg assets deploy/addons/...
193
187
194
188
$(GOPATH ) /bin/go-bindata :
195
189
GOBIN=$(GOPATH ) /bin go get github.com/jteeuwen/go-bindata/...
@@ -255,9 +249,9 @@ out/minikube-installer.exe: out/minikube-windows-amd64.exe
255
249
256
250
out/docker-machine-driver-hyperkit : $(shell $(HYPERKIT_FILES ) )
257
251
ifeq ($(MINIKUBE_BUILD_IN_DOCKER ) ,y)
258
- $(MINIKUBE_DOCKER_CMD) '$(MINIKUBE_ENV_darwin_DOCKER) $(MINIKUBE_ENV_darwin) go build -o $(BUILD_DIR)/docker-machine-driver-hyperkit k8s.io/minikube/cmd/drivers/hyperkit'
252
+ $(call DOCKER,$(HYPERKIT_BUILD_IMAGE),CC=o64-clang CXX=o64-clang++ /usr/bin/make $@)
259
253
else
260
- $(MINIKUBE_ENV_darwin) go build -o $(BUILD_DIR)/docker-machine-driver-hyperkit k8s.io/minikube/cmd/drivers/hyperkit
254
+ GOOS=darwin CGO_ENABLED=1 go build -o $(BUILD_DIR)/docker-machine-driver-hyperkit k8s.io/minikube/cmd/drivers/hyperkit
261
255
endif
262
256
263
257
.PHONY : install-hyperkit-driver
0 commit comments