prereq.mk 1.1 KB

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