_rules-origin.mk 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. CFLAGS := $(filter-out -Werror,$(CFLAGS))
  2. LDFLAGS :=
  3. .PHONY: config build install post-install
  4. ORIGIN_Q ?= @
  5. ifeq ($(strip $(PKG_SWITCH)),y)
  6. all :
  7. ifeq ($(PKG_SOURCE),)
  8. $(error PKG_SOURCE for $(PKG_NAME) cannot be found!)
  9. endif
  10. $(ORIGIN_Q) \
  11. MESSAGE=$(strip $(if $(filter 0 1,$(MAKELEVEL)), \
  12. "\r$(PKG_NAME) already pre-built at $(IMPORT_VDRDIR)/$(PREBUILT_LIBDIR)\n","")); \
  13. if [ "$(LIBA_TARGET)" != "" -a -f $(IMPORT_VDRDIR)/$(PREBUILT_LIBDIR)/$(LIBA_TARGET) ] || \
  14. [ "$(LIBSO_TARGET)" != "" -a -f $(IMPORT_VDRDIR)/$(PREBUILT_LIBDIR)/$(LIBSO_TARGET) ]; then \
  15. echo -ne $${MESSAGE}; \
  16. cp -P -f $(IMPORT_VDRDIR)/$(PREBUILT_LIBDIR)/{$(LIBA_TARGET),$(LIBSO_TARGET)*} \
  17. $(SYSROOT_LIB) 2>/dev/null; \
  18. for t in $(TARGET); do \
  19. cp -f $(IMPORT_VDRDIR)/$(PREBUILT_BINDIR)/$${t} $(SYSROOT_BIN); \
  20. done; \
  21. touch $(STAMP_SHIELD); \
  22. fi
  23. $(ORIGIN_Q) \
  24. MESSAGE=$(if $(filter 0 1,$(MAKELEVEL)),"\r$(PKG_NAME) already unpacked\n",""); \
  25. if [ -f $(STAMP_SHIELD) ]; then true; \
  26. elif [ -f $(STAMP_UNPACK) ]; then \
  27. echo -ne $${MESSAGE}; \
  28. else \
  29. rm -rf $(PKG_NAME)* && \
  30. if [ -f $(PKG_SOURCE) ]; then \
  31. tar xf $(PKG_SOURCE) -C . && \
  32. for i in $(wildcard *.patch); do \
  33. cd $(PKG_NAME)* && patch -d . -p 1 < ../$${i} && cd $${OLDPWD}; \
  34. done \
  35. fi \
  36. && touch $(STAMP_UNPACK); \
  37. fi
  38. $(ORIGIN_Q) \
  39. MESSAGE=$(if $(filter 0 1,$(MAKELEVEL)),"\r$(PKG_NAME) already configured\n",""); \
  40. if [ -f $(STAMP_SHIELD) ]; then true; \
  41. elif [ -f $(STAMP_CONFIG) ]; then \
  42. echo -ne $${MESSAGE}; \
  43. else \
  44. if grep -q 'config *:' $(HD_MAKEFILE); then \
  45. export SHELL=$(SHELL); \
  46. $(MAKE) config -f $(HD_MAKEFILE); \
  47. else \
  48. cd $(PKG_NAME)* && ( \
  49. ./configure \
  50. --prefix=$(OUTPUT_DIR)/usr \
  51. --host=$(HOST) \
  52. --target=$(shell $(SHELL_DBG) basename $(CROSS_PREFIX) 2>/dev/null) \
  53. --enable-static --enable-shared \
  54. || \
  55. ./configure \
  56. --prefix=$(OUTPUT_DIR)/usr \
  57. --host=$(HOST) \
  58. --target=$(shell $(SHELL_DBG) basename $(CROSS_PREFIX) 2>/dev/null|cut -d'-' -f1) \
  59. --enable-static --enable-shared \
  60. ) && cd $${OLDPWD}; \
  61. fi \
  62. && touch $(STAMP_CONFIG); \
  63. fi
  64. $(ORIGIN_Q) \
  65. MESSAGE=$(if $(filter 0 1,$(MAKELEVEL)),"\r$(PKG_NAME) already built\n",""); \
  66. if [ -f $(STAMP_SHIELD) ]; then true; \
  67. elif [ -f $(STAMP_BUILD) ]; then \
  68. echo -ne $${MESSAGE}; \
  69. else \
  70. if grep -q 'build *:' $(HD_MAKEFILE); then \
  71. $(MAKE) build -f $(HD_MAKEFILE); \
  72. else \
  73. if [ -d $(PKG_NAME)* ]; then \
  74. cd $(PKG_NAME)* && $(MAKE) -j8 all && cd ..; \
  75. fi \
  76. fi \
  77. && touch $(STAMP_BUILD); \
  78. fi
  79. $(ORIGIN_Q) \
  80. MESSAGE=$(if $(filter 0 1,$(MAKELEVEL)),"\r$(PKG_NAME) already installed\n",""); \
  81. if [ -f $(STAMP_SHIELD) ]; then true; \
  82. elif [ -f $(STAMP_INSTALL) ]; then \
  83. echo -ne $${MESSAGE}; \
  84. else \
  85. if grep -q 'install *:' $(HD_MAKEFILE); then \
  86. $(MAKE) install -f $(HD_MAKEFILE); \
  87. else \
  88. if [ -d $(PKG_NAME)* ]; then \
  89. cd $(PKG_NAME)* && $(MAKE) install && cd ..; \
  90. fi \
  91. fi \
  92. && touch $(STAMP_INSTALL); \
  93. fi
  94. $(ORIGIN_Q) \
  95. MESSAGE=$(if $(filter 0 1,$(MAKELEVEL)),"\r$(PKG_NAME) already post-installed\n",""); \
  96. if [ -f $(STAMP_POSTINS) ]; then \
  97. echo -ne $${MESSAGE}; \
  98. else \
  99. if grep -q 'post-install *:' $(HD_MAKEFILE); then \
  100. $(MAKE) post-install -f $(HD_MAKEFILE); \
  101. fi \
  102. && touch $(STAMP_POSTINS); \
  103. fi
  104. clean-prepare:
  105. $(Q)rm -f $(STAMP_BUILD) $(STAMP_INSTALL) $(STAMP_POSTINS)
  106. else
  107. all:
  108. $(Q)true
  109. clean:
  110. $(Q)true
  111. endif # ifeq ($(strip $(PKG_SWITCH)),y)