Makefile 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775
  1. #
  2. # Copyright (C) 2006-2016 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. include $(TOPDIR)/rules.mk
  8. include $(INCLUDE_DIR)/kernel.mk
  9. PKG_NAME:=iptables
  10. PKG_VERSION:=1.8.10
  11. PKG_RELEASE:=2
  12. PKG_SOURCE_URL:=https://netfilter.org/projects/iptables/files
  13. PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
  14. PKG_HASH:=5cc255c189356e317d070755ce9371eb63a1b783c34498fb8c30264f3cc59c9c
  15. PKG_FIXUP:=autoreconf
  16. PKG_FLAGS:=nonshared
  17. PKG_INSTALL:=1
  18. PKG_BUILD_FLAGS:=gc-sections no-lto
  19. PKG_BUILD_PARALLEL:=1
  20. PKG_LICENSE:=GPL-2.0
  21. PKG_CPE_ID:=cpe:/a:netfilter:iptables
  22. include $(INCLUDE_DIR)/package.mk
  23. ifeq ($(DUMP),)
  24. -include $(LINUX_DIR)/.config
  25. include $(INCLUDE_DIR)/netfilter.mk
  26. STAMP_CONFIGURED:=$(strip $(STAMP_CONFIGURED))_$(shell grep 'NETFILTER' $(LINUX_DIR)/.config | $(MKHASH) md5)
  27. endif
  28. define Package/iptables/Default
  29. SECTION:=net
  30. CATEGORY:=Network
  31. SUBMENU:=Firewall
  32. URL:=https://netfilter.org/
  33. endef
  34. define Package/iptables/Module
  35. $(call Package/iptables/Default)
  36. DEPENDS:=+libxtables $(1)
  37. endef
  38. define Package/xtables-legacy
  39. $(call Package/iptables/Default)
  40. TITLE:=IP firewall administration tool
  41. DEPENDS+= +kmod-ipt-core +libip4tc +IPV6:libip6tc +libiptext +IPV6:libiptext6 +libxtables
  42. endef
  43. define Package/iptables-zz-legacy
  44. $(call Package/iptables/Default)
  45. TITLE:=IP firewall administration tool
  46. DEPENDS+= +xtables-legacy
  47. PROVIDES:=iptables iptables-legacy
  48. ALTERNATIVES:=\
  49. 200:/usr/sbin/iptables:xtables-legacy-multi \
  50. 200:/usr/sbin/iptables-restore:xtables-legacy-multi \
  51. 200:/usr/sbin/iptables-save:xtables-legacy-multi \
  52. 200:/usr/sbin/iptables-legacy:xtables-legacy-multi \
  53. 200:/usr/sbin/iptables-legacy-restore:xtables-legacy-multi \
  54. 200:/usr/sbin/iptables-legacy-save:xtables-legacy-multi
  55. endef
  56. define Package/iptables-zz-legacy/description
  57. IP firewall administration tool.
  58. Matches:
  59. - icmp
  60. - tcp
  61. - udp
  62. - comment
  63. - conntrack
  64. - limit
  65. - mac
  66. - mark
  67. - multiport
  68. - set
  69. - state
  70. - time
  71. Targets:
  72. - ACCEPT
  73. - CT
  74. - DNAT
  75. - DROP
  76. - REJECT
  77. - FLOWOFFLOAD
  78. - LOG
  79. - MARK
  80. - MASQUERADE
  81. - REDIRECT
  82. - SET
  83. - SNAT
  84. - TCPMSS
  85. Tables:
  86. - filter
  87. - mangle
  88. - nat
  89. - raw
  90. endef
  91. define Package/xtables-nft
  92. $(call Package/iptables/Default)
  93. TITLE:=IP firewall administration tool nft
  94. DEPENDS:=+libnftnl +libiptext +IPV6:libiptext6 +libiptext-nft +kmod-nft-compat
  95. endef
  96. define Package/arptables-nft
  97. $(call Package/iptables/Default)
  98. DEPENDS:=+kmod-nft-arp +xtables-nft +kmod-arptables
  99. TITLE:=ARP firewall administration tool nft
  100. PROVIDES:=arptables
  101. ALTERNATIVES:=\
  102. 300:/usr/sbin/arptables:xtables-nft-multi \
  103. 300:/usr/sbin/arptables-restore:xtables-nft-multi \
  104. 300:/usr/sbin/arptables-save:xtables-nft-multi \
  105. 300:/usr/sbin/arptables-nft:xtables-nft-multi \
  106. 300:/usr/sbin/arptables-nft-restore:xtables-nft-multi \
  107. 300:/usr/sbin/arptables-nft-save:xtables-nft-multi
  108. endef
  109. define Package/ebtables-nft
  110. $(call Package/iptables/Default)
  111. DEPENDS:=+kmod-nft-bridge +xtables-nft +kmod-ebtables
  112. TITLE:=Bridge firewall administration tool nft
  113. PROVIDES:=ebtables
  114. ALTERNATIVES:=\
  115. 300:/usr/sbin/ebtables:xtables-nft-multi \
  116. 300:/usr/sbin/ebtables-restore:xtables-nft-multi \
  117. 300:/usr/sbin/ebtables-save:xtables-nft-multi \
  118. 300:/usr/sbin/ebtables-nft:xtables-nft-multi \
  119. 300:/usr/sbin/ebtables-nft-restore:xtables-nft-multi \
  120. 300:/usr/sbin/ebtables-nft-save:xtables-nft-multi
  121. endef
  122. define Package/iptables-nft
  123. $(call Package/iptables/Default)
  124. TITLE:=IP firewall administration tool nft
  125. DEPENDS:=+kmod-ipt-core +xtables-nft
  126. PROVIDES:=iptables
  127. ALTERNATIVES:=\
  128. 300:/usr/sbin/iptables:xtables-nft-multi \
  129. 300:/usr/sbin/iptables-restore:xtables-nft-multi \
  130. 300:/usr/sbin/iptables-save:xtables-nft-multi \
  131. 300:/usr/sbin/iptables-nft:xtables-nft-multi \
  132. 300:/usr/sbin/iptables-nft-restore:xtables-nft-multi \
  133. 300:/usr/sbin/iptables-nft-save:xtables-nft-multi \
  134. 300:/usr/sbin/iptables-restore-translate:xtables-nft-multi \
  135. 300:/usr/sbin/iptables-translate:xtables-nft-multi
  136. endef
  137. define Package/iptables-nft/description
  138. Extra iptables nftables nft binaries.
  139. iptables-nft
  140. iptables-nft-restore
  141. iptables-nft-save
  142. iptables-translate
  143. iptables-restore-translate
  144. endef
  145. define Package/iptables-mod-conntrack-extra
  146. $(call Package/iptables/Module, +kmod-ipt-conntrack-extra)
  147. TITLE:=Extra connection tracking extensions
  148. endef
  149. define Package/iptables-mod-conntrack-extra/description
  150. Extra iptables extensions for connection tracking.
  151. Matches:
  152. - connbytes
  153. - connlimit
  154. - connmark
  155. - recent
  156. - helper
  157. Targets:
  158. - CONNMARK
  159. endef
  160. define Package/iptables-mod-conntrack-label
  161. $(call Package/iptables/Module, +kmod-ipt-conntrack-label @IPTABLES_CONNLABEL)
  162. TITLE:=Connection tracking labeling extension
  163. DEFAULT:=y if IPTABLES_CONNLABEL
  164. endef
  165. define Package/iptables-mod-conntrack-label/description
  166. Match and set label(s) on connection tracking entries
  167. Matches:
  168. - connlabel
  169. endef
  170. define Package/iptables-mod-filter
  171. $(call Package/iptables/Module, +kmod-ipt-filter)
  172. TITLE:=Content inspection extensions
  173. endef
  174. define Package/iptables-mod-filter/description
  175. iptables extensions for packet content inspection.
  176. Includes support for:
  177. Matches:
  178. - string
  179. - bpf
  180. endef
  181. define Package/iptables-mod-ipopt
  182. $(call Package/iptables/Module, +kmod-ipt-ipopt)
  183. TITLE:=IP/Packet option extensions
  184. endef
  185. define Package/iptables-mod-ipopt/description
  186. iptables extensions for matching/changing IP packet options.
  187. Matches:
  188. - dscp
  189. - ecn
  190. - length
  191. - statistic
  192. - tcpmss
  193. - unclean
  194. - hl
  195. Targets:
  196. - DSCP
  197. - CLASSIFY
  198. - ECN
  199. - HL
  200. endef
  201. define Package/iptables-mod-ipsec
  202. $(call Package/iptables/Module, +kmod-ipt-ipsec)
  203. TITLE:=IPsec extensions
  204. endef
  205. define Package/iptables-mod-ipsec/description
  206. iptables extensions for matching ipsec traffic.
  207. Matches:
  208. - ah
  209. - esp
  210. - policy
  211. endef
  212. define Package/iptables-mod-nat-extra
  213. $(call Package/iptables/Module, +kmod-ipt-nat-extra)
  214. TITLE:=Extra NAT extensions
  215. endef
  216. define Package/iptables-mod-nat-extra/description
  217. iptables extensions for extra NAT targets.
  218. Targets:
  219. - MIRROR
  220. - NETMAP
  221. endef
  222. define Package/iptables-mod-nflog
  223. $(call Package/iptables/Module, +kmod-nfnetlink-log +kmod-ipt-nflog)
  224. TITLE:=Netfilter NFLOG target
  225. endef
  226. define Package/iptables-mod-nflog/description
  227. iptables extension for user-space logging via NFNETLINK.
  228. Includes:
  229. - libxt_NFLOG
  230. endef
  231. define Package/iptables-mod-trace
  232. $(call Package/iptables/Module, +kmod-ipt-debug)
  233. TITLE:=Netfilter TRACE target
  234. endef
  235. define Package/iptables-mod-trace/description
  236. iptables extension for TRACE target
  237. Includes:
  238. - libxt_TRACE
  239. endef
  240. define Package/iptables-mod-nfqueue
  241. $(call Package/iptables/Module, +kmod-nfnetlink-queue +kmod-ipt-nfqueue)
  242. TITLE:=Netfilter NFQUEUE target
  243. endef
  244. define Package/iptables-mod-nfqueue/description
  245. iptables extension for user-space queuing via NFNETLINK.
  246. Includes:
  247. - libxt_NFQUEUE
  248. endef
  249. define Package/iptables-mod-hashlimit
  250. $(call Package/iptables/Module, +kmod-ipt-hashlimit)
  251. TITLE:=hashlimit matching
  252. endef
  253. define Package/iptables-mod-hashlimit/description
  254. iptables extensions for hashlimit matching
  255. Matches:
  256. - hashlimit
  257. endef
  258. define Package/iptables-mod-rpfilter
  259. $(call Package/iptables/Module, +kmod-ipt-rpfilter)
  260. TITLE:=rpfilter iptables extension
  261. endef
  262. define Package/iptables-mod-rpfilter/description
  263. iptables extensions for reverse path filter test on a packet
  264. Matches:
  265. - rpfilter
  266. endef
  267. define Package/iptables-mod-iprange
  268. $(call Package/iptables/Module, +kmod-ipt-iprange)
  269. TITLE:=IP range extension
  270. endef
  271. define Package/iptables-mod-iprange/description
  272. iptables extensions for matching ip ranges.
  273. Matches:
  274. - iprange
  275. endef
  276. define Package/iptables-mod-cluster
  277. $(call Package/iptables/Module, +kmod-ipt-cluster)
  278. TITLE:=Match cluster extension
  279. endef
  280. define Package/iptables-mod-cluster/description
  281. iptables extensions for matching cluster.
  282. Netfilter (IPv4/IPv6) module for matching cluster
  283. This option allows you to build work-load-sharing clusters of
  284. network servers/stateful firewalls without having a dedicated
  285. load-balancing router/server/switch. Basically, this match returns
  286. true when the packet must be handled by this cluster node. Thus,
  287. all nodes see all packets and this match decides which node handles
  288. what packets. The work-load sharing algorithm is based on source
  289. address hashing.
  290. This module is usable for ipv4 and ipv6.
  291. If you select it, it enables kmod-ipt-cluster.
  292. see `iptables -m cluster --help` for more information.
  293. endef
  294. define Package/iptables-mod-extra
  295. $(call Package/iptables/Module, +kmod-ipt-extra)
  296. TITLE:=Other extra iptables extensions
  297. endef
  298. define Package/iptables-mod-extra/description
  299. Other extra iptables extensions.
  300. Matches:
  301. - addrtype
  302. - condition
  303. - owner
  304. - pkttype
  305. - quota
  306. endef
  307. define Package/iptables-mod-physdev
  308. $(call Package/iptables/Module, +kmod-ipt-physdev)
  309. TITLE:=physdev iptables extension
  310. endef
  311. define Package/iptables-mod-physdev/description
  312. The iptables physdev match.
  313. endef
  314. define Package/iptables-mod-led
  315. $(call Package/iptables/Module, +kmod-ipt-led)
  316. TITLE:=LED trigger iptables extension
  317. endef
  318. define Package/iptables-mod-led/description
  319. iptables extension for triggering a LED.
  320. Targets:
  321. - LED
  322. endef
  323. define Package/iptables-mod-socket
  324. $(call Package/iptables/Module, +kmod-ipt-socket)
  325. TITLE:=Socket match iptables extensions
  326. endef
  327. define Package/iptables-mod-socket/description
  328. Socket match iptables extensions.
  329. Matches:
  330. - socket
  331. endef
  332. define Package/iptables-mod-tproxy
  333. $(call Package/iptables/Module, +kmod-ipt-tproxy)
  334. TITLE:=Transparent proxy iptables extensions
  335. endef
  336. define Package/iptables-mod-tproxy/description
  337. Transparent proxy iptables extensions.
  338. Targets:
  339. - TPROXY
  340. endef
  341. define Package/iptables-mod-tee
  342. $(call Package/iptables/Module, +kmod-ipt-tee)
  343. TITLE:=TEE iptables extensions
  344. endef
  345. define Package/iptables-mod-tee/description
  346. TEE iptables extensions.
  347. Targets:
  348. - TEE
  349. endef
  350. define Package/iptables-mod-u32
  351. $(call Package/iptables/Module, +kmod-ipt-u32)
  352. TITLE:=U32 iptables extensions
  353. endef
  354. define Package/iptables-mod-u32/description
  355. U32 iptables extensions.
  356. Matches:
  357. - u32
  358. endef
  359. define Package/iptables-mod-checksum
  360. $(call Package/iptables/Module, +kmod-ipt-checksum)
  361. TITLE:=IP CHECKSUM target extension
  362. endef
  363. define Package/iptables-mod-checksum/description
  364. iptables extension for the CHECKSUM calculation target
  365. endef
  366. define Package/ip6tables-zz-legacy
  367. $(call Package/iptables/Default)
  368. DEPENDS:=@IPV6 +kmod-ip6tables +xtables-legacy
  369. CATEGORY:=Network
  370. TITLE:=IPv6 firewall administration tool
  371. PROVIDES:=ip6tables ip6tables-legacy
  372. ALTERNATIVES:=\
  373. 200:/usr/sbin/ip6tables:xtables-legacy-multi \
  374. 200:/usr/sbin/ip6tables-restore:xtables-legacy-multi \
  375. 200:/usr/sbin/ip6tables-save:xtables-legacy-multi \
  376. 200:/usr/sbin/ip6tables-legacy:xtables-legacy-multi \
  377. 200:/usr/sbin/ip6tables-legacy-restore:xtables-legacy-multi \
  378. 200:/usr/sbin/ip6tables-legacy-save:xtables-legacy-multi
  379. endef
  380. define Package/ip6tables-nft
  381. $(call Package/iptables/Default)
  382. DEPENDS:=@IPV6 +kmod-ip6tables +xtables-nft
  383. TITLE:=IP firewall administration tool nft
  384. PROVIDES:=ip6tables
  385. ALTERNATIVES:=\
  386. 300:/usr/sbin/ip6tables:xtables-nft-multi \
  387. 300:/usr/sbin/ip6tables-restore:xtables-nft-multi \
  388. 300:/usr/sbin/ip6tables-save:xtables-nft-multi \
  389. 300:/usr/sbin/ip6tables-nft:xtables-nft-multi \
  390. 300:/usr/sbin/ip6tables-nft-restore:xtables-nft-multi \
  391. 300:/usr/sbin/ip6tables-nft-save:xtables-nft-multi \
  392. 300:/usr/sbin/ip6tables-restore-translate:xtables-nft-multi \
  393. 300:/usr/sbin/ip6tables-translate:xtables-nft-multi
  394. endef
  395. define Package/ip6tables-nft/description
  396. Extra ip6tables nftables nft binaries.
  397. ip6tables-nft
  398. ip6tables-nft-restore
  399. ip6tables-nft-save
  400. ip6tables-translate
  401. ip6tables-restore-translate
  402. endef
  403. define Package/ip6tables-extra
  404. $(call Package/iptables/Default)
  405. DEPENDS:=+libxtables +kmod-ip6tables-extra
  406. TITLE:=IPv6 header matching modules
  407. endef
  408. define Package/ip6tables-extra/description
  409. iptables header matching modules for IPv6
  410. endef
  411. define Package/ip6tables-mod-nat
  412. $(call Package/iptables/Default)
  413. DEPENDS:=+libxtables +kmod-ipt-nat6
  414. TITLE:=IPv6 NAT extensions
  415. endef
  416. define Package/ip6tables-mod-nat/description
  417. iptables extensions for IPv6-NAT targets.
  418. endef
  419. define Package/libip4tc
  420. $(call Package/iptables/Default)
  421. SECTION:=libs
  422. CATEGORY:=Libraries
  423. TITLE:=IPv4 firewall - shared libiptc library
  424. ABI_VERSION:=2
  425. endef
  426. define Package/libip6tc
  427. $(call Package/iptables/Default)
  428. SECTION:=libs
  429. CATEGORY:=Libraries
  430. TITLE:=IPv6 firewall - shared libiptc library
  431. ABI_VERSION:=2
  432. endef
  433. define Package/libiptext
  434. $(call Package/iptables/Default)
  435. SECTION:=libs
  436. CATEGORY:=Libraries
  437. TITLE:=IPv4 firewall - shared libiptext library
  438. ABI_VERSION:=0
  439. DEPENDS:=+libxtables
  440. endef
  441. define Package/libiptext6
  442. $(call Package/iptables/Default)
  443. SECTION:=libs
  444. CATEGORY:=Libraries
  445. TITLE:=IPv6 firewall - shared libiptext library
  446. ABI_VERSION:=0
  447. DEPENDS:=+libxtables
  448. endef
  449. define Package/libiptext-nft
  450. $(call Package/iptables/Default)
  451. SECTION:=libs
  452. CATEGORY:=Libraries
  453. TITLE:=IPv4/IPv6 firewall - shared libiptext nft library
  454. ABI_VERSION:=0
  455. DEPENDS:=+libxtables
  456. endef
  457. define Package/libxtables
  458. $(call Package/iptables/Default)
  459. SECTION:=libs
  460. CATEGORY:=Libraries
  461. TITLE:=IPv4/IPv6 firewall - shared xtables library
  462. MENU:=1
  463. ABI_VERSION:=12
  464. DEPENDS:=+IPTABLES_CONNLABEL:libnetfilter-conntrack
  465. endef
  466. define Package/libxtables/config
  467. config IPTABLES_CONNLABEL
  468. bool "Enable Connlabel support"
  469. default n
  470. help
  471. This enable connlabel support in iptables.
  472. endef
  473. TARGET_CPPFLAGS := \
  474. -I$(PKG_BUILD_DIR)/include \
  475. -I$(LINUX_DIR)/user_headers/include \
  476. $(TARGET_CPPFLAGS)
  477. TARGET_CFLAGS += \
  478. -I$(PKG_BUILD_DIR)/include \
  479. -I$(LINUX_DIR)/user_headers/include \
  480. -DNO_LEGACY
  481. CONFIGURE_ARGS += \
  482. --enable-shared \
  483. --enable-static \
  484. --enable-devel \
  485. --with-kernel="$(LINUX_DIR)/user_headers" \
  486. --with-xtlibdir=/usr/lib/iptables \
  487. --with-xt-lock-name=/var/run/xtables.lock \
  488. $(if $(CONFIG_IPTABLES_CONNLABEL),,--disable-connlabel) \
  489. $(if $(CONFIG_IPV6),,--disable-ipv6)
  490. MAKE_FLAGS := \
  491. $(TARGET_CONFIGURE_OPTS) \
  492. COPT_FLAGS="$(TARGET_CFLAGS)" \
  493. KERNEL_DIR="$(LINUX_DIR)/user_headers/" PREFIX=/usr \
  494. KBUILD_OUTPUT="$(LINUX_DIR)" \
  495. BUILTIN_MODULES="$(patsubst ip6t_%,%,$(patsubst ipt_%,%,$(patsubst xt_%,%,$(IPT_BUILTIN) $(IPT_CONNTRACK-m) $(IPT_NAT-m))))"
  496. ifneq ($(wildcard $(PKG_BUILD_DIR)/.config_*),$(subst .configured_,.config_,$(STAMP_CONFIGURED)))
  497. define Build/Configure/rebuild
  498. $(FIND) $(PKG_BUILD_DIR) -name \*.o -or -name \*.\?o -or -name \*.a | $(XARGS) rm -f
  499. rm -f $(PKG_BUILD_DIR)/.config_*
  500. rm -f $(PKG_BUILD_DIR)/.configured_*
  501. touch $(subst .configured_,.config_,$(STAMP_CONFIGURED))
  502. endef
  503. endif
  504. define Build/Configure
  505. $(Build/Configure/rebuild)
  506. $(Build/Configure/Default)
  507. endef
  508. define Build/InstallDev
  509. $(INSTALL_DIR) $(1)/usr/include
  510. $(INSTALL_DIR) $(1)/usr/include/iptables
  511. $(INSTALL_DIR) $(1)/usr/include/net/netfilter
  512. # XXX: iptables header fixup, some headers are not installed by iptables anymore
  513. $(CP) $(PKG_BUILD_DIR)/include/iptables/*.h $(1)/usr/include/iptables/
  514. $(CP) $(PKG_BUILD_DIR)/include/iptables.h $(1)/usr/include/
  515. $(CP) $(PKG_BUILD_DIR)/include/ip6tables.h $(1)/usr/include/
  516. $(CP) $(PKG_BUILD_DIR)/include/libiptc $(1)/usr/include/
  517. $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
  518. $(INSTALL_DIR) $(1)/usr/lib
  519. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libxtables.so* $(1)/usr/lib/
  520. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libip*tc.so* $(1)/usr/lib/
  521. $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
  522. $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/xtables.pc $(1)/usr/lib/pkgconfig/
  523. $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libip*tc.pc $(1)/usr/lib/pkgconfig/
  524. # XXX: needed by firewall3
  525. $(CP) $(PKG_BUILD_DIR)/extensions/libiptext*.so $(1)/usr/lib/
  526. endef
  527. define Package/xtables-legacy/install
  528. $(INSTALL_DIR) $(1)/usr/sbin
  529. $(CP) $(PKG_INSTALL_DIR)/usr/sbin/xtables-legacy-multi $(1)/usr/sbin/
  530. endef
  531. define Package/xtables-nft/install
  532. $(INSTALL_DIR) $(1)/usr/sbin
  533. $(CP) $(PKG_INSTALL_DIR)/usr/sbin/xtables-nft-multi $(1)/usr/sbin/
  534. endef
  535. define Package/arptables-nft/install
  536. $(INSTALL_DIR) $(1)/usr/lib/iptables
  537. $(CP) $(PKG_BUILD_DIR)/extensions/libarpt_*.so $(1)/usr/lib/iptables/
  538. endef
  539. define Package/ebtables-nft/install
  540. $(INSTALL_DIR) $(1)/usr/lib/iptables
  541. $(CP) $(PKG_BUILD_DIR)/extensions/libebt_*.so $(1)/usr/lib/iptables/
  542. endef
  543. define Package/iptables-zz-legacy/install
  544. true
  545. endef
  546. define Package/iptables-nft/install
  547. true
  548. endef
  549. define Package/ip6tables-zz-legacy/install
  550. true
  551. endef
  552. define Package/ip6tables-nft/install
  553. true
  554. endef
  555. define Package/libip4tc/install
  556. $(INSTALL_DIR) $(1)/usr/lib
  557. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libip4tc.so.* $(1)/usr/lib/
  558. endef
  559. define Package/libip6tc/install
  560. $(INSTALL_DIR) $(1)/usr/lib
  561. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libip6tc.so.* $(1)/usr/lib/
  562. endef
  563. define Package/libiptext/install
  564. $(INSTALL_DIR) $(1)/usr/lib
  565. $(CP) $(PKG_BUILD_DIR)/extensions/libiptext.so $(1)/usr/lib/
  566. $(CP) $(PKG_BUILD_DIR)/extensions/libiptext4.so $(1)/usr/lib/
  567. endef
  568. define Package/libiptext6/install
  569. $(INSTALL_DIR) $(1)/usr/lib
  570. $(CP) $(PKG_BUILD_DIR)/extensions/libiptext6.so $(1)/usr/lib/
  571. endef
  572. define Package/libiptext-nft/install
  573. $(INSTALL_DIR) $(1)/usr/lib
  574. $(CP) $(PKG_BUILD_DIR)/extensions/libiptext_*.so $(1)/usr/lib/
  575. endef
  576. define Package/libxtables/install
  577. $(INSTALL_DIR) $(1)/usr/lib
  578. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libxtables.so.* $(1)/usr/lib/
  579. endef
  580. define BuildPlugin
  581. define Package/$(1)/install
  582. $(INSTALL_DIR) $$(1)/usr/lib/iptables
  583. for m in $(patsubst xt_%,ipt_%,$(2)) $(patsubst ipt_%,xt_%,$(2)) $(patsubst xt_%,ip6t_%,$(2)) $(patsubst ip6t_%,xt_%,$(2)); do \
  584. if [ -f $(PKG_INSTALL_DIR)/usr/lib/iptables/lib$$$$$$$${m}.so ]; then \
  585. $(CP) $(PKG_INSTALL_DIR)/usr/lib/iptables/lib$$$$$$$${m}.so $$(1)/usr/lib/iptables/ ; \
  586. fi; \
  587. done
  588. $(3)
  589. endef
  590. $$(eval $$(call BuildPackage,$(1)))
  591. endef
  592. $(eval $(call BuildPackage,libxtables))
  593. $(eval $(call BuildPackage,libip4tc))
  594. $(eval $(call BuildPackage,libip6tc))
  595. $(eval $(call BuildPackage,libiptext))
  596. $(eval $(call BuildPackage,libiptext6))
  597. $(eval $(call BuildPackage,libiptext-nft))
  598. $(eval $(call BuildPackage,xtables-legacy))
  599. $(eval $(call BuildPackage,xtables-nft))
  600. $(eval $(call BuildPackage,arptables-nft))
  601. $(eval $(call BuildPackage,ebtables-nft))
  602. $(eval $(call BuildPackage,iptables-nft))
  603. $(eval $(call BuildPackage,iptables-zz-legacy))
  604. $(eval $(call BuildPlugin,iptables-mod-conntrack-extra,$(IPT_CONNTRACK_EXTRA-m)))
  605. $(eval $(call BuildPlugin,iptables-mod-conntrack-label,$(IPT_CONNTRACK_LABEL-m)))
  606. $(eval $(call BuildPlugin,iptables-mod-extra,$(IPT_EXTRA-m)))
  607. $(eval $(call BuildPlugin,iptables-mod-physdev,$(IPT_PHYSDEV-m)))
  608. $(eval $(call BuildPlugin,iptables-mod-filter,$(IPT_FILTER-m)))
  609. $(eval $(call BuildPlugin,iptables-mod-ipopt,$(IPT_IPOPT-m)))
  610. $(eval $(call BuildPlugin,iptables-mod-ipsec,$(IPT_IPSEC-m)))
  611. $(eval $(call BuildPlugin,iptables-mod-nat-extra,$(IPT_NAT_EXTRA-m)))
  612. $(eval $(call BuildPlugin,iptables-mod-iprange,$(IPT_IPRANGE-m)))
  613. $(eval $(call BuildPlugin,iptables-mod-cluster,$(IPT_CLUSTER-m)))
  614. $(eval $(call BuildPlugin,iptables-mod-hashlimit,$(IPT_HASHLIMIT-m)))
  615. $(eval $(call BuildPlugin,iptables-mod-rpfilter,$(IPT_RPFILTER-m)))
  616. $(eval $(call BuildPlugin,iptables-mod-led,$(IPT_LED-m)))
  617. $(eval $(call BuildPlugin,iptables-mod-socket,$(IPT_SOCKET-m)))
  618. $(eval $(call BuildPlugin,iptables-mod-tproxy,$(IPT_TPROXY-m)))
  619. $(eval $(call BuildPlugin,iptables-mod-tee,$(IPT_TEE-m)))
  620. $(eval $(call BuildPlugin,iptables-mod-u32,$(IPT_U32-m)))
  621. $(eval $(call BuildPlugin,iptables-mod-nflog,$(IPT_NFLOG-m)))
  622. $(eval $(call BuildPlugin,iptables-mod-trace,$(IPT_DEBUG-m)))
  623. $(eval $(call BuildPlugin,iptables-mod-nfqueue,$(IPT_NFQUEUE-m)))
  624. $(eval $(call BuildPlugin,iptables-mod-checksum,$(IPT_CHECKSUM-m)))
  625. $(eval $(call BuildPackage,ip6tables-nft))
  626. $(eval $(call BuildPackage,ip6tables-zz-legacy))
  627. $(eval $(call BuildPlugin,ip6tables-extra,$(IPT_IPV6_EXTRA-m)))
  628. $(eval $(call BuildPlugin,ip6tables-mod-nat,$(IPT_NAT6-m)))