improve dependency handling, fix some package makefile bugs

git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@3843 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Felix Fietkau 2006-05-30 18:55:52 +00:00
parent 8fcedabfaf
commit f45baccdc5
17 changed files with 50 additions and 39 deletions

View File

@ -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/%:

View 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

View 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

View 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

View 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/

View 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/

View 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

View 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/

View 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

View 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

View 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

View 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 \\\

View 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

View 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))

View 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/

View File

@ -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 "") {

View File

@ -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 {