tcpdump: add a new "mini" build variant which reduces the binary size to 50% by only...
[openwrt/svn-archive/archive.git] / net / tcpdump / Makefile
index b5285fa15af276d8faeb99f67219e26c4d191cac..040eba63afdf3de94b75e3126af1329357473b03 100644 (file)
@@ -18,9 +18,11 @@ PKG_SOURCE_URL:=http://www.tcpdump.org/release/ \
        http://www.br.tcpdump.org/
 PKG_MD5SUM:=b22ca72890df2301d922c9f2d17867f9
 
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+
 include $(INCLUDE_DIR)/package.mk
 
-define Package/tcpdump
+define Package/tcpdump/default
   SECTION:=net
   CATEGORY:=Network
   DEPENDS:=+libpcap
@@ -28,20 +30,37 @@ define Package/tcpdump
   URL:=http://www.tcpdump.org/
 endef
 
-define Build/Configure
-       $(call Build/Configure/Default, \
-               --without-crypto \
-               , \
-               BUILD_CC="$(TARGET_CC)" \
-               HOSTCC="$(HOSTCC)" \
-               td_cv_buggygetaddrinfo="no" \
-       )
+define Package/tcpdump
+  $(Package/tcpdump/default)
+  VARIANT:=full
+endef
+
+define Package/tcpdump-mini
+  $(Package/tcpdump/default)
+  TITLE+= (minimal version)
+  VARIANT:=mini
 endef
 
+CONFIGURE_ARGS += --without-crypto
+
+CONFIGURE_VARS += \
+       BUILD_CC="$(TARGET_CC)" \
+       HOSTCC="$(HOSTCC)" \
+       td_cv_buggygetaddrinfo="no"
+
+ifeq ($(BUILD_VARIANT),mini)
+  TARGET_CFLAGS += -DTCPDUMP_MINI
+  CONFIGURE_ARGS += --disable-smb
+  MAKE_FLAGS := TCPDUMP_MINI=1
+else
+  MAKE_FLAGS :=
+endif
+
 define Build/Compile
        $(MAKE) -C $(PKG_BUILD_DIR) \
                CCOPT="$(TARGET_CFLAGS)" INCLS="-I. $(TARGET_CPPFLAGS)" \
                DESTDIR="$(PKG_INSTALL_DIR)" \
+               $(MAKE_FLAGS) \
                all install
 endef
 
@@ -50,4 +69,7 @@ define Package/tcpdump/install
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/tcpdump $(1)/usr/sbin/
 endef
 
+Package/tcpdump-mini/install = $(Package/tcpdump/install)
+
 $(eval $(call BuildPackage,tcpdump))
+$(eval $(call BuildPackage,tcpdump-mini))