44 lines
1.3 KiB
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
|