Skip to content

Commit c691b73

Browse files
01.Version-cache - restructuring of Makefile.work (#12000)
- The Makefile.work becomes complex and it is very difficult to manage the changes across branches. - Restructured the Makefile.work and it becomes more readable. - Added $(QUIET) option to turn on command echo mode through command line option. - Exported the SONIC_BUILD_VARS variable, through which make options can be set dynamically. Eg: make SONIC_BUILD_VARS='INCLUDE_NAT=y'
1 parent 95f4af3 commit c691b73

File tree

3 files changed

+196
-117
lines changed

3 files changed

+196
-117
lines changed

Makefile

+21-13
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,14 @@ NOSTRETCH ?= 0
55
NOBUSTER ?= 0
66
NOBULLSEYE ?= 0
77

8+
override Q := @
9+
ifeq ($(QUIET),n)
10+
override Q :=
11+
endif
12+
override SONIC_OVERRIDE_BUILD_VARS += $(SONIC_BUILD_VARS)
13+
override SONIC_OVERRIDE_BUILD_VARS += Q=$(Q)
14+
export Q SONIC_OVERRIDE_BUILD_VARS
15+
816
ifeq ($(NOJESSIE),0)
917
BUILD_JESSIE=1
1018
endif
@@ -29,50 +37,50 @@ PLATFORM_CHECKOUT_CMD := $(shell if [ -f $(PLATFORM_CHECKOUT_FILE) ]; then PLATF
2937
%::
3038
@echo "+++ --- Making $@ --- +++"
3139
ifeq ($(NOJESSIE), 0)
32-
EXTRA_DOCKER_TARGETS=$(notdir $@) make -f Makefile.work jessie
40+
EXTRA_DOCKER_TARGETS=$(notdir $@) $(MAKE) -f Makefile.work jessie
3341
endif
3442
ifeq ($(NOSTRETCH), 0)
35-
EXTRA_DOCKER_TARGETS=$(notdir $@) BLDENV=stretch make -f Makefile.work stretch
43+
EXTRA_DOCKER_TARGETS=$(notdir $@) BLDENV=stretch $(MAKE) -f Makefile.work stretch
3644
endif
3745
ifeq ($(NOBUSTER), 0)
38-
EXTRA_DOCKER_TARGETS=$(notdir $@) BLDENV=buster make -f Makefile.work buster
46+
EXTRA_DOCKER_TARGETS=$(notdir $@) BLDENV=buster $(MAKE) -f Makefile.work buster
3947
endif
4048
ifeq ($(NOBULLSEYE), 0)
41-
BLDENV=bullseye make -f Makefile.work $@
49+
BLDENV=bullseye $(MAKE) -f Makefile.work $@
4250
endif
43-
BLDENV=bullseye make -f Makefile.work docker-cleanup
51+
BLDENV=bullseye $(MAKE) -f Makefile.work docker-cleanup
4452

4553
jessie:
4654
@echo "+++ Making $@ +++"
4755
ifeq ($(NOJESSIE), 0)
48-
make -f Makefile.work jessie
56+
$(MAKE) -f Makefile.work jessie
4957
endif
5058

5159
stretch:
5260
@echo "+++ Making $@ +++"
5361
ifeq ($(NOSTRETCH), 0)
54-
make -f Makefile.work stretch
62+
$(MAKE) -f Makefile.work stretch
5563
endif
5664

5765
buster:
5866
@echo "+++ Making $@ +++"
5967
ifeq ($(NOBUSTER), 0)
60-
make -f Makefile.work buster
68+
$(MAKE) -f Makefile.work buster
6169
endif
6270

6371
init:
6472
@echo "+++ Making $@ +++"
65-
make -f Makefile.work $@
73+
$(MAKE) -f Makefile.work $@
6674

6775
#
6876
# Function to invoke target $@ in Makefile.work with proper BLDENV
6977
#
7078
define make_work
7179
@echo "+++ Making $@ +++"
72-
$(if $(BUILD_JESSIE),make -f Makefile.work $@,)
73-
$(if $(BUILD_STRETCH),BLDENV=stretch make -f Makefile.work $@,)
74-
$(if $(BUILD_BUSTER),BLDENV=buster make -f Makefile.work $@,)
75-
$(if $(BUILD_BULLSEYE),BLDENV=bullseye make -f Makefile.work $@,)
80+
$(if $(BUILD_JESSIE),$(MAKE) -f Makefile.work $@,)
81+
$(if $(BUILD_STRETCH),BLDENV=stretch $(MAKE) -f Makefile.work $@,)
82+
$(if $(BUILD_BUSTER),BLDENV=buster $(MAKE) -f Makefile.work $@,)
83+
$(if $(BUILD_BULLSEYE),BLDENV=bullseye $(MAKE) -f Makefile.work $@,)
7684
endef
7785

7886
.PHONY: $(PLATFORM_PATH)

Makefile.work

+142-71
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ endif
124124
# Define a do-nothing target for rules/config.user so that when
125125
# the file is missing, make won't try to rebuld everything.
126126
rules/config.user:
127-
@echo -n ""
127+
$(Q)echo -n ""
128128

129129
include rules/config
130130
-include rules/config.user
@@ -173,21 +173,59 @@ endif
173173
endif
174174

175175
# Generate the version control build info
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)
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)
179181

180182
# Generate the slave Dockerfile, and prepare build info for it
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))
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) )
184206

