lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

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))