improve dependency handling, fix some package makefile bugs
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 30 May 2006 18:55:52 +0000 (18:55 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 30 May 2006 18:55:52 +0000 (18:55 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@3843 3c298f89-4303-0410-b956-a3cf2f4a3e73

17 files changed:
Makefile
package/Makefile
package/dropbear/Makefile
package/iproute2/Makefile
package/ipsec-tools/Makefile
package/ipset/Makefile
package/nvram/Makefile
package/pcmcia-cs/Makefile
package/ppp/Makefile
package/robocfg/Makefile
package/rules.mk
package/udev/Makefile
package/wificonf/Makefile
package/wireless-tools/Makefile
package/zlib/Makefile
scripts/gen_deps.pl
scripts/gen_menuconfig.pl

index 8a2e6bb..f93b008 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -70,10 +70,10 @@ config: scripts/config/conf
 config-clean:
        $(MAKE) -C scripts/config clean
 
-package/%:
+package/%: .pkginfo
        $(MAKE) -C package $(patsubst package/%,%,$@)
 
-target/%:
+target/%: .pkginfo
        $(MAKE) -C target $(patsubst target/%,%,$@)
 
 toolchain/%:
index 0dc2670..adeb238 100644 (file)
@@ -1,7 +1,7 @@
 # Main makefile for the packages
 include $(TOPDIR)/rules.mk
 include $(TOPDIR)/.config
-include .pkgdeps
+include $(TOPDIR)/.pkgdeps
 
 COMPILE_PACKAGES:=$(patsubst %,%-compile,$(package-y) $(package-m))
 INSTALL_PACKAGES:=$(patsubst %,%-install,$(package-y))
@@ -20,7 +20,7 @@ $(STAMP_DIR) $(TARGET_DIR):
        $(MAKE) -C $(patsubst %-clean,%,$@) clean
 
 
-.pkgdeps: $(TOPDIR)/.pkginfo
+$(TOPDIR)/.pkgdeps: $(TOPDIR)/.pkginfo
        @$(TOPDIR)/scripts/gen_deps.pl < $< > $@ || rm -f $@
 
 all: compile
index 4a732ee..28cdd15 100644 (file)
@@ -25,10 +25,9 @@ endef
 
 define Package/dropbearconvert
 $(call Package/dropbear)
-DEFAULT:=m
 TITLE:=Utility for converting SSH keys
 DESCRIPTION:=Utility for converting SSH keys
-DEPENDS:=zlib
+DEPENDS:=+zlib
 endef
 
 define Build/Configure
index c670ee5..1133694 100644 (file)
@@ -14,25 +14,15 @@ PKG_CAT:=zcat
 
 include $(TOPDIR)/package/rules.mk
 
-# define Package/iproute2
-# SECTION:=base
-# CATEGORY:=Network
-# DEFAULT:=n
-# MENU:=1
-# TITLE:=A collection of utilites for controlling TCP/IP networking and Traffic Control
-# endef
-
 define Package/ip
 SECTION:=base
 CATEGORY:=Network
-DEFAULT:=n
 DEPENDS:=iproute2
 TITLE:=A routing control utility
 endef
 
 define Package/tc
 $(call Package/ip)
-# DEPENDS:=kmod-sched
 TITLE:=A traffic control utility
 endef
 
index e85f09d..4b6bfe0 100644 (file)
@@ -19,7 +19,7 @@ include $(TOPDIR)/package/rules.mk
 define Package/ipsec-tools
 SECTION:=base
 CATEGORY:=Network
-DEFAULT:=y
+DEPENDS:=@LINUX_2_6
 TITLE:=IPsec management tools
 DESCRIPTION:=IPsec management tools
 URL:=http://ipsec-tools.sourceforge.net/
index 8cfdee9..7358f03 100644 (file)
@@ -17,8 +17,7 @@ include $(TOPDIR)/package/rules.mk
 define Package/ipset
 SECTION:=base
 CATEGORY:=Network
-DEFAULT:=y
-DEPENDS:=kmod-iptables-extra
+DEPENDS:=+kmod-iptables-extra
 TITLE:=Netfilter ip sets administration utility
 DESCRIPTION:=Netfilter ip sets administration utility
 URL:=http://ipset.netfilter.org/
index 3b9f82d..9cc6b99 100644 (file)
@@ -11,8 +11,7 @@ include $(TOPDIR)/package/rules.mk
 
 define Package/nvram
 SECTION:=base
-# CATEGORY:=FIXME
-DEFAULT:=n
+DEPENDS:=@LINUX_2_4_BRCM
 TITLE:=Broadcom config utility
 DESCRIPTION:=control utility for broadcom's 'nvram' config area
 endef
index 76e63d3..a389fd6 100644 (file)
@@ -18,8 +18,7 @@ include $(TOPDIR)/package/rules.mk
 
 define Package/pcmcia-cs
 SECTION:=base
-# CATEGORY:=FIXME
-DEFAULT:=n
+DEPENDS:=@PCMCIA_SUPPORT
 TITLE:=PCMCIA/Cardbus management utilities
 DESCRIPTION:=PCMCIA/Cardbus management utilities
 URL:=http://pcmcia-cs.sourceforge.net/
index 0139eb0..2f01400 100644 (file)
@@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=ppp
 PKG_VERSION:=2.4.3
 PKG_RELEASE:=7
-PKG_BUILDDEP:=libpcap
+PKG_BUILDDEP:=libpcap linux-atm
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@@ -30,7 +30,7 @@ endef
 define Package/ppp-mod-pppoa
  SECTION:=net
  CATEGORY:=Network
- DEPENDS:=ppp
+ DEPENDS:=ppp +linux-atm
  TITLE:=PPPoA plugin
  DESCRIPTION:=PPPoA (PPP over ATM) plugin for ppp
 endef
index 8f89e75..81cf99a 100644 (file)
@@ -12,8 +12,6 @@ include $(TOPDIR)/package/rules.mk
 
 define Package/robocfg
 SECTION:=base
-# CATEGORY:=FIXME
-DEFAULT:=n
 TITLE:=BCM5325E/536x switch configuration utility
 DESCRIPTION:=Broadcom BCM5325E/536x switch configuration utility
 endef
index 5506661..d436df8 100644 (file)
@@ -132,7 +132,14 @@ define BuildPackage
        mkdir -p $$(IDIR_$(1))/CONTROL
        echo "Package: $(1)" > $$(IDIR_$(1))/CONTROL/control
        echo "Version: $(VERSION)" >> $$(IDIR_$(1))/CONTROL/control
-       echo "Depends: $$(IDEPEND_$(1))" >> $$(IDIR_$(1))/CONTROL/control
+       ( \
+               DEPENDS=; \
+               for depend in $$(IDEPEND_$(1)); do \
+                       [ "$$$${depend%%%%%%%%[A-Za-z]*}" = "@" ] && continue; \
+                       DEPENDS=$$$${DEPENDS:+$$$$DEPENDS, }$$$${depend##+}; \
+               done; \
+               echo "Depends: $$$$DEPENDS" >> $$(IDIR_$(1))/CONTROL/control; \
+       )
        echo "Source: $(SOURCE)" >> $$(IDIR_$(1))/CONTROL/control
        echo "Section: $(SECTION)" >> $$(IDIR_$(1))/CONTROL/control
        echo "Priority: $(PRIORITY)" >> $$(IDIR_$(1))/CONTROL/control
index c7e5f44..54e06dc 100644 (file)
@@ -23,8 +23,7 @@ include $(TOPDIR)/package/rules.mk
 
 define Package/udev
 SECTION:=base
-# CATEGORY:=FIXME
-DEFAULT:=n
+DEPENDS:=@LINUX_2_6
 TITLE:=Dynamic device management subsystem
 DESCRIPTION:=udev provides a dynamic device directory containing only the files for \\\
 actually present devices. It creates or removes device node files in \\\
index 5fbaf05..dc61267 100644 (file)
@@ -12,7 +12,7 @@ include $(TOPDIR)/package/rules.mk
 define Package/wificonf
 SECTION:=base
 CATEGORY:=Network
-DEFAULT:=y
+DEPENDS:=nvram +wireless-tools
 TITLE:=replacement utility for wlconf
 DESCRIPTION:=Replacement utility for wlconf
 endef
index 39a4ee6..17b59f8 100644 (file)
@@ -42,12 +42,16 @@ define Package/wireless-tools/install
        install -m0755 $(PKG_INSTALL_DIR)/usr/sbin/iw{config,getid,list,priv,spy} $(1)/usr/sbin/
 endef
 
-install-dev: $(PKG_BUILD_DIR)/.built
+define Build/InstallDev
        mkdir -p $(STAGING_DIR)/usr/{lib,include}
        $(CP) $(PKG_BUILD_DIR)/libiw.so* $(STAGING_DIR)/usr/lib/
        ln -sf libiw.so.28 $(STAGING_DIR)/usr/lib/libiw.so
        $(CP) $(PKG_BUILD_DIR)/{iwlib,wireless}.h $(STAGING_DIR)/usr/include/
+endef
        
-uninstall-dev:
+define Build/UninstallDev
        rm -f $(STAGING_DIR)/usr/lib/libiw.*
        rm -f $(STAGING_DIR)/usr/include/{iwlib,wireless}.h
+endef
+
+$(eval $(call BuildPackage,wireless-tools))
index da9e6f4..33cbcce 100644 (file)
@@ -20,7 +20,6 @@ include $(TOPDIR)/package/rules.mk
 define Package/zlib
 SECTION:=base
 CATEGORY:=Libraries
-DEFAULT:=n
 TITLE:=Library implementing the deflate compression method
 DESCRIPTION:=A library implementing the 'deflate' compression method
 URL:=http://www.zlib.net/
index 40153bd..d75f06d 100755 (executable)
@@ -5,6 +5,7 @@ my $name;
 my $src;
 my $makefile;
 my %pkg;
+my %dep;
 
 my $line;
 while ($line = <>) {
@@ -19,8 +20,12 @@ while ($line = <>) {
                $pkg{$name}->{src} = $src;
        };
        $line =~ /^(Build-)?Depends: \s*(.+)\s*$/ and do {
-               my @dep = split /,\s*/, $2;
-               $pkg{$name}->{depends} = \@dep;
+               $pkg{$name}->{depends} ||= [];
+               foreach my $v (split /\s+/, $2) {
+                       next if $v =~ /^@/;
+                       $v =~ s/^\+//;
+                       push @{$pkg{$name}->{depends}}, $v;
+               }
        };
 }
 
@@ -32,8 +37,16 @@ foreach $name (sort {uc($a) cmp uc($b)} keys %pkg) {
        my $hasdeps = 0;
        my $depline = "";
        foreach my $dep (@{$pkg{$name}->{depends}}) {
+               my $idx;
                if (defined $pkg{$dep}->{src} && $pkg{$name}->{src} ne $pkg{$dep}->{src}) {
-                       $depline .= " $pkg{$dep}->{src}-compile";
+                       $idx = $pkg{$dep}->{src};
+               } elsif (defined $pkg{$dep}) {
+                       $idx = $dep;
+               }
+               if ($idx) {
+                       next if $dep{$pkg{$name}->{src}."->".$idx};
+                       $depline .= " $idx\-compile";
+                       $dep{$pkg{$name}->{src}."->".$idx} = 1;
                }
        }
        if ($depline ne "") {
index e282ee3..a7f939f 100755 (executable)
@@ -26,7 +26,12 @@ sub print_category($) {
                        print "\t\ttristate \"$title\"\n";
                        print "\t\tdefault ".$pkg->{default}."\n";
                        foreach my $depend (@{$pkg->{depends}}) {
-                               print "\t\tdepends PACKAGE_$depend\n";
+                               my $m = "depends";
+                               $depend =~ s/^([@\+])//;
+                               my $flags = $1;
+                               $flags =~ /@/ or $depend = "PACKAGE_$depend";
+                               $flags =~ /\+/ and $m = "select";
+                               print "\t\t$m $depend\n";
                        }
                        print "\t\thelp\n";
                        print $pkg->{description};
@@ -60,7 +65,7 @@ while ($line = <>) {
        $line =~ /^Menu: \s*(.+)\s*$/ and $pkg->{menu} = $1;
        $line =~ /^Default: \s*(.+)\s*$/ and $pkg->{default} = $1;
        $line =~ /^Depends: \s*(.+)\s*$/ and do {
-               my @dep = split /,\s*/, $1;
+               my @dep = split /\s+/, $1;
                $pkg->{depends} = \@dep;
        };
        $line =~ /^Category: \s*(.+)\s*$/ and do {
This page took 0.037644 seconds and 4 git commands to generate.