Build improvements (#80)
* Build improvements Fix dependencies Add configuration options Automatically build sonic-slave * Set default number of jobs to 1 * Auto generate target/debs directory Signed-off-by: marian-pritsak <marianp@mellanox.com> * Automatically remove sonic-slave container after exit * Silence clean-logs * Add SONIC_CLEAN_TARGETS to clean * Use second expansion for clean dependencies * Avoid creating empty log files Remove log file on flush instead of writing empty string * Put dpkg install inside lock Use same lock as debian install targets do to avoid race condition in dpkg installation * Remove redirect to log from docker save * Add .platform dependency to all and clean targets * Remove header and footer from clean targets * Disable messages for SONIC_CLEAN_TARGETS * Exit with error if dpkg-buildpackage fails * Set new location for debs in build_debian.sh * Add recipe for docker-database * Update redis version to 3.2.4 * Add support for p4 platform * Add recipe for snmpd * Add slave targets to phony and make all target default * Remove build.sh from thrift * Add versioning to team, nl, hiredis and initramfs * Change sonic-slave to support snmpd build from sources * Remove src/tenjin * Add recipe for lldpd * Add recipe for mpdecimal * Remove hiredis directory on rebuild * Add recipe for Mellanox hw management * Remove generic image from all targets for Mellanox * Add support for python wheels * Add lldp and snmp dockers * Sync docker-database to include libjemalloc * Fix asyncsnmp variable name * Change default build configuration Redirect output to log files by default Set number of jobs to nproc value Do not print dependencies Fix logging to print log of failed job into console * Use docker inspect to check if sonic-slave image exists * Use config in slave.mk directly * Disable color output by default * Remove sswsdk dependency from lldp and snmp dockers * Fix comment in py wheels install targets * Add dependency between two versions of sswsdk * Add containers to mellanox platform lldp, snmp and database containers * Add recipe for team docker * Add team docker to mellanox platform * Encrypt password passed to build_debian.sh * Update mellanox SAI version Make version and revision setting only in main recipe * Fix error handling in makefiles As makefiles use .ONESHELL we should add -e option to shell options in order to exit after any command fails * Add recipe for platform monitor image * Add platfotm monitor to mellanox targets * Ignore submodules when building base image
This commit is contained in:
parent
154b281cfb
commit
e9098b99fb
8
.gitmodules
vendored
8
.gitmodules
vendored
@ -14,16 +14,16 @@
|
|||||||
path = src/sonic-swss
|
path = src/sonic-swss
|
||||||
url = https://github.com/Azure/sonic-swss
|
url = https://github.com/Azure/sonic-swss
|
||||||
[submodule "src/p4-switch/switch"]
|
[submodule "src/p4-switch/switch"]
|
||||||
path = src/p4-switch/switch
|
path = platform/p4/p4-switch/switch
|
||||||
url = https://github.com/lguohan/switch
|
url = https://github.com/lguohan/switch
|
||||||
[submodule "src/p4-bmv2/behavioral-model"]
|
[submodule "src/p4-bmv2/behavioral-model"]
|
||||||
path = src/p4-bmv2/behavioral-model
|
path = platform/p4/p4-bmv/behavioral-model
|
||||||
url = https://github.com/lguohan/behavioral-model
|
url = https://github.com/lguohan/behavioral-model
|
||||||
[submodule "src/p4c-bm/p4c-bm"]
|
[submodule "src/p4c-bm/p4c-bm"]
|
||||||
path = src/p4c-bm/p4c-bm
|
path = platform/p4/p4c-bm/p4c-bm
|
||||||
url = https://github.com/krambn/p4c-bm
|
url = https://github.com/krambn/p4c-bm
|
||||||
[submodule "src/p4-hlir/p4-hlir"]
|
[submodule "src/p4-hlir/p4-hlir"]
|
||||||
path = src/p4-hlir/p4-hlir
|
path = platform/p4/p4-hlir/p4-hlir
|
||||||
url = https://github.com/p4lang/p4-hlir
|
url = https://github.com/p4lang/p4-hlir
|
||||||
[submodule "quagga"]
|
[submodule "quagga"]
|
||||||
path = src/sonic-quagga
|
path = src/sonic-quagga
|
||||||
|
216
Makefile
216
Makefile
@ -1,197 +1,39 @@
|
|||||||
## TODO: if install dev package really happens, rebuild the depending project
|
###############################################################################
|
||||||
|
## Wrapper for starting make inside sonic-slave container
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
## Arguments from make command line
|
SHELL = /bin/bash
|
||||||
USERNAME=
|
|
||||||
PASSWORD_ENCRYPTED=
|
|
||||||
|
|
||||||
## Redis server/tools version
|
USER := $(shell id -un)
|
||||||
REDIS_VERSION=3.2.4-1~bpo8+1_amd64
|
PWD := $(shell pwd)
|
||||||
|
|
||||||
## Select bash for commands
|
MAKEFLAGS += -B
|
||||||
SHELL := /bin/bash
|
|
||||||
|
|
||||||
## Capture all the files in SDK directories
|
DOCKER_RUN := docker run --rm=true --privileged \
|
||||||
MLNX-SDK-DEBS=$(notdir $(wildcard src/mlnx-sdk/*.deb))
|
-v $(PWD):/sonic \
|
||||||
BRCM-SDK-DEBS=$(notdir $(wildcard src/brcm-sdk/*.deb))
|
-it sonic-slave-$(USER)
|
||||||
CAVM-SDK-DEBS=$(notdir $(wildcard src/cavm-sdk/*.deb))
|
|
||||||
|
|
||||||
LIBNL-DEBS=libnl-3-200_3.2.27-1_amd64.deb libnl-3-dev_3.2.27-1_amd64.deb libnl-genl-3-200_3.2.27-1_amd64.deb libnl-genl-3-dev_3.2.27-1_amd64.deb libnl-route-3-200_3.2.27-1_amd64.deb libnl-route-3-dev_3.2.27-1_amd64.deb libnl-nf-3-200_3.2.27-1_amd64.deb libnl-nf-3-dev_3.2.27-1_amd64.deb libnl-cli-3-200_3.2.27-1_amd64.deb libnl-cli-3-dev_3.2.27-1_amd64.deb
|
DOCKER_BUILD = docker build --no-cache \
|
||||||
|
--build-arg user=$(USER) \
|
||||||
|
--build-arg uid=$(shell id -u) \
|
||||||
|
--build-arg guid=$(shell id -g) \
|
||||||
|
-t sonic-slave-$(USER) \
|
||||||
|
sonic-slave
|
||||||
|
|
||||||
LIBTEAM-DEBS=libteam5_1.26-1_amd64.deb libteamdctl0_1.26-1_amd64.deb libteam-dev_1.26-1_amd64.deb libteam-utils_1.26-1_amd64.deb
|
.PHONY: sonic-slave-build sonic-slave-bash
|
||||||
|
|
||||||
## Function: build_docker, image_name save_file
|
.DEFAULT_GOAL := all
|
||||||
## build a docker image and save to a file
|
|
||||||
define build_docker
|
|
||||||
docker build --no-cache -t $(1) dockers/$(1)
|
|
||||||
mkdir -p `dirname $(2)`
|
|
||||||
docker save $(1) | gzip -c > $(2)
|
|
||||||
endef
|
|
||||||
|
|
||||||
## Rules: phony targets
|
%::
|
||||||
.phony : brcm-all mlnx-all cavm-all p4-all
|
@docker inspect --type image sonic-slave-$(USER) &> /dev/null || $(DOCKER_BUILD)
|
||||||
|
@$(DOCKER_RUN) make \
|
||||||
|
-C sonic \
|
||||||
|
-f slave.mk \
|
||||||
|
PLATFORM=$(PLATFORM) \
|
||||||
|
$@
|
||||||
|
|
||||||
## Rules: redirect to sub directory
|
sonic-slave-build :
|
||||||
src/%:
|
@$(DOCKER_BUILD)
|
||||||
$(MAKE) \
|
|
||||||
REDIS_VERSION=$(REDIS_VERSION) \
|
|
||||||
LIBNL-DEBS="$(LIBNL-DEBS)" \
|
|
||||||
LIBTEAM-DEBS="$(LIBTEAM-DEBS)" \
|
|
||||||
-C src $(subst src/,,$@)
|
|
||||||
|
|
||||||
## Rules: docker-snmp-sv2
|
sonic-slave-bash :
|
||||||
dockers/docker-snmp-sv2/deps/%.deb: src/%.deb
|
@$(DOCKER_RUN) bash
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
dockers/docker-snmp-sv2/deps/python3/%.whl: src/%.whl
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
|
|
||||||
## Rules: docker-lldp-sv2
|
|
||||||
dockers/docker-lldp-sv2/deps/%.deb: src/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
dockers/docker-lldp-sv2/deps/%.whl: src/%.whl
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
|
|
||||||
## Rules: docker-fpm
|
|
||||||
dockers/docker-fpm/deps/fpmsyncd: src/fpmsyncd
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
dockers/docker-fpm/deps/%.deb: src/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
|
|
||||||
## Rules: docker-team
|
|
||||||
dockers/docker-team/deps/teamsyncd: src/teamsyncd
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
dockers/docker-team/deps/%.deb: src/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
|
|
||||||
## Rules: docker-orchagent-mlnx
|
|
||||||
$(addprefix dockers/docker-orchagent-mlnx/deps/,libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb swss_1.0.0_amd64.deb) : dockers/docker-orchagent-mlnx/deps/%.deb : src/mlnx/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
dockers/docker-orchagent-mlnx/deps/%.deb: src/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
|
|
||||||
## Rules: docker-orchagent-cavm
|
|
||||||
$(addprefix dockers/docker-orchagent-cavm/deps/,libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb swss_1.0.0_amd64.deb) : dockers/docker-orchagent-cavm/deps/%.deb : src/cavm/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
dockers/docker-orchagent-cavm/deps/%.deb: src/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
|
|
||||||
## Rules: docker-orchagent (brcm)
|
|
||||||
$(addprefix dockers/docker-orchagent/deps/,libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb swss_1.0.0_amd64.deb) : dockers/docker-orchagent/deps/%.deb : src/brcm/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
dockers/docker-orchagent/deps/%.deb: src/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
|
|
||||||
## Rules: docker-syncd-mlnx
|
|
||||||
$(addprefix dockers/docker-syncd-mlnx/deps/,$(MLNX-SDK-DEBS)) : dockers/docker-syncd-mlnx/deps/%.deb : src/mlnx-sdk/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
$(addprefix dockers/docker-syncd-mlnx/deps/,syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb) : dockers/docker-syncd-mlnx/deps/%.deb : src/mlnx/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
dockers/docker-syncd-mlnx/deps/%.deb: src/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
dockers/docker-syncd-mlnx/deps/fw-SPC.mfa: src/mlnx-sdk/fw-SPC.mfa
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
|
|
||||||
## Rules: docker-syncd-cavm
|
|
||||||
$(addprefix dockers/docker-syncd-cavm/deps/,$(CAVM-SDK-DEBS)) : dockers/docker-syncd-cavm/deps/%.deb : src/cavm-sdk/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
$(addprefix dockers/docker-syncd-cavm/deps/,syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb) : dockers/docker-syncd-cavm/deps/%.deb : src/cavm/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
dockers/docker-syncd-cavm/deps/%.deb: src/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
|
|
||||||
## Rules: docker-syncd (brcm)
|
|
||||||
$(addprefix dockers/docker-syncd/deps/,$(BRCM-SDK-DEBS)) : dockers/docker-syncd/deps/%.deb : src/brcm-sdk/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
$(addprefix dockers/docker-syncd/deps/,syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb): dockers/docker-syncd/deps/%.deb : src/brcm/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
dockers/docker-syncd/deps/%.deb: src/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
|
|
||||||
## Rules: docker-database
|
|
||||||
dockers/docker-database/deps/%.deb: src/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
|
|
||||||
## Rules: docker-sonic (p4)
|
|
||||||
$(addprefix dockers/docker-sonic-p4/deps/,swss_1.0.0_amd64.deb syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb) : dockers/docker-sonic-p4/deps/%.deb : src/p4/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
dockers/docker-sonic-p4/deps/%.deb: src/%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
|
|
||||||
## Rules: docker images
|
|
||||||
target/docker-base.gz:
|
|
||||||
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
|
|
||||||
|
|
||||||
target/docker-snmp-sv2.gz: target/docker-base.gz $(addprefix dockers/docker-snmp-sv2/deps/,python3/sswsdk-2.0.1-py3-none-any.whl python3/asyncsnmp-2.1.0-py3-none-any.whl libsnmp-base_5.7.3+dfsg-1.5_all.deb libsnmp30_5.7.3+dfsg-1.5_amd64.deb snmp_5.7.3+dfsg-1.5_amd64.deb snmpd_5.7.3+dfsg-1.5_amd64.deb)
|
|
||||||
docker load < $<
|
|
||||||
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
|
|
||||||
|
|
||||||
target/docker-lldp-sv2.gz: target/docker-base.gz $(addprefix dockers/docker-lldp-sv2/deps/,sswsdk-2.0.1-py2-none-any.whl sonic_d-2.0.0-py2-none-any.whl lldpd_0.9.5-0_amd64.deb)
|
|
||||||
docker load < $<
|
|
||||||
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
|
|
||||||
|
|
||||||
target/docker-syncd.gz: target/docker-base.gz $(addprefix dockers/docker-syncd/deps/,$(BRCM-SDK-DEBS) libhiredis0.13_0.13.3-2_amd64.deb libswsscommon_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb syncd_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb $(LIBNL-DEBS))
|
|
||||||
## TODO: remove placeholders for the dependencies
|
|
||||||
touch dockers/docker-syncd/deps/{dsserve,bcmcmd}
|
|
||||||
docker load < $<
|
|
||||||
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
|
|
||||||
|
|
||||||
target/docker-syncd-mlnx.gz: target/docker-base.gz $(addprefix dockers/docker-syncd-mlnx/deps/,$(MLNX-SDK-DEBS) libhiredis0.13_0.13.3-2_amd64.deb libswsscommon_1.0.0_amd64.deb syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb $(LIBNL-DEBS)) dockers/docker-syncd-mlnx/deps/fw-SPC.mfa
|
|
||||||
docker load < $<
|
|
||||||
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
|
|
||||||
|
|
||||||
target/docker-syncd-cavm.gz: target/docker-base.gz $(addprefix dockers/docker-syncd-cavm/deps/,$(CAVM-SDK-DEBS) libhiredis0.13_0.13.3-2_amd64.deb libswsscommon_1.0.0_amd64.deb syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb $(LIBNL-DEBS))
|
|
||||||
docker load < $<
|
|
||||||
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
|
|
||||||
|
|
||||||
target/docker-orchagent.gz: target/docker-base.gz $(addprefix dockers/docker-orchagent/deps/,libhiredis0.13_0.13.3-2_amd64.deb libswsscommon_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb swss_1.0.0_amd64.deb $(LIBNL-DEBS) $(LIBTEAM-DEBS))
|
|
||||||
docker load < $<
|
|
||||||
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
|
|
||||||
|
|
||||||
target/docker-orchagent-mlnx.gz: target/docker-base.gz $(addprefix dockers/docker-orchagent-mlnx/deps/,libhiredis0.13_0.13.3-2_amd64.deb libswsscommon_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb swss_1.0.0_amd64.deb $(LIBNL-DEBS) $(LIBTEAM-DEBS))
|
|
||||||
docker load < $<
|
|
||||||
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
|
|
||||||
|
|
||||||
target/docker-orchagent-cavm.gz: target/docker-base.gz $(addprefix dockers/docker-orchagent-cavm/deps/,libhiredis0.13_0.13.3-2_amd64.deb libswsscommon_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb swss_1.0.0_amd64.deb $(LIBNL-DEBS) $(LIBTEAM-DEBS))
|
|
||||||
docker load < $<
|
|
||||||
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
|
|
||||||
|
|
||||||
target/docker-fpm.gz: target/docker-base.gz $(addprefix dockers/docker-fpm/deps/,libswsscommon_1.0.0_amd64.deb libhiredis0.13_0.13.3-2_amd64.deb quagga_0.99.24.1-2.1_amd64.deb fpmsyncd $(LIBNL-DEBS))
|
|
||||||
docker load < $<
|
|
||||||
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
|
|
||||||
|
|
||||||
target/docker-team.gz: target/docker-base.gz $(addprefix dockers/docker-team/deps/,libswsscommon_1.0.0_amd64.deb libhiredis0.13_0.13.3-2_amd64.deb $(LIBNL-DEBS) $(LIBTEAM-DEBS) teamsyncd)
|
|
||||||
docker load < $<
|
|
||||||
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
|
|
||||||
|
|
||||||
target/docker-database.gz: target/docker-base.gz $(addprefix dockers/docker-database/deps/,redis-server_$(REDIS_VERSION).deb redis-tools_$(REDIS_VERSION).deb)
|
|
||||||
docker load < $<
|
|
||||||
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
|
|
||||||
|
|
||||||
target/docker-sonic-p4.gz: target/docker-base.gz $(addprefix dockers/docker-sonic-p4/deps/,libswsscommon_1.0.0_amd64.deb libhiredis0.13_0.13.3-2_amd64.deb quagga_0.99.24.1-2.1_amd64.deb syncd_1.0.0_amd64.deb swss_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb libthrift-0.9.3_0.9.3-2_amd64.deb redis-server_$(REDIS_VERSION).deb redis-tools_$(REDIS_VERSION).deb p4-bmv2_1.0.0_amd64.deb p4-switch_1.0.0_amd64.deb)
|
|
||||||
docker load < $<
|
|
||||||
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
|
|
||||||
|
|
||||||
target/docker-platform-monitor.gz: target/docker-base.gz
|
|
||||||
docker load < $<
|
|
||||||
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
|
|
||||||
|
|
||||||
## Rules: linux image content
|
|
||||||
deps/linux-image-3.16.0-4-amd64_%.deb: src/sonic-linux-kernel/linux-image-3.16.0-4-amd64_%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
deps/initramfs-tools_%.deb: src/initramfs-tools/initramfs-tools_%.deb
|
|
||||||
mkdir -p `dirname $@` && cp $< $(dir $@)
|
|
||||||
|
|
||||||
target/sonic-generic.bin: deps/linux-image-3.16.0-4-amd64_3.16.7-ckt11-2+acs8u2_amd64.deb deps/initramfs-tools_0.120_all.deb
|
|
||||||
./build_debian.sh "$(USERNAME)" "$(PASSWORD_ENCRYPTED)" && TARGET_MACHINE=generic ./build_image.sh
|
|
||||||
target/sonic-aboot.bin: deps/linux-image-3.16.0-4-amd64_3.16.7-ckt11-2+acs8u2_amd64.deb deps/initramfs-tools_0.120_all.deb
|
|
||||||
./build_debian.sh "$(USERNAME)" "$(PASSWORD_ENCRYPTED)" && TARGET_MACHINE=aboot ./build_image.sh
|
|
||||||
|
|
||||||
## Note: docker-fpm.gz must be the last to build the implicit dependency fpmsyncd
|
|
||||||
brcm-all: target/sonic-generic.bin $(addprefix target/,docker-syncd.gz docker-orchagent.gz docker-fpm.gz docker-team.gz docker-database.gz docker-snmp-sv2.gz docker-lldp-sv2.gz docker-platform-monitor.gz)
|
|
||||||
|
|
||||||
## Note: docker-fpm.gz must be the last to build the implicit dependency fpmsyncd
|
|
||||||
mlnx-all: target/sonic-generic.bin $(addprefix target/,docker-syncd-mlnx.gz docker-orchagent-mlnx.gz docker-fpm.gz docker-team.gz docker-database.gz docker-snmp-sv2.gz docker-lldp-sv2.gz docker-platform-monitor.gz)
|
|
||||||
|
|
||||||
## Note: docker-fpm.gz must be the last to build the implicit dependency fpmsyncd
|
|
||||||
cavm-all: target/sonic-generic.bin $(addprefix target/,docker-syncd-cavm.gz docker-orchagent-cavm.gz docker-fpm.gz docker-team.gz docker-database.gz docker-snmp-sv2.gz docker-lldp-sv2.gz docker-platform-monitor.gz)
|
|
||||||
|
|
||||||
p4-all: $(addprefix target/,docker-sonic-p4.gz)
|
|
||||||
|
@ -112,9 +112,9 @@ sudo LANG=C chroot $FILESYSTEM_ROOT /bin/bash -c 'cd /dev && MAKEDEV generic'
|
|||||||
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install busybox
|
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install busybox
|
||||||
echo '[INFO] Install SONiC linux kernel image'
|
echo '[INFO] Install SONiC linux kernel image'
|
||||||
## Note: duplicate apt-get command to ensure every line return zero
|
## Note: duplicate apt-get command to ensure every line return zero
|
||||||
sudo dpkg --root=$FILESYSTEM_ROOT -i deps/initramfs-tools_*.deb || \
|
sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/initramfs-tools_*.deb || \
|
||||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
|
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
|
||||||
sudo dpkg --root=$FILESYSTEM_ROOT -i deps/linux-image-3.16.0-4-amd64_*.deb || \
|
sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/linux-image-3.16.0-4-amd64_*.deb || \
|
||||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
|
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
|
||||||
|
|
||||||
## Update initramfs for booting with squashfs+aufs
|
## Update initramfs for booting with squashfs+aufs
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
## Retrieval short version of Git revision hash for partition metadata
|
## Retrieval short version of Git revision hash for partition metadata
|
||||||
[ -z "$(git status --untracked-files=no -s)" ] || {
|
[ -z "$(git status --untracked-files=no -s --ignore-submodules)" ] || {
|
||||||
echo "Error: There is local changes not committed to git repo. Cannot get a revision hash for partition metadata."
|
echo "Error: There is local changes not committed to git repo. Cannot get a revision hash for partition metadata."
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit dfb5c2f46bf982207c8dbc2c5af589a0ba1b3ddc
|
Subproject commit 73b5fcee2840adcc64bee5e6ffb226a9928959e4
|
@ -1,19 +0,0 @@
|
|||||||
FROM docker-base
|
|
||||||
|
|
||||||
COPY ["deps/redis-tools_*.deb", "deps/redis-server_*.deb", "/deps/"]
|
|
||||||
|
|
||||||
## Install packages
|
|
||||||
## Clean up
|
|
||||||
RUN apt-get update && \
|
|
||||||
dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; \
|
|
||||||
dpkg_apt /deps/redis-tools_*.deb && \
|
|
||||||
dpkg_apt /deps/redis-server_*.deb && \
|
|
||||||
apt-get clean -y && apt-get autoclean -y && apt-get autoremove -y
|
|
||||||
|
|
||||||
RUN sed -ri 's/^daemonize yes$/daemonize no/; \
|
|
||||||
s/^logfile .*$/logfile ""/; \
|
|
||||||
s/^# syslog-enabled no$/syslog-enabled no/; \
|
|
||||||
s/^# unixsocket/unixsocket/ \
|
|
||||||
' /etc/redis/redis.conf
|
|
||||||
|
|
||||||
ENTRYPOINT service redis-server start
|
|
19
dockers/docker-database/Dockerfile.template
Normal file
19
dockers/docker-database/Dockerfile.template
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
FROM docker-base
|
||||||
|
|
||||||
|
RUN apt-get update
|
||||||
|
|
||||||
|
COPY deps/ deps
|
||||||
|
|
||||||
|
SED_DPKG
|
||||||
|
|
||||||
|
## Clean up
|
||||||
|
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
||||||
|
RUN rm -rf /deps
|
||||||
|
|
||||||
|
RUN sed -ri 's/^daemonize yes$/daemonize no/; \
|
||||||
|
s/^logfile .*$/logfile ""/; \
|
||||||
|
s/^# syslog-enabled no$/syslog-enabled no/; \
|
||||||
|
s/^# unixsocket/unixsocket/ \
|
||||||
|
' /etc/redis/redis.conf
|
||||||
|
|
||||||
|
ENTRYPOINT service redis-server start
|
@ -1,24 +0,0 @@
|
|||||||
FROM docker-base
|
|
||||||
|
|
||||||
RUN apt-get update
|
|
||||||
|
|
||||||
COPY ["deps/libhiredis0.13*.deb", "deps/libnl-3-200_*.deb", "deps/libnl-genl-3-200_*.deb", "deps/libnl-route-3-200_*.deb", "deps/libswsscommon_*.deb", "deps/quagga_*", "/deps/"]
|
|
||||||
|
|
||||||
## Get fpmsyncd
|
|
||||||
## Get Quagga
|
|
||||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; \
|
|
||||||
dpkg_apt /deps/libhiredis0.13*.deb \
|
|
||||||
&& dpkg_apt /deps/libnl-3-200_*.deb \
|
|
||||||
&& dpkg_apt /deps/libnl-genl-3-200_*.deb \
|
|
||||||
&& dpkg_apt /deps/libnl-route-3-200_*.deb \
|
|
||||||
&& dpkg_apt /deps/libswsscommon_*.deb \
|
|
||||||
&& dpkg_apt /deps/quagga_*.deb
|
|
||||||
|
|
||||||
COPY ["deps/fpmsyncd", "start.sh", "/usr/bin/"]
|
|
||||||
|
|
||||||
## Clean up
|
|
||||||
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
|
||||||
RUN rm -rf /deps
|
|
||||||
|
|
||||||
ENTRYPOINT /usr/bin/start.sh \
|
|
||||||
&& /bin/bash
|
|
16
dockers/docker-fpm/Dockerfile.template
Normal file
16
dockers/docker-fpm/Dockerfile.template
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
FROM docker-base
|
||||||
|
|
||||||
|
RUN apt-get update
|
||||||
|
|
||||||
|
RUN apt-get install -y libdbus-1-3 libdaemon0 libjansson4
|
||||||
|
|
||||||
|
COPY deps/ deps
|
||||||
|
|
||||||
|
SED_DPKG
|
||||||
|
|
||||||
|
## Clean up
|
||||||
|
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
||||||
|
RUN rm -rf /deps
|
||||||
|
|
||||||
|
ENTRYPOINT /usr/bin/start.sh \
|
||||||
|
&& /bin/bash
|
@ -1,23 +0,0 @@
|
|||||||
FROM docker-base
|
|
||||||
|
|
||||||
COPY deps/sswsdk*.whl deps/sonic_d*.whl deps/lldpd_*.deb /deps/
|
|
||||||
|
|
||||||
## Pre-install the fundamental packages
|
|
||||||
## Install Python SSWSDK
|
|
||||||
## Install LLDP Sync Daemon
|
|
||||||
## Note: dpkg_apt function has the benefit to detect missing .deb file
|
|
||||||
## Clean up
|
|
||||||
RUN apt-get update && \
|
|
||||||
dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; } && \
|
|
||||||
dpkg_apt /deps/lldpd_*.deb && \
|
|
||||||
apt-get install -y python-pip supervisor && \
|
|
||||||
pip install /deps/sswsdk*.whl && \
|
|
||||||
pip install /deps/sonic_d*.whl && \
|
|
||||||
apt-get remove -y python-pip && \
|
|
||||||
apt-get purge -y && apt-get autoclean -y && apt-get autoremove -y && \
|
|
||||||
rm -rf /deps ~/.cache
|
|
||||||
|
|
||||||
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
|
||||||
COPY reconfigure.sh /opt/reconfigure.sh
|
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/bin/supervisord"]
|
|
23
dockers/docker-lldp-sv2/Dockerfile.template
Normal file
23
dockers/docker-lldp-sv2/Dockerfile.template
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
FROM docker-base
|
||||||
|
|
||||||
|
COPY deps /deps
|
||||||
|
COPY python-wheels /python-wheels
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y python-pip supervisor libbsd0 libevent-2.0-5 libjansson4 libwrap0 libxml2 libpci3 libperl5.20
|
||||||
|
|
||||||
|
## Pre-install the fundamental packages
|
||||||
|
## Install Python SSWSDK
|
||||||
|
## Install LLDP Sync Daemon
|
||||||
|
|
||||||
|
SED_DPKG
|
||||||
|
|
||||||
|
RUN pip install /python-wheels/sswsdk-2.0.1-py2-none-any.whl && \
|
||||||
|
pip install /python-wheels/sonic_d-2.0.0-py2-none-any.whl && \
|
||||||
|
apt-get remove -y python-pip && \
|
||||||
|
apt-get purge -y && apt-get autoclean -y && apt-get autoremove -y && \
|
||||||
|
rm -rf /deps /python-wheels ~/.cache
|
||||||
|
|
||||||
|
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||||
|
COPY reconfigure.sh /opt/reconfigure.sh
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/bin/supervisord"]
|
@ -1,29 +0,0 @@
|
|||||||
FROM docker-base
|
|
||||||
|
|
||||||
RUN apt-get update
|
|
||||||
|
|
||||||
COPY ["deps/libhiredis0.13*.deb", "deps/libnl-3-200_*.deb", "deps/libnl-genl-3-200_*.deb", "deps/libnl-route-3-200_*.deb", "deps/libnl-cli-3-200_*.deb", "deps/libnl-nf-3-200_*.deb", "deps/libswsscommon_*.deb", "deps/libsairedis_*.deb", "deps/libsaimetadata_*.deb", "deps/libteam5_*.deb", "deps/swss_*.deb", "/deps/"]
|
|
||||||
|
|
||||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; \
|
|
||||||
dpkg_apt /deps/libhiredis0.13*.deb \
|
|
||||||
&& dpkg_apt /deps/libnl-3-200_*.deb \
|
|
||||||
&& dpkg_apt /deps/libnl-genl-3-200_*.deb \
|
|
||||||
&& dpkg_apt /deps/libnl-route-3-200_*.deb \
|
|
||||||
&& dpkg_apt /deps/libnl-nf-3-200_*.deb \
|
|
||||||
&& dpkg_apt /deps/libnl-cli-3-200_*.deb \
|
|
||||||
&& dpkg_apt /deps/libswsscommon_*.deb \
|
|
||||||
&& dpkg_apt /deps/libsairedis_*.deb \
|
|
||||||
&& dpkg_apt /deps/libsaimetadata_*.deb \
|
|
||||||
&& dpkg_apt /deps/libteam5_*.deb \
|
|
||||||
&& dpkg_apt /deps/swss_*.deb
|
|
||||||
|
|
||||||
RUN apt-get install -f -y ifupdown bridge-utils redis-tools
|
|
||||||
|
|
||||||
COPY start.sh /usr/bin/start.sh
|
|
||||||
|
|
||||||
## Clean up
|
|
||||||
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
|
||||||
RUN rm -rf /deps
|
|
||||||
|
|
||||||
ENTRYPOINT ["/bin/bash"]
|
|
||||||
CMD ["/usr/bin/start.sh"]
|
|
18
dockers/docker-orchagent/Dockerfile.template
Executable file
18
dockers/docker-orchagent/Dockerfile.template
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
FROM docker-base
|
||||||
|
|
||||||
|
RUN apt-get update
|
||||||
|
|
||||||
|
RUN apt-get install -f -y ifupdown bridge-utils libdbus-1-3 libdaemon0 libjansson4
|
||||||
|
|
||||||
|
COPY deps /deps
|
||||||
|
|
||||||
|
SED_DPKG
|
||||||
|
|
||||||
|
COPY start.sh /usr/bin/start.sh
|
||||||
|
|
||||||
|
## Clean up
|
||||||
|
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
||||||
|
RUN rm -rf /deps
|
||||||
|
|
||||||
|
ENTRYPOINT ["/bin/bash"]
|
||||||
|
CMD ["/usr/bin/start.sh"]
|
@ -1,7 +1,7 @@
|
|||||||
FROM docker-base
|
FROM docker-base
|
||||||
|
|
||||||
COPY deps/snmp_*.deb deps/snmpd_*.deb deps/libsnmp-base_*.deb deps/libsnmp30_*.deb /deps/
|
COPY deps /deps
|
||||||
COPY deps/python3/*.whl /python3/
|
COPY python-wheels /python-wheels
|
||||||
|
|
||||||
# enable -O for all Python calls
|
# enable -O for all Python calls
|
||||||
ENV PYTHONOPTIMIZE 1
|
ENV PYTHONOPTIMIZE 1
|
||||||
@ -9,15 +9,12 @@ ENV PYTHONOPTIMIZE 1
|
|||||||
## Pre-install the fundamental packages
|
## Pre-install the fundamental packages
|
||||||
## Install Python SSWSDK (SNMP subagent dependency)
|
## Install Python SSWSDK (SNMP subagent dependency)
|
||||||
## Install SNMP subagent
|
## Install SNMP subagent
|
||||||
## Note: dpkg_apt function has the benefit to detect missing .deb file
|
|
||||||
## Clean up
|
## Clean up
|
||||||
RUN apt-get update && \
|
RUN apt-get update && apt-get install -y libmysqlclient-dev libmysqld-dev libperl-dev libpci-dev libpci3 libsensors4 libsensors4-dev libwrap0-dev
|
||||||
dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; } && \
|
|
||||||
dpkg_apt /deps/libsnmp-base_*.deb && \
|
SED_DPKG
|
||||||
dpkg_apt /deps/libsnmp30_*.deb && \
|
|
||||||
dpkg_apt /deps/snmp_*.deb && \
|
RUN rm -rf /deps
|
||||||
dpkg_apt /deps/snmpd_*.deb && \
|
|
||||||
rm -rf /deps
|
|
||||||
|
|
||||||
# install subagent
|
# install subagent
|
||||||
RUN apt-get -y install build-essential wget libssl-dev openssl supervisor && \
|
RUN apt-get -y install build-essential wget libssl-dev openssl supervisor && \
|
||||||
@ -28,8 +25,8 @@ RUN apt-get -y install build-essential wget libssl-dev openssl supervisor && \
|
|||||||
make && make install && \
|
make && make install && \
|
||||||
ldconfig && \
|
ldconfig && \
|
||||||
cd .. && rm -rf Python-3.5.2 && rm Python-3.5.2.tgz && \
|
cd .. && rm -rf Python-3.5.2 && rm Python-3.5.2.tgz && \
|
||||||
pip3 install --no-cache-dir /python3/*py3*.whl hiredis && \
|
pip3 install --no-cache-dir /python-wheels/*py3*.whl hiredis && \
|
||||||
rm -rf /python3 && \
|
rm -rf /python-wheels && \
|
||||||
python3 -m sonic_ax_impl install && \
|
python3 -m sonic_ax_impl install && \
|
||||||
python3 -m pip uninstall -y pip setuptools && \
|
python3 -m pip uninstall -y pip setuptools && \
|
||||||
/bin/bash -c "rm -rf /usr/lib/python3.5/{unittest,lib2to3,tkinter,idlelib,email,test}" && \
|
/bin/bash -c "rm -rf /usr/lib/python3.5/{unittest,lib2to3,tkinter,idlelib,email,test}" && \
|
@ -1,33 +0,0 @@
|
|||||||
FROM docker-base
|
|
||||||
|
|
||||||
RUN apt-get update
|
|
||||||
|
|
||||||
RUN apt-get install -y net-tools ethtool tcpdump ifupdown bridge-utils
|
|
||||||
|
|
||||||
COPY ["deps/libthrift-0.9.3_*.deb", "deps/libhiredis0.13*.deb", "deps/redis-tools_*.deb", "deps/redis-server_*.deb", "deps/libswsscommon_*.deb", "deps/p4-bmv2_*.deb", "deps/p4-switch_*.deb", "deps/libsairedis_*.deb", "deps/libsaimetadata_*.deb", "deps/syncd_*.deb", "deps/swss_*.deb", "deps/quagga_*.deb", "/deps/"]
|
|
||||||
|
|
||||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /deps/libthrift-0.9.3_*.deb
|
|
||||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /deps/libhiredis0.13*.deb
|
|
||||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /deps/redis-tools_*.deb
|
|
||||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /deps/redis-server_*.deb
|
|
||||||
|
|
||||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /deps/libswsscommon_*.deb
|
|
||||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /deps/p4-bmv2_*.deb
|
|
||||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /deps/p4-switch_*.deb
|
|
||||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /deps/libsairedis_*.deb
|
|
||||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /deps/libsaimetadata_*.deb
|
|
||||||
|
|
||||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /deps/syncd_*.deb
|
|
||||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /deps/swss_*.deb
|
|
||||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /deps/quagga_*.deb
|
|
||||||
|
|
||||||
ADD port_config.ini /port_config.ini
|
|
||||||
ADD startup.sh /scripts/startup.sh
|
|
||||||
|
|
||||||
ADD rsyslog.conf /etc/rsyslog.conf
|
|
||||||
|
|
||||||
## Clean up
|
|
||||||
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
|
||||||
RUN rm -rf /deps
|
|
||||||
|
|
||||||
ENTRYPOINT /bin/bash
|
|
@ -1,23 +0,0 @@
|
|||||||
FROM docker-base
|
|
||||||
|
|
||||||
COPY ["deps/libnl-3-200_*.deb", "deps/libnl-genl-3-200_*.deb", "deps/libnl-route-3-200_*.deb", "deps/libnl-nf-3-200_*.deb", "deps/libnl-cli-3-200_*.deb", "deps/libteam5_*.deb", "deps/libteam-utils_*.deb", "deps/libteamdctl0_*.deb", "deps/libhiredis0.13_*.deb", "deps/libswsscommon_*.deb", "/deps/"]
|
|
||||||
|
|
||||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; \
|
|
||||||
dpkg_apt /deps/libnl-3-200_*.deb \
|
|
||||||
&& dpkg_apt /deps/libnl-genl-3-200_*.deb \
|
|
||||||
&& dpkg_apt /deps/libnl-route-3-200_*.deb \
|
|
||||||
&& dpkg_apt /deps/libnl-nf-3-200_*.deb \
|
|
||||||
&& dpkg_apt /deps/libnl-cli-3-200_*.deb \
|
|
||||||
&& dpkg_apt /deps/libteam5_*.deb \
|
|
||||||
&& dpkg_apt /deps/libteam-utils_*.deb \
|
|
||||||
&& dpkg_apt /deps/libteamdctl0_*.deb \
|
|
||||||
&& dpkg_apt /deps/libhiredis0.13_*.deb \
|
|
||||||
&& dpkg_apt /deps/libswsscommon_*.deb
|
|
||||||
|
|
||||||
COPY ["deps/teamsyncd", "start.sh", "/usr/bin/"]
|
|
||||||
|
|
||||||
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
|
||||||
RUN rm -rf /deps
|
|
||||||
|
|
||||||
ENTRYPOINT ["/bin/bash"]
|
|
||||||
CMD ["/usr/bin/start.sh"]
|
|
15
dockers/docker-team/Dockerfile.template
Normal file
15
dockers/docker-team/Dockerfile.template
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
FROM docker-base
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -f -y libdbus-1-3 libdaemon0 libjansson4
|
||||||
|
|
||||||
|
COPY deps /deps
|
||||||
|
|
||||||
|
SED_DPKG
|
||||||
|
|
||||||
|
COPY start.sh /usr/bin/start.sh
|
||||||
|
|
||||||
|
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
||||||
|
RUN rm -rf /deps
|
||||||
|
|
||||||
|
ENTRYPOINT ["/bin/bash"]
|
||||||
|
CMD ["/usr/bin/start.sh"]
|
20
platform/broadcom/rules.mk
Normal file
20
platform/broadcom/rules.mk
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
OPENNSL = libopennsl_6.4.11-1+0~20160719212144.23~1.gbp8ec2d1_amd64.deb
|
||||||
|
$(OPENNSL)_PATH = $(PLATFORM_PATH)/brcm_sdk
|
||||||
|
BRCM_SAI = libsaibcm_1.0.2~20160727172452.52_amd64.deb
|
||||||
|
$(BRCM_SAI)_PATH = $(PLATFORM_PATH)/brcm_sdk
|
||||||
|
BRCM_SAI_DBG = libsaibcm-dbg_1.0.2~20160727172452.52_amd64.deb
|
||||||
|
$(BRCM_SAI_DEV)_PATH = $(PLATFORM_PATH)/brcm_sdk
|
||||||
|
BRCM_SAI_DEV = libsaibcm-dev_1.0.2~20160727172452.52_amd64.deb
|
||||||
|
$(BRCM_SAI_DBG)_PATH = $(PLATFORM_PATH)/brcm_sdk
|
||||||
|
|
||||||
|
SONIC_COPY_DEBS += $(OPENNSL) $(BRCM_SAI) $(BRCM_SAI_DBG) $(BRCM_SAI_DEV)
|
||||||
|
|
||||||
|
# TODO: Put dependencies for SDK packages
|
||||||
|
|
||||||
|
SONIC_ALL += $(SONIC_GENERIC) $(DOCKER_SYNCD) $(DOCKER_ORCHAGENT) $(DOCKER_FPM)
|
||||||
|
|
||||||
|
# Inject brcm sai into sairedis
|
||||||
|
$(LIBSAIREDIS)_DEPENDS += $(BRCM_LIBSAI)
|
||||||
|
|
||||||
|
# Runtime dependency on brcm sai is set only for syncd
|
||||||
|
$(SYNCD)_RDEPENDS += $(BRCM_LIBSAI)
|
21
platform/cavium/rules.mk
Normal file
21
platform/cavium/rules.mk
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
CAVM_LIBSAI = libsai.deb
|
||||||
|
$(CAVM_LIBSAI)_PATH = $(PLATFORM_PATH)/cavm_sdk
|
||||||
|
CAVM_SAI = sai.deb
|
||||||
|
$(CAVM_SAI)_PATH = $(PLATFORM_PATH)/cavm_sdk
|
||||||
|
XP_TOOLS = xp-tools.deb
|
||||||
|
$(XP_TOOLS)_PATH = $(PLATFORM_PATH)/cavm_sdk
|
||||||
|
XPSHELL = xpshell.deb
|
||||||
|
$(XPSHELL)_PATH = $(PLATFORM_PATH)/cavm_sdk
|
||||||
|
|
||||||
|
SONIC_COPY_DEBS += $(CAVM_LIBSAI) $(CAVM_SAI) $(XP_TOOLS) $(XPSHELL)
|
||||||
|
|
||||||
|
# TODO: Put dependencies for SDK packages
|
||||||
|
|
||||||
|
SONIC_ALL += $(SONIC_GENERIC) $(DOCKER_SYNCD_CAVM) $(DOCKER_ORCHAGENT) \
|
||||||
|
$(DOCKER_FPM)
|
||||||
|
|
||||||
|
# Inject cavm sai into sairedis
|
||||||
|
$(LIBSAIREDIS)_DEPENDS += $(CAVM_LIBSAI)
|
||||||
|
|
||||||
|
# Runtime dependency on cavm sai is set only for syncd
|
||||||
|
$(SYNCD)_RDEPENDS += $(CAVM_LIBSAI)
|
8
platform/mellanox/docker-syncd-mlnx.mk
Normal file
8
platform/mellanox/docker-syncd-mlnx.mk
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# docker image for mlnx syncd
|
||||||
|
|
||||||
|
DOCKER_SYNCD_MLNX = docker-syncd-mlnx.gz
|
||||||
|
$(DOCKER_SYNCD_MLNX)_PATH = $(PLATFORM_PATH)/docker-syncd-mlnx
|
||||||
|
$(DOCKER_SYNCD_MLNX)_DEPENDS += $(SYNCD) $(MFT)
|
||||||
|
$(DOCKER_SYNCD_MLNX)_FILES += $(MLNX_FW)
|
||||||
|
$(DOCKER_SYNCD_MLNX)_LOAD_DOCKERS += $(DOCKER_BASE)
|
||||||
|
SONIC_DOCKER_IMAGES += $(DOCKER_SYNCD_MLNX)
|
20
platform/mellanox/docker-syncd-mlnx/Dockerfile.template
Executable file
20
platform/mellanox/docker-syncd-mlnx/Dockerfile.template
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
FROM docker-base
|
||||||
|
|
||||||
|
RUN apt-get update
|
||||||
|
|
||||||
|
COPY deps /deps
|
||||||
|
|
||||||
|
RUN apt-get install -y libxml2
|
||||||
|
|
||||||
|
SED_DPKG
|
||||||
|
|
||||||
|
COPY ["start.sh", "/usr/bin/"]
|
||||||
|
COPY ["mlnx-fw-upgrade.sh", "/usr/bin/"]
|
||||||
|
COPY ["/deps/fw-SPC.mfa", "/etc/mlnx/"]
|
||||||
|
|
||||||
|
## Clean up
|
||||||
|
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
||||||
|
RUN rm -rf /deps
|
||||||
|
|
||||||
|
ENTRYPOINT ["/bin/bash"]
|
||||||
|
CMD ["/usr/bin/start.sh"]
|
53
platform/mellanox/docker-syncd-mlnx/mlnx-fw-upgrade.sh
Executable file
53
platform/mellanox/docker-syncd-mlnx/mlnx-fw-upgrade.sh
Executable file
@ -0,0 +1,53 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
query_retry_count_max="10"
|
||||||
|
required_fw_version="13.1130.0010"
|
||||||
|
fw_file=/etc/mlnx/fw-SPC.mfa
|
||||||
|
|
||||||
|
run_or_fail() {
|
||||||
|
$1
|
||||||
|
if [[ $? != 0 ]]; then
|
||||||
|
echo $1 failed
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# wait until devices will be available
|
||||||
|
query_retry_count="0"
|
||||||
|
mlxfwmanager --query > /dev/null
|
||||||
|
|
||||||
|
while [[ (${query_retry_count} -lt ${query_retry_count_max}) && ($? -ne "0") ]]; do
|
||||||
|
sleep 1
|
||||||
|
query_retry_count=$[${query_retry_count}+1]
|
||||||
|
mlxfwmanager --query > /dev/null
|
||||||
|
done
|
||||||
|
|
||||||
|
run_or_fail "mlxfwmanager --query" > /tmp/mlnxfwmanager-query.txt
|
||||||
|
|
||||||
|
# get current firmware version
|
||||||
|
found_fw=false
|
||||||
|
for word in `cat /tmp/mlnxfwmanager-query.txt`
|
||||||
|
do
|
||||||
|
if [[ ${found_fw} == true ]]; then
|
||||||
|
fw_version=${word}
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if [[ ${word} == FW ]]; then
|
||||||
|
found_fw=true
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -z ${fw_version} ]]; then
|
||||||
|
echo "Could not retreive current FW version."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${required_fw_version} == ${fw_version} ]]; then
|
||||||
|
echo "Mellanox firmware is up to date."
|
||||||
|
else
|
||||||
|
echo "Mellanox firmware required version is ${required_fw_version}. Installing compatible version..."
|
||||||
|
run_or_fail "mlxfwmanager -i ${fw_file} -u -f -y"
|
||||||
|
|
||||||
|
# exit from here so that syncd service will restart
|
||||||
|
exit 0
|
||||||
|
fi
|
21
platform/mellanox/docker-syncd-mlnx/start.sh
Executable file
21
platform/mellanox/docker-syncd-mlnx/start.sh
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
function clean_up {
|
||||||
|
service syncd stop
|
||||||
|
service rsyslog stop
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
trap clean_up SIGTERM SIGKILL
|
||||||
|
|
||||||
|
# fw-upgrade will exit if firmware was actually upgraded or if some error
|
||||||
|
# occures
|
||||||
|
. mlnx-fw-upgrade.sh
|
||||||
|
|
||||||
|
# FIXME: the script cannot trap SIGTERM signal and it exits without clean_up
|
||||||
|
# Remove rsyslogd.pid file manually so that to start the rsyslog instantly
|
||||||
|
[ -e /var/run/rsyslogd.pid ] && rm /var/run/rsyslogd.pid
|
||||||
|
service rsyslog start
|
||||||
|
service syncd start
|
||||||
|
|
||||||
|
read
|
5
platform/mellanox/fw.mk
Normal file
5
platform/mellanox/fw.mk
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# mellanox firmware
|
||||||
|
|
||||||
|
MLNX_FW = fw-SPC.mfa
|
||||||
|
$(MLNX_FW)_URL = https://github.com/Mellanox/SAI-Implementation/raw/sonic/sdk/fw-SPC.mfa
|
||||||
|
SONIC_ONLINE_FILES += $(MLNX_FW)
|
9
platform/mellanox/hw-management.mk
Normal file
9
platform/mellanox/hw-management.mk
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Mellanox HW Management
|
||||||
|
|
||||||
|
MLNX_HW_MANAGEMENT_VERSION = 20.7.2016
|
||||||
|
|
||||||
|
export MLNX_HW_MANAGEMENT_VERSION
|
||||||
|
|
||||||
|
MLNX_HW_MANAGEMENT = hw-management_1.mlnx.$(MLNX_HW_MANAGEMENT_VERSION)_amd64.deb
|
||||||
|
$(MLNX_HW_MANAGEMENT)_SRC_PATH = $(PLATFORM_PATH)/hw-management
|
||||||
|
SONIC_MAKE_DEBS += $(MLNX_HW_MANAGEMENT)
|
17
platform/mellanox/hw-management/Makefile
Normal file
17
platform/mellanox/hw-management/Makefile
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
.ONESHELL:
|
||||||
|
SHELL = /bin/bash
|
||||||
|
|
||||||
|
MAIN_TARGET = hw-management_1.mlnx.$(MLNX_HW_MANAGEMENT_VERSION)_amd64.deb
|
||||||
|
|
||||||
|
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||||
|
# get sources
|
||||||
|
sudo rm -rf hw-management
|
||||||
|
wget -N -O mlnx-hw-mgmt-$(MLNX_HW_MANAGEMENT_VERSION).tar.gz https://github.com/Mellanox/mellanox-openswitch/raw/master/hw-mgmt/mlnx-hw-mgmt-$(MLNX_HW_MANAGEMENT_VERSION).tar.gz
|
||||||
|
tar xzf mlnx-hw-mgmt-$(MLNX_HW_MANAGEMENT_VERSION).tar.gz
|
||||||
|
|
||||||
|
# build
|
||||||
|
pushd hw-management
|
||||||
|
sudo debian/rules binary KVERSION=$(KVERSION)
|
||||||
|
popd
|
||||||
|
|
||||||
|
mv $* $(DEST)/
|
8
platform/mellanox/mft.mk
Normal file
8
platform/mellanox/mft.mk
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# Mellanox SAI
|
||||||
|
|
||||||
|
MFT = mft-4.5.0-31.amd64.deb
|
||||||
|
$(MFT)_SRC_PATH = $(PLATFORM_PATH)/mft
|
||||||
|
SONIC_MAKE_DEBS += $(MFT)
|
||||||
|
|
||||||
|
KERNEL_MFT = kernel-mft-dkms_4.5.0-3.16.0-4-amd64_all.deb
|
||||||
|
$(eval $(call add_derived_package,$(MFT),$(KERNEL_MFT)))
|
32
platform/mellanox/mft/Makefile
Normal file
32
platform/mellanox/mft/Makefile
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
.ONESHELL:
|
||||||
|
SHELL = /bin/bash
|
||||||
|
|
||||||
|
MFT_NAME = mft-4.5.0-31-x86_64-deb
|
||||||
|
MFT_TGZ = $(MFT_NAME).tgz
|
||||||
|
KERNELVER = 3.16.0-4-amd64
|
||||||
|
SRC_DEB = kernel-mft-dkms_4.5.0-31_all.deb
|
||||||
|
|
||||||
|
MAIN_TARGET = mft-4.5.0-31.amd64.deb
|
||||||
|
DERIVED_TARGETS = kernel-mft-dkms_4.5.0-3.16.0-4-amd64_all.deb
|
||||||
|
|
||||||
|
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||||
|
rm -rf $(MFT_NAME)
|
||||||
|
wget -O $(MFT_TGZ) http://www.mellanox.com/downloads/MFT/$(MFT_TGZ)
|
||||||
|
tar xzf $(MFT_TGZ)
|
||||||
|
pushd $(MFT_NAME)/SDEBS
|
||||||
|
|
||||||
|
# put a lock here because dpkg does not allow installing packages in parallel
|
||||||
|
while true; do
|
||||||
|
if mkdir $(DEST)/dpkg_lock &> /dev/null; then
|
||||||
|
{ echo here && sudo dpkg -i $(SRC_DEB) && rm -d $(DEST)/dpkg_lock && break; } || { rm -d $(DEST)/dpkg_lock && exit 1 ; }
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
tar xvf `sudo dkms mkdriverdisk kernel-mft-dkms/4.5.0 -a all -d ubuntu -k $(KERNELVER) --media tar | grep "Disk image location" | cut -d':' -f2`
|
||||||
|
popd
|
||||||
|
|
||||||
|
# fix timestamp because we do not actually build tools, only kernel
|
||||||
|
touch $(MFT_NAME)/DEBS/$*
|
||||||
|
mv $(MFT_NAME)/SDEBS/ubuntu-drivers/3.16.0/$(DERIVED_TARGETS) $(MFT_NAME)/DEBS/$* $(DEST)
|
||||||
|
|
||||||
|
$(addprefix $(DEST)/, $(DERIVED_TARGETS)): $(DEST)/% : $(DEST)/$(MAIN_TARGET)
|
12
platform/mellanox/mlnx-sai.mk
Normal file
12
platform/mellanox/mlnx-sai.mk
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# Mellanox SAI
|
||||||
|
|
||||||
|
MLNX_SAI_VERSION = 161120
|
||||||
|
MLNX_SAI_REVISION = c7ccc8a8ba9864b62b0c038ad57d6dd94771f5ee
|
||||||
|
|
||||||
|
export MLNX_SAI_VERSION MLNX_SAI_REVISION
|
||||||
|
|
||||||
|
MLNX_SAI = mlnx-sai_1.mlnx.$(MLNX_SAI_VERSION)_amd64.deb
|
||||||
|
$(MLNX_SAI)_SRC_PATH = $(PLATFORM_PATH)/mlnx-sai
|
||||||
|
$(MLNX_SAI)_DEPENDS += $(MLNX_SDK_DEBS)
|
||||||
|
$(MLNX_SAI)_RDEPENDS += $(MLNX_SDK_RDEBS)
|
||||||
|
SONIC_MAKE_DEBS += $(MLNX_SAI)
|
21
platform/mellanox/mlnx-sai/Makefile
Normal file
21
platform/mellanox/mlnx-sai/Makefile
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
.ONESHELL:
|
||||||
|
SHELL = /bin/bash
|
||||||
|
.SHELLFLAGS += -e
|
||||||
|
|
||||||
|
MAIN_TARGET = mlnx-sai_1.mlnx.$(MLNX_SAI_VERSION)_amd64.deb
|
||||||
|
|
||||||
|
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||||
|
# get sources
|
||||||
|
rm -rf SAI-Implementation
|
||||||
|
git clone https://github.com/Mellanox/SAI-Implementation.git
|
||||||
|
|
||||||
|
# build
|
||||||
|
pushd SAI-Implementation
|
||||||
|
git checkout $(MLNX_SAI_REVISION)
|
||||||
|
pushd mlnx_sai
|
||||||
|
chmod a+x autogen.sh
|
||||||
|
debuild -e 'make_extra_flags="DEFS=-DACS_OS"' -us -uc -d -b
|
||||||
|
popd
|
||||||
|
|
||||||
|
mv $* $(DEST)/
|
||||||
|
popd
|
21
platform/mellanox/rules.mk
Normal file
21
platform/mellanox/rules.mk
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
include $(PLATFORM_PATH)/sdk.mk
|
||||||
|
include $(PLATFORM_PATH)/fw.mk
|
||||||
|
include $(PLATFORM_PATH)/mft.mk
|
||||||
|
include $(PLATFORM_PATH)/mlnx-sai.mk
|
||||||
|
include $(PLATFORM_PATH)/hw-management.mk
|
||||||
|
include $(PLATFORM_PATH)/docker-syncd-mlnx.mk
|
||||||
|
|
||||||
|
SONIC_ALL += $(DOCKER_SYNCD_MLNX) \
|
||||||
|
$(DOCKER_ORCHAGENT) \
|
||||||
|
$(DOCKER_FPM) \
|
||||||
|
$(DOCKER_DATABASE) \
|
||||||
|
$(DOCKER_LLDP_SV2) \
|
||||||
|
$(DOCKER_SNMP_SV2) \
|
||||||
|
$(DOCKER_TEAM) \
|
||||||
|
$(DOCKER_PLATFORM_MONITOR)
|
||||||
|
|
||||||
|
# Inject mlnx sai into sairedis
|
||||||
|
$(LIBSAIREDIS)_DEPENDS += $(MLNX_SAI)
|
||||||
|
|
||||||
|
# Runtime dependency on mlnx sai is set only for syncd
|
||||||
|
$(SYNCD)_RDEPENDS += $(MLNX_SAI)
|
49
platform/mellanox/sdk.mk
Normal file
49
platform/mellanox/sdk.mk
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
MLNX_SDK_BASE_URL = https://github.com/Mellanox/SAI-Implementation/raw/sonic/sdk
|
||||||
|
MLNX_SDK_VERSION = 4.2.3002
|
||||||
|
MLNX_SDK_RDEBS += $(APPLIBS) $(IPROUTE2) $(SX_ACL_RM) $(SX_COMPLIB) \
|
||||||
|
$(SX_EXAMPLES) $(SX_GEN_UTILS) $(SX_SCEW) $(SX_SDN_HAL) \
|
||||||
|
$(SXD_LIBS) $(TESTX)
|
||||||
|
|
||||||
|
MLNX_SDK_DEBS += $(APPLIBS_DEV) $(IPROUTE2_DEV) $(SX_ACL_RM_DEV) \
|
||||||
|
$(SX_COMPLIB_DEV) $(SX_COMPLIB_DEV_STATIC) $(SX_EXAMPLES_DEV) \
|
||||||
|
$(SX_GEN_UTILS_DEV) $(SX_SCEW_DEV) $(SX_SCEW_DEV_STATIC) \
|
||||||
|
$(SX_SDN_HAL_DEV) $(SX_SDN_HAL_DEV_STATIC) $(SXD_LIBS_DEV) \
|
||||||
|
$(SXD_LIBS_DEV_STATIC) $(TESTX_DEV)
|
||||||
|
|
||||||
|
APPLIBS = applibs_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
|
||||||
|
APPLIBS_DEV = applibs-dev_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(APPLIBS),$(APPLIBS_DEV)))
|
||||||
|
IPROUTE2 = iproute2_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
|
||||||
|
IPROUTE2_DEV = iproute2-dev_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(IPROUTE2),$(IPROUTE2_DEV)))
|
||||||
|
SX_COMPLIB = sx-complib_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
|
||||||
|
SX_COMPLIB_DEV = sx-complib-dev_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(SX_COMPLIB),$(SX_COMPLIB_DEV)))
|
||||||
|
SX_COMPLIB_DEV_STATIC = sx-complib-dev-static_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(SX_COMPLIB),$(SX_COMPLIB_DEV_STATIC)))
|
||||||
|
SX_EXAMPLES = sx-examples_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
|
||||||
|
SX_EXAMPLES_DEV = sx-examples-dev_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(SX_EXAMPLES),$(SX_EXAMPLES_DEV)))
|
||||||
|
SX_GEN_UTILS = sx-gen-utils_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
|
||||||
|
SX_GEN_UTILS_DEV = sx-gen-utils-dev_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(SX_GEN_UTILS),$(SX_GEN_UTILS_DEV)))
|
||||||
|
SX_SCEW = sx-scew_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
|
||||||
|
SX_SCEW_DEV = sx-scew-dev_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(SX_SCEW),$(SX_SCEW_DEV)))
|
||||||
|
SX_SCEW_DEV_STATIC = sx-scew-dev-static_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(SX_SCEW),$(SX_SCEW_DEV_STATIC)))
|
||||||
|
SXD_LIBS = sxd-libs_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
|
||||||
|
SXD_LIBS_DEV = sxd-libs-dev_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(SXD_LIBS),$(SXD_LIBS_DEV)))
|
||||||
|
SXD_LIBS_DEV_STATIC = sxd-libs-dev-static_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(SXD_LIBS),$(SXD_LIBS_DEV_STATIC)))
|
||||||
|
|
||||||
|
define make_url
|
||||||
|
$(1)_URL = $(MLNX_SDK_BASE_URL)/$(1)
|
||||||
|
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(foreach deb,$(MLNX_SDK_DEBS),$(call make_url,$(deb))))
|
||||||
|
$(eval $(foreach deb,$(MLNX_SDK_RDEBS),$(call make_url,$(deb))))
|
||||||
|
|
||||||
|
SONIC_ONLINE_DEBS += $(MLNX_SDK_RDEBS)
|
7
platform/p4/docker-sonic-p4.mk
Normal file
7
platform/p4/docker-sonic-p4.mk
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# docker image for p4 sonic docker image
|
||||||
|
|
||||||
|
DOCKER_SONIC_P4 = docker-sonic-p4.gz
|
||||||
|
$(DOCKER_SONIC_P4)_PATH = $(PLATFORM_PATH)/docker-sonic-p4
|
||||||
|
$(DOCKER_SONIC_P4)_DEPENDS += $(SWSS) $(SYNCD) $(P4_SWITCH)
|
||||||
|
$(DOCKER_SONIC_P4)_LOAD_DOCKERS += $(DOCKER_BASE)
|
||||||
|
SONIC_DOCKER_IMAGES += $(DOCKER_SONIC_P4)
|
20
platform/p4/docker-sonic-p4/Dockerfile.template
Normal file
20
platform/p4/docker-sonic-p4/Dockerfile.template
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
FROM docker-base
|
||||||
|
|
||||||
|
RUN apt-get update
|
||||||
|
|
||||||
|
RUN apt-get install -y net-tools ethtool tcpdump ifupdown bridge-utils
|
||||||
|
|
||||||
|
COPY deps /deps
|
||||||
|
|
||||||
|
SED_DPKG
|
||||||
|
|
||||||
|
ADD port_config.ini /port_config.ini
|
||||||
|
ADD startup.sh /scripts/startup.sh
|
||||||
|
|
||||||
|
ADD rsyslog.conf /etc/rsyslog.conf
|
||||||
|
|
||||||
|
## Clean up
|
||||||
|
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
||||||
|
RUN rm -rf /deps
|
||||||
|
|
||||||
|
ENTRYPOINT /bin/bash
|
7
platform/p4/p4-bmv.mk
Normal file
7
platform/p4/p4-bmv.mk
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# p4 bmv package
|
||||||
|
|
||||||
|
P4_BMV = p4-bmv2_1.0.0_amd64.deb
|
||||||
|
$(P4_BMV)_DEPENDS += $(LIBTHRIFT_DEV) $(PYTHON_THRIFT) $(THRIFT_COMPILER)
|
||||||
|
$(P4_BMV)_RDEPENDS += $(LIBTHRIFT) $(PYTHON_THRIFT) $(THRIFT_COMPILER)
|
||||||
|
$(P4_BMV)_SRC_PATH = $(PLATFORM_PATH)/p4-bmv/behavioral-model
|
||||||
|
SONIC_DPKG_DEBS += $(P4_BMV)
|
5
platform/p4/p4-hlir.mk
Normal file
5
platform/p4/p4-hlir.mk
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# p4 bmv package
|
||||||
|
|
||||||
|
P4_HLIR = python-p4-hlir_0.9.36-1_all.deb
|
||||||
|
$(P4_HLIR)_SRC_PATH = $(PLATFORM_PATH)/p4-hlir/p4-hlir
|
||||||
|
SONIC_PYTHON_STDEB_DEBS += $(P4_HLIR)
|
7
platform/p4/p4-switch.mk
Normal file
7
platform/p4/p4-switch.mk
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# p4 switch package
|
||||||
|
|
||||||
|
P4_SWITCH = p4-switch_1.0.0_amd64.deb
|
||||||
|
$(P4_SWITCH)_DEPENDS += $(P4C_BM) $(P4_BMV)
|
||||||
|
$(P4_SWITCH)_RDEPENDS += $(P4C_BM) $(P4_BMV)
|
||||||
|
$(P4_SWITCH)_SRC_PATH = $(PLATFORM_PATH)/p4-switch
|
||||||
|
SONIC_MAKE_DEBS += $(P4_SWITCH)
|
17
platform/p4/p4-switch/Makefile
Normal file
17
platform/p4/p4-switch/Makefile
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
SHELL = /bin/bash
|
||||||
|
.ONESHELL:
|
||||||
|
|
||||||
|
MAIN_TARGET = p4-switch_1.0.0_amd64.deb
|
||||||
|
|
||||||
|
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||||
|
pushd switch
|
||||||
|
|
||||||
|
mkdir -p p4-build/bmv2/switch
|
||||||
|
mkdir -p p4-build/bmv2/pd_thrift_gen
|
||||||
|
|
||||||
|
./autogen.sh
|
||||||
|
dpkg-buildpackage -us -uc -b -j4
|
||||||
|
|
||||||
|
popd
|
||||||
|
|
||||||
|
mv $* $(DEST)/
|
7
platform/p4/p4c-bm.mk
Normal file
7
platform/p4/p4c-bm.mk
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# p4c bm package
|
||||||
|
|
||||||
|
P4C_BM = python-p4c-bm_1.0.0-5415c416-1_all.deb
|
||||||
|
$(P4C_BM)_SRC_PATH = $(PLATFORM_PATH)/p4c-bm/p4c-bm
|
||||||
|
$(P4C_BM)_DEPENDS += $(TENJIN) $(P4_HLIR)
|
||||||
|
$(P4C_BM)_RDEPENDS += $(TENJIN) $(P4_HLIR)
|
||||||
|
SONIC_PYTHON_STDEB_DEBS += $(P4C_BM)
|
6
platform/p4/rules.mk
Normal file
6
platform/p4/rules.mk
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
include $(PLATFORM_PATH)/p4-switch.mk
|
||||||
|
include $(PLATFORM_PATH)/p4-bmv.mk
|
||||||
|
include $(PLATFORM_PATH)/p4-hlir.mk
|
||||||
|
include $(PLATFORM_PATH)/p4c-bm.mk
|
||||||
|
include $(PLATFORM_PATH)/tenjin.mk
|
||||||
|
include $(PLATFORM_PATH)/docker-sonic-p4.mk
|
5
platform/p4/tenjin.mk
Normal file
5
platform/p4/tenjin.mk
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# tenjin package
|
||||||
|
|
||||||
|
TENJIN = python-tenjin_1.1.1-1_all.deb
|
||||||
|
$(TENJIN)_SRC_PATH = $(PLATFORM_PATH)/tenjin
|
||||||
|
SONIC_MAKE_DEBS += $(TENJIN)
|
19
platform/p4/tenjin/Makefile
Normal file
19
platform/p4/tenjin/Makefile
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
SHELL = /bin/bash
|
||||||
|
.ONESHELL:
|
||||||
|
|
||||||
|
TENJIN_VERSION = 1.1.1
|
||||||
|
TENJIN_VERSION_FULL = $(TENJIN_VERSION)-1
|
||||||
|
|
||||||
|
MAIN_TARGET = python-tenjin_$(TENJIN_VERSION_FULL)_all.deb
|
||||||
|
|
||||||
|
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||||
|
rm -rf Tenjin-$(TENJIN_VERSION)
|
||||||
|
|
||||||
|
wget -nc http://pypi.python.org/packages/source/T/Tenjin/Tenjin-$(TENJIN_VERSION).tar.gz
|
||||||
|
tar xzf Tenjin-$(TENJIN_VERSION).tar.gz
|
||||||
|
|
||||||
|
pushd Tenjin-$(TENJIN_VERSION)
|
||||||
|
python setup.py --command-packages=stdeb.command bdist_deb
|
||||||
|
popd
|
||||||
|
|
||||||
|
mv Tenjin-$(TENJIN_VERSION)/deb_dist/$* $(DEST)/
|
7
rules/asyncsnmp-py3.mk
Normal file
7
rules/asyncsnmp-py3.mk
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# asyncsnmp python2 wheel
|
||||||
|
|
||||||
|
ASYNCSNMP_PY3 = asyncsnmp-2.1.0-py3-none-any.whl
|
||||||
|
$(ASYNCSNMP_PY3)_SRC_PATH = $(SRC_PATH)/sonic-snmpagent
|
||||||
|
$(ASYNCSNMP_PY3)_PYTHON_VERSION = 3
|
||||||
|
$(ASYNCSNMP_PY3)_DEPENDS += $(SSWSDK_PY3)
|
||||||
|
SONIC_PYTHON_WHEELS += $(ASYNCSNMP_PY3)
|
33
rules/config
Normal file
33
rules/config
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
###############################################################################
|
||||||
|
## Configuration parameters for SONiC build system
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# SONIC_CONFIG_VERBOSE - enable echoing for rules commands.
|
||||||
|
# Uncomment next line to enable:
|
||||||
|
# SONIC_CONFIG_VERBOSE = y
|
||||||
|
|
||||||
|
# SONIC_CONFIG_PRINT_DEPENDENCIES - show dependencies for each invoked target.
|
||||||
|
# Before executing rule for each target its dependencies are printed to console.
|
||||||
|
# Uncomment next line to enable:
|
||||||
|
# SONIC_CONFIG_PRINT_DEPENDENCIES = y
|
||||||
|
|
||||||
|
# SONIC_CONFIG_BUILD_JOBS - set number of jobs for parallel build.
|
||||||
|
# Corresponding -j argument will be passed to make command inside docker
|
||||||
|
# container.
|
||||||
|
SONIC_CONFIG_BUILD_JOBS = $(shell nproc)
|
||||||
|
|
||||||
|
# SONIC_CONFIG_LOG_TO_FILES - print output from execution of rule for each
|
||||||
|
# target into separate log file under target/log/.
|
||||||
|
# Useful when executing parallel build
|
||||||
|
# Uncomment next line to enable:
|
||||||
|
SONIC_CONFIG_LOG_TO_FILES = y
|
||||||
|
|
||||||
|
# SONIC_CONFIG_ENABLE_COLORS - enable colored output in build system.
|
||||||
|
# Comment next line to disable:
|
||||||
|
# SONIC_CONFIG_ENABLE_COLORS = y
|
||||||
|
|
||||||
|
# USERNAME - username for installer build
|
||||||
|
USERNAME = admin
|
||||||
|
|
||||||
|
# PASSWORD - password for installer build
|
||||||
|
PASSWORD = admin
|
7
rules/dbsyncd-py2.mk
Normal file
7
rules/dbsyncd-py2.mk
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# sonic-dbsyncd python2 wheel
|
||||||
|
|
||||||
|
DBSYNCD_PY2 = sonic_d-2.0.0-py2-none-any.whl
|
||||||
|
$(DBSYNCD_PY2)_SRC_PATH = $(SRC_PATH)/sonic-dbsyncd
|
||||||
|
$(DBSYNCD_PY2)_PYTHON_VERSION = 2
|
||||||
|
$(DBSYNCD_PY2)_DEPENDS += $(SSWSDK_PY2)
|
||||||
|
SONIC_PYTHON_WHEELS += $(DBSYNCD_PY2)
|
6
rules/docker-base.mk
Normal file
6
rules/docker-base.mk
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# docker base image
|
||||||
|
|
||||||
|
DOCKER_BASE = docker-base.gz
|
||||||
|
$(DOCKER_BASE)_PATH = $(DOCKERS_PATH)/docker-base
|
||||||
|
|
||||||
|
SONIC_SIMPLE_DOCKER_IMAGES += $(DOCKER_BASE)
|
7
rules/docker-database.mk
Normal file
7
rules/docker-database.mk
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# docker image for database
|
||||||
|
|
||||||
|
DOCKER_DATABASE = docker-database.gz
|
||||||
|
$(DOCKER_DATABASE)_PATH = $(DOCKERS_PATH)/docker-database
|
||||||
|
$(DOCKER_DATABASE)_DEPENDS += $(REDIS_SERVER) $(REDIS_TOOLS)
|
||||||
|
$(DOCKER_DATABASE)_LOAD_DOCKERS += $(DOCKER_BASE)
|
||||||
|
SONIC_DOCKER_IMAGES += $(DOCKER_DATABASE)
|
7
rules/docker-fpm.mk
Normal file
7
rules/docker-fpm.mk
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# docker image for fpm
|
||||||
|
|
||||||
|
DOCKER_FPM = docker-fpm.gz
|
||||||
|
$(DOCKER_FPM)_PATH = $(DOCKERS_PATH)/docker-fpm
|
||||||
|
$(DOCKER_FPM)_DEPENDS += $(QUAGGA) $(SWSS)
|
||||||
|
$(DOCKER_FPM)_LOAD_DOCKERS += $(DOCKER_BASE)
|
||||||
|
SONIC_DOCKER_IMAGES += $(DOCKER_FPM)
|
8
rules/docker-lldp-sv2.mk
Normal file
8
rules/docker-lldp-sv2.mk
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# docker image for lldp agent
|
||||||
|
|
||||||
|
DOCKER_LLDP_SV2 = docker-lldp-sv2.gz
|
||||||
|
$(DOCKER_LLDP_SV2)_PATH = $(DOCKERS_PATH)/docker-lldp-sv2
|
||||||
|
$(DOCKER_LLDP_SV2)_DEPENDS += $(LLDPD)
|
||||||
|
$(DOCKER_LLDP_SV2)_PYTHON_WHEELS += $(DBSYNCD_PY2)
|
||||||
|
$(DOCKER_LLDP_SV2)_LOAD_DOCKERS += $(DOCKER_BASE)
|
||||||
|
SONIC_DOCKER_IMAGES += $(DOCKER_LLDP_SV2)
|
7
rules/docker-orchagent.mk
Normal file
7
rules/docker-orchagent.mk
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# docker image for orchagent
|
||||||
|
|
||||||
|
DOCKER_ORCHAGENT = docker-orchagent.gz
|
||||||
|
$(DOCKER_ORCHAGENT)_PATH = $(DOCKERS_PATH)/docker-orchagent
|
||||||
|
$(DOCKER_ORCHAGENT)_DEPENDS += $(SWSS)
|
||||||
|
$(DOCKER_ORCHAGENT)_LOAD_DOCKERS += $(DOCKER_BASE)
|
||||||
|
SONIC_DOCKER_IMAGES += $(DOCKER_ORCHAGENT)
|
7
rules/docker-platform-monitor.mk
Normal file
7
rules/docker-platform-monitor.mk
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# docker platform monitor image
|
||||||
|
|
||||||
|
DOCKER_PLATFORM_MONITOR = docker-platform-monitor.gz
|
||||||
|
$(DOCKER_PLATFORM_MONITOR)_PATH = $(DOCKERS_PATH)/docker-platform-monitor
|
||||||
|
$(DOCKER_PLATFORM_MONITOR)_LOAD_DOCKERS = $(DOCKER_BASE)
|
||||||
|
|
||||||
|
SONIC_SIMPLE_DOCKER_IMAGES += $(DOCKER_PLATFORM_MONITOR)
|
8
rules/docker-snmp-sv2.mk
Normal file
8
rules/docker-snmp-sv2.mk
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# docker image for snmp agent
|
||||||
|
|
||||||
|
DOCKER_SNMP_SV2 = docker-snmp-sv2.gz
|
||||||
|
$(DOCKER_SNMP_SV2)_PATH = $(DOCKERS_PATH)/docker-snmp-sv2
|
||||||
|
$(DOCKER_SNMP_SV2)_DEPENDS += $(SNMP) $(SNMPD)
|
||||||
|
$(DOCKER_SNMP_SV2)_PYTHON_WHEELS += $(ASYNCSNMP_PY3)
|
||||||
|
$(DOCKER_SNMP_SV2)_LOAD_DOCKERS += $(DOCKER_BASE)
|
||||||
|
SONIC_DOCKER_IMAGES += $(DOCKER_SNMP_SV2)
|
7
rules/docker-team.mk
Normal file
7
rules/docker-team.mk
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# docker image for team agent
|
||||||
|
|
||||||
|
DOCKER_TEAM = docker-team.gz
|
||||||
|
$(DOCKER_TEAM)_PATH = $(DOCKERS_PATH)/docker-team
|
||||||
|
$(DOCKER_TEAM)_DEPENDS += $(SWSS)
|
||||||
|
$(DOCKER_TEAM)_LOAD_DOCKERS += $(DOCKER_BASE)
|
||||||
|
SONIC_DOCKER_IMAGES += $(DOCKER_TEAM)
|
103
rules/functions
Normal file
103
rules/functions
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
###############################################################################
|
||||||
|
## FUNCTIONS
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
## Colored output
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Enable colored output
|
||||||
|
ifeq ($(SONIC_CONFIG_ENABLE_COLORS),y)
|
||||||
|
ifeq ($(MAKE_TERMOUT),)
|
||||||
|
RED=\033[1;31m
|
||||||
|
PURPLE=\033[1;35m
|
||||||
|
CYAN=\033[1;36m
|
||||||
|
GREEN=\033[1;32m
|
||||||
|
GRAY=\033[0m
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Print red colored output
|
||||||
|
# call:
|
||||||
|
# log_red message
|
||||||
|
log_red = echo -e "$(RED)$(1)$(GRAY)"
|
||||||
|
|
||||||
|
# Print purple colored output
|
||||||
|
# call:
|
||||||
|
# log_purple message
|
||||||
|
log_purple = echo -e "$(PURPLE)$(1)$(GRAY)"
|
||||||
|
|
||||||
|
# Print blue colored output
|
||||||
|
# call:
|
||||||
|
# log_blue message
|
||||||
|
log_blue = echo -e "$(CYAN)$(1)$(GRAY)"
|
||||||
|
|
||||||
|
# Print green colored output
|
||||||
|
# call:
|
||||||
|
# log_green message
|
||||||
|
log_green = echo -e "$(GREEN)$(1)$(GRAY)"
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
## Logging
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
ifeq ($(SONIC_CONFIG_LOG_TO_FILES),y)
|
||||||
|
FLUSH_LOG = rm -f $@.log
|
||||||
|
|
||||||
|
LOG = &>> $(PROJECT_ROOT)/$@.log || { [ $$? -eq 0 ] || cat $(PROJECT_ROOT)/$@.log ; false ; }
|
||||||
|
endif
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
## Header and footer for each target
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Print name of target being built
|
||||||
|
PRINT_TARGET = $(call log_purple,Executing rules for $@)
|
||||||
|
|
||||||
|
# Print name of target that finished build
|
||||||
|
PRINT_END_TARGET = $(call log_green,Finished $@)
|
||||||
|
|
||||||
|
# Dump targets taht current depends on
|
||||||
|
ifeq ($(SONIC_CONFIG_PRINT_DEPENDENCIES),y)
|
||||||
|
PRINT_DEPENDENCIES = $(call log_blue,Dependencies for $@ are $^)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Enable verbose mode
|
||||||
|
ifneq ($(SONIC_CONFIG_VERBOSE),y)
|
||||||
|
ENABLE_VERBOSE = @
|
||||||
|
endif
|
||||||
|
|
||||||
|
# header for each rule
|
||||||
|
define HEADER
|
||||||
|
$(ENABLE_VERBOSE)
|
||||||
|
$(PRINT_TARGET)
|
||||||
|
$(PRINT_DEPENDENCIES)
|
||||||
|
$(FLUSH_LOG)
|
||||||
|
endef
|
||||||
|
|
||||||
|
# footer for each rule
|
||||||
|
define FOOTER
|
||||||
|
$(PRINT_END_TARGET)
|
||||||
|
endef
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
## Definition of derived target
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# call:
|
||||||
|
# add_derived_package some_deb.deb, some_derived_deb
|
||||||
|
define add_derived_package
|
||||||
|
$(2)_DEPENDS += $(1)
|
||||||
|
$(2)_RDEPENDS += $($(1)_RDEPENDS)
|
||||||
|
$(2)_DERIVED_FROM = $(1)
|
||||||
|
$(1)_DERIVED_DEBS += $(2)
|
||||||
|
$(2)_URL = $($(1)_URL)
|
||||||
|
$(2)_SRC_PATH = $($(1)_SRC_PATH)
|
||||||
|
SONIC_DERIVED_DEBS += $(2)
|
||||||
|
endef
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
## Utility functions
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
expand = $(foreach d,$(1),$(call expand,$($(d)_$(2)),$(2))) $(1)
|
18
rules/hiredis.mk
Normal file
18
rules/hiredis.mk
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# libhiredis package
|
||||||
|
|
||||||
|
HIREDIS_VERSION = 0.13.3
|
||||||
|
HIREDIS_VERSION_FULL = $(HIREDIS_VERSION)-2
|
||||||
|
|
||||||
|
export HIREDIS_VERSION HIREDIS_VERSION_FULL
|
||||||
|
|
||||||
|
LIBHIREDIS = libhiredis0.13_$(HIREDIS_VERSION_FULL)_amd64.deb
|
||||||
|
$(LIBHIREDIS)_SRC_PATH = $(SRC_PATH)/hiredis
|
||||||
|
$(LIBHIREDIS)_DEPENDS += $(REDIS_SERVER) $(REDIS_TOOLS) $(REDIS_SENTINEL)
|
||||||
|
$(LIBHIREDIS)_RDEPENDS += $(REDIS_SERVER) $(REDIS_TOOLS) $(REDIS_SENTINEL)
|
||||||
|
SONIC_MAKE_DEBS += $(LIBHIREDIS)
|
||||||
|
|
||||||
|
LIBHIREDIS_DEV = libhiredis-dev_$(HIREDIS_VERSION_FULL)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(LIBHIREDIS),$(LIBHIREDIS_DEV)))
|
||||||
|
|
||||||
|
LIBHIREDIS_DBG = libhiredis-dbg_$(HIREDIS_VERSION_FULL)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(LIBHIREDIS),$(LIBHIREDIS_DBG)))
|
8
rules/initramfs-tools.mk
Normal file
8
rules/initramfs-tools.mk
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# initramfs-tools package
|
||||||
|
|
||||||
|
INITRAMFS_TOOLS_VERSION = 0.120
|
||||||
|
export INITRAMFS_TOOLS_VERSION
|
||||||
|
|
||||||
|
INITRAMFS_TOOLS = initramfs-tools_$(INITRAMFS_TOOLS_VERSION)_all.deb
|
||||||
|
$(INITRAMFS_TOOLS)_SRC_PATH = $(SRC_PATH)/initramfs-tools
|
||||||
|
SONIC_MAKE_DEBS += $(INITRAMFS_TOOLS)
|
44
rules/libnl3.mk
Normal file
44
rules/libnl3.mk
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# libnl3
|
||||||
|
|
||||||
|
LIBNL3_VERSION = 3.2.27-1
|
||||||
|
|
||||||
|
export LIBNL3_VERSION
|
||||||
|
|
||||||
|
LIBNL3 = libnl-3-200_$(LIBNL3_VERSION)_amd64.deb
|
||||||
|
$(LIBNL3)_SRC_PATH = $(SRC_PATH)/libnl3
|
||||||
|
SONIC_MAKE_DEBS += $(LIBNL3)
|
||||||
|
|
||||||
|
LIBNL3_DEV = libnl-3-dev_$(LIBNL3_VERSION)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(LIBNL3),$(LIBNL3_DEV)))
|
||||||
|
|
||||||
|
LIBNL_GENL3 = libnl-genl-3-200_$(LIBNL3_VERSION)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(LIBNL3),$(LIBNL_GENL3)))
|
||||||
|
|
||||||
|
LIBNL_GENL3_DEV = libnl-genl-3-dev_$(LIBNL3_VERSION)_amd64.deb
|
||||||
|
$(LIBNL_GENL3_DEV)_DEPENDS += $(LIBNL_GENL3) $(LIBNL3_DEV)
|
||||||
|
$(eval $(call add_derived_package,$(LIBNL3),$(LIBNL_GENL3_DEV)))
|
||||||
|
|
||||||
|
LIBNL_ROUTE3 = libnl-route-3-200_$(LIBNL3_VERSION)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(LIBNL3),$(LIBNL_ROUTE3)))
|
||||||
|
|
||||||
|
LIBNL_ROUTE3_DEV = libnl-route-3-dev_$(LIBNL3_VERSION)_amd64.deb
|
||||||
|
$(LIBNL_ROUTE3_DEV)_DEPENDS += $(LIBNL_ROUTE3) $(LIBNL3_DEV)
|
||||||
|
$(eval $(call add_derived_package,$(LIBNL3),$(LIBNL_ROUTE3_DEV)))
|
||||||
|
|
||||||
|
LIBNL_NF3 = libnl-nf-3-200_$(LIBNL3_VERSION)_amd64.deb
|
||||||
|
$(LIBNL_NF3)_DEPENDS += $(LIBNL_ROUTE3_DEV)
|
||||||
|
$(LIBNL_NF3)_RDEPENDS += $(LIBNL_ROUTE3)
|
||||||
|
$(eval $(call add_derived_package,$(LIBNL3),$(LIBNL_NF3)))
|
||||||
|
|
||||||
|
LIBNL_NF3_DEV = libnl-nf-3-dev_$(LIBNL3_VERSION)_amd64.deb
|
||||||
|
$(LIBNL_NF3_DEV)_DEPENDS += $(LIBNL_NF3)
|
||||||
|
$(eval $(call add_derived_package,$(LIBNL3),$(LIBNL_NF3_DEV)))
|
||||||
|
|
||||||
|
LIBNL_CLI = libnl-cli-3-200_$(LIBNL3_VERSION)_amd64.deb
|
||||||
|
$(LIBNL_CLI)_DEPENDS += $(LIBNL_GENL3_DEV) $(LIBNL_NF3_DEV) $(LIBNL_ROUTE3_DEV)
|
||||||
|
$(LIBNL_CLI)_RDEPENDS += $(LIBNL_GENL3) $(LIBNL_NF3) $(LIBNL_ROUTE3)
|
||||||
|
$(eval $(call add_derived_package,$(LIBNL3),$(LIBNL_CLI)))
|
||||||
|
|
||||||
|
LIBNL_CLI_DEV = libnl-cli-3-dev_$(LIBNL3_VERSION)_amd64.deb
|
||||||
|
$(LIBNL_CLI_DEV)_DEPENDS += $(LIBNL_CLI) $(LIBNL_GENL3_DEV) $(LIBNL_NF3_DEV) $(LIBNL_ROUTE3_DEV)
|
||||||
|
$(eval $(call add_derived_package,$(LIBNL3),$(LIBNL_CLI_DEV)))
|
21
rules/libteam.mk
Normal file
21
rules/libteam.mk
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# libteam packages
|
||||||
|
|
||||||
|
LIBTEAM_VERSION = 1.26-1
|
||||||
|
|
||||||
|
export LIBTEAM_VERSION
|
||||||
|
|
||||||
|
LIBTEAM = libteam5_$(LIBTEAM_VERSION)_amd64.deb
|
||||||
|
$(LIBTEAM)_SRC_PATH = $(SRC_PATH)/libteam
|
||||||
|
$(LIBTEAM)_DEPENDS += $(LIBNL_GENL3_DEV) $(LIBNL_CLI_DEV)
|
||||||
|
SONIC_MAKE_DEBS += $(LIBTEAM)
|
||||||
|
|
||||||
|
LIBTEAM_DEV = libteam-dev_$(LIBTEAM_VERSION)_amd64.deb
|
||||||
|
$(LIBTEAM_DEV)_DEPENDS += $(LIBTEAMDCT)
|
||||||
|
$(eval $(call add_derived_package,$(LIBTEAM),$(LIBTEAM_DEV)))
|
||||||
|
|
||||||
|
LIBTEAMDCT = libteamdctl0_$(LIBTEAM_VERSION)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(LIBTEAM),$(LIBTEAMDCT)))
|
||||||
|
|
||||||
|
LIBTEAM_UTILS = libteam-utils_$(LIBTEAM_VERSION)_amd64.deb
|
||||||
|
$(LIBTEAM_UTILS)_DEPENDS += $(LIBTEAMDCT)
|
||||||
|
$(eval $(call add_derived_package,$(LIBTEAM),$(LIBTEAM_UTILS)))
|
9
rules/linux-kernel.mk
Normal file
9
rules/linux-kernel.mk
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# redis package
|
||||||
|
|
||||||
|
KVERSION = 3.16.0-4-amd64
|
||||||
|
|
||||||
|
export KVERSION
|
||||||
|
|
||||||
|
LINUX_KERNEL = linux-image-3.16.0-4-amd64_3.16.7-ckt11-2+acs8u2_amd64.deb
|
||||||
|
$(LINUX_KERNEL)_SRC_PATH = $(SRC_PATH)/sonic-linux-kernel
|
||||||
|
SONIC_MAKE_DEBS += $(LINUX_KERNEL)
|
12
rules/lldpd.mk
Normal file
12
rules/lldpd.mk
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# lldpd package
|
||||||
|
|
||||||
|
LLDPD_VERSION = 0.9.5-0
|
||||||
|
|
||||||
|
LLDPD = lldpd_$(LLDPD_VERSION)_amd64.deb
|
||||||
|
$(LLDPD)_DEPENDS += $(LIBSNMP_DEV)
|
||||||
|
$(LLDPD)_RDEPENDS += $(LIBSNMP)
|
||||||
|
$(LLDPD)_SRC_PATH = $(SRC_PATH)/lldpd
|
||||||
|
SONIC_DPKG_DEBS += $(LLDPD)
|
||||||
|
|
||||||
|
LIBLLDPCTL = liblldpctl-dev_$(LLDPD_VERSION)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(LLDPD),$(LIBLLDPCTL)))
|
13
rules/mpdecimal.mk
Normal file
13
rules/mpdecimal.mk
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# mpdecimal package
|
||||||
|
|
||||||
|
MPDECIMAL_VERSION = 2.4.2
|
||||||
|
MPDECIMAL_VERSION_FULL = $(MPDECIMAL_VERSION)-1
|
||||||
|
|
||||||
|
export MPDECIMAL_VERSION MPDECIMAL_VERSION_FULL
|
||||||
|
|
||||||
|
LIBMPDECIMAL = libmpdec2_$(MPDECIMAL_VERSION_FULL)_amd64.deb
|
||||||
|
$(LIBMPDECIMAL)_SRC_PATH = $(SRC_PATH)/mpdecimal
|
||||||
|
SONIC_MAKE_DEBS += $(LIBMPDECIMAL)
|
||||||
|
|
||||||
|
LIBMPDECIMAL_DEV = libmpdec-dev_$(MPDECIMAL_VERSION_FULL)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(LIBMPDECIMAL),$(LIBMPDECIMAL_DEV)))
|
6
rules/quagga.mk
Normal file
6
rules/quagga.mk
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# quagga package
|
||||||
|
|
||||||
|
QUAGGA = quagga_0.99.24.1-2.1_amd64.deb
|
||||||
|
$(QUAGGA)_DEPENDS += $(LIBSNMP_DEV)
|
||||||
|
$(QUAGGA)_SRC_PATH = $(SRC_PATH)/sonic-quagga
|
||||||
|
SONIC_DPKG_DEBS += $(QUAGGA)
|
15
rules/redis.mk
Normal file
15
rules/redis.mk
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# redis package
|
||||||
|
|
||||||
|
REDIS_VERSION = 3.2.4-1~bpo8+1
|
||||||
|
|
||||||
|
REDIS_TOOLS = redis-tools_$(REDIS_VERSION)_amd64.deb
|
||||||
|
$(REDIS_TOOLS)_SRC_PATH = $(SRC_PATH)/redis
|
||||||
|
SONIC_MAKE_DEBS += $(REDIS_TOOLS)
|
||||||
|
|
||||||
|
REDIS_SERVER = redis-server_$(REDIS_VERSION)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(REDIS_TOOLS),$(REDIS_SERVER)))
|
||||||
|
|
||||||
|
REDIS_SENTINEL = redis-sentinel_$(REDIS_VERSION)_amd64.deb
|
||||||
|
$(REDIS_SENTINEL)_DEPENDS += $(REDIS_SERVER)
|
||||||
|
$(REDIS_SENTINEL)_RDEPENDS += $(REDIS_SERVER)
|
||||||
|
$(eval $(call add_derived_package,$(REDIS_TOOLS),$(REDIS_SENTINEL)))
|
20
rules/sairedis.mk
Normal file
20
rules/sairedis.mk
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# sairedis package
|
||||||
|
|
||||||
|
LIBSAIREDIS = libsairedis_1.0.0_amd64.deb
|
||||||
|
$(LIBSAIREDIS)_SRC_PATH = $(SRC_PATH)/sonic-sairedis
|
||||||
|
$(LIBSAIREDIS)_DEPENDS += $(LIBSWSSCOMMON_DEV)
|
||||||
|
$(LIBSAIREDIS)_RDEPENDS += $(LIBSWSSCOMMON)
|
||||||
|
SONIC_DPKG_DEBS += $(LIBSAIREDIS)
|
||||||
|
|
||||||
|
LIBSAIREDIS_DEV = libsairedis-dev_1.0.0_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(LIBSAIREDIS_DEV)))
|
||||||
|
|
||||||
|
SYNCD = syncd_1.0.0_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(SYNCD)))
|
||||||
|
|
||||||
|
LIBSAIMETADATA = libsaimetadata_1.0.0_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(LIBSAIMETADATA)))
|
||||||
|
|
||||||
|
LIBSAIMETADATA_DEV = libsaimetadata-dev_1.0.0_amd64.deb
|
||||||
|
$(LIBSAIMETADATA_DEV)_DEPENDS += $(LIBSAIMETADATA)
|
||||||
|
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(LIBSAIMETADATA_DEV)))
|
53
rules/snmpd.mk
Normal file
53
rules/snmpd.mk
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
# snmpd package
|
||||||
|
|
||||||
|
SNMPD_VERSION = 5.7.3+dfsg
|
||||||
|
SNMPD_VERSION_FULL = $(SNMPD_VERSION)-1.5
|
||||||
|
|
||||||
|
export SNMPD_VERSION SNMPD_VERSION_FULL
|
||||||
|
|
||||||
|
LIBSNMP_BASE = libsnmp-base_$(SNMPD_VERSION_FULL)_all.deb
|
||||||
|
$(LIBSNMP_BASE)_SRC_PATH = $(SRC_PATH)/snmpd
|
||||||
|
SONIC_MAKE_DEBS += $(LIBSNMP_BASE)
|
||||||
|
|
||||||
|
SNMPTRAPD = snmptrapd_$(SNMPD_VERSION_FULL)_amd64.deb
|
||||||
|
$(SNMPTRAPD)_DEPENDS += $(LIBSNMP) $(SNMPD)
|
||||||
|
$(SNMPTRAPD)_RDEPENDS += $(LIBSNMP) $(SNMPD)
|
||||||
|
$(eval $(call add_derived_package,$(LIBSNMP_BASE),$(SNMPTRAPD)))
|
||||||
|
|
||||||
|
SNMP = snmp_$(SNMPD_VERSION_FULL)_amd64.deb
|
||||||
|
$(SNMP)_DEPENDS += $(LIBSNMP)
|
||||||
|
$(SNMP)_RDEPENDS += $(LIBSNMP)
|
||||||
|
$(eval $(call add_derived_package,$(LIBSNMP_BASE),$(SNMP)))
|
||||||
|
|
||||||
|
SNMPD = snmpd_$(SNMPD_VERSION_FULL)_amd64.deb
|
||||||
|
$(SNMPD)_DEPENDS += $(LIBSNMP)
|
||||||
|
$(SNMPD)_RDEPENDS += $(LIBSNMP)
|
||||||
|
$(eval $(call add_derived_package,$(LIBSNMP_BASE),$(SNMPD)))
|
||||||
|
|
||||||
|
LIBSNMP = libsnmp30_$(SNMPD_VERSION_FULL)_amd64.deb
|
||||||
|
$(LIBSNMP)_RDEPENDS += $(LIBSNMP_BASE)
|
||||||
|
$(eval $(call add_derived_package,$(LIBSNMP_BASE),$(LIBSNMP)))
|
||||||
|
|
||||||
|
LIBSNMP_DBG = libsnmp30-dbg_$(SNMPD_VERSION_FULL)_amd64.deb
|
||||||
|
$(LIBSNMP_DBG)_DEPENDS += $(LIBSNMP)
|
||||||
|
$(LIBSNMP_DBG)_RDEPENDS += $(LIBSNMP)
|
||||||
|
$(eval $(call add_derived_package,$(LIBSNMP_BASE),$(LIBSNMP_DBG)))
|
||||||
|
|
||||||
|
LIBSNMP_DEV = libsnmp-dev_$(SNMPD_VERSION_FULL)_amd64.deb
|
||||||
|
$(LIBSNMP_DEV)_DEPENDS += $(LIBSNMP)
|
||||||
|
$(eval $(call add_derived_package,$(LIBSNMP_BASE),$(LIBSNMP_DEV)))
|
||||||
|
|
||||||
|
LIBSNMP_PERL = libsnmp-perl_$(SNMPD_VERSION_FULL)_amd64.deb
|
||||||
|
$(LIBSNMP_PERL)_DEPENDS += $(LIBSNMP)
|
||||||
|
$(LIBSNMP_PERL)_RDEPENDS += $(LIBSNMP)
|
||||||
|
$(eval $(call add_derived_package,$(LIBSNMP_BASE),$(LIBSNMP_PERL)))
|
||||||
|
|
||||||
|
PYTHON_NETSNMP = python-netsnmp_$(SNMPD_VERSION_FULL)_amd64.deb
|
||||||
|
$(PYTHON_NETSNMP)_DEPENDS += $(LIBSNMP)
|
||||||
|
$(PYTHON_NETSNMP)_RDEPENDS += $(LIBSNMP)
|
||||||
|
$(eval $(call add_derived_package,$(LIBSNMP_BASE),$(PYTHON_NETSNMP)))
|
||||||
|
|
||||||
|
TKMIB = tkmib_$(SNMPD_VERSION_FULL)_all.deb
|
||||||
|
$(TKMIB)_DEPENDS += $(LIBSNMP_PERL)
|
||||||
|
$(TKMIB)_RDEPENDS += $(LIBSNMP_PERL)
|
||||||
|
$(eval $(call add_derived_package,$(LIBSNMP_BASE),$(TKMIB)))
|
6
rules/sonic-aboot.mk
Normal file
6
rules/sonic-aboot.mk
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# sonic aboot installer
|
||||||
|
|
||||||
|
SONIC_ABOOT = sonic-aboot.bin
|
||||||
|
$(SONIC_ABOOT)_MACHINE = aboot
|
||||||
|
$(SONIC_ABOOT)_DEPENDS += $(LINUX_KERNEL) $(INITRAMFS_TOOLS)
|
||||||
|
SONIC_INSTALLERS += $(SONIC_ABOOT)
|
6
rules/sonic-generic.mk
Normal file
6
rules/sonic-generic.mk
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# sonic generic installer
|
||||||
|
|
||||||
|
SONIC_GENERIC = sonic-generic.bin
|
||||||
|
$(SONIC_GENERIC)_MACHINE = generic
|
||||||
|
$(SONIC_GENERIC)_DEPENDS += $(LINUX_KERNEL) $(INITRAMFS_TOOLS)
|
||||||
|
SONIC_INSTALLERS += $(SONIC_GENERIC)
|
6
rules/sswsdk-py2.mk
Normal file
6
rules/sswsdk-py2.mk
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# sswsdk python2 wheel
|
||||||
|
|
||||||
|
SSWSDK_PY2 = sswsdk-2.0.1-py2-none-any.whl
|
||||||
|
$(SSWSDK_PY2)_SRC_PATH = $(SRC_PATH)/sonic-py-swsssdk
|
||||||
|
$(SSWSDK_PY2)_PYTHON_VERSION = 2
|
||||||
|
SONIC_PYTHON_WHEELS += $(SSWSDK_PY2)
|
8
rules/sswsdk-py3.mk
Normal file
8
rules/sswsdk-py3.mk
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# sswsdk python3 wheel
|
||||||
|
|
||||||
|
SSWSDK_PY3 = sswsdk-2.0.1-py3-none-any.whl
|
||||||
|
$(SSWSDK_PY3)_SRC_PATH = $(SRC_PATH)/sonic-py-swsssdk
|
||||||
|
$(SSWSDK_PY3)_PYTHON_VERSION = 3
|
||||||
|
# Synthetic dependency just to avoid race condition
|
||||||
|
$(SSWSDK_PY3)_DEPENDS += $(SSWSDK_PY2)
|
||||||
|
SONIC_PYTHON_WHEELS += $(SSWSDK_PY3)
|
13
rules/swss-common.mk
Normal file
13
rules/swss-common.mk
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# libswsscommon package
|
||||||
|
|
||||||
|
LIBSWSSCOMMON = libswsscommon_1.0.0_amd64.deb
|
||||||
|
$(LIBSWSSCOMMON)_SRC_PATH = $(SRC_PATH)/sonic-swss-common
|
||||||
|
$(LIBSWSSCOMMON)_DEPENDS += $(LIBHIREDIS_DEV) $(LIBNL3_DEV) $(LIBNL_GENL3_DEV) \
|
||||||
|
$(LIBNL_ROUTE3_DEV) $(LIBNL_NF3_DEV) \
|
||||||
|
$(LIBNL_CLI_DEV)
|
||||||
|
$(LIBSWSSCOMMON)_RDEPENDS += $(LIBHIREDIS) $(LIBNL3) $(LIBNL_GENL3) \
|
||||||
|
$(LIBNL_ROUTE3) $(LIBNL_NF3) $(LIBNL_CLI)
|
||||||
|
SONIC_DPKG_DEBS += $(LIBSWSSCOMMON)
|
||||||
|
|
||||||
|
LIBSWSSCOMMON_DEV = libswsscommon-dev_1.0.0_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(LIBSWSSCOMMON),$(LIBSWSSCOMMON_DEV)))
|
9
rules/swss.mk
Normal file
9
rules/swss.mk
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# swss package
|
||||||
|
|
||||||
|
SWSS = swss_1.0.0_amd64.deb
|
||||||
|
$(SWSS)_SRC_PATH = $(SRC_PATH)/sonic-swss
|
||||||
|
$(SWSS)_DEPENDS += $(LIBSAIREDIS_DEV) $(LIBSAIMETADATA_DEV) $(LIBTEAM_DEV) \
|
||||||
|
$(LIBTEAMDCT) $(LIBTEAM_UTILS)
|
||||||
|
$(SWSS)_RDEPENDS += $(LIBSAIREDIS) $(LIBSAIMETADATA) $(LIBTEAM) $(LIBTEAMDCT) \
|
||||||
|
$(LIBTEAM_UTILS)
|
||||||
|
SONIC_DPKG_DEBS += $(SWSS)
|
17
rules/thrift.mk
Normal file
17
rules/thrift.mk
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# thrift package
|
||||||
|
|
||||||
|
THRIFT_VERSION = 0.9.3
|
||||||
|
THRIFT_VERSION_FULL = $(THRIFT_VERSION)-2
|
||||||
|
|
||||||
|
LIBTHRIFT = libthrift-$(THRIFT_VERSION)_$(THRIFT_VERSION_FULL)_amd64.deb
|
||||||
|
$(LIBTHRIFT)_SRC_PATH = $(SRC_PATH)/thrift
|
||||||
|
SONIC_MAKE_DEBS += $(LIBTHRIFT)
|
||||||
|
|
||||||
|
LIBTHRIFT_DEV = libthrift-dev_$(THRIFT_VERSION_FULL)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(LIBTHRIFT),$(LIBTHRIFT_DEV)))
|
||||||
|
|
||||||
|
PYTHON_THRIFT = python-thrift_$(THRIFT_VERSION_FULL)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(LIBTHRIFT),$(PYTHON_THRIFT)))
|
||||||
|
|
||||||
|
THRIFT_COMPILER = thrift-compiler_$(THRIFT_VERSION_FULL)_amd64.deb
|
||||||
|
$(eval $(call add_derived_package,$(LIBTHRIFT),$(THRIFT_COMPILER)))
|
311
slave.mk
Normal file
311
slave.mk
Normal file
@ -0,0 +1,311 @@
|
|||||||
|
###############################################################################
|
||||||
|
## Presettings
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Select bash for commands
|
||||||
|
.ONESHELL:
|
||||||
|
SHELL = /bin/bash
|
||||||
|
.SHELLFLAGS += -e
|
||||||
|
|
||||||
|
.SECONDEXPANSION:
|
||||||
|
|
||||||
|
SPACE :=
|
||||||
|
SPACE +=
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
## General definitions
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
SRC_PATH = src
|
||||||
|
RULES_PATH = rules
|
||||||
|
TARGET_PATH = target
|
||||||
|
DOCKERS_PATH = dockers
|
||||||
|
DEBS_PATH = $(TARGET_PATH)/debs
|
||||||
|
PYTHON_WHEELS_PATH = $(TARGET_PATH)/python-wheels
|
||||||
|
PROJECT_ROOT = $(shell pwd)
|
||||||
|
|
||||||
|
CONFIGURED_PLATFORM := $(shell [ -f .platform ] && cat .platform || echo undefined)
|
||||||
|
PLATFORM_PATH = platform/$(CONFIGURED_PLATFORM)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
## Utility rules
|
||||||
|
## Define configuration, help etc.
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
.platform :
|
||||||
|
@echo Build system is not configured, please run make configure
|
||||||
|
@exit 1
|
||||||
|
|
||||||
|
configure :
|
||||||
|
@mkdir -p target/debs
|
||||||
|
@mkdir -p target/python-wheels
|
||||||
|
@echo $(PLATFORM) > .platform
|
||||||
|
|
||||||
|
distclean : .platform clean
|
||||||
|
@rm -f .platform
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
## Include other rules
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
include $(RULES_PATH)/config
|
||||||
|
include $(RULES_PATH)/functions
|
||||||
|
include $(RULES_PATH)/*.mk
|
||||||
|
ifneq ($(CONFIGURED_PLATFORM), undefined)
|
||||||
|
include $(PLATFORM_PATH)/rules.mk
|
||||||
|
endif
|
||||||
|
|
||||||
|
MAKEFLAGS += -j $(SONIC_CONFIG_BUILD_JOBS)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
## Generic rules section
|
||||||
|
## All rules must go after includes for propper targets expansion
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
## Online targets
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Download debian packages from online location
|
||||||
|
# Add new package for download:
|
||||||
|
# SOME_NEW_DEB = some_new_deb.deb
|
||||||
|
# $(SOME_NEW_DEB)_URL = https://url/to/this/deb.deb
|
||||||
|
# SONIC_ONLINE_DEBS += $(SOME_NEW_DEB)
|
||||||
|
$(addprefix $(DEBS_PATH)/, $(SONIC_ONLINE_DEBS)) : $(DEBS_PATH)/% : .platform
|
||||||
|
$(HEADER)
|
||||||
|
$(foreach deb,$* $($*_DERIVED_DEBS), \
|
||||||
|
{ wget -O $(DEBS_PATH)/$(deb) $($(deb)_URL) $(LOG) || exit 1 ; } ; )
|
||||||
|
$(FOOTER)
|
||||||
|
|
||||||
|
# Download regular files from online location
|
||||||
|
# Files are stored in deb packages directory for convenience
|
||||||
|
# Add new file for download:
|
||||||
|
# SOME_NEW_FILE = some_new_file
|
||||||
|
# $(SOME_NEW_FILE)_URL = https://url/to/this/file
|
||||||
|
# SONIC_ONLINE_FILES += $(SOME_NEW_FILE)
|
||||||
|
$(addprefix $(DEBS_PATH)/, $(SONIC_ONLINE_FILES)) : $(DEBS_PATH)/% : .platform
|
||||||
|
$(HEADER)
|
||||||
|
wget -O $@ $($*_URL) $(LOG)
|
||||||
|
$(FOOTER)
|
||||||
|
|
||||||
|
# Copy debian packages from local directory
|
||||||
|
# Add new package for copy:
|
||||||
|
# SOME_NEW_DEB = some_new_deb.deb
|
||||||
|
# $(SOME_NEW_DEB)_PATH = path/to/some_new_deb.deb
|
||||||
|
# SONIC_COPY_DEBS += $(SOME_NEW_DEB)
|
||||||
|
$(addprefix $(DEBS_PATH)/, $(SONIC_COPY_DEBS)) : $(DEBS_PATH)/% : .platform
|
||||||
|
$(HEADER)
|
||||||
|
$(foreach deb,$* $($*_DERIVED_DEBS), \
|
||||||
|
{ cp $($(deb)_PATH) $(DEBS_PATH)/ $(LOG) || exit 1 ; } ; )
|
||||||
|
$(FOOTER)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
## Debian package related targets
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Build project using build.sh script
|
||||||
|
# They are essentially a one-time build projects that get sources from some URL
|
||||||
|
# and compile them
|
||||||
|
# Add new package for build:
|
||||||
|
# SOME_NEW_DEB = some_new_deb.deb
|
||||||
|
# $(SOME_NEW_DEB)_SRC_PATH = $(SRC_PATH)/project_name
|
||||||
|
# $(SOME_NEW_DEB)_DEPENDS = $(SOME_OTHER_DEB1) $(SOME_OTHER_DEB2) ...
|
||||||
|
# SONIC_MAKE_DEBS += $(SOME_NEW_DEB)
|
||||||
|
$(addprefix $(DEBS_PATH)/, $(SONIC_MAKE_DEBS)) : $(DEBS_PATH)/% : .platform $$(addsuffix -install,$$(addprefix $(DEBS_PATH)/,$$($$*_DEPENDS)))
|
||||||
|
$(HEADER)
|
||||||
|
# remove target to force rebuild
|
||||||
|
rm -f $(addprefix $(DEBS_PATH)/, $* $($*_DERIVED_DEBS))
|
||||||
|
# build project and take package
|
||||||
|
make DEST=$(shell pwd)/$(DEBS_PATH) -C $($*_SRC_PATH) $(shell pwd)/$(DEBS_PATH)/$* $(LOG)
|
||||||
|
$(FOOTER)
|
||||||
|
|
||||||
|
# Build project with dpkg-buildpackage
|
||||||
|
# Add new package for build:
|
||||||
|
# SOME_NEW_DEB = some_new_deb.deb
|
||||||
|
# $(SOME_NEW_DEB)_SRC_PATH = $(SRC_PATH)/project_name
|
||||||
|
# $(SOME_NEW_DEB)_DEPENDS = $(SOME_OTHER_DEB1) $(SOME_OTHER_DEB2) ...
|
||||||
|
# SONIC_DPKG_DEBS += $(SOME_NEW_DEB)
|
||||||
|
$(addprefix $(DEBS_PATH)/, $(SONIC_DPKG_DEBS)) : $(DEBS_PATH)/% : .platform $$(addsuffix -install,$$(addprefix $(DEBS_PATH)/,$$($$*_DEPENDS)))
|
||||||
|
$(HEADER)
|
||||||
|
# Build project and take package
|
||||||
|
rm -f $($*_SRC_PATH)/debian/*.debhelper.log
|
||||||
|
pushd $($*_SRC_PATH) $(LOG)
|
||||||
|
[ ! -f ./autogen.sh ] || ./autogen.sh $(LOG)
|
||||||
|
dpkg-buildpackage -rfakeroot -b -us -uc $(LOG)
|
||||||
|
popd $(LOG)
|
||||||
|
mv $(addprefix $($*_SRC_PATH)/../, $* $($*_DERIVED_DEBS)) $(DEBS_PATH) $(LOG)
|
||||||
|
$(FOOTER)
|
||||||
|
|
||||||
|
# Build project with python setup.py --command-packages=stdeb.command
|
||||||
|
# Add new package for build:
|
||||||
|
# SOME_NEW_DEB = some_new_deb.deb
|
||||||
|
# $(SOME_NEW_DEB)_SRC_PATH = $(SRC_PATH)/project_name
|
||||||
|
# $(SOME_NEW_DEB)_DEPENDS = $(SOME_OTHER_DEB1) $(SOME_OTHER_DEB2) ...
|
||||||
|
# SONIC_PYTHON_STDEB_DEBS += $(SOME_NEW_DEB)
|
||||||
|
$(addprefix $(DEBS_PATH)/, $(SONIC_PYTHON_STDEB_DEBS)) : $(DEBS_PATH)/% : .platform $$(addsuffix -install,$$(addprefix $(DEBS_PATH)/,$$($$*_DEPENDS)))
|
||||||
|
$(HEADER)
|
||||||
|
# Build project and take package
|
||||||
|
pushd $($*_SRC_PATH) $(LOG)
|
||||||
|
python setup.py --command-packages=stdeb.command bdist_deb
|
||||||
|
popd $(LOG)
|
||||||
|
mv $(addprefix $($*_SRC_PATH)/deb_dist/, $* $($*_DERIVED_DEBS)) $(DEBS_PATH) $(LOG)
|
||||||
|
$(FOOTER)
|
||||||
|
|
||||||
|
# Rules for derived debian packages (dev, dbg, etc.)
|
||||||
|
# All noise takes place in main deb recipe, so we are just telling that
|
||||||
|
# we depend on it and move our deb to other targets
|
||||||
|
# Add new dev package:
|
||||||
|
# $(eval $(call add_derived_package,$(ORIGINAL_DEB),derived_deb_file.deb))
|
||||||
|
$(addprefix $(DEBS_PATH)/, $(SONIC_DERIVED_DEBS)) : $(DEBS_PATH)/% : .platform $$(addsuffix -install,$$(addprefix $(DEBS_PATH)/,$$($$*_DEPENDS)))
|
||||||
|
$(HEADER)
|
||||||
|
# All noise takes place in main deb recipe, so we are just telling that
|
||||||
|
# we depend on it
|
||||||
|
# Put newer timestamp
|
||||||
|
[ -f $@ ] && touch $@
|
||||||
|
$(FOOTER)
|
||||||
|
|
||||||
|
# Targets for installing debian packages prior to build one that depends on them
|
||||||
|
SONIC_INSTALL_TARGETS = $(addsuffix -install,$(addprefix $(DEBS_PATH)/, \
|
||||||
|
$(SONIC_ONLINE_DEBS) \
|
||||||
|
$(SONIC_COPY_DEBS) \
|
||||||
|
$(SONIC_MAKE_DEBS) \
|
||||||
|
$(SONIC_DPKG_DEBS) \
|
||||||
|
$(SONIC_PYTHON_STDEB_DEBS) \
|
||||||
|
$(SONIC_DERIVED_DEBS)))
|
||||||
|
$(SONIC_INSTALL_TARGETS) : $(DEBS_PATH)/%-install : .platform $$(addsuffix -install,$$(addprefix $(DEBS_PATH)/,$$($$*_DEPENDS))) $(DEBS_PATH)/$$*
|
||||||
|
$(HEADER)
|
||||||
|
[ -f $(DEBS_PATH)/$* ] || { echo $(DEBS_PATH)/$* does not exist $(LOG) && exit 1; }
|
||||||
|
# put a lock here because dpkg does not allow installing packages in parallel
|
||||||
|
while true; do
|
||||||
|
if mkdir $(DEBS_PATH)/dpkg_lock &> /dev/null; then
|
||||||
|
{ sudo dpkg -i $(DEBS_PATH)/$* $(LOG) && rm -d $(DEBS_PATH)/dpkg_lock && break; } || { rm -d $(DEBS_PATH)/dpkg_lock && exit 1 ; }
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
$(FOOTER)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
## Python packages
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Build project using python setup.py bdist_wheel
|
||||||
|
# Projects that generate python wheels
|
||||||
|
# Add new package for build:
|
||||||
|
# SOME_NEW_WHL = some_new_whl.whl
|
||||||
|
# $(SOME_NEW_WHL)_SRC_PATH = $(SRC_PATH)/project_name
|
||||||
|
# $(SOME_NEW_WHL)_PYTHON_VERSION = 2 (or 3)
|
||||||
|
# $(SOME_NEW_WHL)_DEPENDS = $(SOME_OTHER_WHL1) $(SOME_OTHER_WHL2) ...
|
||||||
|
# SONIC_PYTHON_WHEELS += $(SOME_NEW_DEB)
|
||||||
|
$(addprefix $(PYTHON_WHEELS_PATH)/, $(SONIC_PYTHON_WHEELS)) : $(PYTHON_WHEELS_PATH)/% : .platform $$(addsuffix -install,$$(addprefix $(PYTHON_WHEELS_PATH)/,$$($$*_DEPENDS)))
|
||||||
|
$(HEADER)
|
||||||
|
pushd $($*_SRC_PATH) $(LOG)
|
||||||
|
python$($*_PYTHON_VERSION) setup.py bdist_wheel $(LOG)
|
||||||
|
popd $(LOG)
|
||||||
|
mv $($*_SRC_PATH)/dist/$* $(PYTHON_WHEELS_PATH) $(LOG)
|
||||||
|
$(FOOTER)
|
||||||
|
|
||||||
|
# Targets for installing python wheels.
|
||||||
|
# Autogenerated
|
||||||
|
SONIC_INSTALL_WHEELS = $(addsuffix -install, $(addprefix $(PYTHON_WHEELS_PATH)/, $(SONIC_PYTHON_WHEELS)))
|
||||||
|
$(SONIC_INSTALL_WHEELS) : $(PYTHON_WHEELS_PATH)/%-install : .platform $$(addsuffix -install,$$(addprefix $(PYTHON_WHEELS_PATH)/,$$($$*_DEPENDS))) $(PYTHON_WHEELS_PATH)/$$*
|
||||||
|
$(HEADER)
|
||||||
|
[ -f $(PYTHON_WHEELS_PATH)/$* ] || { echo $(PYTHON_WHEELS_PATH)/$* does not exist $(LOG) && exit 1; }
|
||||||
|
# put a lock here to avoid race conditions
|
||||||
|
while true; do
|
||||||
|
if mkdir $(PYTHON_WHEELS_PATH)/pip_lock &> /dev/null; then
|
||||||
|
{ sudo 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 ; }
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
$(FOOTER)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
## Docker images related targets
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# start docker daemon
|
||||||
|
docker-start :
|
||||||
|
@sudo service docker start &> /dev/null && sleep 1
|
||||||
|
|
||||||
|
# targets for building simple docker images that do not depend on any debian packages
|
||||||
|
$(addprefix $(TARGET_PATH)/, $(SONIC_SIMPLE_DOCKER_IMAGES)) : $(TARGET_PATH)/%.gz : .platform docker-start $$(addsuffix -load,$$(addprefix $(TARGET_PATH)/,$$($$*.gz_LOAD_DOCKERS)))
|
||||||
|
$(HEADER)
|
||||||
|
docker build --no-cache -t $* $($*.gz_PATH) $(LOG)
|
||||||
|
docker save $* | gzip -c > $@
|
||||||
|
$(FOOTER)
|
||||||
|
|
||||||
|
# Targets for building docker images
|
||||||
|
$(addprefix $(TARGET_PATH)/, $(SONIC_DOCKER_IMAGES)) : $(TARGET_PATH)/%.gz : .platform docker-start $$(addprefix $(DEBS_PATH)/,$$($$*.gz_DEPENDS) $$($$*.gz_FILES)) $$(addprefix $(PYTHON_WHEELS_PATH)/,$$($$*.gz_PYTHON_WHEELS)) $$(addsuffix -load,$$(addprefix $(TARGET_PATH)/,$$($$*.gz_LOAD_DOCKERS)))
|
||||||
|
$(HEADER)
|
||||||
|
mkdir -p $($*.gz_PATH)/deps $(LOG)
|
||||||
|
mkdir -p $($*.gz_PATH)/python-wheels $(LOG)
|
||||||
|
sudo mount --bind $(DEBS_PATH) $($*.gz_PATH)/deps $(LOG)
|
||||||
|
sudo mount --bind $(PYTHON_WHEELS_PATH) $($*.gz_PATH)/python-wheels $(LOG)
|
||||||
|
sed 's/SED_DPKG/RUN cd deps \&\& dpkg -i $(shell printf "$(subst $(SPACE),\n,$(call expand,$($*.gz_DEPENDS),RDEPENDS))\n" | awk '!a[$$0]++')/g' $($*.gz_PATH)/Dockerfile.template > $($*.gz_PATH)/Dockerfile
|
||||||
|
docker build --no-cache -t $* $($*.gz_PATH) $(LOG)
|
||||||
|
docker save $* | gzip -c > $@
|
||||||
|
$(FOOTER)
|
||||||
|
|
||||||
|
DOCKER_LOAD_TARGETS = $(addsuffix -load,$(addprefix $(TARGET_PATH)/, \
|
||||||
|
$(SONIC_SIMPLE_DOCKER_IMAGES) \
|
||||||
|
$(SONIC_DOCKER_IMAGES)))
|
||||||
|
$(DOCKER_LOAD_TARGETS) : $(TARGET_PATH)/%.gz-load : .platform docker-start $$(TARGET_PATH)/$$*.gz
|
||||||
|
$(HEADER)
|
||||||
|
docker load -i $(TARGET_PATH)/$*.gz $(LOG)
|
||||||
|
$(FOOTER)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
## Installers
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# targets for building installers with base image
|
||||||
|
$(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : .platform $$(addprefix $(DEBS_PATH)/,$$($$*_DEPENDS))
|
||||||
|
$(HEADER)
|
||||||
|
./build_debian.sh "$(USERNAME)" "$(shell perl -e 'print crypt("$(PASSWORD)", "salt"),"\n"')" $(LOG)
|
||||||
|
TARGET_MACHINE=$($*_MACHINE) ./build_image.sh $(LOG)
|
||||||
|
$(FOOTER)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
## Clean targets
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
SONIC_CLEAN_DEBS = $(addsuffix -clean,$(addprefix $(DEBS_PATH)/, \
|
||||||
|
$(SONIC_ONLINE_DEBS) \
|
||||||
|
$(SONIC_ONLINE_FILES) \
|
||||||
|
$(SONIC_COPY_DEBS) \
|
||||||
|
$(SONIC_MAKE_DEBS) \
|
||||||
|
$(SONIC_DPKG_DEBS) \
|
||||||
|
$(SONIC_PYTHON_STDEB_DEBS) \
|
||||||
|
$(SONIC_DERIVED_DEBS)))
|
||||||
|
$(SONIC_CLEAN_DEBS) : $(DEBS_PATH)/%-clean : .platform $$(addsuffix -clean,$$(addprefix $(DEBS_PATH)/,$$($$*_DERIVED_FROM)))
|
||||||
|
@# remove derived targets if main one is removed, because we treat them
|
||||||
|
@# as part of one package
|
||||||
|
@rm -f $(addprefix $(DEBS_PATH)/, $* $($*_DERIVED_DEBS))
|
||||||
|
|
||||||
|
SONIC_CLEAN_TARGETS += $(addsuffix -clean,$(addprefix $(TARGET_PATH)/, \
|
||||||
|
$(SONIC_DOCKER_IMAGES) \
|
||||||
|
$(SONIC_SIMPLE_DOCKER_IMAGES)))
|
||||||
|
$(SONIC_CLEAN_TARGETS) : $(TARGET_PATH)/%-clean : .platform
|
||||||
|
@rm -f $(TARGET_PATH)/$*
|
||||||
|
|
||||||
|
SONIC_CLEAN_WHEELS = $(addsuffix -clean,$(addprefix $(PYTHON_WHEELS_PATH)/, \
|
||||||
|
$(SONIC_PYTHON_WHEELS)))
|
||||||
|
$(SONIC_CLEAN_WHEELS) : $(PYTHON_WHEELS_PATH)/%-clean : .platform
|
||||||
|
@rm -f $(PYTHON_WHEELS_PATH)/$*
|
||||||
|
|
||||||
|
clean-logs : .platform
|
||||||
|
@rm -f $(TARGET_PATH)/*.log $(DEBS_PATH)/*.log
|
||||||
|
|
||||||
|
clean : .platform clean-logs $$(SONIC_CLEAN_DEBS) $$(SONIC_CLEAN_TARGETS) $$(SONIC_CLEAN_WHEELS)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
## all
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
all : .platform $$(addprefix $(TARGET_PATH)/,$$(SONIC_ALL))
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
## Standard targets
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
.PHONY : $(SONIC_CLEAN_DEBS) $(SONIC_CLEAN_TARGETS) $(SONIC_CLEAN_WHEELS) clean distclean configure
|
||||||
|
|
||||||
|
.INTERMEDIATE : $(SONIC_INSTALL_TARGETS) $(SONIC_INSTALL_WHEELS) $(DOCKER_LOAD_TARGETS) docker-start
|
105
sonic-slave/Dockerfile
Normal file
105
sonic-slave/Dockerfile
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
FROM debian:jessie
|
||||||
|
|
||||||
|
MAINTAINER johnar@microsoft.com
|
||||||
|
|
||||||
|
RUN echo "deb http://debian-archive.trafficmanager.net/debian/ jessie main contrib non-free" >> /etc/apt/sources.list
|
||||||
|
RUN echo "deb-src http://debian-archive.trafficmanager.net/debian/ jessie main contrib non-free" >> /etc/apt/sources.list
|
||||||
|
RUN echo "deb http://debian-archive.trafficmanager.net/debian-security/ jessie/updates main contrib non-free" >> /etc/apt/sources.list
|
||||||
|
RUN echo "deb-src http://debian-archive.trafficmanager.net/debian-security/ jessie/updates main contrib non-free" >> /etc/apt/sources.list
|
||||||
|
|
||||||
|
RUN apt-get clean && apt-get update && apt-get install -y apt-utils default-jre-headless openssh-server curl wget unzip git build-essential libtool lintian
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y sudo dh-make dh-exec kmod libtinyxml2-2 libboost-program-options1.55-dev libtinyxml2-dev python python-pip libncurses5-dev texinfo dh-autoreconf python3-pip
|
||||||
|
RUN apt-get update && apt-get install -y doxygen devscripts git-buildpackage perl-modules libswitch-perl dh-systemd
|
||||||
|
|
||||||
|
# For quagga build
|
||||||
|
RUN apt-get update && apt-get install -y libreadline-dev texlive-latex-base texlive-generic-recommended texlive-fonts-recommended libpam0g-dev libpam-dev libcap-dev imagemagick ghostscript groff libpcre3-dev gawk chrpath
|
||||||
|
|
||||||
|
# For libnl3 (local) build
|
||||||
|
RUN apt-get install -y cdbs
|
||||||
|
|
||||||
|
# For SAI meta build
|
||||||
|
RUN apt-get update && apt-get install -y libxml-simple-perl
|
||||||
|
|
||||||
|
# For linux build
|
||||||
|
RUN apt-get update && apt-get install -y bc fakeroot build-essential devscripts quilt stgit
|
||||||
|
RUN apt-get update && apt-get -y build-dep linux
|
||||||
|
|
||||||
|
# For platform-modules build
|
||||||
|
RUN apt-get update && apt-get install -y module-assistant
|
||||||
|
|
||||||
|
# For thrift build
|
||||||
|
RUN apt-get update && apt-get install -y gem2deb libboost-all-dev libevent-dev libglib2.0-dev libqt4-dev python-all-dev python-twisted php5-dev phpunit libbit-vector-perl openjdk-7-jdk javahelper maven-debian-helper ant libmaven-ant-tasks-java libhttpclient-java libslf4j-java libservlet3.1-java qt5-default
|
||||||
|
|
||||||
|
# For mellanox sdk build
|
||||||
|
RUN apt-get update && apt-get install -y libpcre3 libpcre3-dev byacc flex libglib2.0-dev bison expat libexpat1-dev dpatch libdb-dev iptables-dev swig
|
||||||
|
|
||||||
|
# For mellanox sai build
|
||||||
|
RUN apt-get update && apt-get install -y libtool-bin libxml2-dev
|
||||||
|
|
||||||
|
# For build image
|
||||||
|
RUN apt-get update && apt-get install -y cpio squashfs-tools zip
|
||||||
|
|
||||||
|
# For broadcom sdk build
|
||||||
|
RUN apt-get update && apt-get install -y linux-compiler-gcc-4.8-x86 linux-kbuild-3.16
|
||||||
|
|
||||||
|
# teamd build
|
||||||
|
RUN apt-get update && apt-get install -y libdaemon-dev libdbus-1-dev libjansson-dev
|
||||||
|
|
||||||
|
# For cavium sdk build
|
||||||
|
RUN apt-get update && apt-get install -y libpcap-dev dnsutils libusb-dev
|
||||||
|
|
||||||
|
# For debian image reconfiguration
|
||||||
|
RUN apt-get update && apt-get install -y augeas-tools
|
||||||
|
|
||||||
|
# For p4 build
|
||||||
|
RUN apt-get update && apt-get install -y libyaml-dev libevent-dev libjudy-dev libedit-dev libpcap-dev libnanomsg-dev
|
||||||
|
RUN apt-get update && apt-get install -y python-stdeb
|
||||||
|
RUN pip install ctypesgen
|
||||||
|
RUN pip install crc16
|
||||||
|
|
||||||
|
# For redis build
|
||||||
|
RUN apt-get update && apt-get install -y libjemalloc-dev
|
||||||
|
|
||||||
|
# For mft kernel module build
|
||||||
|
RUN apt-get update && apt-get install -y dkms
|
||||||
|
|
||||||
|
RUN mkdir /var/run/sshd
|
||||||
|
EXPOSE 22
|
||||||
|
|
||||||
|
# For gtest
|
||||||
|
RUN apt-get update && apt-get install -y libgtest-dev cmake && cd /usr/src/gtest && cmake . && make -C /usr/src/gtest
|
||||||
|
|
||||||
|
# For Jenkins static analysis, unit testing and code coverage
|
||||||
|
RUN apt-get update && apt-get install -y cppcheck clang pylint python-pytest gcovr python-pytest=2.6.3* python-pytest-cov python-parse
|
||||||
|
|
||||||
|
# For snmpd
|
||||||
|
RUN apt-get update && apt-get install -y libmysqlclient-dev libmysqld-dev libperl-dev libpci-dev libpci3 libsensors4 libsensors4-dev libwrap0-dev
|
||||||
|
|
||||||
|
# For mpdecimal
|
||||||
|
RUN apt-get update && apt-get install -y docutils-common libjs-sphinxdoc libjs-underscore python-docutils python-jinja2 python-markupsafe python-pygments python-roman python-sphinx sphinx-common python3-sphinx
|
||||||
|
|
||||||
|
# Install depot-tools (for git-retry)
|
||||||
|
RUN git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git /usr/share/depot_tools
|
||||||
|
ENV PATH /usr/share/depot_tools:$PATH
|
||||||
|
|
||||||
|
# Install docker engine 1.11.2 inside docker
|
||||||
|
RUN curl -sSL https://get.docker.com/ | sh && apt-get install -y --force-yes -q docker-engine=1.11.2-0~jessie
|
||||||
|
|
||||||
|
# Add user
|
||||||
|
ARG user
|
||||||
|
ARG uid
|
||||||
|
ARG guid
|
||||||
|
|
||||||
|
RUN useradd $user -u $uid -g $guid -d /var/$user -m -s /bin/bash
|
||||||
|
|
||||||
|
RUN gpasswd -a $user docker
|
||||||
|
|
||||||
|
COPY sonic-jenkins-id_rsa.pub /var/$user/.ssh/authorized_keys2
|
||||||
|
RUN chown $user /var/$user/.ssh -R
|
||||||
|
RUN chmod go= /var/$user/.ssh -R
|
||||||
|
|
||||||
|
# Add user to sudoers
|
||||||
|
RUN echo "$user ALL=(ALL) NOPASSWD:ALL" >>/etc/sudoers
|
||||||
|
|
||||||
|
USER $user
|
1
sonic-slave/sonic-jenkins-id_rsa.pub
Normal file
1
sonic-slave/sonic-jenkins-id_rsa.pub
Normal file
@ -0,0 +1 @@
|
|||||||
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC769BQUJVeSIOyPsN4/Vo8xTqXQ6RI7ysVyCw/ABP3FIxf+fxmtm8t/Nbp9hq0uLHOjCw8UQbJ+XltsThFWJfH6RJY5NbfvwG7nUDjfjjp+SGEIHaVgIlpiuqiPbZ6QMjZ8Q0Sgi5p5ts1xe/4TFThwOJBHmhwydD5nk3BH7P3DDwlOCov5gjM40uMZJkketlO83zGG+25zu7O0hfDVt1vyK9bNWAhhPmGc79zdetfeFCxjimsff2m31B1KuVXiT5PDB1w+BSrUK6nNzJubnYCRgjg4prVTjA50EhlT2P7EoJAbW3TnTq8vUDkcstsGe/HZpfIB1VHBX97u4fAfGJZ root@acs-jenkins
|
214
src/Makefile
214
src/Makefile
@ -1,214 +0,0 @@
|
|||||||
## TODO: if install dev package really happens, rebuild the depending project
|
|
||||||
|
|
||||||
.ONESHELL:
|
|
||||||
SHELL := /bin/bash
|
|
||||||
|
|
||||||
REDIS_VERSION=3.2.4-1~bpo8+1_amd64
|
|
||||||
|
|
||||||
LIBNL-DEBS=libnl-3-200_3.2.27-1_amd64.deb \
|
|
||||||
libnl-3-dev_3.2.27-1_amd64.deb \
|
|
||||||
libnl-genl-3-200_3.2.27-1_amd64.deb \
|
|
||||||
libnl-genl-3-dev_3.2.27-1_amd64.deb \
|
|
||||||
libnl-route-3-200_3.2.27-1_amd64.deb \
|
|
||||||
libnl-route-3-dev_3.2.27-1_amd64.deb \
|
|
||||||
libnl-nf-3-200_3.2.27-1_amd64.deb \
|
|
||||||
libnl-nf-3-dev_3.2.27-1_amd64.deb \
|
|
||||||
libnl-cli-3-200_3.2.27-1_amd64.deb \
|
|
||||||
libnl-cli-3-dev_3.2.27-1_amd64.deb
|
|
||||||
|
|
||||||
LIBTEAM-DEBS=libteam5_1.26-1_amd64.deb \
|
|
||||||
libteamdctl0_1.26-1_amd64.deb \
|
|
||||||
libteam-dev_1.26-1_amd64.deb \
|
|
||||||
libteam-utils_1.26-1_amd64.deb
|
|
||||||
|
|
||||||
MPDECIMAL_VER=2.4.2-1
|
|
||||||
|
|
||||||
MPDECIMAL-DEBS=libmpdec2_$(MPDECIMAL_VER)_amd64.deb \
|
|
||||||
libmpdec-dev_$(MPDECIMAL_VER)_amd64.deb
|
|
||||||
|
|
||||||
PYTHON3_5_VER=3.5.2-8
|
|
||||||
|
|
||||||
PYTHON3_5-DEBS=libpython3.5-minimal_$(PYTHON3_5_VER)_amd64.deb \
|
|
||||||
python3.5-minimal_$(PYTHON3_5_VER)_amd64.deb \
|
|
||||||
libpython3.5-stdlib_$(PYTHON3_5_VER)_amd64.deb \
|
|
||||||
python3.5_$(PYTHON3_5_VER)_amd64.deb
|
|
||||||
|
|
||||||
## Function: build_project, directory
|
|
||||||
## Build the project and save the .deb target in the same directory
|
|
||||||
## TRICK: clean dh state so it will force recreating .deb later
|
|
||||||
define build_project
|
|
||||||
rm -f $(1)/debian/*.debhelper.log
|
|
||||||
pushd $(1)
|
|
||||||
[ ! -f ./autogen.sh ] || ./autogen.sh
|
|
||||||
dpkg-buildpackage -rfakeroot -b -us -uc
|
|
||||||
popd
|
|
||||||
endef
|
|
||||||
|
|
||||||
## Function: build_project_py2, directory
|
|
||||||
## Build the project and save the .deb target in the same directory
|
|
||||||
define build_project_py2
|
|
||||||
pushd $(1)
|
|
||||||
python2 setup.py bdist_wheel
|
|
||||||
popd
|
|
||||||
endef
|
|
||||||
|
|
||||||
## Function: build_project_py3, directory
|
|
||||||
## Build the project and save the .deb target in the same directory
|
|
||||||
define build_project_py3
|
|
||||||
pushd $(1)
|
|
||||||
python3 setup.py bdist_wheel
|
|
||||||
popd
|
|
||||||
endef
|
|
||||||
|
|
||||||
## Function: install_deb, debfile
|
|
||||||
install_deb = \
|
|
||||||
[ -f $(1) ] && { sudo dpkg -i $(1) || sudo apt-get -y install -f; } || return 1;
|
|
||||||
|
|
||||||
## Function: install_py2, whlfile
|
|
||||||
install_py2 = \
|
|
||||||
sudo pip install $(1)
|
|
||||||
|
|
||||||
## Function: install_py3, whlfile
|
|
||||||
install_py3 = \
|
|
||||||
sudo pip3 install $(1)
|
|
||||||
|
|
||||||
## Rules
|
|
||||||
$(LIBNL-DEBS):
|
|
||||||
pushd libnl3; ./build.sh; popd
|
|
||||||
|
|
||||||
$(LIBTEAM-DEBS): $(LIBNL-DEBS)
|
|
||||||
$(foreach dep, $^, $(call install_deb, $(dep)))
|
|
||||||
pushd libteam; ./build.sh; popd
|
|
||||||
|
|
||||||
$(MPDECIMAL-DEBS):
|
|
||||||
pushd mpdecimal; ./build.sh; popd
|
|
||||||
|
|
||||||
$(PYTHON3_5-DEBS): $(MPDECIMAL-DEBS)
|
|
||||||
$(foreach dep, $^, $(call install_deb, $(dep)))
|
|
||||||
pushd python3.5; ./build.sh; popd
|
|
||||||
|
|
||||||
redis-sentinel_$(REDIS_VERSION).deb redis-server_$(REDIS_VERSION).deb redis-tools_$(REDIS_VERSION).deb:
|
|
||||||
pushd redis; ./build.sh; popd
|
|
||||||
|
|
||||||
libhiredis0.13_0.13.3-2_amd64.deb libhiredis-dbg_0.13.3-2_amd64.deb libhiredis-dev_0.13.3-2_amd64.deb: redis-server_$(REDIS_VERSION).deb redis-tools_$(REDIS_VERSION).deb redis-sentinel_$(REDIS_VERSION).deb
|
|
||||||
$(foreach dep, $^, $(call install_deb, $(dep)))
|
|
||||||
pushd hiredis; ./build.sh; popd
|
|
||||||
|
|
||||||
libthrift-0.9.3_0.9.3-2_amd64.deb libthrift-dev_0.9.3-2_amd64.deb python-thrift_0.9.3-2_amd64.deb thrift-compiler_0.9.3-2_amd64.deb:
|
|
||||||
pushd thrift; ./build.sh; popd
|
|
||||||
|
|
||||||
p4-bmv2_1.0.0_amd64.deb: thrift-compiler_0.9.3-2_amd64.deb python-thrift_0.9.3-2_amd64.deb libthrift-0.9.3_0.9.3-2_amd64.deb libthrift-dev_0.9.3-2_amd64.deb
|
|
||||||
$(foreach dep, $^, $(call install_deb, $(dep)))
|
|
||||||
pushd p4-bmv2; ./build.sh; popd
|
|
||||||
|
|
||||||
kernel-mft-dkms_4.5.0-3.16.0-4-amd64_all.deb mft-4.5.0-31.amd64.deb:
|
|
||||||
pushd mft; ./build.sh; popd
|
|
||||||
|
|
||||||
python-p4-hlir_0.9.36-1_all.deb:
|
|
||||||
pushd p4-hlir; ./build.sh; popd
|
|
||||||
|
|
||||||
python-p4c-bm_1.0.0-5415c416-1_all.deb: python-tenjin_1.1.1-1_all.deb python-p4-hlir_0.9.36-1_all.deb
|
|
||||||
$(foreach dep, $^, $(call install_deb, $(dep)))
|
|
||||||
pushd p4c-bm; ./build.sh; popd
|
|
||||||
|
|
||||||
python-tenjin_1.1.1-1_all.deb:
|
|
||||||
pushd tenjin; ./build.sh; popd
|
|
||||||
|
|
||||||
snmpd_5.7.3+dfsg-1.5_amd64.deb snmptrapd_5.7.3+dfsg-1.5_amd64.deb snmp_5.7.3+dfsg-1.5_amd64.deb libsnmp-base_5.7.3+dfsg-1.5_all.deb libsnmp30_5.7.3+dfsg-1.5_amd64.deb libsnmp30-dbg_5.7.3+dfsg-1.5_amd64.deb libsnmp-dev_5.7.3+dfsg-1.5_amd64.deb libsnmp-perl_5.7.3+dfsg-1.5_amd64.deb python-netsnmp_5.7.3+dfsg-1.5_amd64.deb tkmib_5.7.3+dfsg-1.5_all.deb:
|
|
||||||
pushd snmpd; ./build.sh; popd
|
|
||||||
|
|
||||||
sswsdk-2.0.1-py2-none-any.whl:
|
|
||||||
$(call build_project_py2, sonic-py-swsssdk)
|
|
||||||
cp sonic-py-swsssdk/dist/$@ .
|
|
||||||
|
|
||||||
sswsdk-2.0.1-py3-none-any.whl:
|
|
||||||
$(call build_project_py3, sonic-py-swsssdk)
|
|
||||||
cp sonic-py-swsssdk/dist/$@ .
|
|
||||||
|
|
||||||
sonic_d-2.0.0-py2-none-any.whl: sswsdk-2.0.1-py2-none-any.whl
|
|
||||||
$(foreach dep, $^, $(call install_py2, $(dep)))
|
|
||||||
$(call build_project_py2, sonic-dbsyncd)
|
|
||||||
cp sonic-dbsyncd/dist/$@ .
|
|
||||||
|
|
||||||
asyncsnmp-2.1.0-py3-none-any.whl: sswsdk-2.0.1-py3-none-any.whl
|
|
||||||
$(foreach dep, $^, $(call install_py3, $(dep)))
|
|
||||||
$(call build_project_py3, sonic-snmpagent)
|
|
||||||
cp sonic-snmpagent/dist/$@ .
|
|
||||||
|
|
||||||
p4-switch_1.0.0_amd64.deb: thrift-compiler_0.9.3-2_amd64.deb python-thrift_0.9.3-2_amd64.deb libthrift-0.9.3_0.9.3-2_amd64.deb libthrift-dev_0.9.3-2_amd64.deb python-p4-hlir_0.9.36-1_all.deb python-tenjin_1.1.1-1_all.deb python-p4c-bm_1.0.0-5415c416-1_all.deb p4-bmv2_1.0.0_amd64.deb
|
|
||||||
$(foreach dep, $^, $(call install_deb, $(dep)))
|
|
||||||
pushd p4-switch; ./build.sh; popd
|
|
||||||
|
|
||||||
lldpd_0.9.5-0_amd64.deb liblldpctl-dev_0.9.5-0_amd64.deb:
|
|
||||||
## Install build dependency for lldpd
|
|
||||||
## Note: lldpd and snmpd conflict on Build-Depends, so install before build
|
|
||||||
sudo apt-get -y build-dep lldpd
|
|
||||||
$(call build_project, lldpd)
|
|
||||||
|
|
||||||
quagga_0.99.24.1-2.1_amd64.deb:
|
|
||||||
$(call build_project, sonic-quagga)
|
|
||||||
|
|
||||||
libswsscommon_1.0.0_amd64.deb libswsscommon-dev_1.0.0_amd64.deb: redis-server_$(REDIS_VERSION).deb redis-tools_$(REDIS_VERSION).deb libhiredis0.13_0.13.3-2_amd64.deb libhiredis-dev_0.13.3-2_amd64.deb $(LIBNL-DEBS)
|
|
||||||
$(foreach dep, $^, $(call install_deb, $(dep)))
|
|
||||||
$(call build_project, sonic-swss-common)
|
|
||||||
|
|
||||||
brcm/syncd_1.0.0_amd64.deb brcm/libsairedis_1.0.0_amd64.deb brcm/libsairedis-dev_1.0.0_amd64.deb brcm/libsaimetadata_1.0.0_amd64.deb brcm/libsaimetadata-dev_1.0.0_amd64.deb: libswsscommon_1.0.0_amd64.deb libswsscommon-dev_1.0.0_amd64.deb brcm-sdk/libopennsl_*_amd64.deb brcm-sdk/libsaibcm_1.0.2*_amd64.deb brcm-sdk/libsaibcm-dev_1.0.2*_amd64.deb
|
|
||||||
$(foreach dep, $^, $(call install_deb, $(dep)))
|
|
||||||
$(call build_project, sonic-sairedis)
|
|
||||||
mkdir -p brcm
|
|
||||||
cp syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsairedis-dev_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb libsaimetadata-dev_1.0.0_amd64.deb brcm/
|
|
||||||
|
|
||||||
mlnx/syncd_1.0.0_amd64.deb mlnx/libsairedis_1.0.0_amd64.deb mlnx/libsairedis-dev_1.0.0_amd64.deb mlnx/libsaimetadata_1.0.0_amd64.deb mlnx/libsaimetadata-dev_1.0.0_amd64.deb: libswsscommon_1.0.0_amd64.deb libswsscommon-dev_1.0.0_amd64.deb mlnx-sdk/*.deb
|
|
||||||
## Install applibs first for late depending packages
|
|
||||||
$(call install_deb, mlnx-sdk/applibs_1.mlnx.*.deb)
|
|
||||||
$(foreach dep, $^, $(call install_deb, $(dep)))
|
|
||||||
$(call build_project, sonic-sairedis)
|
|
||||||
mkdir -p mlnx
|
|
||||||
cp syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsairedis-dev_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb libsaimetadata-dev_1.0.0_amd64.deb mlnx/
|
|
||||||
|
|
||||||
cavm/syncd_1.0.0_amd64.deb cavm/libsairedis_1.0.0_amd64.deb cavm/libsairedis-dev_1.0.0_amd64.deb cavm/libsaimetadata_1.0.0_amd64.deb cavm/libsaimetadata-dev_1.0.0_amd64.deb: libswsscommon_1.0.0_amd64.deb libswsscommon-dev_1.0.0_amd64.deb cavm-sdk/libsai.deb cavm-sdk/xp-tools.deb cavm-sdk/xpshell.deb
|
|
||||||
$(foreach dep, $^, $(call install_deb, $(dep)))
|
|
||||||
$(call build_project, sonic-sairedis)
|
|
||||||
mkdir -p cavm
|
|
||||||
cp syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsairedis-dev_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb libsaimetadata-dev_1.0.0_amd64.deb cavm/
|
|
||||||
|
|
||||||
p4/syncd_1.0.0_amd64.deb p4/libsairedis_1.0.0_amd64.deb p4/libsairedis-dev_1.0.0_amd64.deb p4/libsaimetadata_1.0.0_amd64.deb p4/libsaimetadata-dev_1.0.0_amd64.deb: libswsscommon_1.0.0_amd64.deb libswsscommon-dev_1.0.0_amd64.deb p4-switch_1.0.0_amd64.deb p4-bmv2_1.0.0_amd64.deb libthrift-0.9.3_0.9.3-2_amd64.deb
|
|
||||||
$(foreach dep, $^, $(call install_deb, $(dep)))
|
|
||||||
$(call build_project, sonic-sairedis)
|
|
||||||
mkdir -p p4
|
|
||||||
cp syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsairedis-dev_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb libsaimetadata-dev_1.0.0_amd64.deb p4/
|
|
||||||
|
|
||||||
## Note: fpmsyncd and teamsyncd are two implicit targets
|
|
||||||
brcm/swss_1.0.0_amd64.deb: brcm/syncd_1.0.0_amd64.deb brcm/libsairedis_1.0.0_amd64.deb brcm/libsairedis-dev_1.0.0_amd64.deb brcm/libsaimetadata_1.0.0_amd64.deb brcm/libsaimetadata-dev_1.0.0_amd64.deb $(LIBTEAM-DEBS) $(LIBNL-DEBS)
|
|
||||||
$(foreach dep, $^, $(call install_deb, $(dep)))
|
|
||||||
$(call build_project, sonic-swss)
|
|
||||||
cp swss_1.0.0_amd64.deb brcm/
|
|
||||||
cp sonic-swss/debian/swss/usr/bin/fpmsyncd .
|
|
||||||
cp sonic-swss/debian/swss/usr/bin/teamsyncd .
|
|
||||||
|
|
||||||
## Note: fpmsyncd and teamsyncd are two implicit targets
|
|
||||||
mlnx/swss_1.0.0_amd64.deb: mlnx/syncd_1.0.0_amd64.deb mlnx/libsairedis_1.0.0_amd64.deb mlnx/libsairedis-dev_1.0.0_amd64.deb mlnx/libsaimetadata_1.0.0_amd64.deb mlnx/libsaimetadata-dev_1.0.0_amd64.deb $(LIBTEAM-DEBS) $(LIBNL-DEBS)
|
|
||||||
$(foreach dep, $^, $(call install_deb, $(dep)))
|
|
||||||
$(call build_project, sonic-swss)
|
|
||||||
cp swss_1.0.0_amd64.deb mlnx/
|
|
||||||
cp sonic-swss/debian/swss/usr/bin/fpmsyncd .
|
|
||||||
cp sonic-swss/debian/swss/usr/bin/teamsyncd .
|
|
||||||
|
|
||||||
## Note: fpmsyncd and teamsyncd are two implicit targets
|
|
||||||
cavm/swss_1.0.0_amd64.deb: cavm/syncd_1.0.0_amd64.deb cavm/libsairedis_1.0.0_amd64.deb cavm/libsairedis-dev_1.0.0_amd64.deb cavm/libsaimetadata_1.0.0_amd64.deb cavm/libsaimetadata-dev_1.0.0_amd64.deb $(LIBTEAM-DEBS) $(LIBNL-DEBS)
|
|
||||||
$(foreach dep, $^, $(call install_deb, $(dep)))
|
|
||||||
$(call build_project, sonic-swss)
|
|
||||||
cp swss_1.0.0_amd64.deb cavm/
|
|
||||||
cp sonic-swss/debian/swss/usr/bin/fpmsyncd .
|
|
||||||
cp sonic-swss/debian/swss/usr/bin/teamsyncd .
|
|
||||||
|
|
||||||
p4/swss_1.0.0_amd64.deb: p4/syncd_1.0.0_amd64.deb p4/libsairedis_1.0.0_amd64.deb p4/libsairedis-dev_1.0.0_amd64.deb p4/libsaimetadata_1.0.0_amd64.deb p4/libsaimetadata-dev_1.0.0_amd64.deb $(LIBTEAM-DEBS) $(LIBNL-DEBS)
|
|
||||||
$(foreach dep, $^, $(call install_deb, $(dep)))
|
|
||||||
$(call build_project, sonic-swss)
|
|
||||||
cp swss_1.0.0_amd64.deb p4/
|
|
||||||
|
|
||||||
$(addprefix sonic-linux-kernel/,linux-headers-3.16.0-4-amd64_3.16.7-ckt11-2+acs8u2_amd64.deb linux-headers-3.16.0-4-common_3.16.7-ckt11-2+acs8u2_amd64.deb linux-image-3.16.0-4-amd64-dbg_3.16.7-ckt11-2+acs8u2_amd64.deb linux-image-3.16.0-4-amd64_3.16.7-ckt11-2+acs8u2_amd64.deb xen-linux-system-3.16.0-4-amd64_3.16.7-ckt11-2+acs8u2_amd64.deb):
|
|
||||||
pushd sonic-linux-kernel; sudo ./build.sh; popd
|
|
||||||
|
|
||||||
initramfs-tools/initramfs-tools_0.120_all.deb:
|
|
||||||
pushd initramfs-tools; ./build.sh; popd
|
|
@ -1,7 +0,0 @@
|
|||||||
## Get vendor SAI SDK
|
|
||||||
## https://github.com/Azure/sonic-buildimage/blob/master/README.md#3-get-vendor-sai-sdk
|
|
||||||
|
|
||||||
libopennsl_6.4.11-1+0~20160719212144.23~1.gbp8ec2d1_amd64.deb
|
|
||||||
libsaibcm-dbg_1.0.2~20160727172452.52_amd64.deb
|
|
||||||
libsaibcm-dev_1.0.2~20160727172452.52_amd64.deb
|
|
||||||
libsaibcm_1.0.2~20160727172452.52_amd64.deb
|
|
@ -1,7 +0,0 @@
|
|||||||
## Get vendor SAI SDK
|
|
||||||
## https://github.com/Azure/sonic-buildimage/blob/master/README.md#3-get-vendor-sai-sdk
|
|
||||||
|
|
||||||
libsai.deb
|
|
||||||
sai.deb
|
|
||||||
xp-tools.deb
|
|
||||||
xpshell.deb
|
|
22
src/hiredis/Makefile
Normal file
22
src/hiredis/Makefile
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
.ONESHELL:
|
||||||
|
SHELL = /bin/bash
|
||||||
|
.SHELLFLAGS += -e
|
||||||
|
|
||||||
|
MAIN_TARGET = libhiredis0.13_$(HIREDIS_VERSION_FULL)_amd64.deb
|
||||||
|
DERIVED_TARGETS = libhiredis-dbg_$(HIREDIS_VERSION_FULL)_amd64.deb libhiredis-dev_$(HIREDIS_VERSION_FULL)_amd64.deb
|
||||||
|
|
||||||
|
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||||
|
rm -rf hiredis-$(HIREDIS_VERSION)
|
||||||
|
|
||||||
|
wget -O hiredis_$(HIREDIS_VERSION).orig.tar.gz http://http.debian.net/debian/pool/main/h/hiredis/hiredis_$(HIREDIS_VERSION).orig.tar.gz
|
||||||
|
wget -O hiredis_$(HIREDIS_VERSION_FULL).debian.tar.xz http://http.debian.net/debian/pool/main/h/hiredis/hiredis_$(HIREDIS_VERSION_FULL).debian.tar.xz
|
||||||
|
wget -O hiredis_$(HIREDIS_VERSION_FULL).dsc http://http.debian.net/debian/pool/main/h/hiredis/hiredis_$(HIREDIS_VERSION_FULL).dsc
|
||||||
|
|
||||||
|
dpkg-source -x hiredis_$(HIREDIS_VERSION_FULL).dsc
|
||||||
|
pushd hiredis-$(HIREDIS_VERSION)
|
||||||
|
fakeroot debian/rules binary
|
||||||
|
popd
|
||||||
|
|
||||||
|
mv $* $(DERIVED_TARGETS) $(DEST)/
|
||||||
|
|
||||||
|
$(addprefix $(DEST)/, $(DERIVED_TARGETS)): $(DEST)/% : $(DEST)/$(MAIN_TARGET)
|
@ -1,12 +0,0 @@
|
|||||||
#!/bin/bash -x
|
|
||||||
|
|
||||||
# Install redis-server
|
|
||||||
sudo dpkg -i redis/*.deb
|
|
||||||
|
|
||||||
wget http://http.debian.net/debian/pool/main/h/hiredis/hiredis_0.13.3.orig.tar.gz
|
|
||||||
wget http://http.debian.net/debian/pool/main/h/hiredis/hiredis_0.13.3-2.debian.tar.xz
|
|
||||||
wget http://http.debian.net/debian/pool/main/h/hiredis/hiredis_0.13.3-2.dsc
|
|
||||||
dpkg-source -x hiredis_0.13.3-2.dsc
|
|
||||||
pushd hiredis-0.13.3; fakeroot debian/rules binary; popd
|
|
||||||
|
|
||||||
cp *.deb ..
|
|
21
src/initramfs-tools/Makefile
Normal file
21
src/initramfs-tools/Makefile
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
.ONESHELL:
|
||||||
|
SHELL = /bin/bash
|
||||||
|
.SHELLFLAGS += -e
|
||||||
|
|
||||||
|
MAIN_TARGET = initramfs-tools_$(INITRAMFS_TOOLS_VERSION)_all.deb
|
||||||
|
|
||||||
|
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||||
|
# Obtaining the initramfs-tools
|
||||||
|
rm -rf ./initramfs-tools
|
||||||
|
git clone --branch v0.120 https://anonscm.debian.org/git/kernel/initramfs-tools.git ./initramfs-tools
|
||||||
|
|
||||||
|
# Patch
|
||||||
|
pushd ./initramfs-tools
|
||||||
|
patch -p1 < ../loopback-file-system-support.patch
|
||||||
|
|
||||||
|
# Build the package
|
||||||
|
rm -f debian/*.debhelper.log
|
||||||
|
dpkg-buildpackage -rfakeroot -b -us -uc
|
||||||
|
popd
|
||||||
|
|
||||||
|
mv $* $(DEST)/
|
@ -1,19 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
## This script is to build the initramfs-tools with patches
|
|
||||||
##
|
|
||||||
## USAGE:
|
|
||||||
## ./build.sh
|
|
||||||
|
|
||||||
# Obtaining the initramfs-tools
|
|
||||||
rm -rf ./initramfs-tools
|
|
||||||
git clone --branch v0.120 https://anonscm.debian.org/git/kernel/initramfs-tools.git ./initramfs-tools
|
|
||||||
|
|
||||||
# Patch
|
|
||||||
pushd ./initramfs-tools
|
|
||||||
patch -p1 < $OLDPWD/loopback-file-system-support.patch
|
|
||||||
|
|
||||||
# Build the package
|
|
||||||
rm -f debian/*.debhelper.log
|
|
||||||
dpkg-buildpackage -rfakeroot -b -us -uc
|
|
||||||
|
|
||||||
popd
|
|
35
src/libnl3/Makefile
Normal file
35
src/libnl3/Makefile
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
.ONESHELL:
|
||||||
|
SHELL = /bin/bash
|
||||||
|
.SHELLFLAGS += -e
|
||||||
|
|
||||||
|
MAIN_TARGET = libnl-3-200_$(LIBNL3_VERSION)_amd64.deb
|
||||||
|
DERIVED_TARGETS = libnl-3-dev_$(LIBNL3_VERSION)_amd64.deb \
|
||||||
|
libnl-genl-3-200_$(LIBNL3_VERSION)_amd64.deb \
|
||||||
|
libnl-genl-3-dev_$(LIBNL3_VERSION)_amd64.deb \
|
||||||
|
libnl-route-3-200_$(LIBNL3_VERSION)_amd64.deb \
|
||||||
|
libnl-route-3-dev_$(LIBNL3_VERSION)_amd64.deb \
|
||||||
|
libnl-nf-3-200_$(LIBNL3_VERSION)_amd64.deb \
|
||||||
|
libnl-nf-3-dev_$(LIBNL3_VERSION)_amd64.deb \
|
||||||
|
libnl-cli-3-200_$(LIBNL3_VERSION)_amd64.deb \
|
||||||
|
libnl-cli-3-dev_$(LIBNL3_VERSION)_amd64.deb
|
||||||
|
|
||||||
|
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||||
|
# Obtaining the libnl3
|
||||||
|
rm -rf ./libnl3
|
||||||
|
git clone https://anonscm.debian.org/git/collab-maint/libnl3.git
|
||||||
|
pushd ./libnl3
|
||||||
|
git checkout -f b77c0e49cb
|
||||||
|
|
||||||
|
# Patch
|
||||||
|
export QUILT_PATCHES=debian/patches
|
||||||
|
quilt push
|
||||||
|
quilt push
|
||||||
|
quilt push
|
||||||
|
quilt push
|
||||||
|
quilt push
|
||||||
|
dpkg-buildpackage -rfakeroot -b -us -uc
|
||||||
|
popd
|
||||||
|
|
||||||
|
mv $(DERIVED_TARGETS) $* $(DEST)/
|
||||||
|
|
||||||
|
$(addprefix $(DEST)/, $(DERIVED_TARGETS)): $(DEST)/% : $(DEST)/$(MAIN_TARGET)
|
@ -1,23 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
## This script is to build the libnl3 3.2.27-1
|
|
||||||
##
|
|
||||||
## USAGE:
|
|
||||||
## ./build.sh
|
|
||||||
|
|
||||||
# Obtaining the libnl3
|
|
||||||
rm -rf ./libnl3
|
|
||||||
git clone https://anonscm.debian.org/git/collab-maint/libnl3.git
|
|
||||||
pushd ./libnl3
|
|
||||||
git checkout -f b77c0e49cb
|
|
||||||
|
|
||||||
# Patch
|
|
||||||
export QUILT_PATCHES=debian/patches
|
|
||||||
quilt push
|
|
||||||
quilt push
|
|
||||||
quilt push
|
|
||||||
quilt push
|
|
||||||
quilt push
|
|
||||||
dpkg-buildpackage -rfakeroot -b -us -uc
|
|
||||||
|
|
||||||
popd
|
|
||||||
cp *.deb ..
|
|
31
src/libteam/Makefile
Normal file
31
src/libteam/Makefile
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
.ONESHELL:
|
||||||
|
SHELL = /bin/bash
|
||||||
|
.SHELLFLAGS += -e
|
||||||
|
|
||||||
|
MAIN_TARGET = libteam5_$(LIBTEAM_VERSION)_amd64.deb
|
||||||
|
DERIVED_TARGETS = libteam-dev_$(LIBTEAM_VERSION)_amd64.deb \
|
||||||
|
libteamdctl0_$(LIBTEAM_VERSION)_amd64.deb \
|
||||||
|
libteam-utils_$(LIBTEAM_VERSION)_amd64.deb
|
||||||
|
|
||||||
|
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||||
|
# Obtain libteam
|
||||||
|
rm -rf ./libteam
|
||||||
|
git clone https://github.com/jpirko/libteam.git
|
||||||
|
pushd ./libteam
|
||||||
|
git checkout -f v1.26
|
||||||
|
popd
|
||||||
|
|
||||||
|
git clone https://anonscm.debian.org/git/collab-maint/libteam.git tmp
|
||||||
|
pushd ./tmp
|
||||||
|
git checkout -f da006f2 # v1.26
|
||||||
|
popd
|
||||||
|
|
||||||
|
mv tmp/debian libteam/
|
||||||
|
rm -rf tmp
|
||||||
|
pushd ./libteam
|
||||||
|
dpkg-buildpackage -rfakeroot -b -us -uc
|
||||||
|
popd
|
||||||
|
|
||||||
|
mv $(DERIVED_TARGETS) $* $(DEST)/
|
||||||
|
|
||||||
|
$(addprefix $(DEST)/, $(DERIVED_TARGETS)): $(DEST)/% : $(DEST)/$(MAIN_TARGET)
|
@ -1,26 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
## This script is to build libteam
|
|
||||||
##
|
|
||||||
## USAGE:
|
|
||||||
## ./build.sh
|
|
||||||
|
|
||||||
# Obtain libteam
|
|
||||||
rm -rf ./libteam
|
|
||||||
git clone https://github.com/jpirko/libteam.git
|
|
||||||
pushd ./libteam
|
|
||||||
git checkout -f v1.26
|
|
||||||
popd
|
|
||||||
|
|
||||||
git clone https://anonscm.debian.org/git/collab-maint/libteam.git tmp
|
|
||||||
pushd ./tmp
|
|
||||||
git checkout -f da006f2 # v1.26
|
|
||||||
popd
|
|
||||||
mv tmp/debian libteam/
|
|
||||||
rm -rf tmp
|
|
||||||
|
|
||||||
pushd ./libteam
|
|
||||||
dpkg-buildpackage -rfakeroot -b -us -uc
|
|
||||||
|
|
||||||
popd
|
|
||||||
cp *.deb ..
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
## This script is to build the kernel-mft-dkms_4.5.0-3.16.0-4-amd64 kernel modules
|
|
||||||
##
|
|
||||||
## USAGE:
|
|
||||||
## ./build.sh
|
|
||||||
|
|
||||||
MFT_NAME=mft-4.5.0-31-x86_64-deb
|
|
||||||
MFT_TGZ=${MFT_NAME}.tgz
|
|
||||||
MFT_KERNEL_DEB=kernel-mft-dkms_4.5.0-31_all.deb
|
|
||||||
KERNELVER=3.16.0-4-amd64
|
|
||||||
|
|
||||||
wget -N http://www.mellanox.com/downloads/MFT/${MFT_TGZ}
|
|
||||||
tar xzf $MFT_TGZ
|
|
||||||
pushd $MFT_NAME/SDEBS
|
|
||||||
dpkg -i $MFT_KERNEL_DEB
|
|
||||||
TARBALL_PATH=$(dkms mkdriverdisk kernel-mft-dkms/4.5.0 -a all -d ubuntu -k ${KERNELVER} --media tar | grep "Disk image location" | cut -d':' -f2)
|
|
||||||
echo $TARBALL_PATH
|
|
||||||
tar xvf $TARBALL_PATH
|
|
||||||
popd
|
|
||||||
|
|
||||||
cp $MFT_NAME/SDEBS/ubuntu-drivers/3.16.0/kernel-mft-dkms_4.5.0-3.16.0-4-amd64_all.deb ../
|
|
||||||
cp $MFT_NAME/DEBS/mft-4.5.0-31.amd64.deb ../
|
|
@ -1,24 +0,0 @@
|
|||||||
## Get vendor SAI SDK
|
|
||||||
## https://github.com/Azure/sonic-buildimage/blob/master/README.md#3-get-vendor-sai-sdk
|
|
||||||
|
|
||||||
fw-SPC.mfa
|
|
||||||
applibs-dev_1.mlnx.4.2.3002_amd64.deb
|
|
||||||
applibs_1.mlnx.4.2.3002_amd64.deb
|
|
||||||
iproute2-dev_1.mlnx.4.2.3002_amd64.deb
|
|
||||||
iproute2_1.mlnx.4.2.3002_amd64.deb
|
|
||||||
python-sdk-api_1.mlnx.4.2.3002_amd64.deb
|
|
||||||
sx-complib-dev-static_1.mlnx.4.2.3002_amd64.deb
|
|
||||||
sx-complib-dev_1.mlnx.4.2.3002_amd64.deb
|
|
||||||
sx-complib_1.mlnx.4.2.3002_amd64.deb
|
|
||||||
sx-examples-dev_1.mlnx.4.2.3002_amd64.deb
|
|
||||||
sx-examples_1.mlnx.4.2.3002_amd64.deb
|
|
||||||
sx-gen-utils-dev_1.mlnx.4.2.3002_amd64.deb
|
|
||||||
sx-gen-utils_1.mlnx.4.2.3002_amd64.deb
|
|
||||||
sx-kernel-dev_1.mlnx.4.2.3002_amd64.deb
|
|
||||||
sx-kernel_1.mlnx.4.2.3002_amd64.deb
|
|
||||||
sx-scew-dev-static_1.mlnx.4.2.3002_amd64.deb
|
|
||||||
sx-scew-dev_1.mlnx.4.2.3002_amd64.deb
|
|
||||||
sx-scew_1.mlnx.4.2.3002_amd64.deb
|
|
||||||
sxd-libs-dev-static_1.mlnx.4.2.3002_amd64.deb
|
|
||||||
sxd-libs-dev_1.mlnx.4.2.3002_amd64.deb
|
|
||||||
sxd-libs_1.mlnx.4.2.3002_amd64.deb
|
|
22
src/mpdecimal/Makefile
Normal file
22
src/mpdecimal/Makefile
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
.ONESHELL:
|
||||||
|
SHELL = /bin/bash
|
||||||
|
.SHELLFLAGS += -e
|
||||||
|
|
||||||
|
MAIN_TARGET = libmpdec2_$(MPDECIMAL_VERSION_FULL)_amd64.deb
|
||||||
|
DERIVED_TARGETS = libmpdec-dev_$(MPDECIMAL_VERSION_FULL)_amd64.deb
|
||||||
|
|
||||||
|
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||||
|
rm -rf mpdecimal-$(MPDECIMAL_VERSION)
|
||||||
|
|
||||||
|
wget -N -O mpdecimal_$(MPDECIMAL_VERSION).orig.tar.gz http://http.debian.net/debian/pool/main/m/mpdecimal/mpdecimal_$(MPDECIMAL_VERSION).orig.tar.gz
|
||||||
|
wget -N -O mpdecimal_$(MPDECIMAL_VERSION_FULL).debian.tar.xz http://http.debian.net/debian/pool/main/m/mpdecimal/mpdecimal_$(MPDECIMAL_VERSION_FULL).debian.tar.xz
|
||||||
|
wget -N -O mpdecimal_$(MPDECIMAL_VERSION_FULL).dsc http://http.debian.net/debian/pool/main/m/mpdecimal/mpdecimal_$(MPDECIMAL_VERSION_FULL).dsc
|
||||||
|
|
||||||
|
dpkg-source -x mpdecimal_$(MPDECIMAL_VERSION_FULL).dsc
|
||||||
|
pushd mpdecimal-$(MPDECIMAL_VERSION)
|
||||||
|
dpkg-buildpackage -us -uc -b
|
||||||
|
popd
|
||||||
|
|
||||||
|
mv $* $(DERIVED_TARGETS) $(DEST)/
|
||||||
|
|
||||||
|
$(addprefix $(DEST)/, $(DERIVED_TARGETS)): $(DEST)/% : $(DEST)/$(MAIN_TARGET)
|
@ -1,20 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
MPDECIMAL_VER=2.4.2
|
|
||||||
MPDECIMAL_DEB_VER=1
|
|
||||||
|
|
||||||
wget -N http://http.debian.net/debian/pool/main/m/mpdecimal/mpdecimal_${MPDECIMAL_VER}.orig.tar.gz
|
|
||||||
wget -N http://http.debian.net/debian/pool/main/m/mpdecimal/mpdecimal_${MPDECIMAL_VER}-${MPDECIMAL_DEB_VER}.debian.tar.xz
|
|
||||||
wget -N http://http.debian.net/debian/pool/main/m/mpdecimal/mpdecimal_${MPDECIMAL_VER}-${MPDECIMAL_DEB_VER}.dsc
|
|
||||||
|
|
||||||
dpkg-source -x mpdecimal_${MPDECIMAL_VER}-${MPDECIMAL_DEB_VER}.dsc
|
|
||||||
|
|
||||||
pushd mpdecimal-${MPDECIMAL_VER}
|
|
||||||
|
|
||||||
sudo apt-get -y build-dep mpdecimal
|
|
||||||
|
|
||||||
dpkg-buildpackage -us -uc -b
|
|
||||||
|
|
||||||
popd
|
|
||||||
|
|
||||||
cp *.deb ../
|
|
@ -1,5 +0,0 @@
|
|||||||
#!/bin/bash -x
|
|
||||||
|
|
||||||
pushd behavioral-model; ./autogen.sh; dpkg-buildpackage -us -uc -b -j4; popd
|
|
||||||
|
|
||||||
cp *.deb ../
|
|
@ -1,7 +0,0 @@
|
|||||||
#!/bin/bash -x
|
|
||||||
|
|
||||||
pushd p4-hlir
|
|
||||||
python setup.py --command-packages=stdeb.command bdist_deb
|
|
||||||
popd
|
|
||||||
|
|
||||||
cp p4-hlir/deb_dist/*.deb ../
|
|
@ -1,17 +0,0 @@
|
|||||||
#!/bin/bash -x
|
|
||||||
|
|
||||||
sudo pip install ctypesgen
|
|
||||||
|
|
||||||
sudo pip install crc16
|
|
||||||
|
|
||||||
pushd switch
|
|
||||||
|
|
||||||
mkdir -p p4-build/bmv2/switch
|
|
||||||
mkdir -p p4-build/bmv2/pd_thrift_gen
|
|
||||||
|
|
||||||
./autogen.sh
|
|
||||||
dpkg-buildpackage -us -uc -b -j4
|
|
||||||
|
|
||||||
popd
|
|
||||||
|
|
||||||
cp *.deb ../
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user