-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Ported Marvell armhf build on amd64 host for debian buster to use cross-comp… #8035
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
b8e21f6
c090db1
0575054
eba55b6
1acb980
3da08d9
fcb2b8b
1e079dc
c66756d
e153741
a8e69e5
b4376b2
6a912bb
3e32281
a5c6ba3
cedf62c
3ef6968
4f69553
80446dd
c095ecd
e44472e
bdc6c47
6d37a00
c38b5d0
d10c812
db50dbf
ec639e8
9d7ab8c
544993d
e7d1fa5
844a2d9
ca07e21
5290e07
ca03d67
f6ef895
26f479e
c20e081
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -139,13 +139,21 @@ endif | |
| ifeq ($(CONFIGURED_ARCH),amd64) | ||
| SLAVE_BASE_IMAGE = $(SLAVE_DIR) | ||
| MULTIARCH_QEMU_ENVIRON = n | ||
| CROSS_BUILD_ENVIRON = n | ||
| else | ||
| ifeq ($(CONFIGURED_ARCH), $(COMPILE_HOST_ARCH)) | ||
| SLAVE_BASE_IMAGE = $(SLAVE_DIR) | ||
| MULTIARCH_QEMU_ENVIRON = n | ||
| CROSS_BUILD_ENVIRON = n | ||
| else ifneq ($(CONFIGURED_ARCH),) | ||
| SLAVE_BASE_IMAGE = $(SLAVE_DIR)-march-$(CONFIGURED_ARCH) | ||
| ifneq ($(CROSS_BLDENV),) | ||
| MULTIARCH_QEMU_ENVIRON = n | ||
| CROSS_BUILD_ENVIRON = y | ||
|
||
| else | ||
| MULTIARCH_QEMU_ENVIRON = y | ||
| CROSS_BUILD_ENVIRON = n | ||
| endif | ||
| endif | ||
| endif | ||
| SLAVE_IMAGE = $(SLAVE_BASE_IMAGE)-$(USER_LC) | ||
|
|
@@ -169,8 +177,8 @@ $(shell SONIC_VERSION_CONTROL_COMPONENTS=$(SONIC_VERSION_CONTROL_COMPONENTS) \ | |
| scripts/generate_buildinfo_config.sh) | ||
|
|
||
| # Generate the slave Dockerfile, and prepare build info for it | ||
| $(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_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) | ||
| $(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) j2 $(SLAVE_DIR)/Dockerfile.user.j2 > $(SLAVE_DIR)/Dockerfile.user) | ||
| $(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) | ||
| $(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) | ||
| $(shell BUILD_SLAVE=y DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) scripts/prepare_docker_buildinfo.sh $(SLAVE_BASE_IMAGE) $(SLAVE_DIR)/Dockerfile $(CONFIGURED_ARCH) "" $(BLDENV)) | ||
|
|
||
| # Add the versions in the tag, if the version change, need to rebuild the slave | ||
|
|
@@ -272,7 +280,7 @@ ifneq ($(MULTIARCH_QEMU_ENVIRON), y) | |
| endif | ||
| endif | ||
|
|
||
| ifeq ($(MULTIARCH_QEMU_ENVIRON), y) | ||
| ifneq ($(filter y, $(MULTIARCH_QEMU_ENVIRON) $(CROSS_BUILD_ENVIRON)),) | ||
|
||
| ifeq ($(DOCKER_DATA_ROOT_FOR_MULTIARCH),) | ||
| DOCKER_DATA_ROOT_FOR_MULTIARCH := /var/lib/march/docker | ||
| endif | ||
|
|
@@ -344,6 +352,7 @@ SONIC_BUILD_INSTRUCTION := make \ | |
| PLATFORM=$(PLATFORM) \ | ||
| PLATFORM_ARCH=$(PLATFORM_ARCH) \ | ||
| MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) \ | ||
| CROSS_BUILD_ENVIRON=$(CROSS_BUILD_ENVIRON) \ | ||
| BUILD_NUMBER=$(BUILD_NUMBER) \ | ||
| BUILD_TIMESTAMP=$(BUILD_TIMESTAMP) \ | ||
| SONIC_IMAGE_VERSION=$(SONIC_IMAGE_VERSION) \ | ||
|
|
@@ -405,7 +414,7 @@ SONIC_BUILD_INSTRUCTION := make \ | |
| .DEFAULT_GOAL := all | ||
|
|
||
| %:: | ||
| ifeq ($(MULTIARCH_QEMU_ENVIRON), y) | ||
| ifneq ($(filter y, $(MULTIARCH_QEMU_ENVIRON) $(CROSS_BUILD_ENVIRON)),) | ||
| @$(DOCKER_MULTIARCH_CHECK) | ||
| ifneq ($(BLDENV), ) | ||
| @$(DOCKER_SERVICE_MULTIARCH_CHECK) | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -173,6 +173,17 @@ To build Arm32 bit for (ARMHF) platform | |
|
|
||
| make target/sonic-marvell-armhf.bin | ||
|
|
||
| To build Arm32 bit for (ARMHF) Marvell platform on amd64 host for debian buster using cross-compilation run the following commands: | ||
|
|
||
| # Execute make configure once to configure ASIC and ARCH for cross-compilation build | ||
|
|
||
| NOJESSIE=1 NOSTRETCH=1 BLDENV=buster CROSS_BLDENV=1 make configure PLATFORM=marvell-armhf PLATFORM_ARCH=armhf | ||
|
|
||
| # Execute Arm32 build using cross-compilation environment | ||
|
|
||
| NOJESSIE=1 NOSTRETCH=1 BLDENV=buster CROSS_BLDENV=1 make target/sonic-marvell-armhf.bin | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This needs to be updated for Bullseye, I think? |
||
|
|
||
| Running the above Arm32 build using cross-compilation instead of qemu emulator drastically reduces the build time. | ||
|
|
||
|
|
||
| To build Arm64 bit for platform | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,3 @@ | ||
| SYSTEMD_SONIC_GENERATOR = systemd-sonic-generator_1.0.0_$(CONFIGURED_ARCH).deb | ||
| $(SYSTEMD_SONIC_GENERATOR)_SRC_PATH = $(SRC_PATH)/systemd-sonic-generator | ||
| SONIC_MAKE_DEBS += $(SYSTEMD_SONIC_GENERATOR) | ||
| SONIC_DPKG_DEBS += $(SYSTEMD_SONIC_GENERATOR) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -59,6 +59,7 @@ ifeq ($(CONFIGURED_ARCH),arm64) | |
| override DOCKER_BASE_ARCH = arm64v8 | ||
| endif | ||
| endif | ||
|
|
||
| IMAGE_DISTRO := bullseye | ||
| IMAGE_DISTRO_DEBS_PATH = $(TARGET_PATH)/debs/$(IMAGE_DISTRO) | ||
| IMAGE_DISTRO_FILES_PATH = $(TARGET_PATH)/files/$(IMAGE_DISTRO) | ||
|
|
@@ -81,6 +82,7 @@ export IMAGE_DISTRO | |
| export IMAGE_DISTRO_DEBS_PATH | ||
| export MULTIARCH_QEMU_ENVIRON | ||
| export DOCKER_BASE_ARCH | ||
| export CROSS_BUILD_ENVIRON | ||
| export BLDENV | ||
|
|
||
| ############################################################################### | ||
|
|
@@ -274,6 +276,46 @@ ifeq ($(CONFIGURED_PLATFORM),vs) | |
| export BUILD_MULTIASIC_KVM | ||
| endif | ||
|
|
||
| ifeq ($(CROSS_BUILD_ENVIRON),y) | ||
| DEB_BUILD_OPTIONS_GENERIC += nocheck | ||
| export $(dpkg-architecture -a$(CONFIGURED_ARCH)) | ||
| ifeq ($(ENABLE_PY2_MODULES),n) | ||
| ANT_DEB_CROSS_PROFILES=nopython2 | ||
| endif | ||
| ANT_DEB_CROSS_OPT := -a$(CONFIGURED_ARCH) -Pcross,nocheck,$(ANT_DEB_CROSS_PROFILES) | ||
| ANT_DEB_CONFIG := CONFIG_SITE=/etc/dpkg-cross/cross-config.$(CONFIGURED_ARCH) | ||
|
|
||
| VIRTENV_BASE_CROSS_PYTHON2 = /python_virtualenv/env2/ | ||
| VIRTENV_BASE_CROSS_PYTHON3 = /python_virtualenv/env3/ | ||
| VIRTENV_BIN_CROSS_PYTHON2 = $(VIRTENV_BASE_CROSS_PYTHON2)/bin/ | ||
| VIRTENV_BIN_CROSS_PYTHON3 = $(VIRTENV_BASE_CROSS_PYTHON3)/bin/ | ||
| VIRTENV_LIB_CROSS_PYTHON2 = $(VIRTENV_BASE_CROSS_PYTHON2)/lib/ | ||
| VIRTENV_LIB_CROSS_PYTHON3 = $(VIRTENV_BASE_CROSS_PYTHON3)/lib/ | ||
|
|
||
| CROSS_HOST_TYPE = $(shell dpkg-architecture -a $(CONFIGURED_ARCH) -q DEB_HOST_MULTIARCH) | ||
|
|
||
| ifeq ($(CONFIGURED_ARCH),armhf) | ||
| GOARCH=arm | ||
| else ifeq ($(CONFIGURED_ARCH),arm64) | ||
| GOARCH=arm64 | ||
| endif | ||
|
|
||
| CROSS_COMPILE = $(CROSS_HOST_TYPE)- | ||
| CC = $(CROSS_COMPILE)gcc | ||
| CXX = $(CROSS_COMPILE)g++ | ||
| AR = $(CROSS_COMPILE)ar | ||
| LD = $(CROSS_COMPILE)ld | ||
| CROSS_LIB_PATH = /usr/$(CROSS_HOST_TYPE)/lib/ | ||
| CROSS_BIN_PATH = /usr/$(CROSS_HOST_TYPE)/bin/ | ||
| CROSS_PKGS_LIB_PATH = /usr/lib/$(CROSS_HOST_TYPE) | ||
|
|
||
| CROSS_LIBPERL_VERSION = $(shell dpkg -s libperl-dev:$(CONFIGURED_ARCH)|grep Version|awk '{split($$2,v,"-"); print v[1];}') | ||
| CROSS_PERL_CORE_PATH = $(CROSS_PKGS_LIB_PATH)/perl/$(CROSS_LIBPERL_VERSION)/CORE/ | ||
|
|
||
| CROSS_COMPILE_FLAGS := CGO_ENABLED=1 GOOS=linux GOARCH=$(GOARCH) CROSS_COMPILE=$(CROSS_COMPILE) OVERRIDE_HOST_TYPE=$(CROSS_HOST_TYPE) CROSS_LIB_PATH=$(CROSS_LIB_PATH) CROSS_BIN_PATH=$(CROSS_BIN_PATH) CROSS_HOST_TYPE=$(CROSS_HOST_TYPE) CROSS_PKGS_LIB_PATH=$(CROSS_PKGS_LIB_PATH) CROSS_PERL_CORE_PATH=$(CROSS_PERL_CORE_PATH) CC=$(CC) CXX=$(CXX) AR=$(AR) LD=$(LD) | ||
|
|
||
| endif | ||
|
|
||
| ############################################################################### | ||
| ## Routing stack related exports | ||
| ############################################################################### | ||
|
|
@@ -358,6 +400,7 @@ $(info "DEFAULT_CONTAINER_REGISTRY" : "$(SONIC_DEFAULT_CONTAINER_REGISTRY)" | |
| ifeq ($(CONFIGURED_PLATFORM),vs) | ||
| $(info "BUILD_MULTIASIC_KVM" : "$(BUILD_MULTIASIC_KVM)") | ||
| endif | ||
| $(info "CROSS_BUILD_ENVIRON" : "$(CROSS_BUILD_ENVIRON)") | ||
| $(info ) | ||
| else | ||
| $(info SONiC Build System for $(CONFIGURED_PLATFORM):$(CONFIGURED_ARCH)) | ||
|
|
@@ -580,7 +623,7 @@ $(addprefix $(DEBS_PATH)/, $(SONIC_MAKE_DEBS)) : $(DEBS_PATH)/% : .platform $$(a | |
| if [ -f $($*_SRC_PATH).patch/series ]; then pushd $($*_SRC_PATH) && QUILT_PATCHES=../$(notdir $($*_SRC_PATH)).patch quilt push -a; popd; fi | ||
| # Build project and take package | ||
| $(SETUP_OVERLAYFS_FOR_DPKG_ADMINDIR) | ||
| DEB_BUILD_OPTIONS="${DEB_BUILD_OPTIONS_GENERIC}" make -j$(SONIC_CONFIG_MAKE_JOBS) DEST=$(shell pwd)/$(DEBS_PATH) -C $($*_SRC_PATH) $(shell pwd)/$(DEBS_PATH)/$* $(LOG) | ||
| DEB_BUILD_OPTIONS="${DEB_BUILD_OPTIONS_GENERIC}" $(ANT_DEB_CONFIG) $(CROSS_COMPILE_FLAGS) make -j$(SONIC_CONFIG_MAKE_JOBS) DEST=$(shell pwd)/$(DEBS_PATH) -C $($*_SRC_PATH) $(shell pwd)/$(DEBS_PATH)/$* $(LOG) | ||
| # Clean up | ||
| if [ -f $($*_SRC_PATH).patch/series ]; then pushd $($*_SRC_PATH) && quilt pop -a -f; [ -d .pc ] && rm -rf .pc; popd; fi | ||
|
|
||
|
|
@@ -623,8 +666,8 @@ $(addprefix $(DEBS_PATH)/, $(SONIC_DPKG_DEBS)) : $(DEBS_PATH)/% : .platform $$(a | |
| if [ -f ./autogen.sh ]; then ./autogen.sh $(LOG); fi | ||
| $(SETUP_OVERLAYFS_FOR_DPKG_ADMINDIR) | ||
| $(if $($*_DPKG_TARGET), | ||
| ${$*_BUILD_ENV} DEB_BUILD_OPTIONS="${DEB_BUILD_OPTIONS_GENERIC} ${$*_DEB_BUILD_OPTIONS}" dpkg-buildpackage -rfakeroot -b -us -uc -tc -j$(SONIC_CONFIG_MAKE_JOBS) --as-root -T$($*_DPKG_TARGET) --admindir $$mergedir $(LOG), | ||
| ${$*_BUILD_ENV} DEB_BUILD_OPTIONS="${DEB_BUILD_OPTIONS_GENERIC} ${$*_DEB_BUILD_OPTIONS}" dpkg-buildpackage -rfakeroot -b -us -uc -tc -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $$mergedir $(LOG) | ||
| ${$*_BUILD_ENV} DEB_BUILD_OPTIONS="${DEB_BUILD_OPTIONS_GENERIC} ${$*_DEB_BUILD_OPTIONS}" $(ANT_DEB_CONFIG) $(CROSS_COMPILE_FLAGS) dpkg-buildpackage -rfakeroot -b $(ANT_DEB_CROSS_OPT) -us -uc -tc -j$(SONIC_CONFIG_MAKE_JOBS) --as-root -T$($*_DPKG_TARGET) --admindir $$mergedir $(LOG), | ||
| ${$*_BUILD_ENV} DEB_BUILD_OPTIONS="${DEB_BUILD_OPTIONS_GENERIC} ${$*_DEB_BUILD_OPTIONS}" $(ANT_DEB_CONFIG) $(CROSS_COMPILE_FLAGS) dpkg-buildpackage -rfakeroot -b $(ANT_DEB_CROSS_OPT) -us -uc -tc -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $$mergedir $(LOG) | ||
| ) | ||
|
||
| popd $(LOG_SIMPLE) | ||
| # Clean up | ||
|
|
@@ -691,7 +734,15 @@ $(SONIC_INSTALL_DEBS) : $(DEBS_PATH)/%-install : .platform $$(addsuffix -install | |
| { while dpkg -s $(firstword $(subst _, ,$(basename $(deb)))) | grep "^Version: $(word 2, $(subst _, ,$(basename $(deb))))" &> /dev/null; do echo "waiting for $(deb) to be uninstalled" $(LOG); sleep 1; done } ) | ||
| # put a lock here because dpkg does not allow installing packages in parallel | ||
| if mkdir $(DEBS_PATH)/dpkg_lock &> /dev/null; then | ||
| ifneq ($(CROSS_BUILD_ENVIRON),y) | ||
| { sudo DEBIAN_FRONTEND=noninteractive dpkg -i $(DEBS_PATH)/$* $(LOG) && rm -d $(DEBS_PATH)/dpkg_lock && break; } || { rm -d $(DEBS_PATH)/dpkg_lock && sudo lsof /var/lib/dpkg/lock-frontend && ps aux && exit 1 ; } | ||
| else | ||
| # Relocate debian packages python libraries to the cross python virtual env location | ||
| { sudo DEBIAN_FRONTEND=noninteractive dpkg -i $(if $(findstring $(LINUX_HEADERS),$*),--force-depends) $(DEBS_PATH)/$* $(LOG) && \ | ||
| rm -rf tmp && mkdir tmp && dpkg -x $(DEBS_PATH)/$* tmp && (sudo cp -rf tmp/usr/lib/python2*/dist-packages/* $(VIRTENV_LIB_CROSS_PYTHON2)/python2*/site-packages/ 2>/dev/null || true) && \ | ||
| (sudo cp -rf tmp/usr/lib/python3/dist-packages/* $(VIRTENV_LIB_CROSS_PYTHON3)/python3.*/site-packages/ 2>/dev/null || true) && \ | ||
| rm -d $(DEBS_PATH)/dpkg_lock && break; } || { rm -d $(DEBS_PATH)/dpkg_lock && sudo lsof /var/lib/dpkg/lock-frontend && ps aux && exit 1 ; } | ||
| endif | ||
| fi | ||
| sleep 10 | ||
| done | ||
|
|
@@ -764,10 +815,19 @@ $(addprefix $(PYTHON_WHEELS_PATH)/, $(SONIC_PYTHON_WHEELS)) : $(PYTHON_WHEELS_PA | |
| pushd $($*_SRC_PATH) $(LOG_SIMPLE) | ||
| # apply series of patches if exist | ||
| if [ -f ../$(notdir $($*_SRC_PATH)).patch/series ]; then QUILT_PATCHES=../$(notdir $($*_SRC_PATH)).patch quilt push -a; fi | ||
| ifneq ($(CROSS_BUILD_ENVIRON),y) | ||
| # Use pip instead of later setup.py to install dependencies into user home, but uninstall self | ||
| pip$($*_PYTHON_VERSION) install . && pip$($*_PYTHON_VERSION) uninstall --yes `python$($*_PYTHON_VERSION) setup.py --name` | ||
| if [ ! "$($*_TEST)" = "n" ]; then python$($*_PYTHON_VERSION) setup.py test $(LOG); fi | ||
saiarcot895 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| python$($*_PYTHON_VERSION) setup.py bdist_wheel $(LOG) | ||
| else | ||
| { | ||
| export PATH=$(VIRTENV_BIN_CROSS_PYTHON$($*_PYTHON_VERSION)):${PATH} | ||
| python$($*_PYTHON_VERSION) setup.py build $(LOG) | ||
| if [ ! "$($*_TEST)" = "n" ]; then python$($*_PYTHON_VERSION) setup.py test $(LOG); fi | ||
| python$($*_PYTHON_VERSION) setup.py bdist_wheel $(LOG) | ||
| } | ||
| endif | ||
| # clean up | ||
| if [ -f ../$(notdir $($*_SRC_PATH)).patch/series ]; then quilt pop -a -f; [ -d .pc ] && rm -rf .pc; fi | ||
| popd $(LOG_SIMPLE) | ||
|
|
@@ -793,7 +853,12 @@ $(SONIC_INSTALL_WHEELS) : $(PYTHON_WHEELS_PATH)/%-install : .platform $$(addsuff | |
| # put a lock here to avoid race conditions | ||
| while true; do | ||
| if mkdir $(PYTHON_WHEELS_PATH)/pip_lock &> /dev/null; then | ||
| ifneq ($(CROSS_BUILD_ENVIRON),y) | ||
| { sudo -E pip$($*_PYTHON_VERSION) install $(PYTHON_WHEELS_PATH)/$* $(LOG) && rm -d $(PYTHON_WHEELS_PATH)/pip_lock && break; } || { rm -d $(PYTHON_WHEELS_PATH)/pip_lock && exit 1 ; } | ||
| else | ||
| # Link python script and data expected location to the cross python virtual env istallation locations | ||
| { PATH=$(VIRTENV_BIN_CROSS_PYTHON$($*_PYTHON_VERSION)):${PATH} sudo -E $(VIRTENV_BIN_CROSS_PYTHON$($*_PYTHON_VERSION))/pip$($*_PYTHON_VERSION) install $(PYTHON_WHEELS_PATH)/$* $(LOG) && $(if $(findstring $(SONIC_CONFIG_ENGINE_PY3),$*),(sudo ln -s $(VIRTENV_BIN_CROSS_PYTHON$($*_PYTHON_VERSION))/sonic-cfggen /usr/local/bin/sonic-cfggen 2>/dev/null || true), true ) && $(if $(findstring $(SONIC_YANG_MODELS_PY3),$*),(sudo ln -s $(VIRTENV_BASE_CROSS_PYTHON3)/yang-models /usr/local/yang-models 2>/dev/null || true), true ) && rm -d $(PYTHON_WHEELS_PATH)/pip_lock && break; } || { rm -d $(PYTHON_WHEELS_PATH)/pip_lock && exit 1 ; } | ||
| endif | ||
| fi | ||
| done | ||
| $(FOOTER) | ||
|
|
@@ -918,7 +983,7 @@ $(addprefix $(TARGET_PATH)/, $(DOCKER_IMAGES)) : $(TARGET_PATH)/%.gz : .platform | |
| $(eval export $(subst -,_,$(notdir $($*.gz_PATH)))_whls=$(shell printf "$(subst $(SPACE),\n,$(call expand,$($*.gz_PYTHON_WHEELS)))\n" | awk '!a[$$0]++')) | ||
| $(eval export $(subst -,_,$(notdir $($*.gz_PATH)))_dbgs=$(shell printf "$(subst $(SPACE),\n,$(call expand,$($*.gz_DBG_PACKAGES)))\n" | awk '!a[$$0]++')) | ||
| $(eval export $(subst -,_,$(notdir $($*.gz_PATH)))_pkgs=$(shell printf "$(subst $(SPACE),\n,$(call expand,$($*.gz_APT_PACKAGES)))\n" | awk '!a[$$0]++')) | ||
| if [ -d $($*.gz_PATH)/cli-plugin-tests/ ]; then pushd $($*.gz_PATH)/cli-plugin-tests; pytest-$($(SONIC_UTILITIES_PY3)_PYTHON_VERSION) -v $(LOG); popd; fi | ||
| if [ -d $($*.gz_PATH)/cli-plugin-tests/ ]; then pushd $($*.gz_PATH)/cli-plugin-tests; PATH=$(VIRTENV_BIN_CROSS_PYTHON$($(SONIC_UTILITIES_PY3)_PYTHON_VERSION)):${PATH} pytest-$($(SONIC_UTILITIES_PY3)_PYTHON_VERSION) -v $(LOG); popd; fi | ||
| # Label docker image with componenets versions | ||
| $(eval export $(subst -,_,$(notdir $($*.gz_PATH)))_labels=$(foreach component,\ | ||
| $(call expand,$($*.gz_DEPENDS),RDEPENDS) \ | ||
|
|
@@ -1227,7 +1292,6 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \ | |
| ) | ||
| ) | ||
|
|
||
|
|
||
| # Exported variables are used by sonic_debian_extension.sh | ||
| export installer_start_scripts="$(foreach docker, $($*_DOCKERS),$(addsuffix .sh, $($(docker:-dbg.gz=.gz)_CONTAINER_NAME)))" | ||
| export feature_vs_image_names="$(foreach docker, $($*_DOCKERS), $(addsuffix :, $($(docker:-dbg.gz=.gz)_CONTAINER_NAME):$(docker:-dbg.gz=.gz)))" | ||
|
|
@@ -1293,6 +1357,7 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \ | |
| SIGNING_CERT="$(SIGNING_CERT)" \ | ||
| PACKAGE_URL_PREFIX=$(PACKAGE_URL_PREFIX) \ | ||
| MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) \ | ||
| CROSS_BUILD_ENVIRON=$(CROSS_BUILD_ENVIRON) \ | ||
| ./build_debian.sh $(LOG) | ||
|
|
||
| USERNAME="$(USERNAME)" \ | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.