From 7502d4bd61ff9a45948505ea56b4a57c7099721c Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Tue, 13 Jan 2009 02:02:56 +0000
Subject: [PATCH] add support for build-only packages which do not appear in
 menuconfig

SVN-Revision: 14009
---
 include/package-defaults.mk | 1 +
 include/package-dumpinfo.mk | 1 +
 scripts/metadata.pl         | 3 +++
 scripts/metadata.pm         | 1 +
 4 files changed, 6 insertions(+)

diff --git a/include/package-defaults.mk b/include/package-defaults.mk
index 99371a2241..e0cb6e8995 100644
--- a/include/package-defaults.mk
+++ b/include/package-defaults.mk
@@ -31,6 +31,7 @@ define Package/Default
   SUBMENUDEP:=
   TITLE:=
   KCONFIG:=
+  BUILDONLY:=
 endef
 
 Build/Patch:=$(Build/Patch/Default)
diff --git a/include/package-dumpinfo.mk b/include/package-dumpinfo.mk
index e29e113241..6f1624aeb1 100644
--- a/include/package-dumpinfo.mk
+++ b/include/package-dumpinfo.mk
@@ -30,6 +30,7 @@ ifneq ($(DUMP),)
 		echo "Maintainer: $(MAINTAINER)"; \
 		echo "Type: $(if $(Package/$(1)/targets),$(Package/$(1)/targets),$(if $(PKG_TARGETS),$(PKG_TARGETS),ipkg))"; \
 		$(if $(KCONFIG),echo "Kernel-Config: $(KCONFIG)";) \
+		$(if $(BUILDONLY),echo "Build-Only: $(BUILDONLY)";) \
 		echo -n "Description: "; \
 		getvar $(call shvar,Package/$(1)/description); \
 		$(if $(URL),echo;echo "$(URL)";) \
diff --git a/scripts/metadata.pl b/scripts/metadata.pl
index f000e9db9a..da29fdd895 100755
--- a/scripts/metadata.pl
+++ b/scripts/metadata.pl
@@ -398,6 +398,7 @@ sub mconf_depends {
 			$depend = $2;
 		}
 		next if $seen->{$depend};
+		next if $package{$depend} and $package{$depend}->{buildonly};
 		$seen->{$depend} = 1;
 		if ($vdep = $package{$depend}->{vdepends}) {
 			$depend = join("||", map { "PACKAGE_".$_ } @$vdep);
@@ -442,6 +443,7 @@ sub print_package_config_category($) {
 
 	foreach my $spkg (sort {uc($a) cmp uc($b)} keys %spkg) {
 		foreach my $pkg (@{$spkg{$spkg}}) {
+			next if $pkg->{buildonly};
 			my $menu = $pkg->{submenu};
 			if ($menu) {
 				$menu_dep{$menu} or $menu_dep{$menu} = $pkg->{submenudep};
@@ -543,6 +545,7 @@ sub gen_package_mk() {
 			$config = "\$(CONFIG_PACKAGE_$name)"
 		}
 		if ($config) {
+			$pkg->{buildonly} and $config = "";
 			print "package-$config += $pkg->{subdir}$pkg->{src}\n";
 			$pkg->{prereq} and print "prereq-$config += $pkg->{subdir}$pkg->{src}\n";
 		}
diff --git a/scripts/metadata.pm b/scripts/metadata.pm
index a527d68f8f..9486c66cb3 100644
--- a/scripts/metadata.pm
+++ b/scripts/metadata.pm
@@ -88,6 +88,7 @@ sub parse_package_metadata($) {
 			}
 		};
 		/^Depends: \s*(.+)\s*$/ and $pkg->{depends} = [ split /\s+/, $1 ];
+		/^Build-Only: \s*(.+)\s*$/ and $pkg->{buildonly} = 1;
 		/^Build-Depends: \s*(.+)\s*$/ and $pkg->{builddepends} = [ split /\s+/, $1 ];
 		/^Category: \s*(.+)\s*$/ and do {
 			$pkg->{category} = $1;
-- 
GitLab