minikube/Makefile

44 lines
1.3 KiB
Makefile

GO ?= go
GOOS ?= $(shell go env GOOS)
GOARCH ?= $(shell go env GOARCH)
BUILD_DIR ?= ./out
GOPATH := $(shell pwd)/.gopath
REPOPATH ?= k8s.io/minikube
.PHONY: clean
clean:
rm -rf $(GOPATH)
rm -rf $(BUILD_DIR)
.PHONY: gopath
gopath: clean
rm -rf $(GOPATH)
mkdir -p $(shell dirname $(GOPATH)/src/$(REPOPATH))
ln -s $(shell pwd) $(GOPATH)/src/$(REPOPATH)
.PHONY: minikube
minikube: minikube-$(GOOS)-$(GOARCH)
cp $(BUILD_DIR)/minikube-$(GOOS)-$(GOARCH) $(BUILD_DIR)/minikube
.PHONY: localkube
localkube: localkube-$(GOOS)-$(GOARCH)
cp $(BUILD_DIR)/localkube-$(GOOS)-$(GOARCH) $(BUILD_DIR)/localkube
.PHONY: minikube-$(GOOS)-$(GOARCH)
minikube-$(GOOS)-$(GOARCH): gopath
GOPATH=$(GOPATH) CGO_ENABLED=0 GOARCH=$(GOARCH) GOOS=$(GOOS) $(GO) build --installsuffix cgo -a -o $(BUILD_DIR)/minikube-$(GOOS)-$(GOARCH) ./cmd/minikube
.PHONY: localkube-$(GOOS)-$(GOARCH)
localkube-$(GOOS)-$(GOARCH): gopath
GOARCH=$(GOARCH) GOOS=$(GOOS) $(GO) build -o $(BUILD_DIR)/localkube-$(GOOS)-$(GOARCH) -i --ldflags '-extldflags "-static" --s -w' ./cmd/localkube
integration: minikube
$(GO) test -v ./integration --tags=integration
.PHONY: test
test: gopath
for TEST in $$(find -name "*.go" | grep -v vendor | grep -v integration | grep _test.go | cut -d/ -f2- | sed 's|/\w*.go||g' | uniq); do \
echo $$TEST; \
$(GO) test -v $(REPOPATH)/$${TEST}; \
done