summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadim Kochan <vadim4j@gmail.com>2016-08-04 19:30:18 +0300
committerTobias Klauser <tklauser@distanz.ch>2016-08-05 10:54:52 +0200
commitc831bcda3e2638c55b286bd538415ea79f510cdb (patch)
treec1ef44e3beb40e51f30487faf81c6127ea6c77b9
parente6b7339a68ce57244117e2470f87ff581520cfc7 (diff)
trafgen: Allow to compile without libnl
trafgen uses libnl only to inject mac80211 frames but it might be not needed in some embedded or switch environments. Let's make it possible to disable this feature. In case the `--rfraw' option is used, the user will get a panic message. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
-rw-r--r--mac80211.c1
-rw-r--r--mac80211.h14
-rw-r--r--trafgen/Makefile21
3 files changed, 29 insertions, 7 deletions
diff --git a/mac80211.c b/mac80211.c
index f22b600..9aea5a0 100644
--- a/mac80211.c
+++ b/mac80211.c
@@ -24,7 +24,6 @@
#include <netlink/msg.h>
#include <netlink/attr.h>
-#include "die.h"
#include "str.h"
#include "dev.h"
#include "mac80211.h"
diff --git a/mac80211.h b/mac80211.h
index dea4ae0..bae28b1 100644
--- a/mac80211.h
+++ b/mac80211.h
@@ -1,7 +1,21 @@
#ifndef MAC80211_H
#define MAC80211_H
+#include "config.h"
+#include "die.h"
+
+#ifdef HAVE_LIBNL
extern void enter_rfmon_mac80211(const char *device, char **mondev);
extern void leave_rfmon_mac80211(const char *mondev);
+#else
+static inline void enter_rfmon_mac80211(const char *device, char **mondev)
+{
+ panic("No built-in libnl support!\n");
+}
+
+static inline void leave_rfmon_mac80211(const char *mondev)
+{
+}
+#endif /* HAVE_LIBNL */
#endif /* MAC80211_H */
diff --git a/trafgen/Makefile b/trafgen/Makefile
index 3f78f07..876ed93 100644
--- a/trafgen/Makefile
+++ b/trafgen/Makefile
@@ -1,6 +1,9 @@
-trafgen-libs = $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) --libs libnl-3.0) \
- $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) --libs libnl-genl-3.0) \
- -lm
+trafgen-libs = -lm
+
+ifeq ($(CONFIG_LIBNL), 1)
+trafgen-libs += $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) --libs libnl-3.0) \
+ $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) --libs libnl-genl-3.0)
+endif
trafgen-objs = xmalloc.o \
die.o \
@@ -13,7 +16,6 @@ trafgen-objs = xmalloc.o \
str.o \
sig.o \
sock.o \
- mac80211.o \
ring_tx.o \
ring.o \
timer.o \
@@ -27,13 +29,20 @@ trafgen-objs = xmalloc.o \
trafgen_parser.tab.o \
trafgen.o
+ifeq ($(CONFIG_LIBNL), 1)
+trafgen-objs += mac80211.o
+endif
+
trafgen-lex = trafgen_lexer.yy.o
trafgen-yaac = trafgen_parser.tab.o
+trafgen-eflags = -I..
+
+ifeq ($(CONFIG_LIBNL), 1)
trafgen-eflags = $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) --cflags libnl-3.0) \
- $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) --cflags libnl-genl-3.0) \
- -I..
+ $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) --cflags libnl-genl-3.0)
+endif
trafgen-confs = trafgen_stddef.h