|
39 | 39 |
|
40 | 40 | ifeq ($(shell uname -s),Darwin)
|
41 | 41 | LIBGIT2 := $(LIBGIT2_LIB_PATH)/libgit2.$(LIBGIT2_VERSION).dylib
|
| 42 | + HAS_BREW := $(shell brew --version 2>/dev/null) |
| 43 | +ifdef HAS_BREW |
| 44 | + HAS_OPENSSL := $(shell brew --prefix [email protected]) |
42 | 45 | endif
|
| 46 | +endif |
| 47 | + |
43 | 48 |
|
44 | 49 | # API (doc) generation utilities
|
45 | 50 | CONTROLLER_GEN_VERSION ?= v0.5.0
|
|
52 | 57 | GOBIN=$(shell go env GOBIN)
|
53 | 58 | endif
|
54 | 59 |
|
| 60 | +ifeq ($(strip ${PKG_CONFIG_PATH}),) |
| 61 | + MAKE_PKG_CONFIG_PATH = $(LIBGIT2_LIB_PATH)/pkgconfig |
| 62 | +else |
| 63 | + MAKE_PKG_CONFIG_PATH = ${PKG_CONFIG_PATH}:$(LIBGIT2_LIB_PATH)/pkgconfig |
| 64 | +endif |
| 65 | + |
| 66 | +ifdef HAS_OPENSSL |
| 67 | + MAKE_PKG_CONFIG_PATH := $(MAKE_PKG_CONFIG_PATH):$(HAS_OPENSSL)/lib/pkgconfig |
| 68 | +endif |
| 69 | + |
55 | 70 | all: build
|
56 | 71 |
|
57 | 72 | build: $(LIBGIT2) ## Build manager binary
|
58 |
| - PKG_CONFIG_PATH=$(LIBGIT2_LIB_PATH)/pkgconfig/ \ |
| 73 | +ifeq ($(shell uname -s),Darwin) |
| 74 | + PKG_CONFIG_PATH=$(MAKE_PKG_CONFIG_PATH) \ |
| 75 | + CGO_LDFLAGS="-Wl,-rpath,$(LIBGIT2_LIB_PATH)" \ |
| 76 | + go build -o bin/manager main.go |
| 77 | +else |
| 78 | + PKG_CONFIG_PATH=$(MAKE_PKG_CONFIG_PATH) \ |
59 | 79 | go build -o bin/manager main.go
|
| 80 | +endif |
60 | 81 |
|
61 | 82 | test: $(LIBGIT2) test-api ## Run tests
|
| 83 | +ifeq ($(shell uname -s),Darwin) |
62 | 84 | LD_LIBRARY_PATH=$(LIBGIT2_LIB_PATH) \
|
63 |
| - PKG_CONFIG_PATH=$(LIBGIT2_LIB_PATH)/pkgconfig/ \ |
| 85 | + PKG_CONFIG_PATH=$(MAKE_PKG_CONFIG_PATH) \ |
| 86 | + CGO_LDFLAGS="-Wl,-rpath,$(LIBGIT2_LIB_PATH)" \ |
64 | 87 | go test ./... -coverprofile cover.out
|
| 88 | +else |
| 89 | + LD_LIBRARY_PATH=$(LIBGIT2_LIB_PATH) \ |
| 90 | + PKG_CONFIG_PATH=$(MAKE_PKG_CONFIG_PATH) \ |
| 91 | + go test ./... -coverprofile cover.out |
| 92 | +endif |
65 | 93 |
|
66 | 94 | test-api: ## Run api tests
|
67 | 95 | cd api; go test ./... -coverprofile cover.out
|
68 | 96 |
|
69 | 97 | run: $(LIBGIT2) generate fmt vet manifests ## Run against the configured Kubernetes cluster in ~/.kube/config
|
| 98 | +ifeq ($(shell uname -s),Darwin) |
70 | 99 | LD_LIBRARY_PATH=$(LIBGIT2_LIB_PATH) \
|
| 100 | + CGO_LDFLAGS="-Wl,-rpath,$(LIBGIT2_LIB_PATH)" \ |
71 | 101 | go run ./main.go
|
| 102 | +else |
| 103 | + LD_LIBRARY_PATH=$(LIBGIT2_LIB_PATH) \ |
| 104 | + go run ./main.go |
| 105 | +endif |
| 106 | + |
72 | 107 |
|
73 | 108 | install: manifests ## Install CRDs into a cluster
|
74 | 109 | kustomize build config/crd | kubectl apply -f -
|
@@ -102,9 +137,16 @@ fmt: ## Run go fmt against code
|
102 | 137 | cd api; go fmt ./...
|
103 | 138 |
|
104 | 139 | vet: $(LIBGIT2) ## Run go vet against code
|
105 |
| - PKG_CONFIG_PATH=$(LIBGIT2_LIB_PATH)/pkgconfig \ |
| 140 | +ifeq ($(shell uname -s),Darwin) |
| 141 | + PKG_CONFIG_PATH=$(MAKE_PKG_CONFIG_PATH) \ |
| 142 | + CGO_LDFLAGS="-Wl,-rpath,$(LIBGIT2_LIB_PATH)" \ |
| 143 | + go vet ./... |
| 144 | + cd api; go vet ./... |
| 145 | +else |
| 146 | + PKG_CONFIG_PATH=$(MAKE_PKG_CONFIG_PATH) \ |
106 | 147 | go vet ./...
|
107 | 148 | cd api; go vet ./...
|
| 149 | +endif |
108 | 150 |
|
109 | 151 | generate: controller-gen ## Generate API code
|
110 | 152 | cd api; $(CONTROLLER_GEN) object:headerFile="../hack/boilerplate.go.txt" paths="./..."
|
|
0 commit comments