acrn-hypervisor/scripts/deps.mk
Junjie Mao 10518de722 make: add functions for checking build prerequisites
This patch introduces the following functions for Makefiles:

  check_dep_exec <exe>

      Check existence of the executable <exe>

  check_dep_pylib <lib>

      Check existence of the python library <lib>

Calling and evaluting the functions will create a check_xxx target and add the
target to the variable BUILD_DEPS. Thus it is sufficient to add the following
to a Makefile for checking a number of build dependencies.

  include deps.mk
  $(eval $(call check_dep_exec,python))
  $(eval $(call check_dep_pylib,Sphinx))
  all: $(BUILD_DEPS) ...

v4 -> v5:

    * No changes.

v3 -> v4:

    * No changes.

v2 -> v3:

    * No changes.

v1 -> v2:

    * New in v2.

Signed-off-by: Junjie Mao <junjie.mao@intel.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
2018-06-08 17:21:13 +08:00

28 lines
896 B
Makefile

# check the existence of a specific executable
# usage: check_dep_exec <executable name>
define check_dep_exec =
BUILD_DEPS += check_$(1)
check_$(1):
@if ! which $(1) > /dev/null; then \
echo "******** Missing prerequisite tool ********"; \
echo "Cannot find executable *$(1)*"; \
echo "Please refer to the Getting Started Guide" \
"for installation instructions"; \
exit 1; \
fi
endef
# check the existence of a specific python library
# usage: check_dep_pylib <library name>
define check_dep_pylib =
BUILD_DEPS += check_$(1)
check_$(1):
@if ! pip list 2>/dev/null | grep $(1) > /dev/null 2>&1; then \
echo "******** Missing prerequisite tool ********"; \
echo "The python library *$(1)* is not installed"; \
echo "Please refer to the Getting Started Guide" \
"for installation instructions"; \
exit 1; \
fi
endef