procps: Split package into subpackages
authorFlorian Fainelli <[email protected]>
Tue, 4 Dec 2012 16:20:42 +0000 (16:20 +0000)
committerFlorian Fainelli <[email protected]>
Tue, 4 Dec 2012 16:20:42 +0000 (16:20 +0000)
Split procps package into various subpackages, one for
each applet. This allows the user to choose which applets
they want. This is similar to coreutils package.

All subpackages are defaulted to YES, to keep the current
behaviour, i.e., selecting procps package will select
all its subpackages.

Signed-off-by: Jonh Wendell <[email protected]>
Signed-off-by: Florian Fainelli <[email protected]>
SVN-Revision: 34481

utils/procps/Makefile

index 8e16706bc93dcb3c16236f3283733ca255bbd317..7fd866f176e63892e8762a97e613b1dd02201523 100644 (file)
@@ -19,7 +19,11 @@ PKG_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/procps
+PROCPS_APPLETS := \
+    ps free pgrep pkill pmap pwdx skill w \
+    slabtop snice tload top vmstat watch
+
+define Package/procps/Default
   SECTION:=utils
   CATEGORY:=Utilities
   DEPENDS:=+libncurses
@@ -27,12 +31,32 @@ define Package/procps
   URL:=http://procps.sourceforge.net/
 endef
 
+define Package/procps
+  $(call Package/procps/Default)
+  MENU:=1
+endef
+
 define Package/procps/description
  procps is the package that has a bunch of small useful utilities that give 
  information about processes using the /proc filesystem. The package 
  includes the programs ps, top, vmstat, w, kill, free, slabtop, and skill.
 endef
 
+define GenPlugin
+ define Package/$(1)
+   $(call Package/procps/Default)
+   DEPENDS:=procps
+   TITLE:=Applet $(2) from the procps package
+   DEFAULT:=y
+ endef
+
+ define Package/$(1)/description
+  Installs the applet $(2).
+ endef
+endef
+
+$(foreach a,$(PROCPS_APPLETS),$(eval $(call GenPlugin,procps-$(a),$(a))))
+
 MAKE_FLAGS += \
        CFLAGS="$(TARGET_CFLAGS)" \
        CPPFLAGS="$(TARGET_CPPFLAGS)" \
@@ -40,22 +64,20 @@ MAKE_FLAGS += \
 
 define Package/procps/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/free $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/ps/ps $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/pgrep $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/pkill $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/pmap $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/pwdx $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/skill $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/slabtop $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/snice $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/tload $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/top $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/vmstat $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/w $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/watch $(1)/usr/bin
        $(INSTALL_DIR) $(1)/usr/lib
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/proc/libproc-$(PKG_VERSION).so $(1)/usr/lib/
 endef
 
+AUXDIR_ps := "ps/"
+
+define BuildPlugin
+  define Package/$(1)/install
+       $(INSTALL_DIR) $$(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(AUXDIR_$(2))$(2) $$(1)/usr/bin/
+  endef
+
+  $$(eval $$(call BuildPackage,$(1)))
+endef
+
+$(foreach a,$(PROCPS_APPLETS),$(eval $(call BuildPlugin,procps-$(a),$(a))))
 $(eval $(call BuildPackage,procps))