blob: 85667b771b13b30d5caf93cbec5fb55959d94a16 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
#
# Copyright (C) 2008 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=wprobe
PKG_VERSION:=1
PKG_BUILD_DEPENDS:=PACKAGE_wprobe-export:libipfix
PKG_CONFIG_DEPENDS = \
CONFIG_PACKAGE_kmod-wprobe \
CONFIG_PACKAGE_wprobe-export \
include $(INCLUDE_DIR)/package.mk
# XXX: build failure on cris
# wprobe-lib.c:145: error: 'packed' attribute ignored for field of type 'struct <anonymous>'
# wprobe-lib.c:149: error: 'packed' attribute ignored for field of type 'struct <anonymous>'
define Package/wprobe/Default
DEPENDS:=@LINUX_2_6 @(!(TARGET_ps3||TARGET_pxcab||cris)||BROKEN)
endef
define KernelPackage/wprobe
$(call Package/wprobe/Default)
SUBMENU:=Network Support
TITLE:=Wireless driver probe infrastructure
FILES:= \
$(PKG_BUILD_DIR)/kernel/wprobe.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoLoad,01,wprobe)
endef
define KernelPackage/wprobe/description
A module that exports measurement data from wireless driver to user space
endef
define Package/wprobe-util
$(call Package/wprobe/Default)
SECTION:=net
CATEGORY:=Network
DEPENDS+=+kmod-wprobe +libnl-tiny
TITLE:=Wireless measurement utility
endef
define Package/wprobe-util/description
wprobe-util uses the wprobe kernel module to query
wireless driver measurement data from an interface
endef
define Package/wprobe-export
$(call Package/wprobe/Default)
SECTION:=net
CATEGORY:=Network
DEPENDS+=+wprobe-util
TITLE:=Wireless measurement data exporter
endef
define Package/wprobe-export/description
wprobe-export uses the wprobe kernel module to export
wireless driver measurement data via the IPFIX protocol
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) src/* $(PKG_BUILD_DIR)/
endef
TARGET_CPPFLAGS := \
-D_GNU_SOURCE \
-I$(STAGING_DIR)/usr/include/libnl-tiny \
$(TARGET_CPPFLAGS)
ifdef CONFIG_PACKAGE_kmod-wprobe
define Build/Compile/kmod
$(MAKE) -C $(LINUX_DIR) \
CROSS_COMPILE="$(KERNEL_CROSS)" \
ARCH="$(LINUX_KARCH)" \
SUBDIRS="$(PKG_BUILD_DIR)/kernel" \
KERNELDIR=$(LINUX_DIR) \
CC="$(TARGET_CC)" \
EXTRA_CFLAGS="-I$(PKG_BUILD_DIR)/kernel" \
modules
endef
endif
define Build/Compile/lib
$(MAKE) -C $(PKG_BUILD_DIR)/user \
$(TARGET_CONFIGURE_OPTS) \
CFLAGS="$(TARGET_CFLAGS)" \
CPPFLAGS="$(TARGET_CPPFLAGS) -I$(PKG_BUILD_DIR)/kernel" \
LDFLAGS="$(TARGET_LDFLAGS)" \
HOST_OS=Linux \
LIBNL="-lnl-tiny"
endef
ifdef CONFIG_PACKAGE_wprobe-export
define Build/Compile/exporter
$(MAKE) -C $(PKG_BUILD_DIR)/exporter \
$(TARGET_CONFIGURE_OPTS) \
CFLAGS="$(TARGET_CFLAGS)" \
CPPFLAGS="$(TARGET_CPPFLAGS) -I$(PKG_BUILD_DIR)/kernel -I$(PKG_BUILD_DIR)/user" \
LDFLAGS="$(TARGET_LDFLAGS)" \
LIBS="$(PKG_BUILD_DIR)/user/libwprobe.a $(STAGING_DIR)/usr/lib/libipfix.a $(STAGING_DIR)/usr/lib/libmisc.a -lnl-tiny -lm"
endef
endif
define Build/Compile
$(Build/Compile/kmod)
$(Build/Compile/lib)
$(Build/Compile/exporter)
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/wprobe
$(CP) $(PKG_BUILD_DIR)/kernel/linux $(1)/usr/include/wprobe
endef
define Package/wprobe-util/install
$(INSTALL_DIR) $(1)/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/user/wprobe-util $(1)/sbin/
endef
define Package/wprobe-export/install
$(INSTALL_DIR) $(1)/sbin $(1)/etc/init.d $(1)/etc/config
$(INSTALL_BIN) ./files/wprobe.init $(1)/etc/init.d/wprobe
$(INSTALL_BIN) ./files/wprobe.config $(1)/etc/config/wprobe
$(INSTALL_BIN) $(PKG_BUILD_DIR)/exporter/wprobe-export $(1)/sbin/
endef
$(eval $(call KernelPackage,wprobe))
$(eval $(call BuildPackage,wprobe-util))
$(eval $(call BuildPackage,wprobe-export))
|