include: choose package output directory based on repository info
[openwrt/openwrt.git] / include / feeds.mk
index 17ce64f83a400fca8639f68476541c5e459b519f..ef7a09f4cd272ded4da736a37c516b77d8e1ada2 100644 (file)
@@ -1,23 +1,54 @@
 #
 # Copyright (C) 2014 OpenWrt.org
+# Copyright (C) 2016 LEDE Project
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
 
--include $(TMP_DIR)/.packagefeeds
+-include $(TMP_DIR)/.packagesubdirs
 
 FEEDS_AVAILABLE:=$(shell $(SCRIPT_DIR)/feeds list -n)
-FEEDS_INSTALLED:=$(patsubst %.index,%,$(notdir $(wildcard $(TOPDIR)/feeds/*.index)))
+FEEDS_INSTALLED:=$(notdir $(wildcard $(TOPDIR)/package/feeds/*))
 FEEDS_ENABLED:=$(foreach feed,$(FEEDS_INSTALLED),$(if $(CONFIG_FEED_$(feed)),$(feed)))
+FEEDS_DISABLED:=$(filter-out $(FEEDS_ENABLED),$(FEEDS_AVAILABLE))
+
+PACKAGE_SUBDIRS=$(PACKAGE_DIR)
+ifneq ($(CONFIG_PER_FEED_REPO),)
+       PACKAGE_SUBDIRS += $(OUTPUT_DIR)/packages/$(ARCH_PACKAGES)/base
+       ifneq ($(CONFIG_PER_FEED_REPO_ADD_DISABLED),)
+               PACKAGE_SUBDIRS += $(foreach FEED,$(FEEDS_AVAILABLE),$(OUTPUT_DIR)/packages/$(ARCH_PACKAGES)/$(FEED))
+       else
+               PACKAGE_SUBDIRS += $(foreach FEED,$(FEEDS_ENABLED),$(OUTPUT_DIR)/packages/$(ARCH_PACKAGES)/$(FEED))
+       endif
+endif
 
 PKG_CONFIG_DEPENDS += \
        CONFIG_PER_FEED_REPO \
+       CONFIG_PER_FEED_REPO_ADD_DISABLED \
+       CONFIG_PER_FEED_REPO_ADD_COMMENTED \
        $(foreach feed,$(FEEDS_INSTALLED),CONFIG_FEED_$(feed))
 
 # 1: package name
+# 2: flags
+# 3: section
 define FeedPackageDir
 $(strip $(if $(CONFIG_PER_FEED_REPO), \
-  $(abspath $(PACKAGE_DIR)/$(if $(Package/$(1)/feed),$(Package/$(1)/feed),base)), \
+  $(if $(Package/$(1)/subdir), \
+    $(abspath $(OUTPUT_DIR)/packages/$(ARCH_PACKAGES)/$(Package/$(1)/subdir)), \
+    $(PACKAGE_DIR)), \
   $(PACKAGE_DIR)))
 endef
+
+# 1: destination file
+define FeedSourcesAppend
+( \
+  $(strip $(if $(CONFIG_PER_FEED_REPO), \
+       $(foreach feed,base kernel $(FEEDS_ENABLED),echo "src/gz %n_$(feed) %U/$(feed)";) \
+       $(if $(CONFIG_PER_FEED_REPO_ADD_DISABLED), \
+               $(foreach feed,$(FEEDS_DISABLED),echo "$(if $(CONFIG_PER_FEED_REPO_ADD_COMMENTED),# )src/gz %n_$(feed) %U/$(feed)";)) \
+  , \
+       echo "src/gz %n %U"; \
+  )) \
+) >> $(1)
+endef