build: add support for specifying extra package dependencies for prepared, configured...
[lede.git] / include / feeds.mk
1 #
2 # Copyright (C) 2014 OpenWrt.org
3 # Copyright (C) 2016 LEDE Project
4 #
5 # This is free software, licensed under the GNU General Public License v2.
6 # See /LICENSE for more information.
7 #
8
9 -include $(TMP_DIR)/.packagesubdirs
10
11 FEEDS_AVAILABLE:=$(shell $(SCRIPT_DIR)/feeds list -n)
12 FEEDS_INSTALLED:=$(notdir $(wildcard $(TOPDIR)/package/feeds/*))
13 FEEDS_ENABLED:=$(foreach feed,$(FEEDS_INSTALLED),$(if $(CONFIG_FEED_$(feed)),$(feed)))
14 FEEDS_DISABLED:=$(filter-out $(FEEDS_ENABLED),$(FEEDS_AVAILABLE))
15
16 PACKAGE_SUBDIRS=$(PACKAGE_DIR)
17 ifneq ($(CONFIG_PER_FEED_REPO),)
18         PACKAGE_SUBDIRS += $(OUTPUT_DIR)/packages/$(ARCH_PACKAGES)/base
19         ifneq ($(CONFIG_PER_FEED_REPO_ADD_DISABLED),)
20                 PACKAGE_SUBDIRS += $(foreach FEED,$(FEEDS_AVAILABLE),$(OUTPUT_DIR)/packages/$(ARCH_PACKAGES)/$(FEED))
21         else
22                 PACKAGE_SUBDIRS += $(foreach FEED,$(FEEDS_ENABLED),$(OUTPUT_DIR)/packages/$(ARCH_PACKAGES)/$(FEED))
23         endif
24 endif
25
26 PKG_CONFIG_DEPENDS += \
27         CONFIG_PER_FEED_REPO \
28         CONFIG_PER_FEED_REPO_ADD_DISABLED \
29         CONFIG_PER_FEED_REPO_ADD_COMMENTED \
30         $(foreach feed,$(FEEDS_INSTALLED),CONFIG_FEED_$(feed))
31
32 # 1: package name
33 define FeedPackageDir
34 $(strip $(if $(CONFIG_PER_FEED_REPO), \
35   $(if $(Package/$(1)/subdir), \
36     $(abspath $(OUTPUT_DIR)/packages/$(ARCH_PACKAGES)/$(Package/$(1)/subdir)), \
37     $(PACKAGE_DIR)), \
38   $(PACKAGE_DIR)))
39 endef
40
41 # 1: destination file
42 define FeedSourcesAppend
43 ( \
44   echo "src/gz %n_core %U/targets/%S/packages"; \
45   $(strip $(if $(CONFIG_PER_FEED_REPO), \
46         $(foreach feed,base $(FEEDS_ENABLED),echo "src/gz %n_$(feed) %U/packages/%A/$(feed)";) \
47         $(if $(CONFIG_PER_FEED_REPO_ADD_DISABLED), \
48                 $(foreach feed,$(FEEDS_DISABLED),echo "$(if $(CONFIG_PER_FEED_REPO_ADD_COMMENTED),# )src/gz %n_$(feed) %U/packages/%A/$(feed)";)))) \
49 ) >> $(1)
50 endef