prereq.mk 910 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #
  2. # Copyright (C) 2006 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. prereq:
  8. if [ -f $(TMP_DIR)/.prereq-error ]; then \
  9. echo; \
  10. cat $(TMP_DIR)/.prereq-error; \
  11. rm -f $(TMP_DIR)/.prereq-error; \
  12. echo; \
  13. false; \
  14. fi
  15. .SILENT: prereq
  16. define Require
  17. export PREREQ_CHECK=1
  18. ifeq ($$(CHECK_$(1)),)
  19. prereq: prereq-$(1)
  20. prereq-$(1): FORCE
  21. echo -n "Checking '$(1)'... "
  22. if $(NO_TRACE_MAKE) -f $(firstword $(MAKEFILE_LIST)) check-$(1) >/dev/null 2>/dev/null; then \
  23. echo 'ok.'; \
  24. else \
  25. echo 'failed.'; \
  26. echo -e "$(strip $(2))" >> $(TMP_DIR)/.prereq-error; \
  27. fi
  28. check-$(1): FORCE
  29. $(call Require/$(1))
  30. CHECK_$(1):=1
  31. .SILENT: prereq-$(1) check-$(1)
  32. endif
  33. endef
  34. define RequireCommand
  35. define Require/$(1)
  36. which $(1)
  37. endef
  38. $$(eval $$(call Require,$(1),$(2)))
  39. endef