ce91fbe9b5f4eaa3ff9cc1d5984b0e1d89b4edf4
[openwrt/openwrt.git] / package / network / services / wireguard / Makefile
1 #
2 # Copyright (C) 2016-2019 Jason A. Donenfeld <Jason@zx2c4.com>
3 # Copyright (C) 2016 Baptiste Jonglez <openwrt@bitsofnetworks.org>
4 # Copyright (C) 2016-2017 Dan Luedtke <mail@danrl.com>
5 #
6 # This is free software, licensed under the GNU General Public License v2.
7 # See /LICENSE for more information.
8
9 include $(TOPDIR)/rules.mk
10 include $(INCLUDE_DIR)/kernel.mk
11
12 PKG_NAME:=wireguard
13
14 PKG_VERSION:=1.0.20200520
15 PKG_RELEASE:=1
16
17 PKG_SOURCE:=wireguard-linux-compat-$(PKG_VERSION).tar.xz
18 PKG_SOURCE_URL:=https://git.zx2c4.com/wireguard-linux-compat/snapshot/
19 PKG_HASH:=16e7ae4bef734b243428eea07f3b3c3d4721880c3ea8eb8f98628fd6ae5b77c3
20
21 PKG_LICENSE:=GPL-2.0
22 PKG_LICENSE_FILES:=COPYING
23
24 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/wireguard-linux-compat-$(PKG_VERSION)
25 PKG_BUILD_PARALLEL:=1
26 PKG_USE_MIPS16:=0
27
28 # WireGuard's makefile needs this to know where to build the kernel module
29 export KERNELDIR:=$(LINUX_DIR)
30
31 include $(INCLUDE_DIR)/package.mk
32
33 define Package/wireguard/Default
34 SECTION:=net
35 CATEGORY:=Network
36 SUBMENU:=VPN
37 URL:=https://www.wireguard.com
38 MAINTAINER:=Jason A. Donenfeld <Jason@zx2c4.com>
39 endef
40
41 define Package/wireguard/Default/description
42 WireGuard is a novel VPN that runs inside the Linux Kernel and utilizes
43 state-of-the-art cryptography. It aims to be faster, simpler, leaner, and
44 more useful than IPSec, while avoiding the massive headache. It intends to
45 be considerably more performant than OpenVPN. WireGuard is designed as a
46 general purpose VPN for running on embedded interfaces and super computers
47 alike, fit for many different circumstances. It uses UDP.
48 endef
49
50 define Package/wireguard
51 $(call Package/wireguard/Default)
52 TITLE:=WireGuard meta-package
53 DEPENDS:=+wireguard-tools +kmod-wireguard
54 endef
55
56 include $(INCLUDE_DIR)/kernel-defaults.mk
57 include $(INCLUDE_DIR)/package-defaults.mk
58
59 define Build/Compile
60 $(MAKE) $(KERNEL_MAKEOPTS) M="$(PKG_BUILD_DIR)/src" modules
61 endef
62
63 define Package/wireguard/install
64 true
65 endef
66
67 define Package/wireguard/description
68 $(call Package/wireguard/Default/description)
69 endef
70
71 define KernelPackage/wireguard
72 SECTION:=kernel
73 CATEGORY:=Kernel modules
74 SUBMENU:=Network Support
75 TITLE:=WireGuard kernel module
76 DEPENDS:=+IPV6:kmod-udptunnel6 +kmod-udptunnel4
77 FILES:= $(PKG_BUILD_DIR)/src/wireguard.$(LINUX_KMOD_SUFFIX)
78 AUTOLOAD:=$(call AutoProbe,wireguard)
79 endef
80
81 define KernelPackage/wireguard/description
82 $(call Package/wireguard/Default/description)
83
84 This package provides the kernel module for WireGuard.
85 endef
86
87 $(eval $(call BuildPackage,wireguard))
88 $(eval $(call KernelPackage,wireguard))