precompile ppp active filter (reduces libpcap overhead to only a few k), enable by...
[openwrt-10.03/.git] / package / ppp / Makefile
index 4a0b0537ade2a3a7f478b77fb9e8d56239274f3e..e63fa4cf5040fc0c999e36c3248543330648936e 100644 (file)
@@ -39,6 +39,11 @@ $(eval $(call PKG_mod_template,PPP_MOD_PPPOA,pppoatm))
 $(eval $(call PKG_mod_template,PPP_MOD_PPPOE,rp-pppoe))
 $(eval $(call PKG_mod_template,PPP_MOD_RADIUS,radius))
 
+PKG_DEPEND:="kmod-ppp"
+ifeq ($(BR2_PACKAGE_PPP_WITH_FILTER),y)
+ENABLE_FILTER:="PRECOMPILED_FILTER=1"
+endif
+
 $(PKG_BUILD_DIR)/.configured:
        (cd $(PKG_BUILD_DIR); rm -rf config.{cache,status} ; \
                $(TARGET_CONFIGURE_OPTS) \
@@ -73,20 +78,28 @@ $(PKG_BUILD_DIR)/.built:
                CC=$(TARGET_CC) \
                COPTS="$(TARGET_CFLAGS)" \
                HAVE_INET6="1" \
+               $(ENABLE_FILTER) \
+               STAGING_DIR=$(STAGING_DIR) \
                DESTDIR="$(PKG_INSTALL_DIR)/usr" \
                all install
        touch $@
 
+ifeq ($(BR2_PACKAGE_PPP_WITH_FILTER),y)
+INSTALL_FILTER=install -m0644 ./files/etc/ppp/filter $(IDIR_PPP)/etc/ppp/
+endif
+
 $(IPKG_PPP):
        install -d -m0755 $(IDIR_PPP)/etc/ppp
        ln -sf /tmp/resolv.conf $(IDIR_PPP)/etc/ppp/resolv.conf
        install -m0600 ./files/etc/ppp/chap-secrets $(IDIR_PPP)/etc/ppp/
        install -m0644 ./files/etc/ppp/options $(IDIR_PPP)/etc/ppp/
+       $(INSTALL_FILTER)
        install -m0755 ./files/etc/ppp/ip-up $(IDIR_PPP)/etc/ppp/
        install -m0755 ./files/etc/ppp/ip-down $(IDIR_PPP)/etc/ppp/
        install -d -m0755 $(IDIR_PPP)/usr/sbin
        install -m0755 $(PKG_INSTALL_DIR)/usr/sbin/pppd $(IDIR_PPP)/usr/sbin/
        install -d -m0755 $(IDIR_PPP)/usr/lib/pppd
+       echo "Depends: $(PKG_DEPEND)" >> $(IDIR_PPP)/CONTROL/control
        $(RSTRIP) $(IDIR_PPP)
        $(IPKG_BUILD) $(IDIR_PPP) $(PACKAGE_DIR)
        
@@ -103,7 +116,6 @@ $(IDIR_PPP_MOD_PPPOE)/sbin/ifup.pppoe:
 $(IPKG_PPP_MOD_PPPOE): $(IDIR_PPP_MOD_PPPOE)/sbin/ifup.pppoe
 
 $(IDIR_PPP_MOD_RADIUS)/etc/ppp/radius.conf:
-
        install -d -m0755 $(IDIR_PPP_MOD_RADIUS)/etc/ppp
        install -m644 ./files/etc/ppp/radius.conf $(IDIR_PPP_MOD_RADIUS)/etc/ppp/
        install -d -m0755 $(IDIR_PPP_MOD_RADIUS)/etc/ppp/radius