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-a3cf2f4a3e73master
parent
8fcedabfaf
commit
f45baccdc5
4
Makefile
4
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/%:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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/
|
||||
|
|
|
@ -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/
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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/
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 \\\
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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/
|
||||
|
|
|
@ -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 "") {
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue