- #
- # Copyright (C) 2016-2017 Dan Luedtke <mail@danrl.com>
- #
- # This is free software, licensed under the GNU General Public License v2.
- # See /LICENSE for more information.
-
- include $(TOPDIR)/rules.mk
- include $(INCLUDE_DIR)/kernel.mk
-
- PKG_NAME:=jool
- PKG_VERSION:=2022-01-20
- PKG_RELEASE:=$(AUTORELEASE)
-
- PKG_LICENSE:=GPL-2.0-only
- PKG_LICENSE_FILES:=COPYING
-
- PKG_SOURCE_PROTO:=git
- PKG_SOURCE_URL:=https://github.com/NICMx/Jool.git
- PKG_SOURCE_VERSION:=04ef98dd6c7528fc25f68bef304fb74c59cb7083
- PKG_MIRROR_HASH:=f17551f8ab80a75b6d7f4b5d9208013a4a8101298b80ae9adaa2892db30ac385
-
- PKG_BUILD_DIR=$(KERNEL_BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
- PKG_BUILD_PARALLEL:=1
- PKG_BUILD_DEPENDS:=!USE_GLIBC:argp-standalone
-
- PKG_FIXUP:=autoreconf
-
- MAKE_PATH:=src/usr
- CONFIGURE_PATH:=src/usr
-
- include $(INCLUDE_DIR)/package.mk
-
- define Build/Compile
- $(MAKE) -C "$(LINUX_DIR)" \
- KERNEL_DIR="$(LINUX_DIR)" \
- ARCH="$(LINUX_KARCH)" \
- CROSS_COMPILE="$(TARGET_CROSS)" \
- M="$(PKG_BUILD_DIR)/src/mod/common" \
- V="$(V)" \
- CFLAGS_MODULE=$(NOXTABLES) \
- modules
- $(MAKE) -C "$(LINUX_DIR)" \
- KERNEL_DIR="$(LINUX_DIR)" \
- ARCH="$(LINUX_KARCH)" \
- CROSS_COMPILE="$(TARGET_CROSS)" \
- M="$(PKG_BUILD_DIR)/src/mod/nat64" \
- CFLAGS_MODULE=$(NOXTABLES) \
- V="$(V)" \
- modules
- $(MAKE) -C "$(LINUX_DIR)" \
- KERNEL_DIR="$(LINUX_DIR)" \
- ARCH="$(LINUX_KARCH)" \
- CROSS_COMPILE="$(TARGET_CROSS)" \
- M="$(PKG_BUILD_DIR)/src/mod/siit" \
- CFLAGS_MODULE=$(NOXTABLES) \
- V="$(V)" \
- modules
- $(call Build/Compile/Default)
- endef
-
- define Build/Configure
- (cd $(PKG_BUILD_DIR); ./autogen.sh );
- $(call Build/Configure/Default, --with-xtables=no)
- endef
-
-
- define Package/jool/Default
- SECTION:=net
- CATEGORY:=Network
- URL:=https://www.jool.mx
- endef
-
- define Package/jool/Default/description
- Jool is an Open Source SIIT and NAT64 for Linux.
- endef
-
-
- define KernelPackage/jool-netfilter
- SECTION:=kernel
- CATEGORY:=Kernel modules
- SUBMENU:=Network Support
- TITLE:=Jool kernel module
- DEPENDS:= \
- @IPV6 \
- +kmod-crypto-md5 \
- +kmod-nf-conntrack \
- +kmod-nf-conntrack6
- FILES:= \
- $(PKG_BUILD_DIR)/src/mod/common/jool_common.$(LINUX_KMOD_SUFFIX) \
- $(PKG_BUILD_DIR)/src/mod/nat64/jool.$(LINUX_KMOD_SUFFIX) \
- $(PKG_BUILD_DIR)/src/mod/siit/jool_siit.$(LINUX_KMOD_SUFFIX)
- AUTOLOAD:=$(call AutoLoad,48,$(JOOL_AUTOLOAD))
- endef
-
- define KernelPackage/jool-netfilter/description
- $(call Package/jool/Default/description)
-
- This package provides the kernel module for Jool with netfilter API Only.
- endef
-
-
- define Package/jool-tools-netfilter
- $(call Package/jool/Default)
- TITLE:=Jool userspace control programs
- DEPENDS:=+libnl +kmod-jool-netfilter
- endef
-
- define Package/jool-tools-netfilter/description
- $(call Package/jool/Default/description)
-
- This package provides the userspace control programs for Jool.
- endef
-
- JOOL_AUTOLOAD:= \
- jool \
- jool_siit
-
- NOXTABLES:=-DXTABLES_DISABLED
-
- define Package/jool-tools-netfilter/conffiles
- /etc/config/jool
- /etc/jool/jool-nat64.conf.json
- /etc/jool/jool-siit.conf.json
- endef
-
- define Package/jool-tools-netfilter/install
- $(INSTALL_DIR) $(1)/usr/bin/
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/usr/nat64/jool $(1)/usr/bin/
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/usr/joold/joold $(1)/usr/bin/
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/usr/siit/jool_siit $(1)/usr/bin/
-
- $(INSTALL_DIR) $(1)/etc/config
- $(INSTALL_CONF) ./files/jool.config $(1)/etc/config/jool
-
- $(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_BIN) ./files/jool.init $(1)/etc/init.d/jool
-
- $(INSTALL_DIR) $(1)/etc/jool
- $(INSTALL_CONF) ./files/jool-nat64.conf.json $(1)/etc/jool/jool-nat64.conf.json
- $(INSTALL_CONF) ./files/jool-siit.conf.json $(1)/etc/jool/jool-siit.conf.json
- $(INSTALL_DATA) ./files/readme.md $(1)/etc/jool/readme.md
- endef
-
- $(eval $(call KernelPackage,jool-netfilter))
- $(eval $(call BuildPackage,jool-tools-netfilter))
|