jool: package missing components
[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.0.6
12 PKG_RELEASE:=2
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL:=https://github.com/NICMx/Jool/releases/download/v$(PKG_VERSION)
16 PKG_HASH:=d9314c9de421c1fa854be83ab8ad6b4ad5062a01a9865a97bb87c5850d1c2b2a
17
18 PKG_MAINTAINER:=
19 PKG_LICENSE:=GPL-2.0-only
20 PKG_LICENSE_FILES:=COPYING
21
22 PKG_INSTALL:=1
23 PKG_BUILD_PARALLEL:=1
24 PKG_BUILD_DEPENDS:=!USE_GLIBC:argp-standalone
25
26 include $(INCLUDE_DIR)/package.mk
27
28 define Build/Compile
29 $(MAKE) -C "$(LINUX_DIR)" \
30 KERNEL_DIR="$(LINUX_DIR)" \
31 ARCH="$(LINUX_KARCH)" \
32 CROSS_COMPILE="$(TARGET_CROSS)" \
33 SUBDIRS="$(PKG_BUILD_DIR)/src/mod/nat64" \
34 V="$(V)" \
35 modules
36 $(MAKE) -C "$(LINUX_DIR)" \
37 KERNEL_DIR="$(LINUX_DIR)" \
38 ARCH="$(LINUX_KARCH)" \
39 CROSS_COMPILE="$(TARGET_CROSS)" \
40 SUBDIRS="$(PKG_BUILD_DIR)/src/mod/siit" \
41 V="$(V)" \
42 modules
43 $(MAKE) -C "$(LINUX_DIR)" \
44 KERNEL_DIR="$(LINUX_DIR)" \
45 ARCH="$(LINUX_KARCH)" \
46 CROSS_COMPILE="$(TARGET_CROSS)" \
47 SUBDIRS="$(PKG_BUILD_DIR)/src/mod/common" \
48 V="$(V)" \
49 modules
50 $(call Build/Compile/Default)
51 endef
52
53 define Package/jool/Default
54 SECTION:=net
55 CATEGORY:=Network
56 URL:=https://www.jool.mx
57 endef
58
59 define Package/jool/Default/description
60 Jool is an Open Source SIIT and NAT64 for Linux.
61 endef
62
63 define Package/jool
64 $(call Package/jool/Default)
65 TITLE:=Jool meta-package
66 DEPENDS:=+kmod-jool +jool-tools
67 endef
68
69 define Package/jool/description
70 $(call Package/jool/Default/description)
71 endef
72
73 define KernelPackage/jool
74 SECTION:=kernel
75 CATEGORY:=Kernel modules
76 SUBMENU:=Network Support
77 TITLE:=Jool kernel module
78 DEPENDS:= \
79 @IPV6 \
80 +kmod-crypto-md5 \
81 +kmod-nf-conntrack \
82 +kmod-nf-conntrack6 \
83 +kmod-nf-ipt
84 FILES:= \
85 $(PKG_BUILD_DIR)/src/mod/common/jool_common.$(LINUX_KMOD_SUFFIX) \
86 $(PKG_BUILD_DIR)/src/mod/nat64/jool.$(LINUX_KMOD_SUFFIX) \
87 $(PKG_BUILD_DIR)/src/mod/siit/jool_siit.$(LINUX_KMOD_SUFFIX)
88 endef
89
90 define KernelPackage/jool/description
91 $(call Package/jool/Default/description)
92
93 This package provides the kernel module for Jool.
94 endef
95
96 define Package/jool-tools
97 $(call Package/jool/Default)
98 TITLE:=Jool userspace control programs
99 DEPENDS:=+libnl +libxtables
100 endef
101
102 define Package/jool-tools/description
103 $(call Package/jool/Default/description)
104
105 This package provides the userspace control programs for Jool.
106 endef
107
108 CONFIGURE_ARGS += \
109 --disable-shared \
110 --without-bash-completion-dir
111
112 CONFIGURE_VARS += \
113 ac_cv_func_memset=yes \
114 ac_cv_func_strcasecmp=yes
115
116 define Package/jool-tools/install
117 $(INSTALL_DIR) $(1)/usr/bin/
118 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/jool $(1)/usr/bin/
119 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/joold $(1)/usr/bin/
120 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/jool_siit $(1)/usr/bin/
121
122 $(INSTALL_DIR) $(1)/usr/lib/iptables
123 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/iptables/libxt_JOOL_SIIT.so \
124 $(1)/usr/lib/iptables
125 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/iptables/libxt_JOOL.so \
126 $(1)/usr/lib/iptables
127 endef
128
129 $(eval $(call BuildPackage,jool))
130 $(eval $(call KernelPackage,jool))
131 $(eval $(call BuildPackage,jool-tools))