github.com/jingruilea/kubeedge@v1.2.0-beta.0.0.20200410162146-4bb8902b3879/Makefile (about) 1 # make all builds both cloud and edge binaries 2 3 BINARIES=cloudcore \ 4 admission \ 5 edgecore \ 6 edgesite \ 7 keadm 8 9 COMPONENTS=cloud \ 10 edge 11 12 .EXPORT_ALL_VARIABLES: 13 OUT_DIR ?= _output 14 15 define ALL_HELP_INFO 16 # Build code. 17 # 18 # Args: 19 # WHAT: binary names to build. support: $(BINARIES) 20 # the build will produce executable files under $(OUT_DIR) 21 # If not specified, "everything" will be built. 22 # 23 # Example: 24 # make 25 # make all 26 # make all HELP=y 27 # make all WHAT=cloudcore 28 endef 29 .PHONY: all 30 ifeq ($(HELP),y) 31 all: clean 32 @echo "$$ALL_HELP_INFO" 33 else 34 all: verify-golang 35 hack/make-rules/build.sh $(WHAT) 36 endif 37 38 39 define VERIFY_HELP_INFO 40 # verify golang,vendor and codegen 41 # 42 # Example: 43 # make verify 44 endef 45 .PHONY: verify 46 ifeq ($(HELP),y) 47 verify: 48 @echo "$$VERIFY_HELP_INFO" 49 else 50 verify:verify-golang verify-vendor verify-codegen 51 endif 52 53 .PHONY: verify-golang 54 verify-golang: 55 bash hack/verify-golang.sh 56 57 .PHONY: verify-vendor 58 verify-vendor: 59 bash hack/verify-vendor.sh 60 .PHONY: verify-codegen 61 verify-codegen: 62 bash cloud/hack/verify-codegen.sh 63 64 define TEST_HELP_INFO 65 # run golang test case. 66 # 67 # Args: 68 # WHAT: Component names to be testd. support: $(COMPONENTS) 69 # If not specified, "everything" will be tested. 70 # 71 # Example: 72 # make test 73 # make test HELP=y 74 # make test WHAT=cloud 75 endef 76 .PHONY: test 77 ifeq ($(HELP),y) 78 test: 79 @echo "$$TEST_HELP_INFO" 80 else 81 test: 82 hack/make-rules/test.sh $(WHAT) 83 endif 84 85 LINTS=cloud \ 86 edge \ 87 keadm \ 88 bluetoothdevice 89 define LINT_HELP_INFO 90 # run golang lint check. 91 # 92 # Args: 93 # WHAT: Component names to be lint check. support: $(LINTS) 94 # If not specified, "everything" will be lint check. 95 # 96 # Example: 97 # make lint 98 # make lint HELP=y 99 # make lint WHAT=cloud 100 endef 101 .PHONY: lint 102 ifeq ($(HELP),y) 103 lint: 104 @echo "$$LINT_HELP_INFO" 105 else 106 lint: 107 hack/make-rules/lint.sh $(WHAT) 108 endif 109 110 111 INTEGRATION_TEST_COMPONENTS=edge 112 define INTEGRATION_TEST_HELP_INFO 113 # run integration test. 114 # 115 # Args: 116 # WHAT: Component names to be lint check. support: $(INTEGRATION_TEST_COMPONENTS) 117 # If not specified, "everything" will be integration check. 118 # 119 # Example: 120 # make integrationtest 121 # make integrationtest HELP=y 122 endef 123 124 .PHONY: integrationtest 125 ifeq ($(HELP),y) 126 integrationtest: 127 @echo "$$INTEGRATION_TEST_HELP_INFO" 128 else 129 integrationtest: 130 hack/make-rules/build.sh edgecore 131 edge/test/integration/scripts/execute.sh 132 endif 133 134 CROSSBUILD_COMPONENTS=edgecore\ 135 edgesite 136 GOARM_VALUES=GOARM7 \ 137 GOARM8 138 139 define CROSSBUILD_HELP_INFO 140 # cross build components. 141 # 142 # Args: 143 # WHAT: Component names to be lint check. support: $(CROSSBUILD_COMPONENTS) 144 # If not specified, "everything" will be cross build. 145 # 146 # GOARM: go arm value, now support:$(GOARM_VALUES) 147 # If not specified ,default use GOARM=GOARM8 148 # 149 # 150 # Example: 151 # make crossbuild 152 # make crossbuild HELP=y 153 # make crossbuild WHAT=edgecore 154 # make crossbuild WHAT=edgecore GOARM=GOARM7 155 # 156 endef 157 .PHONY: crossbuild 158 ifeq ($(HELP),y) 159 crossbuild: 160 @echo "$$CROSSBUILD_HELP_INFO" 161 else 162 crossbuild: clean 163 hack/make-rules/crossbuild.sh $(WHAT) $(GOARM) 164 endif 165 166 167 168 SMALLBUILD_COMPONENTS=edgecore \ 169 edgesite 170 define SMALLBUILD_HELP_INFO 171 # small build components. 172 # 173 # Args: 174 # WHAT: Component names to be lint check. support: $(SMALLBUILD_COMPONENTS) 175 # If not specified, "everything" will be small build. 176 # 177 # 178 # Example: 179 # make smallbuild 180 # make smallbuild HELP=y 181 # make smallbuild WHAT=edgecore 182 # make smallbuild WHAT=edgesite 183 # 184 endef 185 .PHONY: smallbuild 186 ifeq ($(HELP),y) 187 smallbuild: 188 @echo "$$SMALLBUILD_HELP_INFO" 189 else 190 smallbuild: clean 191 hack/make-rules/smallbuild.sh $(WHAT) 192 endif 193 194 195 define E2E_HELP_INFO 196 # e2e test. 197 # 198 # Example: 199 # make e2e 200 # make e2e HELP=y 201 # 202 endef 203 .PHONY: e2e 204 ifeq ($(HELP),y) 205 e2e: 206 @echo "$$E2E_HELP_INFO" 207 else 208 e2e: 209 # bash tests/e2e/scripts/execute.sh device_crd 210 # This has been commented temporarily since there is an issue of CI using same master for all PRs, which is causing failures when run parallely 211 bash tests/e2e/scripts/execute.sh 212 endif 213 214 define KEADM_E2E_HELP_INFO 215 # keadm e2e test. 216 # 217 # Example: 218 # make keadm_e2e 219 # make keadm_e2e HELP=y 220 # 221 endef 222 .PHONY: keadm_e2e 223 ifeq ($(HELP),y) 224 keadm_e2e: 225 @echo "KEADM_E2E_HELP_INFO" 226 else 227 keadm_e2e: 228 bash tests/e2e/scripts/keadm_e2e.sh 229 endif 230 231 define CLEAN_HELP_INFO 232 # Clean up the output of make. 233 # 234 # Example: 235 # make clean 236 # make clean HELP=y 237 # 238 endef 239 .PHONY: clean 240 ifeq ($(HELP),y) 241 clean: 242 @echo "$$CLEAN_HELP_INFO" 243 else 244 clean: 245 hack/make-rules/clean.sh 246 endif 247 248 249 QEMU_ARCH ?= x86_64 250 ARCH ?= amd64 251 IMAGE_TAG ?= $(shell git describe --tags) 252 GO_LDFLAGS='$(shell hack/make-rules/version.sh)' 253 254 .PHONY: cloudimage 255 cloudimage: 256 docker build --build-arg GO_LDFLAGS=${GO_LDFLAGS} -t kubeedge/cloudcore:${IMAGE_TAG} -f build/cloud/Dockerfile . 257 258 .PHONY: admissionimage 259 admissionimage: 260 docker build --build-arg GO_LDFLAGS=${GO_LDFLAGS} -t kubeedge/admission:${IMAGE_TAG} -f build/admission/Dockerfile . 261 262 .PHONY: csidriverimage 263 csidriverimage: 264 docker build --build-arg GO_LDFLAGS=${GO_LDFLAGS} -t kubeedge/csidriver:${IMAGE_TAG} -f build/csidriver/Dockerfile . 265 266 .PHONY: edgeimage 267 edgeimage: 268 mkdir -p ./build/edge/tmp 269 rm -rf ./build/edge/tmp/* 270 curl -L -o ./build/edge/tmp/qemu-${QEMU_ARCH}-static.tar.gz https://github.com/multiarch/qemu-user-static/releases/download/v3.0.0/qemu-${QEMU_ARCH}-static.tar.gz 271 tar -xzf ./build/edge/tmp/qemu-${QEMU_ARCH}-static.tar.gz -C ./build/edge/tmp 272 docker build -t kubeedge/edgecore:${IMAGE_TAG} \ 273 --build-arg GO_LDFLAGS=${GO_LDFLAGS} \ 274 --build-arg BUILD_FROM=${ARCH}/golang:1.13.8-alpine3.10 \ 275 --build-arg RUN_FROM=${ARCH}/docker:dind \ 276 -f build/edge/Dockerfile . 277 278 .PHONY: edgesiteimage 279 edgesiteimage: 280 mkdir -p ./build/edgesite/tmp 281 rm -rf ./build/edgesite/tmp/* 282 curl -L -o ./build/edgesite/tmp/qemu-${QEMU_ARCH}-static.tar.gz https://github.com/multiarch/qemu-user-static/releases/download/v3.0.0/qemu-${QEMU_ARCH}-static.tar.gz 283 tar -xzf ./build/edgesite/tmp/qemu-${QEMU_ARCH}-static.tar.gz -C ./build/edgesite/tmp 284 docker build -t kubeedge/edgesite:${IMAGE_TAG} \ 285 --build-arg GO_LDFLAGS=${GO_LDFLAGS} \ 286 --build-arg BUILD_FROM=${ARCH}/golang:1.13.8-alpine3.10 \ 287 --build-arg RUN_FROM=${ARCH}/docker:dind \ 288 -f build/edgesite/Dockerfile . 289 290 .PHONY: bluetoothdevice 291 bluetoothdevice: clean 292 hack/make-rules/bluetoothdevice.sh 293 294 .PHONY: bluetoothdevice_image 295 bluetoothdevice_image:bluetoothdevice 296 docker build -t bluetooth_mapper:v1.0 ./mappers/bluetooth_mapper/