add a packaging method that installs files into a subdirectory of bin/ instead of...
authorFelix Fietkau <nbd@openwrt.org>
Sat, 29 Sep 2007 01:21:56 +0000 (01:21 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sat, 29 Sep 2007 01:21:56 +0000 (01:21 +0000)
SVN-Revision: 9060

include/package-bin.mk [new file with mode: 0644]
include/package-dumpinfo.mk
include/package.mk
scripts/metadata.pl
scripts/metadata.pm

diff --git a/include/package-bin.mk b/include/package-bin.mk
new file mode 100644 (file)
index 0000000..6ee7aed
--- /dev/null
@@ -0,0 +1,31 @@
+# 
+# Copyright (C) 2007 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+ifeq ($(DUMP),)
+  define BuildTarget/bin
+    ifdef Package/$(1)/install
+      ifneq ($(CONFIG_PACKAGE_$(1))$(SDK)$(DEVELOPER),)
+        compile: install-bin-$(1)
+      else
+        compile: $(1)-disabled
+        $(1)-disabled:
+               @echo "WARNING: skipping $(1) -- package not selected"
+      endif
+    endif
+
+    install-bin-$(1): $(STAMP_BUILT)
+         rm -rf $(BIN_DIR)/$(1)
+         $(INSTALL_DIR) $(BIN_DIR)/$(1)
+         $(call Package/$(1)/install,$(BIN_DIR)/$(1))
+
+    clean-$(1):
+         rm -rf $(BIN_DIR)/$(1)
+
+    clean: clean-$(1)
+    .PHONY: install-bin-$(1)
+  endef
+endif
index bc075e1..e29e113 100644 (file)
@@ -28,6 +28,7 @@ ifneq ($(DUMP),)
                echo "Category: $(CATEGORY)"; \
                echo "Title: $(TITLE)"; \
                echo "Maintainer: $(MAINTAINER)"; \
+               echo "Type: $(if $(Package/$(1)/targets),$(Package/$(1)/targets),$(if $(PKG_TARGETS),$(PKG_TARGETS),ipkg))"; \
                $(if $(KCONFIG),echo "Kernel-Config: $(KCONFIG)";) \
                echo -n "Description: "; \
                getvar $(call shvar,Package/$(1)/description); \
index bf82c60..9f45a44 100644 (file)
@@ -25,6 +25,7 @@ include $(INCLUDE_DIR)/quilt.mk
 include $(INCLUDE_DIR)/package-defaults.mk
 include $(INCLUDE_DIR)/package-dumpinfo.mk
 include $(INCLUDE_DIR)/package-ipkg.mk
+include $(INCLUDE_DIR)/package-bin.mk
 
 override MAKEFLAGS=
 export CONFIG_SITE:=$(INCLUDE_DIR)/site/$(REAL_GNU_TARGET_NAME)
index f3d6e9d..aa5df6f 100755 (executable)
@@ -361,7 +361,7 @@ sub print_package_config_category($) {
                        print "\t";
                        $pkg->{menu} and print "menu";
                        print "config PACKAGE_".$pkg->{name}."\n";
-                       print "\t\ttristate \"$title\"\n";
+                       print "\t\t".($pkg->{tristate} ? 'tristate' : 'bool')." \"$title\"\n";
                        print "\t\tdefault y if DEFAULT_".$pkg->{name}."\n";
                        foreach my $default (split /\s*,\s*/, $pkg->{default}) {
                                print "\t\tdefault $default\n";
index f904462..ff39e34 100644 (file)
@@ -63,6 +63,7 @@ sub parse_package_metadata($) {
                        $pkg->{depends} = [];
                        $pkg->{builddepends} = [];
                        $pkg->{subdir} = $subdir;
+                       $pkg->{tristate} = 1;
                        $package{$1} = $pkg;
                        push @{$srcpackage{$src}}, $pkg;
                };
@@ -88,6 +89,13 @@ sub parse_package_metadata($) {
                        push @{$category{$1}->{$src}}, $pkg;
                };
                /^Description: \s*(.*)\s*$/ and $pkg->{description} = "\t\t $1\n". get_multiline(*FILE, "\t\t ");
+               /^Type: \s*(.+)\s*$/ and do {
+                       $pkg->{type} = [ split /\s+/, $1 ];
+                       undef $pkg->{tristate};
+                       foreach my $type (@{$pkg->{type}}) {
+                               $type =~ /ipkg/ and $pkg->{tristate} = 1;
+                       }
+               };
                /^Config: \s*(.*)\s*$/ and $pkg->{config} = "$1\n".get_multiline(*FILE);
                /^Prereq-Check:/ and $pkg->{prereq} = 1;
                /^Preconfig:\s*(.+)\s*$/ and do {