config-clean:
$(MAKE) -C scripts/config clean
-package/%:
+package/%: .pkginfo
$(MAKE) -C package $(patsubst package/%,%,$@)
-target/%:
+target/%: .pkginfo
$(MAKE) -C target $(patsubst target/%,%,$@)
toolchain/%:
# 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))
$(MAKE) -C $(patsubst %-clean,%,$@) clean
-.pkgdeps: $(TOPDIR)/.pkginfo
+$(TOPDIR)/.pkgdeps: $(TOPDIR)/.pkginfo
@$(TOPDIR)/scripts/gen_deps.pl < $< > $@ || rm -f $@
all: compile
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
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
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/
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/
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
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/
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
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
define Package/robocfg
SECTION:=base
-# CATEGORY:=FIXME
-DEFAULT:=n
TITLE:=BCM5325E/536x switch configuration utility
DESCRIPTION:=Broadcom BCM5325E/536x switch configuration utility
endef
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
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 \\\
define Package/wificonf
SECTION:=base
CATEGORY:=Network
-DEFAULT:=y
+DEPENDS:=nvram +wireless-tools
TITLE:=replacement utility for wlconf
DESCRIPTION:=Replacement utility for wlconf
endef
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))
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/
my $src;
my $makefile;
my %pkg;
+my %dep;
my $line;
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;
+ }
};
}
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 "") {
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};
$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 {