Makefile (3392B)
1 # 2 # Copyright (C) 2016-2017 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:=0.0.20170324 15 PKG_RELEASE:=1 16 17 PKG_SOURCE:=WireGuard-$(PKG_VERSION).tar.xz 18 PKG_SOURCE_URL:=https://git.zx2c4.com/WireGuard/snapshot/ 19 PKG_HASH:=2ec08a5d74cb3a63576f06d3cae695b6b8995acd9665e2fa4da91927b467ca51 20 21 PKG_LICENSE:=GPL-2.0 22 PKG_LICENSE_FILES:=COPYING 23 24 PKG_BUILD_DIR:=$(BUILD_DIR)/WireGuard-$(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.io 38 MAINTAINER:=Baptiste Jonglez <openwrt@bitsofnetworks.org>, \ 39 Dan Luedtke <mail@danrl.com>, \ 40 Jason A. Donenfeld <Jason@zx2c4.com> 41 endef 42 43 define Package/wireguard/Default/description 44 WireGuard is a novel VPN that runs inside the Linux Kernel and utilizes 45 state-of-the-art cryptography. It aims to be faster, simpler, leaner, and 46 more useful than IPSec, while avoiding the massive headache. It intends to 47 be considerably more performant than OpenVPN. WireGuard is designed as a 48 general purpose VPN for running on embedded interfaces and super computers 49 alike, fit for many different circumstances. 50 It runs over UDP. 51 endef 52 53 define Package/wireguard 54 $(call Package/wireguard/Default) 55 TITLE:=Wireguard meta-package 56 DEPENDS:=+wireguard-tools +kmod-wireguard 57 endef 58 59 include $(INCLUDE_DIR)/kernel-defaults.mk 60 include $(INCLUDE_DIR)/package-defaults.mk 61 62 # Used by Build/Compile/Default 63 MAKE_PATH:=src/tools 64 65 define Build/Compile 66 $(MAKE) $(KERNEL_MAKEOPTS) M="$(PKG_BUILD_DIR)/src" modules 67 $(call Build/Compile/Default) 68 endef 69 70 define Package/wireguard/install 71 true 72 endef 73 74 define Package/wireguard/description 75 $(call Package/wireguard/Default/description) 76 endef 77 78 define Package/wireguard-tools 79 $(call Package/wireguard/Default) 80 TITLE:=Wireguard userspace control program (wg) 81 DEPENDS:=+libmnl 82 endef 83 84 define Package/wireguard-tools/description 85 $(call Package/wireguard/Default/description) 86 87 This package provides the userspace control program for wireguard, `wg`, 88 and a netifd protocol helper. 89 endef 90 91 define Package/wireguard-tools/install 92 $(INSTALL_DIR) $(1)/usr/bin/ 93 $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/tools/wg $(1)/usr/bin/ 94 $(INSTALL_DIR) $(1)/lib/netifd/proto/ 95 $(INSTALL_BIN) ./files/wireguard.sh $(1)/lib/netifd/proto/ 96 endef 97 98 define KernelPackage/wireguard 99 SECTION:=kernel 100 CATEGORY:=Kernel modules 101 SUBMENU:=Network Support 102 TITLE:=Wireguard kernel module 103 DEPENDS:=+IPV6:kmod-udptunnel6 +kmod-udptunnel4 +kmod-ipt-hashlimit 104 FILES:= $(PKG_BUILD_DIR)/src/wireguard.$(LINUX_KMOD_SUFFIX) 105 AUTOLOAD:=$(call AutoProbe,wireguard) 106 endef 107 108 define KernelPackage/wireguard/description 109 $(call Package/wireguard/Default/description) 110 111 This package provides the kernel module for wireguard. 112 endef 113 114 $(eval $(call BuildPackage,wireguard)) 115 $(eval $(call BuildPackage,wireguard-tools)) 116 $(eval $(call KernelPackage,wireguard))