2010-03-14 01:56:33 +00:00
|
|
|
#
|
2015-01-17 10:58:22 +00:00
|
|
|
# Copyright (C) 2006-2015 OpenWrt.org
|
2006-06-27 00:35:46 +00:00
|
|
|
#
|
|
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
|
|
# See /LICENSE for more information.
|
|
|
|
#
|
2005-03-21 08:12:49 +00:00
|
|
|
|
2005-03-06 03:34:52 +00:00
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
|
|
|
|
PKG_NAME:=iproute2
|
2024-12-07 16:32:21 +00:00
|
|
|
PKG_VERSION:=6.12.0
|
2023-02-22 14:56:25 +00:00
|
|
|
PKG_RELEASE:=1
|
2005-03-21 08:12:49 +00:00
|
|
|
|
2013-07-28 23:27:35 +00:00
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
2016-05-24 13:13:48 +00:00
|
|
|
PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
|
2024-12-07 16:32:21 +00:00
|
|
|
PKG_HASH:=bbd141ef7b5d0127cc2152843ba61f274dc32814fa3e0f13e7d07a080bef53d9
|
2010-09-09 21:50:07 +00:00
|
|
|
PKG_BUILD_PARALLEL:=1
|
2017-03-20 21:53:46 +00:00
|
|
|
PKG_BUILD_DEPENDS:=iptables
|
2014-11-02 12:20:54 +00:00
|
|
|
PKG_LICENSE:=GPL-2.0
|
2017-09-28 02:55:46 +00:00
|
|
|
PKG_CPE_ID:=cpe:/a:iproute2_project:iproute2
|
2007-09-07 08:34:51 +00:00
|
|
|
|
2023-02-02 20:33:38 +00:00
|
|
|
PKG_BUILD_FLAGS:=gc-sections lto
|
2023-02-02 20:16:21 +00:00
|
|
|
|
2017-11-28 07:15:50 +00:00
|
|
|
include $(INCLUDE_DIR)/kernel.mk
|
2006-06-21 02:32:39 +00:00
|
|
|
include $(INCLUDE_DIR)/package.mk
|
2018-12-20 07:08:43 +00:00
|
|
|
include $(INCLUDE_DIR)/nls.mk
|
2005-03-06 03:34:52 +00:00
|
|
|
|
2006-09-23 17:39:46 +00:00
|
|
|
define Package/iproute2/Default
|
|
|
|
SECTION:=net
|
|
|
|
CATEGORY:=Network
|
2014-06-17 12:43:30 +00:00
|
|
|
URL:=http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2
|
2011-03-12 07:27:57 +00:00
|
|
|
SUBMENU:=Routing and Redirection
|
2014-06-17 12:43:30 +00:00
|
|
|
MAINTAINER:=Russell Senior <russell@personaltelco.net>
|
2006-05-10 19:06:22 +00:00
|
|
|
endef
|
|
|
|
|
2016-10-13 01:07:21 +00:00
|
|
|
define Package/ip-tiny
|
2017-03-04 11:37:43 +00:00
|
|
|
$(call Package/iproute2/Default)
|
iproute2: separate tc into tiny and full variants
This change was investigated previously [1] but not deemed necessary. With
the recent addition [2] of modern BPF loader support, however, tc gained
dependencies on libelf and libbpf, with a larger installation footprint.
Similar to ip-tiny/ip-full, split tc into tc-full and tc-tiny variants,
where the latter excludes the eBPF loader, uses a smaller executable, and
avoids libelf and libbpf package dependencies. Both variants provide the
'tc' virtual package, with tc-tiny as the default.
The previous tc package included a loadable module for iptables actions.
Separate this out into a common package, tc-mod-iptables, which both
variants depend on. Some package sizes on mips_24kc:
Before:
148343 tc_5.11.0-1_mips_24kc.ipk
After:
144833 tc-full_5.11.0-2_mips_24kc.ipk
138430 tc-tiny_5.11.0-2_mips_24kc.ipk (and no libelf or libbpf)
4115 tc-mod-iptables_5.11.0-2_mips_24kc.ipk
Also fix up some Makefile indentation.
[1] https://github.com/openwrt/openwrt/pull/1627#issuecomment-447619962
[2] b048a305a3d3 ("iproute2: update to 5.11.0")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-02 01:14:50 +00:00
|
|
|
TITLE:=Routing control utility (minimal)
|
|
|
|
VARIANT:=iptiny
|
|
|
|
DEFAULT_VARIANT:=1
|
|
|
|
PROVIDES:=ip
|
|
|
|
ALTERNATIVES:=200:/sbin/ip:/usr/libexec/ip-tiny
|
|
|
|
DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl
|
2014-10-05 17:13:34 +00:00
|
|
|
endef
|
|
|
|
|
2017-03-04 11:37:43 +00:00
|
|
|
define Package/ip-full
|
|
|
|
$(call Package/iproute2/Default)
|
iproute2: separate tc into tiny and full variants
This change was investigated previously [1] but not deemed necessary. With
the recent addition [2] of modern BPF loader support, however, tc gained
dependencies on libelf and libbpf, with a larger installation footprint.
Similar to ip-tiny/ip-full, split tc into tc-full and tc-tiny variants,
where the latter excludes the eBPF loader, uses a smaller executable, and
avoids libelf and libbpf package dependencies. Both variants provide the
'tc' virtual package, with tc-tiny as the default.
The previous tc package included a loadable module for iptables actions.
Separate this out into a common package, tc-mod-iptables, which both
variants depend on. Some package sizes on mips_24kc:
Before:
148343 tc_5.11.0-1_mips_24kc.ipk
After:
144833 tc-full_5.11.0-2_mips_24kc.ipk
138430 tc-tiny_5.11.0-2_mips_24kc.ipk (and no libelf or libbpf)
4115 tc-mod-iptables_5.11.0-2_mips_24kc.ipk
Also fix up some Makefile indentation.
[1] https://github.com/openwrt/openwrt/pull/1627#issuecomment-447619962
[2] b048a305a3d3 ("iproute2: update to 5.11.0")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-02 01:14:50 +00:00
|
|
|
TITLE:=Routing control utility (full)
|
|
|
|
VARIANT:=ipfull
|
|
|
|
PROVIDES:=ip
|
|
|
|
ALTERNATIVES:=300:/sbin/ip:/usr/libexec/ip-full
|
|
|
|
DEPENDS:=+libnl-tiny +libbpf +(PACKAGE_devlink||PACKAGE_rdma):libmnl
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Package/tc-tiny
|
|
|
|
$(call Package/iproute2/Default)
|
|
|
|
TITLE:=Traffic control utility (minimal)
|
|
|
|
VARIANT:=tctiny
|
|
|
|
DEFAULT_VARIANT:=1
|
|
|
|
PROVIDES:=tc
|
|
|
|
ALTERNATIVES:=200:/sbin/tc:/usr/libexec/tc-tiny
|
2022-01-27 12:30:38 +00:00
|
|
|
DEPENDS:=+kmod-sched-core +(PACKAGE_devlink||PACKAGE_rdma):libmnl
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Package/tc-bpf
|
|
|
|
$(call Package/iproute2/Default)
|
|
|
|
TITLE:=Traffic control utility (bpf)
|
|
|
|
VARIANT:=tcbpf
|
|
|
|
PROVIDES:=tc
|
|
|
|
ALTERNATIVES:=300:/sbin/tc:/usr/libexec/tc-bpf
|
|
|
|
DEPENDS:=+kmod-sched-core +(PACKAGE_devlink||PACKAGE_rdma):libmnl +libbpf
|
2017-03-04 11:37:43 +00:00
|
|
|
endef
|
2014-03-09 13:32:59 +00:00
|
|
|
|
iproute2: separate tc into tiny and full variants
This change was investigated previously [1] but not deemed necessary. With
the recent addition [2] of modern BPF loader support, however, tc gained
dependencies on libelf and libbpf, with a larger installation footprint.
Similar to ip-tiny/ip-full, split tc into tc-full and tc-tiny variants,
where the latter excludes the eBPF loader, uses a smaller executable, and
avoids libelf and libbpf package dependencies. Both variants provide the
'tc' virtual package, with tc-tiny as the default.
The previous tc package included a loadable module for iptables actions.
Separate this out into a common package, tc-mod-iptables, which both
variants depend on. Some package sizes on mips_24kc:
Before:
148343 tc_5.11.0-1_mips_24kc.ipk
After:
144833 tc-full_5.11.0-2_mips_24kc.ipk
138430 tc-tiny_5.11.0-2_mips_24kc.ipk (and no libelf or libbpf)
4115 tc-mod-iptables_5.11.0-2_mips_24kc.ipk
Also fix up some Makefile indentation.
[1] https://github.com/openwrt/openwrt/pull/1627#issuecomment-447619962
[2] b048a305a3d3 ("iproute2: update to 5.11.0")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-02 01:14:50 +00:00
|
|
|
define Package/tc-full
|
2007-09-07 08:34:51 +00:00
|
|
|
$(call Package/iproute2/Default)
|
iproute2: separate tc into tiny and full variants
This change was investigated previously [1] but not deemed necessary. With
the recent addition [2] of modern BPF loader support, however, tc gained
dependencies on libelf and libbpf, with a larger installation footprint.
Similar to ip-tiny/ip-full, split tc into tc-full and tc-tiny variants,
where the latter excludes the eBPF loader, uses a smaller executable, and
avoids libelf and libbpf package dependencies. Both variants provide the
'tc' virtual package, with tc-tiny as the default.
The previous tc package included a loadable module for iptables actions.
Separate this out into a common package, tc-mod-iptables, which both
variants depend on. Some package sizes on mips_24kc:
Before:
148343 tc_5.11.0-1_mips_24kc.ipk
After:
144833 tc-full_5.11.0-2_mips_24kc.ipk
138430 tc-tiny_5.11.0-2_mips_24kc.ipk (and no libelf or libbpf)
4115 tc-mod-iptables_5.11.0-2_mips_24kc.ipk
Also fix up some Makefile indentation.
[1] https://github.com/openwrt/openwrt/pull/1627#issuecomment-447619962
[2] b048a305a3d3 ("iproute2: update to 5.11.0")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-02 01:14:50 +00:00
|
|
|
TITLE:=Traffic control utility (full)
|
|
|
|
VARIANT:=tcfull
|
2018-12-16 02:26:48 +00:00
|
|
|
PROVIDES:=tc
|
2022-01-27 12:30:38 +00:00
|
|
|
ALTERNATIVES:=400:/sbin/tc:/usr/libexec/tc-full
|
2024-05-25 15:30:25 +00:00
|
|
|
DEPENDS:=+kmod-sched-core +(PACKAGE_devlink||PACKAGE_rdma):libmnl +libbpf +libxtables
|
2006-05-10 19:06:22 +00:00
|
|
|
endef
|
2005-03-06 03:34:52 +00:00
|
|
|
|
2007-06-09 13:17:46 +00:00
|
|
|
define Package/genl
|
2007-09-07 08:34:51 +00:00
|
|
|
$(call Package/iproute2/Default)
|
2007-06-09 13:17:46 +00:00
|
|
|
TITLE:=General netlink utility frontend
|
2021-02-20 16:56:20 +00:00
|
|
|
DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl
|
2007-06-09 13:17:46 +00:00
|
|
|
endef
|
|
|
|
|
2015-01-17 10:58:34 +00:00
|
|
|
define Package/ip-bridge
|
|
|
|
$(call Package/iproute2/Default)
|
|
|
|
TITLE:=Bridge configuration utility from iproute2
|
2021-02-20 16:56:20 +00:00
|
|
|
DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl
|
2015-01-17 10:58:34 +00:00
|
|
|
endef
|
|
|
|
|
2012-04-02 16:25:51 +00:00
|
|
|
define Package/ss
|
|
|
|
$(call Package/iproute2/Default)
|
|
|
|
TITLE:=Socket statistics utility
|
2024-05-25 15:30:25 +00:00
|
|
|
DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl +libbpf +kmod-netlink-diag
|
2012-04-02 16:25:51 +00:00
|
|
|
endef
|
|
|
|
|
2016-04-27 09:13:59 +00:00
|
|
|
define Package/nstat
|
|
|
|
$(call Package/iproute2/Default)
|
|
|
|
TITLE:=Network statistics utility
|
2021-02-20 16:56:20 +00:00
|
|
|
DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl
|
2016-04-27 09:13:59 +00:00
|
|
|
endef
|
|
|
|
|
2017-03-20 21:53:46 +00:00
|
|
|
define Package/devlink
|
|
|
|
$(call Package/iproute2/Default)
|
|
|
|
TITLE:=Network devlink utility
|
2021-02-20 16:56:20 +00:00
|
|
|
DEPENDS:=+libmnl
|
2017-03-20 21:53:46 +00:00
|
|
|
endef
|
|
|
|
|
2017-10-01 19:46:27 +00:00
|
|
|
define Package/rdma
|
|
|
|
$(call Package/iproute2/Default)
|
|
|
|
TITLE:=Network rdma utility
|
2021-02-20 16:56:20 +00:00
|
|
|
DEPENDS:=+libmnl
|
2017-10-01 19:46:27 +00:00
|
|
|
endef
|
|
|
|
|
iproute2: separate tc into tiny and full variants
This change was investigated previously [1] but not deemed necessary. With
the recent addition [2] of modern BPF loader support, however, tc gained
dependencies on libelf and libbpf, with a larger installation footprint.
Similar to ip-tiny/ip-full, split tc into tc-full and tc-tiny variants,
where the latter excludes the eBPF loader, uses a smaller executable, and
avoids libelf and libbpf package dependencies. Both variants provide the
'tc' virtual package, with tc-tiny as the default.
The previous tc package included a loadable module for iptables actions.
Separate this out into a common package, tc-mod-iptables, which both
variants depend on. Some package sizes on mips_24kc:
Before:
148343 tc_5.11.0-1_mips_24kc.ipk
After:
144833 tc-full_5.11.0-2_mips_24kc.ipk
138430 tc-tiny_5.11.0-2_mips_24kc.ipk (and no libelf or libbpf)
4115 tc-mod-iptables_5.11.0-2_mips_24kc.ipk
Also fix up some Makefile indentation.
[1] https://github.com/openwrt/openwrt/pull/1627#issuecomment-447619962
[2] b048a305a3d3 ("iproute2: update to 5.11.0")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-02 01:14:50 +00:00
|
|
|
ifeq ($(BUILD_VARIANT),iptiny)
|
2014-03-09 13:32:59 +00:00
|
|
|
IP_CONFIG_TINY:=y
|
2021-02-20 16:56:20 +00:00
|
|
|
LIBBPF_FORCE:=off
|
2014-03-09 13:32:59 +00:00
|
|
|
endif
|
|
|
|
|
iproute2: separate tc into tiny and full variants
This change was investigated previously [1] but not deemed necessary. With
the recent addition [2] of modern BPF loader support, however, tc gained
dependencies on libelf and libbpf, with a larger installation footprint.
Similar to ip-tiny/ip-full, split tc into tc-full and tc-tiny variants,
where the latter excludes the eBPF loader, uses a smaller executable, and
avoids libelf and libbpf package dependencies. Both variants provide the
'tc' virtual package, with tc-tiny as the default.
The previous tc package included a loadable module for iptables actions.
Separate this out into a common package, tc-mod-iptables, which both
variants depend on. Some package sizes on mips_24kc:
Before:
148343 tc_5.11.0-1_mips_24kc.ipk
After:
144833 tc-full_5.11.0-2_mips_24kc.ipk
138430 tc-tiny_5.11.0-2_mips_24kc.ipk (and no libelf or libbpf)
4115 tc-mod-iptables_5.11.0-2_mips_24kc.ipk
Also fix up some Makefile indentation.
[1] https://github.com/openwrt/openwrt/pull/1627#issuecomment-447619962
[2] b048a305a3d3 ("iproute2: update to 5.11.0")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-02 01:14:50 +00:00
|
|
|
ifeq ($(BUILD_VARIANT),ipfull)
|
2018-12-16 02:26:48 +00:00
|
|
|
HAVE_ELF:=y
|
2021-02-20 16:56:20 +00:00
|
|
|
LIBBPF_FORCE:=on
|
2018-12-16 02:26:48 +00:00
|
|
|
endif
|
|
|
|
|
iproute2: separate tc into tiny and full variants
This change was investigated previously [1] but not deemed necessary. With
the recent addition [2] of modern BPF loader support, however, tc gained
dependencies on libelf and libbpf, with a larger installation footprint.
Similar to ip-tiny/ip-full, split tc into tc-full and tc-tiny variants,
where the latter excludes the eBPF loader, uses a smaller executable, and
avoids libelf and libbpf package dependencies. Both variants provide the
'tc' virtual package, with tc-tiny as the default.
The previous tc package included a loadable module for iptables actions.
Separate this out into a common package, tc-mod-iptables, which both
variants depend on. Some package sizes on mips_24kc:
Before:
148343 tc_5.11.0-1_mips_24kc.ipk
After:
144833 tc-full_5.11.0-2_mips_24kc.ipk
138430 tc-tiny_5.11.0-2_mips_24kc.ipk (and no libelf or libbpf)
4115 tc-mod-iptables_5.11.0-2_mips_24kc.ipk
Also fix up some Makefile indentation.
[1] https://github.com/openwrt/openwrt/pull/1627#issuecomment-447619962
[2] b048a305a3d3 ("iproute2: update to 5.11.0")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-02 01:14:50 +00:00
|
|
|
ifeq ($(BUILD_VARIANT),tctiny)
|
|
|
|
LIBBPF_FORCE:=off
|
2022-01-27 12:30:38 +00:00
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(BUILD_VARIANT),tcbpf)
|
|
|
|
HAVE_ELF:=y
|
|
|
|
LIBBPF_FORCE:=on
|
iproute2: separate tc into tiny and full variants
This change was investigated previously [1] but not deemed necessary. With
the recent addition [2] of modern BPF loader support, however, tc gained
dependencies on libelf and libbpf, with a larger installation footprint.
Similar to ip-tiny/ip-full, split tc into tc-full and tc-tiny variants,
where the latter excludes the eBPF loader, uses a smaller executable, and
avoids libelf and libbpf package dependencies. Both variants provide the
'tc' virtual package, with tc-tiny as the default.
The previous tc package included a loadable module for iptables actions.
Separate this out into a common package, tc-mod-iptables, which both
variants depend on. Some package sizes on mips_24kc:
Before:
148343 tc_5.11.0-1_mips_24kc.ipk
After:
144833 tc-full_5.11.0-2_mips_24kc.ipk
138430 tc-tiny_5.11.0-2_mips_24kc.ipk (and no libelf or libbpf)
4115 tc-mod-iptables_5.11.0-2_mips_24kc.ipk
Also fix up some Makefile indentation.
[1] https://github.com/openwrt/openwrt/pull/1627#issuecomment-447619962
[2] b048a305a3d3 ("iproute2: update to 5.11.0")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-02 01:14:50 +00:00
|
|
|
SHARED_LIBS:=y
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(BUILD_VARIANT),tcfull)
|
2022-01-27 12:30:38 +00:00
|
|
|
#enable iptables/xtables requirement only if tciptables variant is selected
|
|
|
|
TC_CONFIG_XT:=y
|
|
|
|
TC_CONFIG_XT_OLD:=y
|
|
|
|
TC_CONFIG_XT_OLD_H:=y
|
|
|
|
TC_CONFIG_IPSET:=y
|
2018-12-16 02:26:48 +00:00
|
|
|
HAVE_ELF:=y
|
2021-02-20 16:56:20 +00:00
|
|
|
LIBBPF_FORCE:=on
|
2018-12-13 19:48:55 +00:00
|
|
|
SHARED_LIBS:=y
|
2022-01-27 12:30:38 +00:00
|
|
|
else
|
|
|
|
#disable iptables requirement by default
|
|
|
|
TC_CONFIG_XT:=n
|
|
|
|
TC_CONFIG_XT_OLD:=n
|
|
|
|
TC_CONFIG_XT_OLD_H:=n
|
|
|
|
TC_CONFIG_IPSET:=n
|
2018-12-16 02:26:48 +00:00
|
|
|
endif
|
|
|
|
|
2017-10-01 19:46:27 +00:00
|
|
|
ifdef CONFIG_PACKAGE_devlink
|
|
|
|
HAVE_MNL:=y
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef CONFIG_PACKAGE_rdma
|
|
|
|
HAVE_MNL:=y
|
|
|
|
endif
|
|
|
|
|
2006-05-10 19:06:22 +00:00
|
|
|
define Build/Configure
|
2017-11-07 08:45:54 +00:00
|
|
|
echo "static const char SNAPSHOT[] = \"$(PKG_VERSION)-$(PKG_RELEASE)-openwrt\";" \
|
2010-09-09 00:40:25 +00:00
|
|
|
> $(PKG_BUILD_DIR)/include/SNAPSHOT.h
|
2006-05-10 19:06:22 +00:00
|
|
|
endef
|
2005-03-06 03:34:52 +00:00
|
|
|
|
2023-02-02 20:16:21 +00:00
|
|
|
TARGET_LDFLAGS += -Wl,--as-needed
|
iproute2: simplify Makefile, patches and fix feature detection
Compile-based feature detection (e.g. xtables, ipset support) was broken
due to silent compilation errors in the configure script, caused by a
Makefile variable KERNEL_INCLUDE referring to kernel build headers. Use
userspace headers by setting the same "user_headers" kernel include path
as used for the iptables build.
Remove redundant or unused Build/Configure definitions from package
Makefile, including KERNEL_INCLUDE, LIBC_INCLUDE and DBM includes.
Don't pass LDFLAGS within MAKE_FLAGS as this interferes with LDFLAGS in
tc/Makefile and masks a link parameter ("-Wl,-export-dynamic"). Instead,
use standard TARGET_LDFLAGS.
Replace EXTRA_CCOPTS in MAKE_FLAGS with cleaner TARGET_CPPFLAGS, and also
drop now unneeded patch 150-extra-ccopts.patch.
Enable defining XT_LIB_DIR from Makefile, needed to set the iptables
modules directory to something other than /lib/xtables, and also add
libxtables dependency. Both are needed with working xtables detection.
Note that libxtables is also pulled in by iptables, firewall or luci, so
this change has no size impact in most cases.
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2018-11-24 07:56:24 +00:00
|
|
|
TARGET_CPPFLAGS += -I$(STAGING_DIR)/usr/include/libnl-tiny
|
2013-12-17 15:59:29 +00:00
|
|
|
|
2009-11-05 22:29:14 +00:00
|
|
|
MAKE_FLAGS += \
|
2022-08-16 21:38:52 +00:00
|
|
|
KERNEL_INCLUDE="$(LINUX_DIR)/include/uapi" \
|
2018-12-13 19:48:55 +00:00
|
|
|
SHARED_LIBS=$(SHARED_LIBS) \
|
2014-03-09 13:32:59 +00:00
|
|
|
IP_CONFIG_TINY=$(IP_CONFIG_TINY) \
|
2021-04-18 10:09:44 +00:00
|
|
|
BUILD_VARIANT=$(BUILD_VARIANT) \
|
2021-02-20 16:56:20 +00:00
|
|
|
LIBBPF_FORCE=$(LIBBPF_FORCE) \
|
2018-12-16 02:26:48 +00:00
|
|
|
HAVE_ELF=$(HAVE_ELF) \
|
2017-10-01 19:46:27 +00:00
|
|
|
HAVE_MNL=$(HAVE_MNL) \
|
2019-07-01 08:57:26 +00:00
|
|
|
HAVE_CAP=$(HAVE_CAP) \
|
2022-08-05 10:36:12 +00:00
|
|
|
HAVE_TIRPC=n \
|
2017-03-20 21:53:46 +00:00
|
|
|
IPT_LIB_DIR=/usr/lib/iptables \
|
iproute2: simplify Makefile, patches and fix feature detection
Compile-based feature detection (e.g. xtables, ipset support) was broken
due to silent compilation errors in the configure script, caused by a
Makefile variable KERNEL_INCLUDE referring to kernel build headers. Use
userspace headers by setting the same "user_headers" kernel include path
as used for the iptables build.
Remove redundant or unused Build/Configure definitions from package
Makefile, including KERNEL_INCLUDE, LIBC_INCLUDE and DBM includes.
Don't pass LDFLAGS within MAKE_FLAGS as this interferes with LDFLAGS in
tc/Makefile and masks a link parameter ("-Wl,-export-dynamic"). Instead,
use standard TARGET_LDFLAGS.
Replace EXTRA_CCOPTS in MAKE_FLAGS with cleaner TARGET_CPPFLAGS, and also
drop now unneeded patch 150-extra-ccopts.patch.
Enable defining XT_LIB_DIR from Makefile, needed to set the iptables
modules directory to something other than /lib/xtables, and also add
libxtables dependency. Both are needed with working xtables detection.
Note that libxtables is also pulled in by iptables, firewall or luci, so
this change has no size impact in most cases.
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2018-11-24 07:56:24 +00:00
|
|
|
XT_LIB_DIR=/usr/lib/iptables \
|
2022-01-27 12:30:38 +00:00
|
|
|
TC_CONFIG_XT=$(TC_CONFIG_XT) \
|
|
|
|
TC_CONFIG_XT_OLD=$(TC_CONFIG_XT_OLD) \
|
|
|
|
TC_CONFIG_XT_OLD_H=$(TC_CONFIG_XT_OLD_H) \
|
|
|
|
TC_CONFIG_IPSET=$(TC_CONFIG_IPSET) \
|
2021-02-20 16:56:20 +00:00
|
|
|
FPIC="$(FPIC)" \
|
|
|
|
$(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='')
|
2009-11-05 22:29:14 +00:00
|
|
|
|
2006-05-10 19:06:22 +00:00
|
|
|
define Build/Compile
|
2012-09-23 09:50:01 +00:00
|
|
|
+$(MAKE_VARS) $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) $(MAKE_FLAGS)
|
2006-05-10 19:06:22 +00:00
|
|
|
endef
|
2005-03-06 03:34:52 +00:00
|
|
|
|
2009-05-26 21:58:24 +00:00
|
|
|
define Build/InstallDev
|
2021-02-20 16:56:20 +00:00
|
|
|
$(INSTALL_DIR) $(1)/usr/include/iproute2
|
|
|
|
$(CP) $(PKG_BUILD_DIR)/include/bpf_elf.h $(1)/usr/include/iproute2
|
2018-08-09 15:42:35 +00:00
|
|
|
$(CP) $(PKG_BUILD_DIR)/include/{libgenl,libnetlink}.h $(1)/usr/include/
|
2009-05-26 21:58:24 +00:00
|
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
|
|
$(CP) $(PKG_BUILD_DIR)/lib/libnetlink.a $(1)/usr/lib/
|
|
|
|
endef
|
|
|
|
|
2016-10-13 01:07:21 +00:00
|
|
|
define Package/ip-tiny/install
|
2018-10-16 12:16:48 +00:00
|
|
|
$(INSTALL_DIR) $(1)/usr/libexec
|
|
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ip/ip $(1)/usr/libexec/ip-tiny
|
2006-05-10 19:06:22 +00:00
|
|
|
endef
|
2005-11-06 01:14:15 +00:00
|
|
|
|
2015-09-08 17:44:17 +00:00
|
|
|
define Package/ip-full/install
|
2018-10-16 12:16:48 +00:00
|
|
|
$(INSTALL_DIR) $(1)/usr/libexec
|
|
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ip/ip $(1)/usr/libexec/ip-full
|
2014-03-09 13:32:59 +00:00
|
|
|
endef
|
|
|
|
|
iproute2: separate tc into tiny and full variants
This change was investigated previously [1] but not deemed necessary. With
the recent addition [2] of modern BPF loader support, however, tc gained
dependencies on libelf and libbpf, with a larger installation footprint.
Similar to ip-tiny/ip-full, split tc into tc-full and tc-tiny variants,
where the latter excludes the eBPF loader, uses a smaller executable, and
avoids libelf and libbpf package dependencies. Both variants provide the
'tc' virtual package, with tc-tiny as the default.
The previous tc package included a loadable module for iptables actions.
Separate this out into a common package, tc-mod-iptables, which both
variants depend on. Some package sizes on mips_24kc:
Before:
148343 tc_5.11.0-1_mips_24kc.ipk
After:
144833 tc-full_5.11.0-2_mips_24kc.ipk
138430 tc-tiny_5.11.0-2_mips_24kc.ipk (and no libelf or libbpf)
4115 tc-mod-iptables_5.11.0-2_mips_24kc.ipk
Also fix up some Makefile indentation.
[1] https://github.com/openwrt/openwrt/pull/1627#issuecomment-447619962
[2] b048a305a3d3 ("iproute2: update to 5.11.0")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-02 01:14:50 +00:00
|
|
|
define Package/tc-tiny/install
|
|
|
|
$(INSTALL_DIR) $(1)/usr/libexec
|
|
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tc/tc $(1)/usr/libexec/tc-tiny
|
|
|
|
endef
|
|
|
|
|
2022-01-27 12:30:38 +00:00
|
|
|
define Package/tc-bpf/install
|
|
|
|
$(INSTALL_DIR) $(1)/usr/libexec
|
|
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tc/tc $(1)/usr/libexec/tc-bpf
|
|
|
|
endef
|
|
|
|
|
iproute2: separate tc into tiny and full variants
This change was investigated previously [1] but not deemed necessary. With
the recent addition [2] of modern BPF loader support, however, tc gained
dependencies on libelf and libbpf, with a larger installation footprint.
Similar to ip-tiny/ip-full, split tc into tc-full and tc-tiny variants,
where the latter excludes the eBPF loader, uses a smaller executable, and
avoids libelf and libbpf package dependencies. Both variants provide the
'tc' virtual package, with tc-tiny as the default.
The previous tc package included a loadable module for iptables actions.
Separate this out into a common package, tc-mod-iptables, which both
variants depend on. Some package sizes on mips_24kc:
Before:
148343 tc_5.11.0-1_mips_24kc.ipk
After:
144833 tc-full_5.11.0-2_mips_24kc.ipk
138430 tc-tiny_5.11.0-2_mips_24kc.ipk (and no libelf or libbpf)
4115 tc-mod-iptables_5.11.0-2_mips_24kc.ipk
Also fix up some Makefile indentation.
[1] https://github.com/openwrt/openwrt/pull/1627#issuecomment-447619962
[2] b048a305a3d3 ("iproute2: update to 5.11.0")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-02 01:14:50 +00:00
|
|
|
define Package/tc-full/install
|
|
|
|
$(INSTALL_DIR) $(1)/usr/libexec
|
|
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tc/tc $(1)/usr/libexec/tc-full
|
|
|
|
endef
|
|
|
|
|
2007-06-09 13:17:46 +00:00
|
|
|
define Package/genl/install
|
|
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/genl/genl $(1)/usr/sbin/
|
|
|
|
endef
|
|
|
|
|
2015-01-17 10:58:34 +00:00
|
|
|
define Package/ip-bridge/install
|
|
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bridge/bridge $(1)/usr/sbin/
|
|
|
|
endef
|
|
|
|
|
2012-04-02 16:25:51 +00:00
|
|
|
define Package/ss/install
|
|
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/misc/ss $(1)/usr/sbin/
|
|
|
|
endef
|
|
|
|
|
2016-04-27 09:13:59 +00:00
|
|
|
define Package/nstat/install
|
|
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/misc/nstat $(1)/usr/sbin/
|
|
|
|
endef
|
|
|
|
|
2017-03-20 21:53:46 +00:00
|
|
|
define Package/devlink/install
|
|
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/devlink/devlink $(1)/usr/sbin/
|
|
|
|
endef
|
|
|
|
|
2017-10-01 19:46:27 +00:00
|
|
|
define Package/rdma/install
|
|
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/rdma/rdma $(1)/usr/sbin/
|
|
|
|
endef
|
|
|
|
|
2016-10-13 01:07:21 +00:00
|
|
|
$(eval $(call BuildPackage,ip-tiny))
|
2014-03-09 13:32:59 +00:00
|
|
|
$(eval $(call BuildPackage,ip-full))
|
iproute2: separate tc into tiny and full variants
This change was investigated previously [1] but not deemed necessary. With
the recent addition [2] of modern BPF loader support, however, tc gained
dependencies on libelf and libbpf, with a larger installation footprint.
Similar to ip-tiny/ip-full, split tc into tc-full and tc-tiny variants,
where the latter excludes the eBPF loader, uses a smaller executable, and
avoids libelf and libbpf package dependencies. Both variants provide the
'tc' virtual package, with tc-tiny as the default.
The previous tc package included a loadable module for iptables actions.
Separate this out into a common package, tc-mod-iptables, which both
variants depend on. Some package sizes on mips_24kc:
Before:
148343 tc_5.11.0-1_mips_24kc.ipk
After:
144833 tc-full_5.11.0-2_mips_24kc.ipk
138430 tc-tiny_5.11.0-2_mips_24kc.ipk (and no libelf or libbpf)
4115 tc-mod-iptables_5.11.0-2_mips_24kc.ipk
Also fix up some Makefile indentation.
[1] https://github.com/openwrt/openwrt/pull/1627#issuecomment-447619962
[2] b048a305a3d3 ("iproute2: update to 5.11.0")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-02 01:14:50 +00:00
|
|
|
$(eval $(call BuildPackage,tc-tiny))
|
2022-01-27 12:30:38 +00:00
|
|
|
$(eval $(call BuildPackage,tc-bpf))
|
iproute2: separate tc into tiny and full variants
This change was investigated previously [1] but not deemed necessary. With
the recent addition [2] of modern BPF loader support, however, tc gained
dependencies on libelf and libbpf, with a larger installation footprint.
Similar to ip-tiny/ip-full, split tc into tc-full and tc-tiny variants,
where the latter excludes the eBPF loader, uses a smaller executable, and
avoids libelf and libbpf package dependencies. Both variants provide the
'tc' virtual package, with tc-tiny as the default.
The previous tc package included a loadable module for iptables actions.
Separate this out into a common package, tc-mod-iptables, which both
variants depend on. Some package sizes on mips_24kc:
Before:
148343 tc_5.11.0-1_mips_24kc.ipk
After:
144833 tc-full_5.11.0-2_mips_24kc.ipk
138430 tc-tiny_5.11.0-2_mips_24kc.ipk (and no libelf or libbpf)
4115 tc-mod-iptables_5.11.0-2_mips_24kc.ipk
Also fix up some Makefile indentation.
[1] https://github.com/openwrt/openwrt/pull/1627#issuecomment-447619962
[2] b048a305a3d3 ("iproute2: update to 5.11.0")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-02 01:14:50 +00:00
|
|
|
$(eval $(call BuildPackage,tc-full))
|
2007-06-09 13:17:46 +00:00
|
|
|
$(eval $(call BuildPackage,genl))
|
2015-01-17 10:58:34 +00:00
|
|
|
$(eval $(call BuildPackage,ip-bridge))
|
2012-04-02 16:25:51 +00:00
|
|
|
$(eval $(call BuildPackage,ss))
|
2016-04-27 09:13:59 +00:00
|
|
|
$(eval $(call BuildPackage,nstat))
|
2017-03-20 21:53:46 +00:00
|
|
|
$(eval $(call BuildPackage,devlink))
|
2017-10-01 19:46:27 +00:00
|
|
|
$(eval $(call BuildPackage,rdma))
|