Makefile 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777
  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:=3
  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. DEFAULT_VARIANT:=1
  128. ALTERNATIVES:=\
  129. 300:/usr/sbin/iptables:xtables-nft-multi \
  130. 300:/usr/sbin/iptables-restore:xtables-nft-multi \
  131. 300:/usr/sbin/iptables-save:xtables-nft-multi \
  132. 300:/usr/sbin/iptables-nft:xtables-nft-multi \
  133. 300:/usr/sbin/iptables-nft-restore:xtables-nft-multi \
  134. 300:/usr/sbin/iptables-nft-save:xtables-nft-multi \
  135. 300:/usr/sbin/iptables-restore-translate:xtables-nft-multi \
  136. 300:/usr/sbin/iptables-translate:xtables-nft-multi
  137. endef
  138. define Package/iptables-nft/description
  139. Extra iptables nftables nft binaries.
  140. iptables-nft
  141. iptables-nft-restore
  142. iptables-nft-save
  143. iptables-translate
  144. iptables-restore-translate
  145. endef
  146. define Package/iptables-mod-conntrack-extra
  147. $(call Package/iptables/Module, +kmod-ipt-conntrack-extra)
  148. TITLE:=Extra connection tracking extensions
  149. endef
  150. define Package/iptables-mod-conntrack-extra/description
  151. Extra iptables extensions for connection tracking.
  152. Matches:
  153. - connbytes
  154. - connlimit
  155. - connmark
  156. - recent
  157. - helper
  158. Targets:
  159. - CONNMARK
  160. endef
  161. define Package/iptables-mod-conntrack-label
  162. $(call Package/iptables/Module, +kmod-ipt-conntrack-label @IPTABLES_CONNLABEL)
  163. TITLE:=Connection tracking labeling extension
  164. DEFAULT:=y if IPTABLES_CONNLABEL
  165. endef
  166. define Package/iptables-mod-conntrack-label/description
  167. Match and set label(s) on connection tracking entries
  168. Matches:
  169. - connlabel
  170. endef
  171. define Package/iptables-mod-filter
  172. $(call Package/iptables/Module, +kmod-ipt-filter)
  173. TITLE:=Content inspection extensions
  174. endef
  175. define Package/iptables-mod-filter/description
  176. iptables extensions for packet content inspection.
  177. Includes support for:
  178. Matches:
  179. - string
  180. - bpf
  181. endef
  182. define Package/iptables-mod-ipopt
  183. $(call Package/iptables/Module, +kmod-ipt-ipopt)
  184. TITLE:=IP/Packet option extensions
  185. endef
  186. define Package/iptables-mod-ipopt/description
  187. iptables extensions for matching/changing IP packet options.
  188. Matches:
  189. - dscp
  190. - ecn
  191. - length
  192. - statistic
  193. - tcpmss
  194. - unclean
  195. - hl
  196. Targets:
  197. - DSCP
  198. - CLASSIFY
  199. - ECN
  200. - HL
  201. endef
  202. define Package/iptables-mod-ipsec
  203. $(call Package/iptables/Module, +kmod-ipt-ipsec)
  204. TITLE:=IPsec extensions
  205. endef
  206. define Package/iptables-mod-ipsec/description
  207. iptables extensions for matching ipsec traffic.
  208. Matches:
  209. - ah
  210. - esp
  211. - policy
  212. endef
  213. define Package/iptables-mod-nat-extra
  214. $(call Package/iptables/Module, +kmod-ipt-nat-extra)
  215. TITLE:=Extra NAT extensions
  216. endef
  217. define Package/iptables-mod-nat-extra/description
  218. iptables extensions for extra NAT targets.
  219. Targets:
  220. - MIRROR
  221. - NETMAP
  222. endef
  223. define Package/iptables-mod-nflog
  224. $(call Package/iptables/Module, +kmod-nfnetlink-log +kmod-ipt-nflog)
  225. TITLE:=Netfilter NFLOG target
  226. endef
  227. define Package/iptables-mod-nflog/description
  228. iptables extension for user-space logging via NFNETLINK.
  229. Includes:
  230. - libxt_NFLOG
  231. endef
  232. define Package/iptables-mod-trace
  233. $(call Package/iptables/Module, +kmod-ipt-debug)
  234. TITLE:=Netfilter TRACE target
  235. endef
  236. define Package/iptables-mod-trace/description
  237. iptables extension for TRACE target
  238. Includes:
  239. - libxt_TRACE
  240. endef
  241. define Package/iptables-mod-nfqueue
  242. $(call Package/iptables/Module, +kmod-nfnetlink-queue +kmod-ipt-nfqueue)
  243. TITLE:=Netfilter NFQUEUE target
  244. endef
  245. define Package/iptables-mod-nfqueue/description
  246. iptables extension for user-space queuing via NFNETLINK.
  247. Includes:
  248. - libxt_NFQUEUE
  249. endef
  250. define Package/iptables-mod-hashlimit
  251. $(call Package/iptables/Module, +kmod-ipt-hashlimit)
  252. TITLE:=hashlimit matching
  253. endef
  254. define Package/iptables-mod-hashlimit/description
  255. iptables extensions for hashlimit matching
  256. Matches:
  257. - hashlimit
  258. endef
  259. define Package/iptables-mod-rpfilter
  260. $(call Package/iptables/Module, +kmod-ipt-rpfilter)
  261. TITLE:=rpfilter iptables extension
  262. endef
  263. define Package/iptables-mod-rpfilter/description
  264. iptables extensions for reverse path filter test on a packet
  265. Matches:
  266. - rpfilter
  267. endef
  268. define Package/iptables-mod-iprange
  269. $(call Package/iptables/Module, +kmod-ipt-iprange)
  270. TITLE:=IP range extension
  271. endef
  272. define Package/iptables-mod-iprange/description
  273. iptables extensions for matching ip ranges.
  274. Matches:
  275. - iprange
  276. endef
  277. define Package/iptables-mod-cluster
  278. $(call Package/iptables/Module, +kmod-ipt-cluster)
  279. TITLE:=Match cluster extension
  280. endef
  281. define Package/iptables-mod-cluster/description
  282. iptables extensions for matching cluster.
  283. Netfilter (IPv4/IPv6) module for matching cluster
  284. This option allows you to build work-load-sharing clusters of
  285. network servers/stateful firewalls without having a dedicated
  286. load-balancing router/server/switch. Basically, this match returns
  287. true when the packet must be handled by this cluster node. Thus,
  288. all nodes see all packets and this match decides which node handles
  289. what packets. The work-load sharing algorithm is based on source
  290. address hashing.
  291. This module is usable for ipv4 and ipv6.
  292. If you select it, it enables kmod-ipt-cluster.
  293. see `iptables -m cluster --help` for more information.
  294. endef
  295. define Package/iptables-mod-extra
  296. $(call Package/iptables/Module, +kmod-ipt-extra)
  297. TITLE:=Other extra iptables extensions
  298. endef
  299. define Package/iptables-mod-extra/description
  300. Other extra iptables extensions.
  301. Matches:
  302. - addrtype
  303. - condition
  304. - owner
  305. - pkttype
  306. - quota
  307. endef
  308. define Package/iptables-mod-physdev
  309. $(call Package/iptables/Module, +kmod-ipt-physdev)
  310. TITLE:=physdev iptables extension
  311. endef
  312. define Package/iptables-mod-physdev/description
  313. The iptables physdev match.
  314. endef
  315. define Package/iptables-mod-led
  316. $(call Package/iptables/Module, +kmod-ipt-led)
  317. TITLE:=LED trigger iptables extension
  318. endef
  319. define Package/iptables-mod-led/description
  320. iptables extension for triggering a LED.
  321. Targets:
  322. - LED
  323. endef
  324. define Package/iptables-mod-socket
  325. $(call Package/iptables/Module, +kmod-ipt-socket)
  326. TITLE:=Socket match iptables extensions
  327. endef
  328. define Package/iptables-mod-socket/description
  329. Socket match iptables extensions.
  330. Matches:
  331. - socket
  332. endef
  333. define Package/iptables-mod-tproxy
  334. $(call Package/iptables/Module, +kmod-ipt-tproxy)
  335. TITLE:=Transparent proxy iptables extensions
  336. endef
  337. define Package/iptables-mod-tproxy/description
  338. Transparent proxy iptables extensions.
  339. Targets:
  340. - TPROXY
  341. endef
  342. define Package/iptables-mod-tee
  343. $(call Package/iptables/Module, +kmod-ipt-tee)
  344. TITLE:=TEE iptables extensions
  345. endef
  346. define Package/iptables-mod-tee/description
  347. TEE iptables extensions.
  348. Targets:
  349. - TEE
  350. endef
  351. define Package/iptables-mod-u32
  352. $(call Package/iptables/Module, +kmod-ipt-u32)
  353. TITLE:=U32 iptables extensions
  354. endef
  355. define Package/iptables-mod-u32/description
  356. U32 iptables extensions.
  357. Matches:
  358. - u32
  359. endef
  360. define Package/iptables-mod-checksum
  361. $(call Package/iptables/Module, +kmod-ipt-checksum)
  362. TITLE:=IP CHECKSUM target extension
  363. endef
  364. define Package/iptables-mod-checksum/description
  365. iptables extension for the CHECKSUM calculation target
  366. endef
  367. define Package/ip6tables-zz-legacy
  368. $(call Package/iptables/Default)
  369. DEPENDS:=@IPV6 +kmod-ip6tables +xtables-legacy
  370. CATEGORY:=Network
  371. TITLE:=IPv6 firewall administration tool
  372. PROVIDES:=ip6tables ip6tables-legacy
  373. ALTERNATIVES:=\
  374. 200:/usr/sbin/ip6tables:xtables-legacy-multi \
  375. 200:/usr/sbin/ip6tables-restore:xtables-legacy-multi \
  376. 200:/usr/sbin/ip6tables-save:xtables-legacy-multi \
  377. 200:/usr/sbin/ip6tables-legacy:xtables-legacy-multi \
  378. 200:/usr/sbin/ip6tables-legacy-restore:xtables-legacy-multi \
  379. 200:/usr/sbin/ip6tables-legacy-save:xtables-legacy-multi
  380. endef
  381. define Package/ip6tables-nft
  382. $(call Package/iptables/Default)
  383. DEPENDS:=@IPV6 +kmod-ip6tables +xtables-nft
  384. TITLE:=IP firewall administration tool nft
  385. PROVIDES:=ip6tables
  386. DEFAULT_VARIANT:=1
  387. ALTERNATIVES:=\
  388. 300:/usr/sbin/ip6tables:xtables-nft-multi \
  389. 300:/usr/sbin/ip6tables-restore:xtables-nft-multi \
  390. 300:/usr/sbin/ip6tables-save:xtables-nft-multi \
  391. 300:/usr/sbin/ip6tables-nft:xtables-nft-multi \
  392. 300:/usr/sbin/ip6tables-nft-restore:xtables-nft-multi \
  393. 300:/usr/sbin/ip6tables-nft-save:xtables-nft-multi \
  394. 300:/usr/sbin/ip6tables-restore-translate:xtables-nft-multi \
  395. 300:/usr/sbin/ip6tables-translate:xtables-nft-multi
  396. endef
  397. define Package/ip6tables-nft/description
  398. Extra ip6tables nftables nft binaries.
  399. ip6tables-nft
  400. ip6tables-nft-restore
  401. ip6tables-nft-save
  402. ip6tables-translate
  403. ip6tables-restore-translate
  404. endef
  405. define Package/ip6tables-extra
  406. $(call Package/iptables/Default)
  407. DEPENDS:=+libxtables +kmod-ip6tables-extra
  408. TITLE:=IPv6 header matching modules
  409. endef
  410. define Package/ip6tables-extra/description
  411. iptables header matching modules for IPv6
  412. endef
  413. define Package/ip6tables-mod-nat
  414. $(call Package/iptables/Default)
  415. DEPENDS:=+libxtables +kmod-ipt-nat6
  416. TITLE:=IPv6 NAT extensions
  417. endef
  418. define Package/ip6tables-mod-nat/description
  419. iptables extensions for IPv6-NAT targets.
  420. endef
  421. define Package/libip4tc
  422. $(call Package/iptables/Default)
  423. SECTION:=libs
  424. CATEGORY:=Libraries
  425. TITLE:=IPv4 firewall - shared libiptc library
  426. ABI_VERSION:=2
  427. endef
  428. define Package/libip6tc
  429. $(call Package/iptables/Default)
  430. SECTION:=libs
  431. CATEGORY:=Libraries
  432. TITLE:=IPv6 firewall - shared libiptc library
  433. ABI_VERSION:=2
  434. endef
  435. define Package/libiptext
  436. $(call Package/iptables/Default)
  437. SECTION:=libs
  438. CATEGORY:=Libraries
  439. TITLE:=IPv4 firewall - shared libiptext library
  440. ABI_VERSION:=0
  441. DEPENDS:=+libxtables
  442. endef
  443. define Package/libiptext6
  444. $(call Package/iptables/Default)
  445. SECTION:=libs
  446. CATEGORY:=Libraries
  447. TITLE:=IPv6 firewall - shared libiptext library
  448. ABI_VERSION:=0
  449. DEPENDS:=+libxtables
  450. endef
  451. define Package/libiptext-nft
  452. $(call Package/iptables/Default)
  453. SECTION:=libs
  454. CATEGORY:=Libraries
  455. TITLE:=IPv4/IPv6 firewall - shared libiptext nft library
  456. ABI_VERSION:=0
  457. DEPENDS:=+libxtables
  458. endef
  459. define Package/libxtables
  460. $(call Package/iptables/Default)
  461. SECTION:=libs
  462. CATEGORY:=Libraries
  463. TITLE:=IPv4/IPv6 firewall - shared xtables library
  464. MENU:=1
  465. ABI_VERSION:=12
  466. DEPENDS:=+IPTABLES_CONNLABEL:libnetfilter-conntrack
  467. endef
  468. define Package/libxtables/config
  469. config IPTABLES_CONNLABEL
  470. bool "Enable Connlabel support"
  471. default n
  472. help
  473. This enable connlabel support in iptables.
  474. endef
  475. TARGET_CPPFLAGS := \
  476. -I$(PKG_BUILD_DIR)/include \
  477. -I$(LINUX_DIR)/user_headers/include \
  478. $(TARGET_CPPFLAGS)
  479. TARGET_CFLAGS += \
  480. -I$(PKG_BUILD_DIR)/include \
  481. -I$(LINUX_DIR)/user_headers/include \
  482. -DNO_LEGACY
  483. CONFIGURE_ARGS += \
  484. --enable-shared \
  485. --enable-static \
  486. --enable-devel \
  487. --with-kernel="$(LINUX_DIR)/user_headers" \
  488. --with-xtlibdir=/usr/lib/iptables \
  489. --with-xt-lock-name=/var/run/xtables.lock \
  490. $(if $(CONFIG_IPTABLES_CONNLABEL),,--disable-connlabel) \
  491. $(if $(CONFIG_IPV6),,--disable-ipv6)
  492. MAKE_FLAGS := \
  493. $(TARGET_CONFIGURE_OPTS) \
  494. COPT_FLAGS="$(TARGET_CFLAGS)" \
  495. KERNEL_DIR="$(LINUX_DIR)/user_headers/" PREFIX=/usr \
  496. KBUILD_OUTPUT="$(LINUX_DIR)" \
  497. BUILTIN_MODULES="$(patsubst ip6t_%,%,$(patsubst ipt_%,%,$(patsubst xt_%,%,$(IPT_BUILTIN) $(IPT_CONNTRACK-m) $(IPT_NAT-m))))"
  498. ifneq ($(wildcard $(PKG_BUILD_DIR)/.config_*),$(subst .configured_,.config_,$(STAMP_CONFIGURED)))
  499. define Build/Configure/rebuild
  500. $(FIND) $(PKG_BUILD_DIR) -name \*.o -or -name \*.\?o -or -name \*.a | $(XARGS) rm -f
  501. rm -f $(PKG_BUILD_DIR)/.config_*
  502. rm -f $(PKG_BUILD_DIR)/.configured_*
  503. touch $(subst .configured_,.config_,$(STAMP_CONFIGURED))
  504. endef
  505. endif
  506. define Build/Configure
  507. $(Build/Configure/rebuild)
  508. $(Build/Configure/Default)
  509. endef
  510. define Build/InstallDev
  511. $(INSTALL_DIR) $(1)/usr/include
  512. $(INSTALL_DIR) $(1)/usr/include/iptables
  513. $(INSTALL_DIR) $(1)/usr/include/net/netfilter
  514. # XXX: iptables header fixup, some headers are not installed by iptables anymore
  515. $(CP) $(PKG_BUILD_DIR)/include/iptables/*.h $(1)/usr/include/iptables/
  516. $(CP) $(PKG_BUILD_DIR)/include/iptables.h $(1)/usr/include/
  517. $(CP) $(PKG_BUILD_DIR)/include/ip6tables.h $(1)/usr/include/
  518. $(CP) $(PKG_BUILD_DIR)/include/libiptc $(1)/usr/include/
  519. $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
  520. $(INSTALL_DIR) $(1)/usr/lib
  521. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libxtables.so* $(1)/usr/lib/
  522. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libip*tc.so* $(1)/usr/lib/
  523. $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
  524. $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/xtables.pc $(1)/usr/lib/pkgconfig/
  525. $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libip*tc.pc $(1)/usr/lib/pkgconfig/
  526. # XXX: needed by firewall3
  527. $(CP) $(PKG_BUILD_DIR)/extensions/libiptext*.so $(1)/usr/lib/
  528. endef
  529. define Package/xtables-legacy/install
  530. $(INSTALL_DIR) $(1)/usr/sbin
  531. $(CP) $(PKG_INSTALL_DIR)/usr/sbin/xtables-legacy-multi $(1)/usr/sbin/
  532. endef
  533. define Package/xtables-nft/install
  534. $(INSTALL_DIR) $(1)/usr/sbin
  535. $(CP) $(PKG_INSTALL_DIR)/usr/sbin/xtables-nft-multi $(1)/usr/sbin/
  536. endef
  537. define Package/arptables-nft/install
  538. $(INSTALL_DIR) $(1)/usr/lib/iptables
  539. $(CP) $(PKG_BUILD_DIR)/extensions/libarpt_*.so $(1)/usr/lib/iptables/
  540. endef
  541. define Package/ebtables-nft/install
  542. $(INSTALL_DIR) $(1)/usr/lib/iptables
  543. $(CP) $(PKG_BUILD_DIR)/extensions/libebt_*.so $(1)/usr/lib/iptables/
  544. endef
  545. define Package/iptables-zz-legacy/install
  546. true
  547. endef
  548. define Package/iptables-nft/install
  549. true
  550. endef
  551. define Package/ip6tables-zz-legacy/install
  552. true
  553. endef
  554. define Package/ip6tables-nft/install
  555. true
  556. endef
  557. define Package/libip4tc/install
  558. $(INSTALL_DIR) $(1)/usr/lib
  559. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libip4tc.so.* $(1)/usr/lib/
  560. endef
  561. define Package/libip6tc/install
  562. $(INSTALL_DIR) $(1)/usr/lib
  563. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libip6tc.so.* $(1)/usr/lib/
  564. endef
  565. define Package/libiptext/install
  566. $(INSTALL_DIR) $(1)/usr/lib
  567. $(CP) $(PKG_BUILD_DIR)/extensions/libiptext.so $(1)/usr/lib/
  568. $(CP) $(PKG_BUILD_DIR)/extensions/libiptext4.so $(1)/usr/lib/
  569. endef
  570. define Package/libiptext6/install
  571. $(INSTALL_DIR) $(1)/usr/lib
  572. $(CP) $(PKG_BUILD_DIR)/extensions/libiptext6.so $(1)/usr/lib/
  573. endef
  574. define Package/libiptext-nft/install
  575. $(INSTALL_DIR) $(1)/usr/lib
  576. $(CP) $(PKG_BUILD_DIR)/extensions/libiptext_*.so $(1)/usr/lib/
  577. endef
  578. define Package/libxtables/install
  579. $(INSTALL_DIR) $(1)/usr/lib
  580. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libxtables.so.* $(1)/usr/lib/
  581. endef
  582. define BuildPlugin
  583. define Package/$(1)/install
  584. $(INSTALL_DIR) $$(1)/usr/lib/iptables
  585. for m in $(patsubst xt_%,ipt_%,$(2)) $(patsubst ipt_%,xt_%,$(2)) $(patsubst xt_%,ip6t_%,$(2)) $(patsubst ip6t_%,xt_%,$(2)); do \
  586. if [ -f $(PKG_INSTALL_DIR)/usr/lib/iptables/lib$$$$$$$${m}.so ]; then \
  587. $(CP) $(PKG_INSTALL_DIR)/usr/lib/iptables/lib$$$$$$$${m}.so $$(1)/usr/lib/iptables/ ; \
  588. fi; \
  589. done
  590. $(3)
  591. endef
  592. $$(eval $$(call BuildPackage,$(1)))
  593. endef
  594. $(eval $(call BuildPackage,libxtables))
  595. $(eval $(call BuildPackage,libip4tc))
  596. $(eval $(call BuildPackage,libip6tc))
  597. $(eval $(call BuildPackage,libiptext))
  598. $(eval $(call BuildPackage,libiptext6))
  599. $(eval $(call BuildPackage,libiptext-nft))
  600. $(eval $(call BuildPackage,xtables-legacy))
  601. $(eval $(call BuildPackage,xtables-nft))
  602. $(eval $(call BuildPackage,arptables-nft))
  603. $(eval $(call BuildPackage,ebtables-nft))
  604. $(eval $(call BuildPackage,iptables-nft))
  605. $(eval $(call BuildPackage,iptables-zz-legacy))
  606. $(eval $(call BuildPlugin,iptables-mod-conntrack-extra,$(IPT_CONNTRACK_EXTRA-m)))
  607. $(eval $(call BuildPlugin,iptables-mod-conntrack-label,$(IPT_CONNTRACK_LABEL-m)))
  608. $(eval $(call BuildPlugin,iptables-mod-extra,$(IPT_EXTRA-m)))
  609. $(eval $(call BuildPlugin,iptables-mod-physdev,$(IPT_PHYSDEV-m)))
  610. $(eval $(call BuildPlugin,iptables-mod-filter,$(IPT_FILTER-m)))
  611. $(eval $(call BuildPlugin,iptables-mod-ipopt,$(IPT_IPOPT-m)))
  612. $(eval $(call BuildPlugin,iptables-mod-ipsec,$(IPT_IPSEC-m)))
  613. $(eval $(call BuildPlugin,iptables-mod-nat-extra,$(IPT_NAT_EXTRA-m)))
  614. $(eval $(call BuildPlugin,iptables-mod-iprange,$(IPT_IPRANGE-m)))
  615. $(eval $(call BuildPlugin,iptables-mod-cluster,$(IPT_CLUSTER-m)))
  616. $(eval $(call BuildPlugin,iptables-mod-hashlimit,$(IPT_HASHLIMIT-m)))
  617. $(eval $(call BuildPlugin,iptables-mod-rpfilter,$(IPT_RPFILTER-m)))
  618. $(eval $(call BuildPlugin,iptables-mod-led,$(IPT_LED-m)))
  619. $(eval $(call BuildPlugin,iptables-mod-socket,$(IPT_SOCKET-m)))
  620. $(eval $(call BuildPlugin,iptables-mod-tproxy,$(IPT_TPROXY-m)))
  621. $(eval $(call BuildPlugin,iptables-mod-tee,$(IPT_TEE-m)))
  622. $(eval $(call BuildPlugin,iptables-mod-u32,$(IPT_U32-m)))
  623. $(eval $(call BuildPlugin,iptables-mod-nflog,$(IPT_NFLOG-m)))
  624. $(eval $(call BuildPlugin,iptables-mod-trace,$(IPT_DEBUG-m)))
  625. $(eval $(call BuildPlugin,iptables-mod-nfqueue,$(IPT_NFQUEUE-m)))
  626. $(eval $(call BuildPlugin,iptables-mod-checksum,$(IPT_CHECKSUM-m)))
  627. $(eval $(call BuildPackage,ip6tables-nft))
  628. $(eval $(call BuildPackage,ip6tables-zz-legacy))
  629. $(eval $(call BuildPlugin,ip6tables-extra,$(IPT_IPV6_EXTRA-m)))
  630. $(eval $(call BuildPlugin,ip6tables-mod-nat,$(IPT_NAT6-m)))