lede-packages-rs

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

Makefile (4929B)


      1 #
      2 # Copyright (C) 2008-2014 Christian Pointner,
      3 #                         <equinox@anytun.org>
      4 #
      5 # This is free software, licensed under the GNU General Public License v2.
      6 # See /LICENSE for more information.
      7 #
      8 # This Makefile builds uAnytun Package for OpenWRT
      9 #
     10 # $Id: $
     11 
     12 include $(TOPDIR)/rules.mk
     13 
     14 PKG_NAME:=uanytun
     15 PKG_VERSION:=0.3.5
     16 PKG_RELEASE:=1
     17 
     18 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
     19 PKG_SOURCE_URL:=http://www.anytun.org/download/
     20 PKG_MD5SUM:=ce47ad45003ff1d84eaf5276941b9ddf
     21 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
     22 PKG_MAINTAINER:=Christian Pointner <equinox@spreadspace.org>
     23 PKG_LICENSE:=GPL-3.0+
     24 PKG_LICENSE_FILES:=LICENSE
     25 include $(INCLUDE_DIR)/package.mk
     26 
     27 
     28 define Package/uanytun/template
     29   SECTION:=net
     30   CATEGORY:=Network
     31   SUBMENU:=VPN
     32   DEPENDS:=+kmod-tun
     33   TITLE:=micro anycast tunneling daemon
     34   URL:=http://www.anytun.org/
     35 endef
     36 
     37 
     38 define Package/uanytun
     39   $(call Package/uanytun/template)
     40   TITLE+= (gcrypt)
     41   VARIANT:=gcrypt
     42   DEPENDS+=+libgcrypt
     43 endef
     44 
     45 define Package/uanytun/conffiles
     46 /etc/config/uanytun
     47 endef
     48 
     49 define Package/uanytun/description
     50 uAnytun is a tiny implementation of SATP the secure anycast tunneling protocol.
     51   SATP defines a protocol used for communication between any combination of
     52   unicast and anycast tunnel endpoints.  It has less protocol overhead than
     53   IPSec in Tunnel mode and allows tunneling of every ETHER TYPE protocol (e.g.
     54   ethernet, ip, arp ...). SATP directly includes cryptography and message
     55   authentication based on the methods used by SRTP.  It is intended to deliver
     56   a generic, scalable and secure solution for tunneling and relaying of packets
     57   of any protocol.
     58   Unlike Anytun which is a full featured implementation uAnytun has no support
     59   for multiple connections or synchronisation. It is a small single threaded
     60   implementation intended to act as a client on small platforms.
     61 endef
     62 
     63 
     64 define Package/uanytun-nettle
     65   $(call Package/uanytun/template)
     66   TITLE+= (nettle)
     67   VARIANT:=nettle
     68   DEPENDS+=+libnettle
     69 endef
     70 
     71 Package/uanytun-nettle/conffiles=$(Package/uanytun/conffiles)
     72 Package/uanytun-nettle/description=$(Package/uanytun/description)
     73 
     74 
     75 define Package/uanytun-sslcrypt
     76   $(call Package/uanytun/template)
     77   TITLE+= (openssl)
     78   VARIANT:=sslcrypt
     79   DEPENDS+=+libopenssl
     80 endef
     81 
     82 Package/uanytun-sslcrypt/conffiles=$(Package/uanytun/conffiles)
     83 Package/uanytun-sslcrypt/description=$(Package/uanytun/description)
     84 
     85 
     86 define Package/uanytun-nocrypt
     87   $(call Package/uanytun/template)
     88   TITLE+= (no crypt)
     89   VARIANT:=nocrypt
     90 endef
     91 
     92 Package/uanytun-nocrypt/conffiles=$(Package/uanytun/conffiles)
     93 Package/uanytun-nocrypt/description=$(Package/uanytun/description)
     94 
     95 
     96 
     97 define Build/Configure
     98 	(cd $(PKG_BUILD_DIR)/src; \
     99     touch include.mk; \
    100     ln -s linux/tun.c .; \
    101     echo '#ifndef UANYTUN_version_h_INCLUDED' > version.h; \
    102     echo '#define UANYTUN_version_h_INCLUDED' >> version.h; \
    103     echo '' >> version.h; \
    104     echo '#define VERSION_STRING_0 "uanytun version '`cat $(PKG_BUILD_DIR)/version`'"' >> version.h; \
    105     echo '#define VERSION_STRING_1 "built on '`hostname`', '`date +"%d.%m.%Y %H:%M:%S %Z"`'"' >> version.h; \
    106     echo '' >> version.h; \
    107     echo '#endif' >> version.h \
    108   )
    109 endef
    110 
    111 VARIANT_CFLAGS:=
    112 VARIANT_LDFLAGS:=-ldl
    113 VARIANT_MAKE_OPTS:=
    114 
    115 ifeq ($(BUILD_VARIANT),gcrypt)
    116 VARIANT_CFLAGS+=-DUSE_GCRYPT
    117 VARIANT_LDFLAGS+=-lgpg-error -lgcrypt
    118 endif
    119 
    120 ifeq ($(BUILD_VARIANT),nettle)
    121 VARIANT_CFLAGS+=-DUSE_NETTLE
    122 VARIANT_LDFLAGS+=-lnettle
    123 endif
    124 
    125 ifeq ($(BUILD_VARIANT),sslcrypt)
    126 VARIANT_CFLAGS+=-DUSE_SSL_CRYPTO
    127 VARIANT_LDFLAGS+=-lcrypto
    128 endif
    129 
    130 ifeq ($(BUILD_VARIANT),nocrypt)
    131 VARIANT_CFLAGS+=-DNO_CRYPT
    132 VARIANT_MAKE_OPTS+=NO_CRYPT_OBJ=1
    133 endif
    134 
    135 define Build/Compile
    136 	$(MAKE) -C $(PKG_BUILD_DIR)/src \
    137     $(TARGET_CONFIGURE_OPTS) \
    138     $(VARIANT_MAKE_OPTS) \
    139     TARGET=Linux \
    140     CFLAGS="$(TARGET_CFLAGS) $(VARIANT_CFLAGS) $(TARGET_CPPFLAGS)" \
    141     LDFLAGS="$(TARGET_LDFLAGS) $(VARIANT_LDFLAGS)"
    142 	$(STRIP) $(PKG_BUILD_DIR)/src/uanytun
    143 endef
    144 
    145 
    146 define Package/uanytun/install-generic
    147 	$(INSTALL_DIR) $(1)/etc/config
    148 	$(INSTALL_DATA) ./files/$(2) $(1)/etc/config/$(PKG_NAME)
    149 	$(INSTALL_DIR) $(1)/usr/sbin
    150 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/uanytun $(1)/usr/sbin/$(PKG_NAME)
    151 	$(INSTALL_DIR) $(1)/etc/init.d
    152 	$(INSTALL_BIN) ./files/uanytun.init $(1)/etc/init.d/$(PKG_NAME)
    153 endef
    154 
    155 define Package/uanytun/install
    156   $(call Package/uanytun/install-generic,$(1),uanytun.config)
    157 endef
    158 
    159 define Package/uanytun-nettle/install
    160   $(call Package/uanytun/install-generic,$(1),uanytun.config)
    161 endef
    162 
    163 define Package/uanytun-sslcrypt/install
    164   $(call Package/uanytun/install-generic,$(1),uanytun.config)
    165 endef
    166 
    167 define Package/uanytun-nocrypt/install
    168   $(call Package/uanytun/install-generic,$(1),uanytun-nocrypt.config)
    169 endef
    170 
    171 
    172 $(eval $(call BuildPackage,uanytun))
    173 $(eval $(call BuildPackage,uanytun-nettle))
    174 $(eval $(call BuildPackage,uanytun-sslcrypt))
    175 $(eval $(call BuildPackage,uanytun-nocrypt))