quagga : convert to autotools infrastructure & bump to 0.99.12

Changes by Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

 * Installation to target is the default
 * No installation to staging is the default
 * The QUAGGA_HEADERS option does not exist
 * BOA_INSTALL_TARGETS_CMDS wouldn't work in the Quagga package, and
   was anyway doing the default action
 * The QUAGGA_BINARY/QUAGGA_TARGET_BINARY variables were not used
 * Bump to 0.99.16, which fixes a problem when IPv6 is not enabled

Signed-off-by: cmchao <cmchao@gmail.com>

merge quagga
This commit is contained in:
cmchao 2010-06-16 19:47:14 +08:00 committed by Thomas Petazzoni
parent 58b653ee24
commit 2a10e22d1e
2 changed files with 90 additions and 148 deletions

View File

@ -0,0 +1,27 @@
Add definitions for IPCTL_FORWARDING and IP6CTL_FORWARDING.
Inspired from
http://svn.gnumonks.org/trunk/grouter/build/src/quagga/quagga/quagga-0.99.1-forward_sysctl-2.6.14.patch
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Index: quagga-0.99.16/zebra/ipforward_sysctl.c
===================================================================
--- quagga-0.99.16.orig/zebra/ipforward_sysctl.c 2010-06-20 23:40:45.000000000 +0200
+++ quagga-0.99.16/zebra/ipforward_sysctl.c 2010-06-20 23:41:37.000000000 +0200
@@ -31,6 +31,15 @@
#define MIB_SIZ 4
+/* Fix for recent (2.6.14) kernel headers */
+#ifndef IPCTL_FORWARDING
+#define IPCTL_FORWARDING NET_IPV4_FORWARD
+#endif
+
+#ifndef IP6CTL_FORWARDING
+#define IP6CTL_FORWARDING NET_IPV6_FORWARDING
+#endif
+
extern struct zebra_privs_t zserv_privs;
/* IPv4 forwarding control MIB. */

View File