185207
# Add the versions in the tag, if the version change, need to rebuild the slave
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);}')
187-
# Calculate the slave TAG based on $(USER)/$(PWD)/$(CONFIGURED_PLATFORM) to get unique SHA ID
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);}')
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);}')
190214

215+
# 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
191229
OVERLAY_MODULE_CHECK := \
192230
lsmod | grep -q "^overlay " &>/dev/null || \
193231
zgrep -q 'CONFIG_OVERLAY_FS=y' /proc/config.gz &>/dev/null || \
@@ -329,7 +367,7 @@ DOCKER_BASE_LOG = $(SLAVE_DIR)/$(SLAVE_BASE_IMAGE)_$(SLAVE_BASE_TAG).log
329367
DOCKER_LOG = $(SLAVE_DIR)/$(SLAVE_IMAGE)_$(SLAVE_TAG).log
330368

331369

332-
DOCKER_BASE_BUILD = docker build --no-cache \
370+
DOCKER_SLAVE_BASE_BUILD = docker build --no-cache \
333371
-t $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) \
334372
--build-arg http_proxy=$(http_proxy) \
335373
--build-arg https_proxy=$(https_proxy) \
@@ -339,7 +377,7 @@ DOCKER_BASE_BUILD = docker build --no-cache \
339377
DOCKER_BASE_PULL = docker pull \
340378
$(REGISTRY_SERVER):$(REGISTRY_PORT)/$(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG)
341379

342-
DOCKER_BUILD = docker build --no-cache \
380+
DOCKER_USER_BUILD = docker build --no-cache \
343381
--build-arg user=$(USER) \
344382
--build-arg uid=$(shell id -u) \
345383
--build-arg guid=$(shell id -g) \
@@ -349,7 +387,52 @@ DOCKER_BUILD = docker build --no-cache \
349387
-f $(SLAVE_DIR)/Dockerfile.user \
350388
$(SLAVE_DIR) $(SPLIT_LOG) $(DOCKER_LOG)
351389

352-
SONIC_BUILD_INSTRUCTION := make \
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) \
353436
-f slave.mk \
354437
PLATFORM=$(PLATFORM) \
355438
PLATFORM_ARCH=$(PLATFORM_ARCH) \
@@ -415,87 +498,75 @@ SONIC_BUILD_INSTRUCTION := make \
415498

416499
.PHONY: sonic-slave-build sonic-slave-bash init reset
417500

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+
418514
.DEFAULT_GOAL := all
419515

420-
%::
516+
%:: | sonic-build-hooks
421517
ifneq ($(filter y, $(MULTIARCH_QEMU_ENVIRON) $(CROSS_BUILD_ENVIRON)),)
422-
@$(DOCKER_MULTIARCH_CHECK)
518+
$(Q)$(DOCKER_MULTIARCH_CHECK)
423519
ifneq ($(BLDENV), )
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 \$$?"
520+
$(Q)$(DOCKER_SERVICE_MULTIARCH_CHECK)
521+
$(Q)$(DOCKER_SERVICE_DOCKERFS_CHECK)
522+
endif
451523
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)
452532

453533
docker-cleanup:
454-
$(docker-image-cleanup)
534+
$(Q)$(docker-image-cleanup)
455535

536+
.PHONY: sonic-build-hooks
456537
sonic-build-hooks:
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
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
459541

460-
sonic-slave-base-build : sonic-build-hooks
542+
sonic-slave-base-build : | sonic-build-hooks
461543
ifeq ($(MULTIARCH_QEMU_ENVIRON), y)
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 ; }
544+
$(Q)$(DOCKER_MULTIARCH_CHECK)
545+
endif
546+
$(Q)$(OVERLAY_MODULE_CHECK)
547+
$(Q)$(SONIC_SLAVE_BASE_BUILD)
474548

475549
sonic-slave-build : sonic-slave-base-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) ; }
550+
$(Q)$(SONIC_SLAVE_USER_BUILD)
480551

481552
sonic-slave-bash : sonic-slave-build
482-
@$(DOCKER_RUN) -t $(SLAVE_IMAGE):$(SLAVE_TAG) bash
553+
$(Q)$(DOCKER_RUN) -t $(SLAVE_IMAGE):$(SLAVE_TAG) bash
483554

484555
sonic-slave-run : sonic-slave-build
485-
@$(DOCKER_RUN) $(SLAVE_IMAGE):$(SLAVE_TAG) bash -c "$(SONIC_RUN_CMDS)"
556+
$(Q)$(DOCKER_RUN) $(SLAVE_IMAGE):$(SLAVE_TAG) bash -c "$(SONIC_RUN_CMDS)"
486557

487558
showtag:
488-
@echo $(SLAVE_IMAGE):$(SLAVE_TAG)
489-
@echo $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG)
559+
$(Q)echo $(SLAVE_IMAGE):$(SLAVE_TAG)
560+
$(Q)echo $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG)
490561

491562
init :
492-
@git submodule update --init --recursive
493-
@git submodule foreach --recursive '[ -f .git ] && echo "gitdir: $$(realpath --relative-to=. $$(cut -d" " -f2 .git))" > .git'
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'
494565

495566
.ONESHELL : reset
496567
reset :
497-
@echo && echo -n "Warning! All local changes will be lost. Proceed? [y/N]: "
498-
@read ans && (
568+
$(Q)echo && echo -n "Warning! All local changes will be lost. Proceed? [y/N]: "
569+
$(Q)read ans && (
499570
if [ $$ans == y ]; then
500571
echo "Resetting local repository. Please wait...";
501572
sudo rm -rf fsroot*;

0 commit comments

Comments
 (0)