#
# openvpn
#
-# NOTE: Uses start-stop-daemon in init script, so be sure
-# to enable that within busybox
-#
#############################################################
-OPENVPN_VERSION:=2.0.9
-OPENVPN_SOURCE:=openvpn-$(OPENVPN_VERSION).tar.gz
-OPENVPN_SITE:=http://openvpn.net/release/
-OPENVPN_DIR:=$(BUILD_DIR)/openvpn-$(OPENVPN_VERSION)
-OPENVPN_CAT:=$(ZCAT)
-OPENVPN_BINARY:=openvpn
-OPENVPN_TARGET_BINARY:=usr/sbin/openvpn
-#
-# Select thread model.
-#
+OPENVPN_VERSION = 2.0.9
+OPENVPN_SOURCE = openvpn-$(OPENVPN_VERSION).tar.gz
+OPENVPN_SITE = http://openvpn.net/release
+OPENVPN_DEPENDENCIES = lzo openssl uclibc
+
ifeq ($(BR2_PTHREADS_NATIVE),y)
-THREAD_MODEL="--enable-threads=posix"
+ THREAD_MODEL="--enable-threads=posix"
else
-THREAD_MODEL=--enable-pthread
+ THREAD_MODEL="--enable-pthread"
endif
-$(DL_DIR)/$(OPENVPN_SOURCE):
- $(call DOWNLOAD,$(OPENVPN_SITE),$(OPENVPN_SOURCE))
-
-openvpn-source: $(DL_DIR)/$(OPENVPN_SOURCE)
-
-$(OPENVPN_DIR)/.unpacked: $(DL_DIR)/$(OPENVPN_SOURCE)
- $(OPENVPN_CAT) $(DL_DIR)/$(OPENVPN_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
- touch $(OPENVPN_DIR)/.unpacked
-
-$(OPENVPN_DIR)/.configured: $(OPENVPN_DIR)/.unpacked
- (cd $(OPENVPN_DIR); rm -rf config.cache; \
- $(TARGET_CONFIGURE_OPTS) \
- $(TARGET_CONFIGURE_ARGS) \
- ./configure \
- --target=$(GNU_TARGET_NAME) \
- --host=$(GNU_TARGET_NAME) \
- --build=$(GNU_HOST_NAME) \
- --prefix=/usr \
- --exec-prefix=/usr \
- --bindir=/usr/bin \
- --sbindir=/usr/sbin \
- --libdir=/lib \
- --libexecdir=/usr/lib \
- --sysconfdir=/etc \
- --datadir=/usr/share \
- --localstatedir=/var \
- --mandir=/usr/man \
- --infodir=/usr/info \
- --program-prefix="" \
- --enable-small \
- $(THREAD_MODEL) \
- )
- touch $(OPENVPN_DIR)/.configured
-
-$(OPENVPN_DIR)/$(OPENVPN_BINARY): $(OPENVPN_DIR)/.configured
- $(MAKE) -C $(OPENVPN_DIR)
-
-$(TARGET_DIR)/$(OPENVPN_TARGET_BINARY): $(OPENVPN_DIR)/$(OPENVPN_BINARY)
- $(MAKE) DESTDIR=$(TARGET_DIR) -C $(OPENVPN_DIR) install
- mkdir -p $(TARGET_DIR)/etc/openvpn
- cp package/openvpn/openvpn.init $(TARGET_DIR)/etc/init.d/openvpn
- rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
- $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
-
-openvpn: uclibc lzo openssl $(TARGET_DIR)/$(OPENVPN_TARGET_BINARY)
-
-openvpn-clean:
- $(MAKE) DESTDIR=$(TARGET_DIR) -C $(OPENVPN_DIR) uninstall
- -$(MAKE) -C $(OPENVPN_DIR) clean
-
-openvpn-dirclean:
- rm -rf $(OPENVPN_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_OPENVPN),y)
-TARGETS+=openvpn
-endif
+OPENVPN_CONF_OPT = --enable-small $(THREAD_MODEL)
+
+$(eval $(call AUTOTARGETS,package,openvpn))
+
+$(OPENVPN_TARGET_INSTALL_TARGET):
+ $(call MESSAGE,"Installing")
+ $(INSTALL) -m 755 $(OPENVPN_DIR)/openvpn \
+ $(TARGET_DIR)/usr/sbin/openvpn
+ if [ ! -f $(TARGET_DIR)/etc/init.d/openvpn ]; then \
+ $(INSTALL) -m 755 -D package/openvpn/openvpn.init \
+ $(TARGET_DIR)/etc/init.d/openvpn; \
+ fi
+ touch $@
+
+$(OPENVPN_TARGET_UNINSTALL):
+ $(call MESSAGE,"Uninstalling")
+ rm -f $(TARGET_DIR)/usr/sbin/openvpn
+ rm -f $(TARGET_DIR)/etc/init.d/openvpn
+ rm -f $(OPENVPN_TARGET_INSTALL_TARGET) $(OPENVPN_HOOK_POST_INSTALL)