mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-08 14:03:06 +00:00
2725ad8de4
Add upstream support for CAKE into iproute2 and conditionally enable it depending on the build environment we're running under. When running with SDK=1 and CONFIG_BUILDBOT=y we assume that we're invoked by the release package builder at http://release-builds.lede-project.org/17.01/packages/ and produce shared iproute2 executables with legacy CAKE support for older released kernels. When not running under the release package builder environment, produce nonshared packages using the new, upstream CAKE support suitable for the latest kernel. Depending on the environment, suffix the PKG_RELEASE field with either "-cake-legacy" or "-cake-upstream" to ensure that the nonshared packages are preferred by opkg for newer builds. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
161 lines
4.2 KiB
Makefile
161 lines
4.2 KiB
Makefile
#
|
|
# Copyright (C) 2006-2015 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=iproute2
|
|
PKG_VERSION:=4.4.0
|
|
PKG_RELEASE:=10
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
|
PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
|
|
PKG_HASH:=bc91c367288a19f78ef800cd6840363be1f22da8436fbae88e1a7250490d6514
|
|
PKG_BUILD_PARALLEL:=1
|
|
PKG_LICENSE:=GPL-2.0
|
|
|
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
|
|
|
|
USE_CAKE:=$(if $(filter 1y,$(SDK)$(CONFIG_BUILDBOT)),cake-legacy,cake-upstream)
|
|
PKG_FLAGS:=$(if $(filter cake-upstream,$(USE_CAKE)),nonshared)
|
|
PKG_RELEASE:=$(PKG_RELEASE)-$(USE_CAKE)
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Package/iproute2/Default
|
|
TITLE:=Routing control utility ($(2))
|
|
SECTION:=net
|
|
CATEGORY:=Network
|
|
URL:=http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2
|
|
SUBMENU:=Routing and Redirection
|
|
MAINTAINER:=Russell Senior <russell@personaltelco.net>
|
|
DEPENDS:= +libnl-tiny
|
|
VARIANT:=$(1)
|
|
PROVIDES:=$(3)
|
|
endef
|
|
|
|
define Package/ip-tiny
|
|
$(call Package/iproute2/Default,tiny,Minimal,ip)
|
|
CONFLICTS:=ip-full
|
|
endef
|
|
|
|
Package/ip-full:=$(call Package/iproute2/Default,full,Full,ip)
|
|
|
|
define Package/tc
|
|
$(call Package/iproute2/Default)
|
|
TITLE:=Traffic control utility
|
|
DEPENDS:=+kmod-sched-core
|
|
endef
|
|
|
|
define Package/genl
|
|
$(call Package/iproute2/Default)
|
|
TITLE:=General netlink utility frontend
|
|
endef
|
|
|
|
define Package/ip-bridge
|
|
$(call Package/iproute2/Default)
|
|
TITLE:=Bridge configuration utility from iproute2
|
|
endef
|
|
|
|
define Package/ss
|
|
$(call Package/iproute2/Default)
|
|
TITLE:=Socket statistics utility
|
|
endef
|
|
|
|
define Package/nstat
|
|
$(call Package/iproute2/Default)
|
|
TITLE:=Network statistics utility
|
|
endef
|
|
|
|
ifeq ($(BUILD_VARIANT),tiny)
|
|
IP_CONFIG_TINY:=y
|
|
endif
|
|
|
|
PATCH_DIR:=$(PKG_BUILD_DIR)/openwrt-patches
|
|
|
|
define Build/Patch
|
|
$(INSTALL_DIR) $(PATCH_DIR)
|
|
$(CP) ./patches/* ./patches-$(USE_CAKE)/* $(PATCH_DIR)/
|
|
$(call Build/Patch/Default)
|
|
endef
|
|
|
|
define Build/Configure
|
|
$(SED) "s,-I/usr/include/db3,," $(PKG_BUILD_DIR)/Makefile
|
|
$(SED) "s,^KERNEL_INCLUDE.*,KERNEL_INCLUDE=$(LINUX_DIR)/include," \
|
|
$(PKG_BUILD_DIR)/Makefile
|
|
$(SED) "s,^LIBC_INCLUDE.*,LIBC_INCLUDE=$(STAGING_DIR)/include," \
|
|
$(PKG_BUILD_DIR)/Makefile
|
|
echo "static const char SNAPSHOT[] = \"$(PKG_VERSION)-$(PKG_RELEASE)-lede\";" \
|
|
> $(PKG_BUILD_DIR)/include/SNAPSHOT.h
|
|
endef
|
|
|
|
TARGET_CFLAGS += -DHAVE_SETNS
|
|
TARGET_CFLAGS += -ffunction-sections -fdata-sections
|
|
|
|
MAKE_FLAGS += \
|
|
EXTRA_CCOPTS="$(TARGET_CFLAGS) -I../include -I$(STAGING_DIR)/usr/include/libnl-tiny" \
|
|
KERNEL_INCLUDE="$(LINUX_DIR)/include" \
|
|
SHARED_LIBS="" \
|
|
LDFLAGS="$(TARGET_LDFLAGS) -Wl,--gc-sections" \
|
|
IP_CONFIG_TINY=$(IP_CONFIG_TINY) \
|
|
FPIC="$(FPIC)"
|
|
|
|
define Build/Compile
|
|
+$(MAKE_VARS) $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) $(MAKE_FLAGS)
|
|
endef
|
|
|
|
define Build/InstallDev
|
|
$(INSTALL_DIR) $(1)/usr/include
|
|
$(CP) $(PKG_BUILD_DIR)/include/{libgenl,libnetlink,ll_map}.h $(1)/usr/include/
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_BUILD_DIR)/lib/libnetlink.a $(1)/usr/lib/
|
|
endef
|
|
|
|
define Package/ip-tiny/install
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ip/ip $(1)/usr/bin/
|
|
endef
|
|
|
|
define Package/ip-full/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ip/ip $(1)/usr/sbin/
|
|
endef
|
|
|
|
define Package/tc/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tc/tc $(1)/usr/sbin/
|
|
$(INSTALL_DIR) $(1)/etc/hotplug.d/iface
|
|
$(INSTALL_BIN) ./files/15-teql $(1)/etc/hotplug.d/iface/
|
|
endef
|
|
|
|
define Package/genl/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/genl/genl $(1)/usr/sbin/
|
|
endef
|
|
|
|
define Package/ip-bridge/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bridge/bridge $(1)/usr/sbin/
|
|
endef
|
|
|
|
define Package/ss/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/misc/ss $(1)/usr/sbin/
|
|
endef
|
|
|
|
define Package/nstat/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/misc/nstat $(1)/usr/sbin/
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,ip-tiny))
|
|
$(eval $(call BuildPackage,ip-full))
|
|
$(eval $(call BuildPackage,tc))
|
|
$(eval $(call BuildPackage,genl))
|
|
$(eval $(call BuildPackage,ip-bridge))
|
|
$(eval $(call BuildPackage,ss))
|
|
$(eval $(call BuildPackage,nstat))
|