diff --git a/dockers/docker-syncd/Dockerfile b/dockers/docker-syncd/Dockerfile deleted file mode 100755 index 88c521ffef68..000000000000 --- a/dockers/docker-syncd/Dockerfile +++ /dev/null @@ -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/libswsscommon_*.deb", "deps/libopennsl_*.deb", "deps/libsaibcm_*.deb", "deps/libsairedis_*.deb", "deps/libsaimetadata_*.deb", "deps/syncd_*.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/libswsscommon_*.deb \ - && dpkg_apt /deps/libopennsl_*.deb \ - && dpkg_apt /deps/libsaibcm_*.deb \ - && dpkg_apt /deps/libsairedis_*.deb \ - && dpkg_apt /deps/libsaimetadata_*.deb \ - && dpkg_apt /deps/syncd_*.deb - -## TODO: add kmod into Depends -RUN apt-get install -f kmod - -COPY ["deps/dsserve", "deps/bcmcmd", "start.sh", "/usr/bin/"] - -## 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"] diff --git a/platform/broadcom/docker-orchagent-brcm.mk b/platform/broadcom/docker-orchagent-brcm.mk new file mode 100644 index 000000000000..c847d93b748d --- /dev/null +++ b/platform/broadcom/docker-orchagent-brcm.mk @@ -0,0 +1,7 @@ +# docker image for orchagent + +DOCKER_ORCHAGENT_BRCM = docker-orchagent-brcm.gz +$(DOCKER_ORCHAGENT_BRCM)_PATH = $(DOCKERS_PATH)/docker-orchagent +$(DOCKER_ORCHAGENT_BRCM)_DEPENDS += $(SWSS) $(REDIS_TOOLS) +$(DOCKER_ORCHAGENT_BRCM)_LOAD_DOCKERS += $(DOCKER_BASE) +SONIC_DOCKER_IMAGES += $(DOCKER_ORCHAGENT_BRCM) diff --git a/platform/broadcom/docker-syncd-brcm.mk b/platform/broadcom/docker-syncd-brcm.mk new file mode 100644 index 000000000000..42fe63c86a44 --- /dev/null +++ b/platform/broadcom/docker-syncd-brcm.mk @@ -0,0 +1,8 @@ +# docker image for brcm syncd + +DOCKER_SYNCD_BRCM = docker-syncd-brcm.gz +$(DOCKER_SYNCD_BRCM)_PATH = $(PLATFORM_PATH)/docker-syncd-brcm +$(DOCKER_SYNCD_BRCM)_DEPENDS += $(SYNCD) +$(DOCKER_SYNCD_BRCM)_FILES += $(BRCM_DSSERVE) $(BRCM_BCMCMD) +$(DOCKER_SYNCD_BRCM)_LOAD_DOCKERS += $(DOCKER_BASE) +SONIC_DOCKER_IMAGES += $(DOCKER_SYNCD_BRCM) diff --git a/platform/broadcom/docker-syncd-brcm/Dockerfile.template b/platform/broadcom/docker-syncd-brcm/Dockerfile.template new file mode 100755 index 000000000000..958c0757b283 --- /dev/null +++ b/platform/broadcom/docker-syncd-brcm/Dockerfile.template @@ -0,0 +1,19 @@ +FROM docker-base + +RUN apt-get update + +COPY deps /deps + +SED_DPKG + +## TODO: add kmod into Depends +RUN apt-get install -f kmod + +COPY ["deps/dsserve", "deps/bcmcmd", "start.sh", "/usr/bin/"] + +## 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"] diff --git a/dockers/docker-syncd/start.sh b/platform/broadcom/docker-syncd-brcm/start.sh similarity index 100% rename from dockers/docker-syncd/start.sh rename to platform/broadcom/docker-syncd-brcm/start.sh diff --git a/platform/broadcom/rules.mk b/platform/broadcom/rules.mk index aa5570082911..6cafbbefac79 100644 --- a/platform/broadcom/rules.mk +++ b/platform/broadcom/rules.mk @@ -1,20 +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 +include $(PLATFORM_PATH)/sdk.mk +include $(PLATFORM_PATH)/sai.mk +include $(PLATFORM_PATH)/docker-orchagent-brcm.mk +include $(PLATFORM_PATH)/docker-syncd-brcm.mk -SONIC_COPY_DEBS += $(OPENNSL) $(BRCM_SAI) $(BRCM_SAI_DBG) $(BRCM_SAI_DEV) +BRCM_DSSERVE = dsserve +$(BRCM_DSSERVE)_PATH = $(PLATFORM_PATH)/sdk +BRCM_BCMCMD = bcmcmd +$(BRCM_BCMCMD)_PATH = $(PLATFORM_PATH)/sdk -# TODO: Put dependencies for SDK packages +SONIC_COPY_FILES += $(BRCM_DSSERVE) $(BRCM_BCMCMD) -SONIC_ALL += $(SONIC_GENERIC) $(DOCKER_SYNCD) $(DOCKER_ORCHAGENT) $(DOCKER_FPM) +SONIC_ALL += $(DOCKER_SYNCD_BRCM) \ + $(DOCKER_ORCHAGENT_MLNX) # Inject brcm sai into sairedis -$(LIBSAIREDIS)_DEPENDS += $(BRCM_LIBSAI) +$(LIBSAIREDIS)_DEPENDS += $(BRCM_OPENNSL) $(BRCM_SAI) $(BRCM_SAI_DEV) # Runtime dependency on brcm sai is set only for syncd -$(SYNCD)_RDEPENDS += $(BRCM_LIBSAI) +$(SYNCD)_RDEPENDS += $(BRCM_OPENNSL) $(BRCM_SAI) diff --git a/platform/broadcom/sai.mk b/platform/broadcom/sai.mk new file mode 100644 index 000000000000..ecedb48edd7a --- /dev/null +++ b/platform/broadcom/sai.mk @@ -0,0 +1,10 @@ +BRCM_SAI = libsaibcm_2.0.3.7~20161214010054.112_amd64.deb +$(BRCM_SAI)_PATH = $(PLATFORM_PATH)/sdk +BRCM_SAI_DEV = libsaibcm-dev_2.0.3.7~20161214010054.112_amd64.deb +$(BRCM_SAI_DEV)_PATH = $(PLATFORM_PATH)/sdk +$(eval $(call add_derived_package,$(BRCM_SAI),$(BRCM_SAI_DEV))) + +SONIC_COPY_DEBS += $(BRCM_SAI) + +$(BRCM_SAI)_DEPENDS += $(BRCM_OPENNSL) +$(BRCM_SAI_DEV)_DEPENDS += $(BRCM_SAI) diff --git a/platform/broadcom/sdk.mk b/platform/broadcom/sdk.mk new file mode 100644 index 000000000000..d3d94e606a64 --- /dev/null +++ b/platform/broadcom/sdk.mk @@ -0,0 +1,4 @@ +BRCM_OPENNSL = libopennsl_3.2.1.5+0~20161214000201.54~1.gbpb514c3_amd64.deb +$(BRCM_OPENNSL)_PATH = $(PLATFORM_PATH)/sdk + +SONIC_COPY_DEBS += $(BRCM_OPENNSL) diff --git a/slave.mk b/slave.mk index 80308929dc05..ee89df4b4c8b 100644 --- a/slave.mk +++ b/slave.mk @@ -62,6 +62,31 @@ MAKEFLAGS += -j $(SONIC_CONFIG_BUILD_JOBS) ## All rules must go after includes for propper targets expansion ############################################################################### +############################################################################### +## Local targets +############################################################################### + +# 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)/$(deb) $(DEBS_PATH)/ $(LOG) || exit 1 ; } ; ) + $(FOOTER) + +# Copy regular files from local directory +# Add new package for copy: +# SOME_NEW_FILE = some_new_file +# $(SOME_NEW_FILE)_PATH = path/to/some_new_file +# SONIC_COPY_FILES += $(SOME_NEW_FILE) +$(addprefix $(DEBS_PATH)/, $(SONIC_COPY_FILES)) : $(DEBS_PATH)/% : .platform + $(HEADER) + cp $($*_PATH)/$* $(DEBS_PATH)/ $(LOG) || exit 1 + $(FOOTER) + ############################################################################### ## Online targets ############################################################################### @@ -88,17 +113,6 @@ $(addprefix $(DEBS_PATH)/, $(SONIC_ONLINE_FILES)) : $(DEBS_PATH)/% : .platform 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 ############################################################################### @@ -271,6 +285,7 @@ SONIC_CLEAN_DEBS = $(addsuffix -clean,$(addprefix $(DEBS_PATH)/, \ $(SONIC_ONLINE_DEBS) \ $(SONIC_ONLINE_FILES) \ $(SONIC_COPY_DEBS) \ + $(SONIC_COPY_FILES) \ $(SONIC_MAKE_DEBS) \ $(SONIC_DPKG_DEBS) \ $(SONIC_PYTHON_STDEB_DEBS) \