Fresh pull from upstream (might have missed some non-free things).
[librecmc/package-feed.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
9 PKG_NAME:=jool
10 PKG_VERSION:=2018.01.17
11 PKG_RELEASE:=2
12
13 PKG_LICENSE:=GPL-3.0
14 PKG_LICENSE_FILES:=COPYING
15
16 PKG_SOURCE_PROTO:=git
17 PKG_SOURCE_URL:=https://github.com/NICMx/Jool.git
18 PKG_SOURCE_VERSION:=9dfaf22e49f7905d94af9b73f9bee22c26d7dd4a
19 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
20 PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.xz
21 PKG_MIRROR_HASH:=79b558561f06f3df01a541b1d39b7d3d88f91d0ee6b8ce3abf91ebbed737225a
22
23 PKG_BUILD_DIR=$(KERNEL_BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
24 PKG_BUILD_PARALLEL:=1
25 PKG_BUILD_DEPENDS:=USE_UCLIBC:argp-standalone USE_MUSL:argp-standalone
26
27 PKG_FIXUP:=autoreconf
28
29 include $(INCLUDE_DIR)/kernel.mk
30 include $(INCLUDE_DIR)/package.mk
31
32 MAKE_PATH:=usr
33 CONFIGURE_PATH:=usr
34
35 define Build/Compile
36         $(MAKE) -C "$(LINUX_DIR)" \
37                 KERNEL_DIR="$(LINUX_DIR)" \
38                 ARCH="$(LINUX_KARCH)" \
39                 CROSS_COMPILE="$(TARGET_CROSS)" \
40                 SUBDIRS="$(PKG_BUILD_DIR)/mod/stateful" \
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)/mod/stateless" \
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   MAINTAINER:=Dan Luedtke <mail@danrl.com>
58 endef
59
60 define Package/jool/Default/description
61   Jool is an Open Source SIIT and NAT64 for Linux.
62 endef
63
64 define Package/jool
65   $(call Package/jool/Default)
66   TITLE:=Jool meta-package
67   DEPENDS:=+kmod-jool +jool-tools
68 endef
69
70 define Package/jool/description
71   $(call Package/jool/Default/description)
72 endef
73
74 define KernelPackage/jool
75   SECTION:=kernel
76   CATEGORY:=Kernel modules
77   SUBMENU:=Network Support
78   TITLE:=Jool kernel module
79   DEPENDS:= \
80     @IPV6 \
81     +kmod-crypto-md5 \
82     +kmod-nf-conntrack \
83     +kmod-nf-conntrack6
84   FILES:= \
85     $(PKG_BUILD_DIR)/mod/stateful/jool.$(LINUX_KMOD_SUFFIX) \
86     $(PKG_BUILD_DIR)/mod/stateless/jool_siit.$(LINUX_KMOD_SUFFIX)
87 endef
88
89 define KernelPackage/jool/description
90   $(call Package/jool/Default/description)
91
92   This package provides the kernel module for Jool.
93 endef
94
95 define Package/jool-tools
96   $(call Package/jool/Default)
97   TITLE:=Jool userspace control programs
98   DEPENDS:=+libnl +ethtool
99 endef
100
101 define Package/jool-tools/description
102   $(call Package/jool/Default/description)
103
104   This package provides the userspace control programs for Jool.
105 endef
106
107 define Package/jool-tools/install
108         $(INSTALL_DIR) $(1)/usr/sbin/
109         $(INSTALL_BIN) $(PKG_BUILD_DIR)/usr/stateful/jool       $(1)/usr/sbin/
110         $(INSTALL_BIN) $(PKG_BUILD_DIR)/usr/stateless/jool_siit $(1)/usr/sbin/
111 endef
112
113 $(eval $(call BuildPackage,jool))
114 $(eval $(call KernelPackage,jool))
115 $(eval $(call BuildPackage,jool-tools))