#############################################################
#
# rp-pppoe
#
#############################################################

RP_PPPOE_VERSION = 3.10
RP_PPPOE_SITE = http://www.roaringpenguin.com/files/download
RP_PPPOE_DEPENDENCIES = pppd
RP_PPPOE_SUBDIR = src
RP_PPPOE_TARGET_FILES = pppoe pppoe-server pppoe-relay pppoe-sniff
RP_PPPOE_MAKE_OPT = PLUGIN_DIR=/usr/lib/pppd/$(PPPD_VERSION)
RP_PPPOE_CONF_OPT = --disable-debugging
RP_PPPOE_CONF_ENV = \
	rpppoe_cv_pack_bitfields=normal \
	PPPD_H=$(PPPD_DIR)/pppd/pppd.h

define RP_PPPOE_INSTALL_TARGET_CMDS
	for ff in $(RP_PPPOE_TARGET_FILES); do \
		$(INSTALL) -m 0755 $(@D)/src/$$ff $(TARGET_DIR)/usr/sbin/$$ff; \
	done
	for ff in $(RP_PPPOE_TARGET_FILES); do \
		$(INSTALL) -m 644 -D $(RP_PPPOE_DIR)/man/$$ff.8 $(TARGET_DIR)/usr/share/man/man8/$$ff.8; \
	done
endef

define RP_PPPOE_UNINSTALL_TARGET_CMDS
	for ff in $(RP_PPPOE_TARGET_FILES); do \
		rm -f $(TARGET_DIR)/usr/sbin/$$ff; \
	done
	for ff in $(RP_PPPOE_TARGET_FILES); do \
		rm -f $(TARGET_DIR)/usr/share/man/man8/$$ff.8; \
	done
endef

$(eval $(call AUTOTARGETS))
