#
# Copyright (C) 2006-2009 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# $Id: Makefile 15321 2009-04-21 11:38:28Z nico $

include $(TOPDIR)/rules.mk

PKG_NAME:=openvpn
PKG_VERSION:=2.1.1
PKG_RELEASE:=1

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://openvpn.net/release @SF/openvpn
PKG_MD5SUM:=b273ed2b5ec8616fb9834cde8634bce7

include $(INCLUDE_DIR)/package.mk

define Package/openvpn
  SECTION:=net
  CATEGORY:=Network
  DEPENDS:=+kmod-tun +libopenssl +liblzo
  TITLE:=Open source VPN solution using SSL
  URL:=http://openvpn.net
  SUBMENU:=VPN
endef

define Package/openvpn/conffiles
/etc/config/openvpn_config
endef

define Package/openvpn/description
	 Open source VPN solution using SSL
endef

define Package/openvpn-easy-rsa
  $(call Package/openvpn)
  DEPENDS:=openvpn +openssl-util
  TITLE:=Simple shell scripts to manage a Certificate Authority
endef

define Package/openvpn-easy-rsa/conffiles
/etc/easy-rsa/keys/serial
/etc/easy-rsa/keys/index.txt
/etc/easy-rsa/vars
endef

define Build/Configure
	$(call Build/Configure/Default, \
		--disable-pthread \
		--disable-debug \
		--disable-plugins \
		--enable-management \
		--disable-socks \
		--enable-password-save \
		,\
		ac_cv_func_epoll_create=no \
	)
endef

define Build/Compile	
	$(MAKE) -C $(PKG_BUILD_DIR) \
		DESTDIR="$(PKG_INSTALL_DIR)" \
		all install
endef

define Package/openvpn/install	
	$(INSTALL_DIR) $(1)/usr/sbin
	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/openvpn $(1)/usr/sbin/
	$(INSTALL_DIR) $(1)/etc/init.d/
ifeq ($(CONFIG_PACKAGE_V2960),y)
	$(INSTALL_BIN) files/draytek/openvpn_2960.init $(1)/etc/init.d/openvpn
endif

ifeq ($(CONFIG_PACKAGE_V3900),y)
	$(INSTALL_BIN) files/draytek/openvpn.init $(1)/etc/init.d/openvpn
endif
	$(INSTALL_DIR) $(1)/etc/config
	$(INSTALL_CONF) files/draytek/openvpn_config $(1)/etc/config/openvpn_config
	$(INSTALL_DIR) $(1)/etc/openvpn
	$(INSTALL_DATA) files/draytek/ca.crt $(1)/etc/openvpn/ca.crt
	$(INSTALL_DATA) files/draytek/dh1024.pem $(1)/etc/openvpn/dh1024.pem
	$(INSTALL_DATA) files/draytek/server.crt $(1)/etc/openvpn/server.crt
	$(INSTALL_DATA) files/draytek/server.key $(1)/etc/openvpn/server.key
	$(INSTALL_BIN) files/draytek/openvpn_status_parser.sh $(1)/etc/openvpn/openvpn_status_parser.sh
	$(INSTALL_BIN) files/draytek/checkpsw.sh $(1)/etc/openvpn/checkpsw.sh
	$(INSTALL_BIN) files/draytek/conn-up.sh $(1)/etc/openvpn/conn-up.sh
	$(INSTALL_BIN) files/draytek/conn-down.sh $(1)/etc/openvpn/conn-down.sh
endef

define Package/openvpn-easy-rsa/install	
	$(INSTALL_DIR) $(1)/usr/sbin
	$(CP) $(PKG_BUILD_DIR)/easy-rsa/2.0/{build-*,clean-all,inherit-inter,list-crl,pkitool,revoke-full,sign-req,whichopensslcnf} $(1)/usr/sbin/
	$(INSTALL_DIR) $(1)/etc/easy-rsa
	$(INSTALL_DATA) $(PKG_BUILD_DIR)/easy-rsa/2.0/openssl.cnf $(1)/etc/easy-rsa/openssl.cnf
	$(INSTALL_DATA) $(PKG_BUILD_DIR)/easy-rsa/2.0/vars $(1)/etc/easy-rsa/vars
	#$(INSTALL_DATA) $(PKG_BUILD_DIR)/files/vars $(1)/etc/easy-rsa/vars
	$(INSTALL_DIR) $(1)/etc/easy-rsa/keys
	$(INSTALL_DATA) files/keys/ca.crt $(1)/etc/easy-rsa/keys/ca.crt
	$(INSTALL_DATA) files/keys/dh1024.pem $(1)/etc/easy-rsa/keys/dh1024.pem
	$(INSTALL_DATA) files/keys/server.crt $(1)/etc/easy-rsa/keys/server.crt
	$(INSTALL_DATA) files/keys/server.key $(1)/etc/easy-rsa/keys/server.key
	#$(INSTALL_DATA) files/keys/erichsiao-client-001.crt $(1)/etc/easy-rsa/keys/erichsiao-client-001.crt
	#$(INSTALL_DATA) files/keys/erichsiao-client-001.key $(1)/etc/easy-rsa/keys/erichsiao-client-001.key
	$(INSTALL_DATA) files/easy-rsa.index $(1)/etc/easy-rsa/keys/index.txt
	$(INSTALL_DATA) files/easy-rsa.serial $(1)/etc/easy-rsa/keys/serial
endef

$(eval $(call BuildPackage,openvpn))
$(eval $(call BuildPackage,openvpn-easy-rsa))
