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>
6 # This is free software, licensed under the GNU General Public License v2.
7 # See /LICENSE for more information.
9 include $(TOPDIR)/rules.mk
10 include $(INCLUDE_DIR)/kernel.mk
14 PKG_VERSION:=0.0.20200105
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:=9f12f68e96f6865325995c38213e09b05751cd1ef03e0bbc9f1bdc3e5680b337
22 PKG_LICENSE_FILES:=COPYING
24 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/wireguard-linux-compat-$(PKG_VERSION)
28 # WireGuard's makefile needs this to know where to build the kernel module
29 export KERNELDIR:=$(LINUX_DIR)
31 include $(INCLUDE_DIR)/package.mk
33 define Package/wireguard/Default
37 URL:=https://www.wireguard.com
38 MAINTAINER:=Jason A. Donenfeld <Jason@zx2c4.com>
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.
50 define Package/wireguard
51 $(call Package/wireguard/Default)
52 TITLE:=WireGuard meta-package
53 DEPENDS:=+wireguard-tools +kmod-wireguard
56 include $(INCLUDE_DIR)/kernel-defaults.mk
57 include $(INCLUDE_DIR)/package-defaults.mk
60 $(MAKE) $(KERNEL_MAKEOPTS) M="$(PKG_BUILD_DIR)/src" modules
63 define Package/wireguard/install
67 define Package/wireguard/description
68 $(call Package/wireguard/Default/description)
71 define KernelPackage/wireguard
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)
81 define KernelPackage/wireguard/description
82 $(call Package/wireguard/Default/description)
84 This package provides the kernel module for WireGuard.
87 $(eval $(call BuildPackage,wireguard))
88 $(eval $(call KernelPackage,wireguard))