From dda0649ef37ceb08df09c0dbc15f27cbdc8285d5 Mon Sep 17 00:00:00 2001 From: nbd Date: Sat, 29 Sep 2007 01:21:56 +0000 Subject: [PATCH] add a packaging method that installs files into a subdirectory of bin/ instead of an ipkg git-svn-id: svn://svn.openwrt.org/openwrt/trunk@9060 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- include/package-bin.mk | 31 +++++++++++++++++++++++++++++++ include/package-dumpinfo.mk | 1 + include/package.mk | 1 + scripts/metadata.pl | 2 +- scripts/metadata.pm | 8 ++++++++ 5 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 include/package-bin.mk diff --git a/include/package-bin.mk b/include/package-bin.mk new file mode 100644 index 000000000..6ee7aed62 --- /dev/null +++ b/include/package-bin.mk @@ -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 diff --git a/include/package-dumpinfo.mk b/include/package-dumpinfo.mk index bc075e1bc..e29e11324 100644 --- a/include/package-dumpinfo.mk +++ b/include/package-dumpinfo.mk @@ -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); \ diff --git a/include/package.mk b/include/package.mk index bf82c6045..9f45a441a 100644 --- a/include/package.mk +++ b/include/package.mk @@ -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) diff --git a/scripts/metadata.pl b/scripts/metadata.pl index f3d6e9df2..aa5df6fb9 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -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"; diff --git a/scripts/metadata.pm b/scripts/metadata.pm index f90446298..ff39e346e 100644 --- a/scripts/metadata.pm +++ b/scripts/metadata.pm @@ -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 { -- 2.20.1