diff --git a/package/Config.in b/package/Config.in index f3d0ea35c..ca51d0569 100644 --- a/package/Config.in +++ b/package/Config.in @@ -23,6 +23,7 @@ source "package/pptpd/Config.in" comment "Libraries" source "package/zlib/Config.in" +source "package/libpcap/Config.in" source "package/libelf/Config.in" source "package/matrixssl/Config.in" source "package/lzo/Config.in" diff --git a/package/libpcap/Config.in b/package/libpcap/Config.in new file mode 100644 index 000000000..7aa6a5b5b --- /dev/null +++ b/package/libpcap/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_LIBPCAP + bool "libpcap" + default n + help + A system-independent library for user-level network packet capture. + + http://www.tcpdump.org/ diff --git a/package/libpcap/Makefile b/package/libpcap/Makefile new file mode 100644 index 000000000..279190c02 --- /dev/null +++ b/package/libpcap/Makefile @@ -0,0 +1,60 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME := libpcap +PKG_VERSION := 0.8.3 +PKG_RELEASE := 1 + +PKG_SOURCE_SITE := http://www.tcpdump.org/release +PKG_SOURCE_FILE := $(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_CAT := zcat +PKG_SOURCE_DIR := $(PKG_NAME)-$(PKG_VERSION) +PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_SOURCE_DIR) + + +$(DL_DIR)/$(PKG_SOURCE_FILE): + mkdir -p $(DL_DIR) + $(WGET) -P $(DL_DIR) $(PKG_SOURCE_SITE)/$(PKG_SOURCE_FILE) + +$(PKG_BUILD_DIR)/.patched: $(DL_DIR)/$(PKG_SOURCE_FILE) + mkdir -p $(TOOL_BUILD_DIR) + $(PKG_SOURCE_CAT) $(DL_DIR)/$(PKG_SOURCE_FILE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + $(PATCH) $(PKG_BUILD_DIR) . ./patches + touch $(PKG_BUILD_DIR)/.patched + +$(PKG_BUILD_DIR)/.configured: $(PKG_BUILD_DIR)/.patched + (cd $(PKG_BUILD_DIR); rm -rf config.cache; \ + ac_cv_linux_vers=$(BR2_DEFAULT_KERNEL_HEADERS) \ + BUILD_CC=$(TARGET_CC) HOSTCC=$(HOSTCC) \ + $(TARGET_CONFIGURE_OPTS) \ + CFLAGS="$(TARGET_CFLAGS)" \ + ./configure \ + --target=$(GNU_TARGET_NAME) \ + --host=$(GNU_TARGET_NAME) \ + --build=$(GNU_HOST_NAME) \ + --with-build-cc=$(HOSTCC) \ + --disable-yydebug \ + --prefix=/usr \ + --with-pcap=linux \ + ); + touch $(PKG_BUILD_DIR)/.configured + +$(PKG_BUILD_DIR)/libpcap.a: $(PKG_BUILD_DIR)/.configured + $(MAKE) AR="$(TARGET_CROSS)ar" -C $(PKG_BUILD_DIR) + +$(STAGING_DIR)/lib/libpcap.a: $(PKG_BUILD_DIR)/libpcap.a + $(MAKE) -C $(PKG_BUILD_DIR) \ + prefix=$(STAGING_DIR) \ + exec_prefix=$(STAGING_DIR) \ + bindir=$(STAGING_DIR)/bin \ + datadir=$(STAGING_DIR)/share \ + install + +source: $(DL_DIR)/$(PKG_SOURCE_FILE) +prepare: $(PKG_BUILD_DIR)/.patched +compile: $(STAGING_DIR)/lib/libpcap.a +install: + +clean: + rm -rf $(PKG_BUILD_DIR) + rm -f $(STAGING_DIR)/lib/libpcap* + diff --git a/package/libpcap/patches/cross-compile-fix.patch b/package/libpcap/patches/cross-compile-fix.patch new file mode 100644 index 000000000..196ee34eb --- /dev/null +++ b/package/libpcap/patches/cross-compile-fix.patch @@ -0,0 +1,11 @@ +--- libpcap-0.8.3/Makefile.in.orig 2005-01-17 19:04:41.291056960 -0500 ++++ libpcap-0.8.3/Makefile.in 2005-01-17 19:04:47.836061968 -0500 +@@ -100,7 +100,7 @@ + + libpcap.a: $(OBJ) + @rm -f $@ +- ar rc $@ $(OBJ) $(LIBS) ++ $(AR) rc $@ $(OBJ) $(LIBS) + $(RANLIB) $@ + + scanner.c: $(srcdir)/scanner.l