@ -3,176 +3,91 @@
# quagga suite # quagga suite
# #
############################################################# #############################################################
QUAGGA_VERSION:=0.99.9 QUAGGA_VERSION:=0.99.16
QUAGGA_SOURCE:=quagga-$(QUAGGA_VERSION).tar.gz QUAGGA_SOURCE:=quagga-$(QUAGGA_VERSION).tar.gz
QUAGGA_SITE:=http://www.quagga.net/download/attic QUAGGA_SITE:=http://www.quagga.net/download/
QUAGGA_DIR:=$(BUILD_DIR)/quagga-$(QUAGGA_VERSION)
QUAGGA_CAT:=$(ZCAT)
QUAGGA_CONFIGURE:= QUAGGA_DEPENDENCIES = host-gawk
QUAGGA_DEPENDENCIES:= QUAGGA_LIBTOOL_PATCH = NO
QUAGGA_CONF_OPT = --program-transform-name=''
ifeq ($(BR2_PACKAGE_QUAGGA_ZEBRA),y) ifeq ($(BR2_PACKAGE_QUAGGA_ZEBRA),y)
QUAGGA_CONFIGURE+=--enable-zebra QUAGGA_CONF_OPT+=--enable-zebra
ifndef QUAGGA_TARGET_BINARY
QUAGGA_TARGET_BINARY=zebra
QUAGGA_BINARY=$(QUAGGA_DIR)/zebra/.libs/zebra
endif
else else
QUAGGA_CONFIGURE+=--disable-zebra QUAGGA_CONF_OPT+=--disable-zebra
endif
ifeq ($(BR2_PACKAGE_QUAGGA_BGPD),y)
QUAGGA_CONFIGURE+=--enable-bgpd
ifndef QUAGGA_TARGET_BINARY
QUAGGA_TARGET_BINARY=bgpd
QUAGGA_BINARY=$(QUAGGA_DIR)/bgpd/.libs/bgpd
endif
else
QUAGGA_CONFIGURE+=--disable-bgpd
endif
ifeq ($(BR2_PACKAGE_QUAGGA_RIPD),y)
QUAGGA_CONFIGURE+=--enable-ripd
ifndef QUAGGA_TARGET_BINARY
QUAGGA_TARGET_BINARY=ripd
QUAGGA_BINARY=$(QUAGGA_DIR)/ripd/.libs/ripd
endif
else
QUAGGA_CONFIGURE+=--disable-ripd
endif
ifeq ($(BR2_PACKAGE_QUAGGA_RIPNGD),y)
QUAGGA_CONFIGURE+=--enable-ripngd
ifndef QUAGGA_TARGET_BINARY
QUAGGA_TARGET_BINARY=ripngd
QUAGGA_BINARY=$(QUAGGA_DIR)/ripngd/.libs/ripngd
endif
else
QUAGGA_CONFIGURE+=--disable-ripngd
endif
ifeq ($(BR2_PACKAGE_QUAGGA_OSPFD),y)
QUAGGA_CONFIGURE+=--enable-ospfd
ifndef QUAGGA_TARGET_BINARY
QUAGGA_TARGET_BINARY=ospfd
QUAGGA_BINARY=$(QUAGGA_DIR)/ospfd/.libs/ospfd
endif
else
QUAGGA_CONFIGURE+=--disable-ospfd
endif
ifeq ($(BR2_PACKAGE_QUAGGA_OSPF6D),y)
QUAGGA_CONFIGURE+=--enable-ospf6d
ifndef QUAGGA_TARGET_BINARY
QUAGGA_TARGET_BINARY=ospf6d
QUAGGA_BINARY=$(QUAGGA_DIR)/ospf6d/.libs/ospf6d
endif
else
QUAGGA_CONFIGURE+=--disable-ospf6d
endif
ifeq ($(BR2_PACKAGE_QUAGGA_WATCHQUAGGA),y)
QUAGGA_CONFIGURE+=--enable-watchquagga
ifndef QUAGGA_TARGET_BINARY
QUAGGA_TARGET_BINARY=watchquagga
QUAGGA_BINARY=$(QUAGGA_DIR)/watchquagga/.libs/watchquagga
endif
else
QUAGGA_CONFIGURE+=--disable-watchquagga
endif
ifeq ($(BR2_PACKAGE_QUAGGA_ISISD),y)
QUAGGA_CONFIGURE+=--enable-isisd
ifndef QUAGGA_TARGET_BINARY
QUAGGA_TARGET_BINARY=isisd
QUAGGA_BINARY=$(QUAGGA_DIR)/isisd/.libs/isisd
endif
else
QUAGGA_CONFIGURE+=--disable-isisd
endif endif
ifeq ($(BR2_PACKAGE_QUAGGA_BGPD),y)
QUAGGA_CONF_OPT+=--enable-bgpd
else
QUAGGA_CONF_OPT+=--disable-bgpd
endif
ifeq ($(BR2_PACKAGE_QUAGGA_RIPD),y)
QUAGGA_CONF_OPT+=--enable-ripd
else
QUAGGA_CONF_OPT+=--disable-ripd
endif
ifeq ($(BR2_PACKAGE_QUAGGA_RIPNGD),y)
QUAGGA_CONF_OPT+=--enable-ripngd
else
QUAGGA_CONF_OPT+=--disable-ripngd
endif
ifeq ($(BR2_PACKAGE_QUAGGA_OSPFD),y)
QUAGGA_CONF_OPT+=--enable-ospfd
else
QUAGGA_CONF_OPT+=--disable-ospfd
endif
ifeq ($(BR2_PACKAGE_QUAGGA_OSPF6D),y)
QUAGGA_CONF_OPT+=--enable-ospf6d
else
QUAGGA_CONF_OPT+=--disable-ospf6d
endif
ifeq ($(BR2_PACKAGE_QUAGGA_WATCHQUAGGA),y)
QUAGGA_CONF_OPT+=--enable-watchquagga
else
QUAGGA_CONF_OPT+=--disable-watchquagga
endif
ifeq ($(BR2_PACKAGE_QUAGGA_ISISD),y)
QUAGGA_CONF_OPT+=--enable-isisd
else
QUAGGA_CONF_OPT+=--disable-isisd
endif
ifeq ($(BR2_PACKAGE_QUAGGA_BGP_ANNOUNCE),y) ifeq ($(BR2_PACKAGE_QUAGGA_BGP_ANNOUNCE),y)
QUAGGA_CONFIGURE+=--enable-bgp-announce QUAGGA_CONF_OPT+=--enable-bgp-announce
else else
QUAGGA_CONFIGURE+=--disable-bgp-announce QUAGGA_CONF_OPT+=--disable-bgp-announce
endif endif
ifeq ($(BR2_PACKAGE_QUAGGA_NETLINK),y) ifeq ($(BR2_PACKAGE_QUAGGA_NETLINK),y)
QUAGGA_CONFIGURE+=--enable-netlink QUAGGA_CONF_OPT+=--enable-netlink
else else
QUAGGA_CONFIGURE+=--disable-netlink QUAGGA_CONF_OPT+=--disable-netlink
endif endif
ifeq ($(BR2_PACKAGE_QUAGGA_SNMP),y) ifeq ($(BR2_PACKAGE_QUAGGA_SNMP),y)
QUAGGA_CONFIGURE+=--enable-snmp QUAGGA_CONF_OPT+=--enable-snmp
QUAGGA_DEPENDENCIES+=netsnmp QUAGGA_DEPENDENCIES+=netsnmp
else else
QUAGGA_CONFIGURE+=--disable-snmp QUAGGA_CONF_OPT+=--disable-snmp
endif endif
ifeq ($(BR2_PACKAGE_QUAGGA_TCP_ZEBRA),y) ifeq ($(BR2_PACKAGE_QUAGGA_TCP_ZEBRA),y)
QUAGGA_CONFIGURE+=--enable-tcp-zebra QUAGGA_CONF_OPT+=--enable-tcp-zebra
else else
QUAGGA_CONFIGURE+=--disable-tcp-zebra QUAGGA_CONF_OPT+=--disable-tcp-zebra
endif endif
ifeq ($(BR2_PACKAGE_QUAGGA_OPAGUE_LSA),y) ifeq ($(BR2_PACKAGE_QUAGGA_OPAGUE_LSA),y)
QUAGGA_CONFIGURE+=--enable-opaque-lsa QUAGGA_CONF_OPT+=--enable-opaque-lsa
else else
QUAGGA_CONFIGURE+=--disable-opaque-lsa QUAGGA_CONF_OPT+=--disable-opaque-lsa
endif endif
$(DL_DIR)/$(QUAGGA_SOURCE): $(eval $(call AUTOTARGETS,package,quagga))
$(call DOWNLOAD,$(QUAGGA_SITE),$(QUAGGA_SOURCE))
ifneq ($(QUAGGA_PATCH),)
QUAGGA_PATCH_FILE=$(DL_DIR)/$(QUAGGA_PATCH)
$(DL_DIR)/$(QUAGGA_PATCH):
$(call DOWNLOAD,$(QUAGGA_SITE),$(QUAGGA_PATCH))
endif
quagga-source: $(DL_DIR)/$(QUAGGA_SOURCE) $(QUAGGA_PATCH_FILE)
$(QUAGGA_DIR)/.unpacked: $(DL_DIR)/$(QUAGGA_SOURCE) $(DL_DIR)/$(QUAGGA_PATCH)
$(QUAGGA_CAT) $(DL_DIR)/$(QUAGGA_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
toolchain/patch-kernel.sh $(QUAGGA_DIR) package/quagga/ quagga\*.patch
ifneq ($(QUAGGA_PATCH),)
(cd $(QUAGGA_DIR) && $(QUAGGA_CAT) $(DL_DIR)/$(QUAGGA_PATCH) | patch -p1)
if [ -d $(QUAGGA_DIR)/debian/patches ]; then \
toolchain/patch-kernel.sh $(QUAGGA_DIR) $(QUAGGA_DIR)/debian/patches \*.patch; \
fi
endif
touch $@
$(QUAGGA_DIR)/.configured: $(QUAGGA_DIR)/.unpacked
(cd $(QUAGGA_DIR); rm -rf config.cache; \
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
./configure $(QUIET) \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
--prefix=/usr \
--sysconfdir=/etc \
$(DISABLE_LARGEFILE) \
$(DISABLE_IPV6) \
$(QUAGGA_CONFIGURE) \
--program-transform-name='' \
)
touch $@
$(QUAGGA_BINARY): $(QUAGGA_DIR)/.configured
$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(QUAGGA_DIR)
$(TARGET_DIR)/usr/sbin/$(QUAGGA_TARGET_BINARY): $(QUAGGA_BINARY)
$(MAKE) DESTDIR=$(TARGET_DIR) -C $(QUAGGA_DIR) install
ifneq ($(BR2_PACKAGE_QUAGGA_HEADERS),y)
rm -rf $(TARGET_DIR)/usr/include/quagga
endif
quagga: $(QUAGGA_DEPENDENCIES) $(TARGET_DIR)/usr/sbin/$(QUAGGA_TARGET_BINARY)
quagga-clean:
-$(MAKE) DESTDIR=$(TARGET_DIR) -C $(QUAGGA_DIR) uninstall
-$(MAKE) -C $(QUAGGA_DIR) clean
quagga-dirclean:
rm -rf $(QUAGGA_DIR)
#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(BR2_PACKAGE_QUAGGA),y)
TARGETS+=quagga
endif