From 702e852ee17ef4e67a59c868637631787a004e86 Mon Sep 17 00:00:00 2001 From: VenkatCisco <77468614+VenkatCisco@users.noreply.github.com> Date: Thu, 5 Aug 2021 18:11:54 -0700 Subject: [PATCH] Platform/cisco-8000 module for sonic-buildimage (#8172) Why I did it Update Makefile, so it does the following: For a given platform, verify if platform/checkout/.ini exists and hence run the platform/checkout/template.j2. This allows platform code to be checked out during the 'make configure' stage. How I did it git clone git@github.com:Azure/sonic-buildimage.git mkdir platform/cisco-8000 make init make configure PLATFORM=cisco-8000 make all --- .gitignore | 1 + Makefile | 55 ++++++++++++++++++++++++-------- platform/checkout/cisco-8000.ini | 3 ++ platform/checkout/template.j2 | 11 +++++++ 4 files changed, 57 insertions(+), 13 deletions(-) create mode 100644 platform/checkout/cisco-8000.ini create mode 100644 platform/checkout/template.j2 diff --git a/.gitignore b/.gitignore index d608aea9f..ced7ef165 100644 --- a/.gitignore +++ b/.gitignore @@ -74,6 +74,7 @@ platform/broadcom/sonic-platform-modules-dell/s6100/modules/dell_s6100_lpc.c platform/broadcom/sonic-platform-modules-dell/z9100/modules/dell_ich.c platform/broadcom/sonic-platform-modules-dell/z9100/modules/dell_mailbox.c platform/broadcom/sonic-platform-modules-dell/z9264f/sonic_platform/ipmihelper.py +platform/cisco-8000 # buildinfo files/build/buildinfo diff --git a/Makefile b/Makefile index c092d257e..3b8792bfb 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,27 @@ NOSTRETCH ?= 0 NOBUSTER ?= 0 NOBULLSEYE ?= 1 +ifeq ($(NOJESSIE),0) +BUILD_JESSIE=1 +endif + +ifeq ($(NOSTRETCH),0) +BUILD_STRETCH=1 +endif + +ifeq ($(NOBUSTER),0) +BUILD_BUSTER=1 +endif + +ifeq ($(NOBULLSEYE),0) +BUILD_BULLSEYE=1 +endif + +PLATFORM_PATH := platform/$(if $(PLATFORM),$(PLATFORM),$(CONFIGURED_PLATFORM)) +PLATFORM_CHECKOUT := platform/checkout +PLATFORM_CHECKOUT_FILE := $(PLATFORM_CHECKOUT)/$(PLATFORM).ini +PLATFORM_CHECKOUT_CMD := $(shell if [ -f $(PLATFORM_CHECKOUT_FILE) ]; then PLATFORM_PATH=$(PLATFORM_PATH) j2 $(PLATFORM_CHECKOUT)/template.j2 $(PLATFORM_CHECKOUT_FILE); fi) + %:: @echo "+++ --- Making $@ --- +++" ifeq ($(NOJESSIE), 0) @@ -42,20 +63,28 @@ init: @echo "+++ Making $@ +++" make -f Makefile.work $@ -clean configure reset showtag sonic-slave-build sonic-slave-bash : +# +# Function to invoke target $@ in Makefile.work with proper BLDENV +# +define make_work @echo "+++ Making $@ +++" -ifeq ($(NOJESSIE), 0) - make -f Makefile.work $@ -endif -ifeq ($(NOSTRETCH), 0) - BLDENV=stretch make -f Makefile.work $@ -endif -ifeq ($(NOBUSTER), 0) - BLDENV=buster make -f Makefile.work $@ -endif -ifeq ($(NOBULLSEYE), 0) - BLDENV=bullseye make -f Makefile.work $@ -endif + $(if $(BUILD_JESSIE),make -f Makefile.work $@,) + $(if $(BUILD_STRETCH),BLDENV=stretch make -f Makefile.work $@,) + $(if $(BUILD_BUSTER),BLDENV=buster make -f Makefile.work $@,) + $(if $(BUILD_BULLSEYE),BLDENV=bullseye make -f Makefile.work $@,) +endef + +.PHONY: $(PLATFORM_PATH) + +$(PLATFORM_PATH): + @echo "+++ Cheking $@ +++" + $(PLATFORM_CHECKOUT_CMD) + +configure : $(PLATFORM_PATH) + $(call make_work, $@) + +clean reset showtag sonic-slave-build sonic-slave-bash : + $(call make_work, $@) # Freeze the versions, see more detail options: scripts/versions_manager.py freeze -h freeze: diff --git a/platform/checkout/cisco-8000.ini b/platform/checkout/cisco-8000.ini new file mode 100644 index 000000000..a8a76e1d4 --- /dev/null +++ b/platform/checkout/cisco-8000.ini @@ -0,0 +1,3 @@ +[module] +repo=git@github.com:Cisco-8000-sonic/platform-cisco-8000.git +ref=v0.1 diff --git a/platform/checkout/template.j2 b/platform/checkout/template.j2 new file mode 100644 index 000000000..17b8f00c8 --- /dev/null +++ b/platform/checkout/template.j2 @@ -0,0 +1,11 @@ +{% set path = env('PLATFORM_PATH') %} +if [ ! -d {{ path }} ]; then git clone {{ module.repo }} {{ path }}; fi; +if [ -d {{ path }}/.git ]; then cd {{ path }} && + +{% if module.ref is defined %} +git checkout {{ module.ref }} && git submodule update --init --recursive; +{% else %} +git submodule update --init --recursive; +{% endif %} + +else echo "{{ path }}/.git not found"; exit 1; fi