@@ -124,7 +124,7 @@ endif
124
124
# Define a do-nothing target for rules/config.user so that when
125
125
# the file is missing, make won't try to rebuld everything.
126
126
rules/config.user:
127
- $(Q) echo -n ""
127
+ @ echo -n ""
128
128
129
129
include rules/config
130
130
-include rules/config.user
@@ -173,59 +173,21 @@ endif
173
173
endif
174
174
175
175
# Generate the version control build info
176
- $(shell \
177
- SONIC_VERSION_CONTROL_COMPONENTS=$(SONIC_VERSION_CONTROL_COMPONENTS) \
178
- TRUSTED_GPG_URLS=$(TRUSTED_GPG_URLS) \
179
- PACKAGE_URL_PREFIX=$(PACKAGE_URL_PREFIX) \
180
- scripts/generate_buildinfo_config.sh)
176
+ $(shell SONIC_VERSION_CONTROL_COMPONENTS=$(SONIC_VERSION_CONTROL_COMPONENTS) \
177
+ TRUSTED_GPG_URLS=$(TRUSTED_GPG_URLS) PACKAGE_URL_PREFIX=$(PACKAGE_URL_PREFIX) \
178
+ scripts/generate_buildinfo_config.sh)
181
179
182
180
# Generate the slave Dockerfile, and prepare build info for it
183
- $(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) \
184
- MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) \
185
- CROSS_BUILD_ENVIRON=$(CROSS_BUILD_ENVIRON) \
186
- ENABLE_FIPS_FEATURE=$(ENABLE_FIPS_FEATURE) \
187
- DOCKER_EXTRA_OPTS=$(DOCKER_EXTRA_OPTS) \
188
- DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) \
189
- j2 $(SLAVE_DIR)/Dockerfile.j2 > $(SLAVE_DIR)/Dockerfile)
190
-
191
- $(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) \
192
- MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) \
193
- CROSS_BUILD_ENVIRON=$(CROSS_BUILD_ENVIRON) \
194
- j2 $(SLAVE_DIR)/Dockerfile.user.j2 > $(SLAVE_DIR)/Dockerfile.user)
195
-
196
- PREPARE_DOCKER=BUILD_SLAVE=y \
197
- DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) \
198
- scripts/prepare_docker_buildinfo.sh \
199
- $(SLAVE_BASE_IMAGE) \
200
- $(SLAVE_DIR)/Dockerfile \
201
- $(CONFIGURED_ARCH) \
202
- "" \
203
- $(BLDENV)
204
-
205
- $(shell $(PREPARE_DOCKER) )
181
+ $(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) CROSS_BUILD_ENVIRON=$(CROSS_BUILD_ENVIRON) ENABLE_FIPS_FEATURE=$(ENABLE_FIPS_FEATURE) DOCKER_EXTRA_OPTS=$(DOCKER_EXTRA_OPTS) DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) j2 $(SLAVE_DIR)/Dockerfile.j2 > $(SLAVE_DIR)/Dockerfile)
182
+ $(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) CROSS_BUILD_ENVIRON=$(CROSS_BUILD_ENVIRON) j2 $(SLAVE_DIR)/Dockerfile.user.j2 > $(SLAVE_DIR)/Dockerfile.user)
183
+ $(shell BUILD_SLAVE=y DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) scripts/prepare_docker_buildinfo.sh $(SLAVE_BASE_IMAGE) $(SLAVE_DIR)/Dockerfile $(CONFIGURED_ARCH) "" $(BLDENV))
206
184
207
185
# Add the versions in the tag, if the version change, need to rebuild the slave
208
- SLAVE_BASE_TAG = $(shell \
209
- cat $(SLAVE_DIR)/Dockerfile \
210
- $(SLAVE_DIR)/buildinfo/versions/versions-* \
211
- src/sonic-build-hooks/hooks/* 2>/dev/null \
212
- | sha1sum \
213
- | awk '{print substr($$1,0,11);}')
214
-
186
+ SLAVE_BASE_TAG = $(shell cat $(SLAVE_DIR)/Dockerfile $(SLAVE_DIR)/buildinfo/versions/versions-* src/sonic-build-hooks/hooks/* | sha1sum | awk '{print substr($$1,0,11);}')
215
187
# Calculate the slave TAG based on $(USER)/$(PWD)/$(CONFIGURED_PLATFORM) to get unique SHA ID
216
- SLAVE_TAG = $(shell \
217
- (cat $(SLAVE_DIR)/Dockerfile.user \
218
- $(SLAVE_DIR)/Dockerfile \
219
- $(SLAVE_DIR)/buildinfo/versions/versions-* \
220
- .git/HEAD \
221
- && echo $(USER)/$(PWD)/$(CONFIGURED_PLATFORM)) \
222
- | sha1sum \
223
- | awk '{print substr($$1,0,11);}')
224
-
225
- COLLECT_DOCKER=DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) \
226
- scripts/collect_docker_version_files.sh \
227
- $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) \
228
- target
188
+ SLAVE_TAG = $(shell (cat $(SLAVE_DIR)/Dockerfile.user $(SLAVE_DIR)/Dockerfile $(SLAVE_DIR)/buildinfo/versions/versions-* .git/HEAD && echo $(USER)/$(PWD)/$(CONFIGURED_PLATFORM)) \
189
+ | sha1sum | awk '{print substr($$1,0,11);}')
190
+
229
191
OVERLAY_MODULE_CHECK := \
230
192
lsmod | grep -q "^overlay " &>/dev/null || \
231
193
zgrep -q 'CONFIG_OVERLAY_FS=y' /proc/config.gz &>/dev/null || \
@@ -367,7 +329,7 @@ DOCKER_BASE_LOG = $(SLAVE_DIR)/$(SLAVE_BASE_IMAGE)_$(SLAVE_BASE_TAG).log
367
329
DOCKER_LOG = $(SLAVE_DIR)/$(SLAVE_IMAGE)_$(SLAVE_TAG).log
368
330
369
331
370
- DOCKER_SLAVE_BASE_BUILD = docker build --no-cache \
332
+ DOCKER_BASE_BUILD = docker build --no-cache \
371
333
-t $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) \
372
334
--build-arg http_proxy=$(http_proxy) \
373
335
--build-arg https_proxy=$(https_proxy) \
@@ -377,7 +339,7 @@ DOCKER_SLAVE_BASE_BUILD = docker build --no-cache \
377
339
DOCKER_BASE_PULL = docker pull \
378
340
$(REGISTRY_SERVER):$(REGISTRY_PORT)/$(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG)
379
341
380
- DOCKER_USER_BUILD = docker build --no-cache \
342
+ DOCKER_BUILD = docker build --no-cache \
381
343
--build-arg user=$(USER) \
382
344
--build-arg uid=$(shell id -u) \
383
345
--build-arg guid=$(shell id -g) \
@@ -387,52 +349,7 @@ DOCKER_USER_BUILD = docker build --no-cache \
387
349
-f $(SLAVE_DIR)/Dockerfile.user \
388
350
$(SLAVE_DIR) $(SPLIT_LOG) $(DOCKER_LOG)
389
351
390
-
391
- DOCKER_SLAVE_BASE_INSPECT = \
392
- { \
393
- echo Checking sonic-slave-base image: $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG); \
394
- docker inspect --type image $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) &> /dev/null; \
395
- }
396
-
397
- DOCKER_SLAVE_BASE_PULL_REGISTRY = \
398
- [ $(ENABLE_DOCKER_BASE_PULL) == y ] && \
399
- { \
400
- echo Image $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) not found. Pulling...; \
401
- $(DOCKER_BASE_PULL); \
402
- } && \
403
- { \
404
- docker tag $(REGISTRY_SERVER):$(REGISTRY_PORT)/$(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) && \
405
- $(COLLECT_DOCKER); \
406
- }\
407
-
408
- SONIC_SLAVE_BASE_BUILD = \
409
- { \
410
- $(DOCKER_SLAVE_BASE_INSPECT); \
411
- } || \
412
- { \
413
- $(DOCKER_SLAVE_BASE_PULL_REGISTRY); \
414
- } || \
415
- { \
416
- echo Image $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) not found. Building... ; \
417
- $(PREPARE_DOCKER) ; \
418
- $(DOCKER_SLAVE_BASE_BUILD) ; \
419
- $(COLLECT_DOCKER) ; \
420
- }
421
-
422
- DOCKER_SLAVE_USER_INSPECT = \
423
- { \
424
- echo Checking sonic-slave-user image: $(SLAVE_IMAGE):$(SLAVE_TAG); \
425
- docker inspect --type image $(SLAVE_IMAGE):$(SLAVE_TAG) &> /dev/null; \
426
- }
427
-
428
- SONIC_SLAVE_USER_BUILD = \
429
- { $(DOCKER_SLAVE_USER_INSPECT) } || \
430
- { \
431
- echo Image $(SLAVE_IMAGE):$(SLAVE_TAG) not found. Building... ; \
432
- $(DOCKER_USER_BUILD) ; \
433
- }
434
-
435
- SONIC_BUILD_INSTRUCTION := $(MAKE) \
352
+ SONIC_BUILD_INSTRUCTION := make \
436
353
-f slave.mk \
437
354
PLATFORM=$(PLATFORM) \
438
355
PLATFORM_ARCH=$(PLATFORM_ARCH) \
@@ -498,75 +415,87 @@ SONIC_BUILD_INSTRUCTION := $(MAKE) \
498
415
499
416
.PHONY: sonic-slave-build sonic-slave-bash init reset
500
417
501
-
502
- ifeq ($(filter clean,$(MAKECMDGOALS)),)
503
- COLLECT_BUILD_VERSION = { DBGOPT='$(DBGOPT)' scripts/collect_build_version_files.sh $$?; }
504
- endif
505
-
506
- ifdef SOURCE_FOLDER
507
- DOCKER_RUN += -v $(SOURCE_FOLDER):/var/$(USER)/src
508
- endif
509
-
510
- ifeq "$(KEEP_SLAVE_ON)" "yes"
511
- SLAVE_SHELL={ /bin/bash; }
512
- endif
513
-
514
418
.DEFAULT_GOAL := all
515
419
516
- %:: | sonic-build-hooks
420
+ %::
517
421
ifneq ($(filter y, $(MULTIARCH_QEMU_ENVIRON) $(CROSS_BUILD_ENVIRON)),)
518
- $(Q) $(DOCKER_MULTIARCH_CHECK)
422
+ @ $(DOCKER_MULTIARCH_CHECK)
519
423
ifneq ($(BLDENV), )
520
- $(Q)$(DOCKER_SERVICE_MULTIARCH_CHECK)
521
- $(Q)$(DOCKER_SERVICE_DOCKERFS_CHECK)
522
- endif
424
+ @$(DOCKER_SERVICE_MULTIARCH_CHECK)
425
+ @$(DOCKER_SERVICE_DOCKERFS_CHECK)
426
+ endif
427
+ endif
428
+ @$(OVERLAY_MODULE_CHECK)
429
+
430
+ @pushd src/sonic-build-hooks; TRUSTED_GPG_URLS=$(TRUSTED_GPG_URLS) make all; popd
431
+ @cp src/sonic-build-hooks/buildinfo/sonic-build-hooks* $(SLAVE_DIR)/buildinfo
432
+ @docker inspect --type image $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) &> /dev/null || \
433
+ { [ $(ENABLE_DOCKER_BASE_PULL) == y ] && { echo Image $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) not found. Pulling...; } && \
434
+ $(DOCKER_BASE_PULL) && \
435
+ { docker tag $(REGISTRY_SERVER):$(REGISTRY_PORT)/$(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) && \
436
+ scripts/collect_docker_version_files.sh $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) target ; } } || \
437
+ { echo Image $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) not found. Building... ; \
438
+ $(DOCKER_BASE_BUILD) ; \
439
+ scripts/collect_docker_version_files.sh $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) target ; }
440
+ @docker inspect --type image $(SLAVE_IMAGE):$(SLAVE_TAG) &> /dev/null || \
441
+ { echo Image $(SLAVE_IMAGE):$(SLAVE_TAG) not found. Building... ; \
442
+ $(DOCKER_BUILD) ; }
443
+ ifeq "$(KEEP_SLAVE_ON)" "yes"
444
+ ifdef SOURCE_FOLDER
445
+ @$(DOCKER_RUN) -v $(SOURCE_FOLDER):/var/$(USER)/src $(SLAVE_IMAGE):$(SLAVE_TAG) bash -c "$(SONIC_BUILD_INSTRUCTION) $@; scripts/collect_build_version_files.sh \$$?; /bin/bash"
446
+ else
447
+ @$(DOCKER_RUN) $(SLAVE_IMAGE):$(SLAVE_TAG) bash -c "$(SONIC_BUILD_INSTRUCTION) $@; scripts/collect_build_version_files.sh \$$?; /bin/bash"
448
+ endif
449
+ else
450
+ @$(DOCKER_RUN) $(SLAVE_IMAGE):$(SLAVE_TAG) bash -c "$(SONIC_BUILD_INSTRUCTION) $@; scripts/collect_build_version_files.sh \$$?"
523
451
endif
524
- $(Q)$(OVERLAY_MODULE_CHECK)
525
- $(Q)$(SONIC_SLAVE_BASE_BUILD)
526
- $(Q)$(SONIC_SLAVE_USER_BUILD)
527
-
528
- $(Q)$(DOCKER_RUN) \
529
- $(SLAVE_IMAGE):$(SLAVE_TAG) \
530
- bash -c "$(SONIC_BUILD_INSTRUCTION) $@;$(COLLECT_BUILD_VERSION); $(SLAVE_SHELL)"
531
- $(Q)$(docker-image-cleanup)
532
452
533
453
docker-cleanup:
534
- $(Q)$( docker-image-cleanup)
454
+ $(docker-image-cleanup)
535
455
536
- .PHONY: sonic-build-hooks
537
456
sonic-build-hooks:
538
- $(Q)pushd src/sonic-build-hooks; TRUSTED_GPG_URLS=$(TRUSTED_GPG_URLS) $(MAKE) all; popd
539
- $(Q)mkdir -p $(SLAVE_DIR)/buildinfo
540
- $(Q)cp src/sonic-build-hooks/buildinfo/sonic-build-hooks* $(SLAVE_DIR)/buildinfo
457
+ @pushd src/sonic-build-hooks; TRUSTED_GPG_URLS=$(TRUSTED_GPG_URLS) make all; popd
458
+ @cp src/sonic-build-hooks/buildinfo/sonic-build-hooks* $(SLAVE_DIR)/buildinfo
541
459
542
- sonic-slave-base-build : | sonic-build-hooks
460
+ sonic-slave-base-build : sonic-build-hooks
543
461
ifeq ($(MULTIARCH_QEMU_ENVIRON), y)
544
- $(Q)$(DOCKER_MULTIARCH_CHECK)
545
- endif
546
- $(Q)$(OVERLAY_MODULE_CHECK)
547
- $(Q)$(SONIC_SLAVE_BASE_BUILD)
462
+ @$(DOCKER_MULTIARCH_CHECK)
463
+ endif
464
+ @$(OVERLAY_MODULE_CHECK)
465
+ @echo Checking sonic-slave-base image: $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG)
466
+ @docker inspect --type image $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) &> /dev/null || \
467
+ { [ $(ENABLE_DOCKER_BASE_PULL) == y ] && { echo Image $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) not found. Pulling...; } && \
468
+ $(DOCKER_BASE_PULL) && \
469
+ { docker tag $(REGISTRY_SERVER):$(REGISTRY_PORT)/$(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) && \
470
+ scripts/collect_docker_version_files.sh $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) target ; } } || \
471
+ { echo Image $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) not found. Building... ; \
472
+ $(DOCKER_BASE_BUILD) ; \
473
+ scripts/collect_docker_version_files.sh $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) target ; }
548
474
549
475
sonic-slave-build : sonic-slave-base-build
550
- $(Q)$(SONIC_SLAVE_USER_BUILD)
476
+ @echo Checking sonic-slave image: $(SLAVE_IMAGE):$(SLAVE_TAG)
477
+ @docker inspect --type image $(SLAVE_IMAGE):$(SLAVE_TAG) &> /dev/null || \
478
+ { echo Image $(SLAVE_IMAGE):$(SLAVE_TAG) not found. Building... ; \
479
+ $(DOCKER_BUILD) ; }
551
480
552
481
sonic-slave-bash : sonic-slave-build
553
- $(Q) $(DOCKER_RUN) -t $(SLAVE_IMAGE):$(SLAVE_TAG) bash
482
+ @ $(DOCKER_RUN) -t $(SLAVE_IMAGE):$(SLAVE_TAG) bash
554
483
555
484
sonic-slave-run : sonic-slave-build
556
- $(Q) $(DOCKER_RUN) $(SLAVE_IMAGE):$(SLAVE_TAG) bash -c "$(SONIC_RUN_CMDS)"
485
+ @ $(DOCKER_RUN) $(SLAVE_IMAGE):$(SLAVE_TAG) bash -c "$(SONIC_RUN_CMDS)"
557
486
558
487
showtag:
559
- $(Q) echo $(SLAVE_IMAGE):$(SLAVE_TAG)
560
- $(Q) echo $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG)
488
+ @ echo $(SLAVE_IMAGE):$(SLAVE_TAG)
489
+ @ echo $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG)
561
490
562
491
init :
563
- $(Q) git submodule update --init --recursive
564
- $(Q) git submodule foreach --recursive '[ -f .git ] && echo "gitdir: $$(realpath --relative-to=. $$(cut -d" " -f2 .git))" > .git'
492
+ @ git submodule update --init --recursive
493
+ @ git submodule foreach --recursive '[ -f .git ] && echo "gitdir: $$(realpath --relative-to=. $$(cut -d" " -f2 .git))" > .git'
565
494
566
495
.ONESHELL : reset
567
496
reset :
568
- $(Q) echo && echo -n "Warning! All local changes will be lost. Proceed? [y/N]: "
569
- $(Q) read ans && (
497
+ @ echo && echo -n "Warning! All local changes will be lost. Proceed? [y/N]: "
498
+ @ read ans && (
570
499
if [ $$ans == y ]; then
571
500
echo "Resetting local repository. Please wait...";
572
501
sudo rm -rf fsroot*;
0 commit comments