BuildSystem: Add <package>/Makefile.append files in all active feeds as dependency for <package>/Makefile
Problem: With the new Overlay Feeds feature Makefile.append files would be appended to <package>/Makefile code, as result OpenWRT build system should interpret this files as <package>/Makefile dependency in same manner as includes defined with SCAN_DEPS variable. Cause: Overlay Feeds is a new feature and requires support for new files. Solution: Scan all enabled feeds for Makefile.append files and add "$(TOPDIR)/feeds/<feed_name>/path/to/<package>/Makefie.append" as dependency for "tmp/info/.packageinfo-<path_to_package>" files. References: PCF-1616 Signed-off-by: Nikolai Merinov <n.merinov@inango-systems.com>
This commit is contained in:
parent
469e1eb8a8
commit
1ff5427954
@ -1,4 +1,10 @@
|
|||||||
BEGIN { FS="/" }
|
BEGIN {
|
||||||
|
FS="/"
|
||||||
|
while ("for feed in $(./scripts/feeds list -n); do find -L feeds/${feed} -name Makefile.append | sort; done" | getline APPEND) {
|
||||||
|
nf=split(APPEND, parts)
|
||||||
|
APPENDS[parts[nf-1]]="$(TOPDIR)/" APPEND "\n" APPENDS[parts[nf-1]]
|
||||||
|
}
|
||||||
|
}
|
||||||
$1 ~ /^feeds/ { FEEDS[$NF]=$0 }
|
$1 ~ /^feeds/ { FEEDS[$NF]=$0 }
|
||||||
$1 !~ /^feeds/ { PKGS[$NF]=$0 }
|
$1 !~ /^feeds/ { PKGS[$NF]=$0 }
|
||||||
END {
|
END {
|
||||||
@ -8,12 +14,16 @@ END {
|
|||||||
print PKGS[pkg] > of
|
print PKGS[pkg] > of
|
||||||
delete PKGS[pkg]
|
delete PKGS[pkg]
|
||||||
}
|
}
|
||||||
n = asort(PKGS)
|
n = asorti(PKGS, PKGKEYS)
|
||||||
for (i=1; i <= n; i++) {
|
for (i=1; i <= n; i++) {
|
||||||
print PKGS[i]
|
print PKGS[PKGKEYS[i]]
|
||||||
|
if (PKGKEYS[i] in APPENDS)
|
||||||
|
printf "%s", APPENDS[PKGKEYS[i]]
|
||||||
}
|
}
|
||||||
n = asort(FEEDS)
|
n = asorti(FEEDS, FEEDKEYS)
|
||||||
for (i=1; i <= n; i++){
|
for (i=1; i <= n; i++){
|
||||||
print FEEDS[i]
|
print FEEDS[FEEDKEYS[i]]
|
||||||
|
if (FEEDKEYS[i] in APPENDS)
|
||||||
|
printf "%s", APPENDS[FEEDKEYS[i]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -78,14 +78,15 @@ $(FILELIST): $(OVERRIDELIST)
|
|||||||
|
|
||||||
$(TMP_DIR)/info/.files-$(SCAN_TARGET).mk: $(FILELIST)
|
$(TMP_DIR)/info/.files-$(SCAN_TARGET).mk: $(FILELIST)
|
||||||
( \
|
( \
|
||||||
cat $< | awk '{print "$(SCAN_DIR)/" $$0 "/Makefile" }' | xargs grep -HE '^ *SCAN_DEPS *= *' | awk -F: '{ gsub(/^.*DEPS *= */, "", $$2); print "DEPS_" $$1 "=" $$2 }'; \
|
cat $< | grep -v '^[$$]' | awk '{print "$(SCAN_DIR)/" $$0 "/Makefile" }' | xargs grep -HE '^ *SCAN_DEPS *= *' | awk -F: '{ gsub(/^.*DEPS *= */, "", $$2); print "DEPS_" $$1 "=" $$2 }'; \
|
||||||
|
cat $< | grep '^[$$]' -B1 | awk '/^[^$$]/ {MAKEFILE="$(SCAN_DIR)/" $$0 "/Makefile"} /^[$$]/ {print "DEPS_" MAKEFILE "+=" $$0}'; \
|
||||||
awk -F/ -v deps="$$DEPS" -v of="$(OVERRIDELIST)" ' \
|
awk -F/ -v deps="$$DEPS" -v of="$(OVERRIDELIST)" ' \
|
||||||
BEGIN { \
|
BEGIN { \
|
||||||
while (getline < (of)) \
|
while (getline < (of)) \
|
||||||
override[$$NF]=$$0; \
|
override[$$NF]=$$0; \
|
||||||
close(of) \
|
close(of) \
|
||||||
} \
|
} \
|
||||||
{ \
|
/^[^$$]/ { \
|
||||||
info=$$0; \
|
info=$$0; \
|
||||||
gsub(/\//, "_", info); \
|
gsub(/\//, "_", info); \
|
||||||
dir=$$0; \
|
dir=$$0; \
|
||||||
@ -113,7 +114,7 @@ $(TARGET_STAMP)::
|
|||||||
|
|
||||||
$(TMP_DIR)/.$(SCAN_TARGET): $(TARGET_STAMP)
|
$(TMP_DIR)/.$(SCAN_TARGET): $(TARGET_STAMP)
|
||||||
$(call progress,Collecting $(SCAN_NAME) info: merging...)
|
$(call progress,Collecting $(SCAN_NAME) info: merging...)
|
||||||
-cat $(FILELIST) | awk '{gsub(/\//, "_", $$0);print "$(TMP_DIR)/info/.$(SCAN_TARGET)-" $$0}' | xargs cat > $@ 2>/dev/null
|
-cat $(FILELIST) | grep -v '^[$$]' | awk '{gsub(/\//, "_", $$1);print "$(TMP_DIR)/info/.$(SCAN_TARGET)-" $$1}' | xargs cat > $@ 2>/dev/null
|
||||||
$(call progress,Collecting $(SCAN_NAME) info: done)
|
$(call progress,Collecting $(SCAN_NAME) info: done)
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user