From c831bcda3e2638c55b286bd538415ea79f510cdb Mon Sep 17 00:00:00 2001 From: Vadim Kochan Date: Thu, 4 Aug 2016 19:30:18 +0300 Subject: 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 Signed-off-by: Tobias Klauser --- mac80211.c | 1 - mac80211.h | 14 ++++++++++++++ trafgen/Makefile | 21 +++++++++++++++------ 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 #include -#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 -- cgit v1.2.3-54-g00ecf