fa289ebca4a18007b92e8f5f1a3e3aade9e0a6b1
[feed/packages.git] / net / jool / Makefile
1 #
2 # Copyright (C) 2016-2017 Dan Luedtke <mail@danrl.com>
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
10 PKG_NAME:=jool
11 PKG_VERSION:=4.1.11
12 PKG_RELEASE:=1
13
14 PKG_LICENSE:=GPL-2.0-only
15 PKG_LICENSE_FILES:=COPYING
16
17 PKG_SOURCE_PROTO:=git
18 PKG_SOURCE_URL:=https://github.com/NICMx/Jool.git
19 PKG_SOURCE_VERSION:=aed966aa4873af2d84fd445f49cf33f719539c9e
20 PKG_MIRROR_HASH:=84dcd6884d849f45a3374ab25654b20cef681a3bcf0fb7f7381281f6f14c31a4
21
22 PKG_BUILD_DIR=$(KERNEL_BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
23 PKG_BUILD_PARALLEL:=1
24 PKG_BUILD_DEPENDS:=!USE_GLIBC:argp-standalone
25
26 PKG_FIXUP:=autoreconf
27
28 MAKE_PATH:=src/usr
29 CONFIGURE_PATH:=src/usr
30
31 include $(INCLUDE_DIR)/package.mk
32
33 define Build/Compile
34 $(MAKE) -C "$(LINUX_DIR)" \
35 KERNEL_DIR="$(LINUX_DIR)" \
36 ARCH="$(LINUX_KARCH)" \
37 CROSS_COMPILE="$(TARGET_CROSS)" \
38 M="$(PKG_BUILD_DIR)/src/mod/common" \
39 V="$(V)" \
40 CFLAGS_MODULE=$(NOXTABLES) \
41 modules
42 $(MAKE) -C "$(LINUX_DIR)" \
43 KERNEL_DIR="$(LINUX_DIR)" \
44 ARCH="$(LINUX_KARCH)" \
45 CROSS_COMPILE="$(TARGET_CROSS)" \
46 M="$(PKG_BUILD_DIR)/src/mod/nat64" \
47 CFLAGS_MODULE=$(NOXTABLES) \
48 V="$(V)" \
49 modules
50 $(MAKE) -C "$(LINUX_DIR)" \
51 KERNEL_DIR="$(LINUX_DIR)" \
52 ARCH="$(LINUX_KARCH)" \
53 CROSS_COMPILE="$(TARGET_CROSS)" \
54 M="$(PKG_BUILD_DIR)/src/mod/siit" \
55 CFLAGS_MODULE=$(NOXTABLES) \
56 V="$(V)" \
57 modules
58 $(call Build/Compile/Default)
59 endef
60
61 define Build/Configure
62 (cd $(PKG_BUILD_DIR); ./autogen.sh );
63 $(call Build/Configure/Default, --with-xtables=no)
64 endef
65
66
67 define Package/jool/Default
68 SECTION:=net
69 CATEGORY:=Network
70 URL:=https://nicmx.github.io/Jool/
71 endef
72
73 define Package/jool/Default/description
74 Jool is an Open Source SIIT and NAT64 for Linux.
75 endef
76
77
78 define KernelPackage/jool-netfilter
79 SECTION:=kernel
80 CATEGORY:=Kernel modules
81 SUBMENU:=Network Support
82 TITLE:=Jool kernel module
83 DEPENDS:= \
84 @IPV6 \
85 +kmod-crypto-md5 \
86 +kmod-nf-conntrack \
87 +kmod-nf-conntrack6
88 FILES:= \
89 $(PKG_BUILD_DIR)/src/mod/common/jool_common.$(LINUX_KMOD_SUFFIX) \
90 $(PKG_BUILD_DIR)/src/mod/nat64/jool.$(LINUX_KMOD_SUFFIX) \
91 $(PKG_BUILD_DIR)/src/mod/siit/jool_siit.$(LINUX_KMOD_SUFFIX)
92 AUTOLOAD:=$(call AutoLoad,48,$(JOOL_AUTOLOAD))
93 endef
94
95 define KernelPackage/jool-netfilter/description
96 $(call Package/jool/Default/description)
97
98 This package provides the kernel module for Jool with netfilter API Only.
99 endef
100
101
102 define Package/jool-tools-netfilter
103 $(call Package/jool/Default)
104 TITLE:=Jool userspace control programs
105 DEPENDS:=+libnl +kmod-jool-netfilter
106 endef
107
108 define Package/jool-tools-netfilter/description
109 $(call Package/jool/Default/description)
110
111 This package provides the userspace control programs for Jool.
112 endef
113
114 JOOL_AUTOLOAD:= \
115 jool \
116 jool_siit
117
118 NOXTABLES:=-DXTABLES_DISABLED
119
120 define Package/jool-tools-netfilter/conffiles
121 /etc/config/jool
122 /etc/jool/jool-nat64.conf.json
123 /etc/jool/jool-siit.conf.json
124 endef
125
126 define Package/jool-tools-netfilter/install
127 $(INSTALL_DIR) $(1)/usr/bin/
128 $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/usr/nat64/jool $(1)/usr/bin/
129 $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/usr/joold/joold $(1)/usr/bin/
130 $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/usr/siit/jool_siit $(1)/usr/bin/
131
132 $(INSTALL_DIR) $(1)/etc/config
133 $(INSTALL_CONF) ./files/jool.config $(1)/etc/config/jool
134
135 $(INSTALL_DIR) $(1)/etc/init.d
136 $(INSTALL_BIN) ./files/jool.init $(1)/etc/init.d/jool
137
138 $(INSTALL_DIR) $(1)/etc/jool
139 $(INSTALL_CONF) ./files/jool-nat64.conf.json $(1)/etc/jool/jool-nat64.conf.json
140 $(INSTALL_CONF) ./files/jool-siit.conf.json $(1)/etc/jool/jool-siit.conf.json
141 $(INSTALL_DATA) ./files/readme.md $(1)/etc/jool/readme.md
142 endef
143
144 $(eval $(call KernelPackage,jool-netfilter))
145 $(eval $(call BuildPackage,jool-tools-netfilter))