blob: 2d615f6b2b31e4c6dd3238b109e08d84d814f734 [file] [log] [blame]
Joey Armstrong62ae1392024-03-17 20:49:30 -04001# -*- makefile -*-
2# -----------------------------------------------------------------------
3# Copyright 2024 Open Networking Foundation 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: 2024 Open Networking Foundation Contributors
18# SPDX-License-Identifier: Apache-2.0
19# -----------------------------------------------------------------------
20## Intent: pip install with dependencies
21## ----------------------------------------------------------------------
22
23$(if $(DEBUG),$(warning ENTER))
24
25##-------------------##
26##---] GLOBALS [---##
27##-------------------##
28venv-requirements := $(venv-abs-path)/makedep/requirements.txt.ts
29
30## -----------------------------------------------------------------------
31## Intent: Define a makefile target able to install venv python modules
32## when changes are made within the requirements.txt file.
33## -----------------------------------------------------------------------
34## [MAKEFILE TARGETS]
35## venv-requirements
36## Named target used to abstract underlying dependency filename.
37## $(venv-requirements-txt)
38## Make macro used to detect changes in requirements.txt file.
39## Timestamp filename is also the primary target for invoking pip install.
40## -----------------------------------------------------------------------
41.PHONY: venv-requirements
42venv-requirements : $(venv-requirements)
43$(venv-requirements) : requirements.txt
44
45 $(call banner-enter,venv-requirements)
Joey Armstrong62ae1392024-03-17 20:49:30 -040046 @mkdir -p $(dir $@)
Joey Armstrongdf238722024-03-28 15:57:52 -040047 $(activate) && python -m pip install -r 'requirements.txt'
Joey Armstrong62ae1392024-03-17 20:49:30 -040048 @touch $@
49
50 $(call banner-leave,venv-requirements)
51
52## -----------------------------------------------------------------------
53## -----------------------------------------------------------------------
54venv-help ::
55 @printf ' %-33.33s %s\n' 'venv-requirements' \
56 'pip install -r requirements.txt (dependency driven)'
57
58# [EOF]