blob: 24ad2b0a1fe7d74b03e40b7739523efc7754a403 [file] [log] [blame]
Joey Armstronga516c322023-01-25 17:40:42 -05001# -*- makefile -*-
2# -----------------------------------------------------------------------
3# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16#
17# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
18# SPDX-License-Identifier: Apache-2.0
19# -----------------------------------------------------------------------
20
21$(if $(DEBUG),$(warning ENTER))
22
Joey Armstrongb3a06412023-02-06 09:58:58 -050023GIT ?= git
24
Joey Armstronga516c322023-01-25 17:40:42 -050025## -----------------------------------------------------------------------
26## Intent: Checkout submodules required by ci-management
27## -----------------------------------------------------------------------
Joey Armstrong8384f8b2023-02-06 12:46:08 -050028submodule-repos := $(null)
29submodule-repos += global-jjb
30submodule-repos += lf-ansible
31submodule-repos += packer
Joey Armstrongb3a06412023-02-06 09:58:58 -050032
Joey Armstronga516c322023-01-25 17:40:42 -050033submodule-deps := $(null)
34submodule-deps += submodules# # named pseudo target
Joey Armstrongb3a06412023-02-06 09:58:58 -050035submodule-deps += $(submodule-repos)
Joey Armstronga516c322023-01-25 17:40:42 -050036
37.PHONY: $(submodule-deps)
38$(submodule-deps):
Joey Armstrong8384f8b2023-02-06 12:46:08 -050039 @echo
40 @echo "Checkout dependent submodules"
Joey Armstrongb3a06412023-02-06 09:58:58 -050041 $(GIT) submodule init
42 $(GIT) submodule update
Joey Armstronga516c322023-01-25 17:40:42 -050043
Joey Armstrong8384f8b2023-02-06 12:46:08 -050044# Abstraction: named target for submodule checkout
45checkout-ci-management-sub-modules: $(submodule-repos)
46
Joey Armstronga516c322023-01-25 17:40:42 -050047## -----------------------------------------------------------------------
Joey Armstrongb3a06412023-02-06 09:58:58 -050048## Intent: Revert sandbox to a pristine state.
Joey Armstronga516c322023-01-25 17:40:42 -050049## -----------------------------------------------------------------------
50sterile ::
Joey Armstrongb3a06412023-02-06 09:58:58 -050051 $(RM) -r $(submodule-repos)
52
53 # FIXME:
54 # o restore hierarchy to avoid git status 'deleted:'
55 # o remove: externals should not be under revision control
56 $(GIT) co $(submodule-repos)
Joey Armstronga516c322023-01-25 17:40:42 -050057
58## -----------------------------------------------------------------------
59## -----------------------------------------------------------------------
60help ::
61 @echo
62 @echo '[GIT-SUBMODULES]'
63 @echo ' submodules Checkout dependent git submodules'
64 ifdef VERBOSE
65 @echo ' global-jjb Checkout ci-management submodule global-jjb'
66 @echo ' lf-ansible Checkout ci-management submodule lf-ansible'
67 @echo ' packer Checkout ci-management submodule packer'
68 endif
69
70## -----------------------------------------------------------------------
71## -----------------------------------------------------------------------
72todo ::
73 @echo "Generalize logc, update to depend on .git/ rather than named targets."
74
75$(if $(DEBUG),$(warning LEAVE))
76
77# [EOF]