1 MAKEFLAGS
+= --no-print-directory
4 SBINDIR ?
= $(PREFIX
)/sbin
5 MANDIR ?
= $(PREFIX
)/share
/man
6 PKG_CONFIG ?
= pkg-config
12 cc-option
= $(shell set
-e
; $(CC
) $(1) -c
-x c
/dev
/null
-o
/dev
/null
>/dev
/null
2>&1 && echo
'$(1)')
14 CFLAGS_EVAL
:= $(call cc-option
,-Wstringop-overflow
=4)
17 CFLAGS
+= -Wall
-Wextra
-Wundef
-Wstrict-prototypes
-Wno-trigraphs
-fno-strict-aliasing
-fno-common
18 CFLAGS
+= -Werror-implicit-function-declaration
-Wsign-compare
-Wno-unused-parameter
19 CFLAGS
+= -Wdeclaration-after-statement
20 CFLAGS
+= $(CFLAGS_EVAL
)
22 _OBJS
:= $(sort $(patsubst %.c
,%.o
,$(wildcard *.c
)))
23 VERSION_OBJS
:= $(filter-out version.o
, $(_OBJS
))
24 OBJS
:= $(VERSION_OBJS
) version.o
28 ifeq ($(NO_PKG_CONFIG
),)
29 NL3xFOUND
:= $(shell $(PKG_CONFIG
) --atleast-version
=3.2 libnl-3.0
&& echo Y
)
30 ifneq ($(NL3xFOUND
),Y
)
31 NL31FOUND
:= $(shell $(PKG_CONFIG
) --exact-version
=3.1 libnl-3.1
&& echo Y
)
32 ifneq ($(NL31FOUND
),Y
)
33 NL3FOUND
:= $(shell $(PKG_CONFIG
) --atleast-version
=3 libnl-3.0
&& echo Y
)
35 NL2FOUND
:= $(shell $(PKG_CONFIG
) --atleast-version
=2 libnl-2.0
&& echo Y
)
37 NL1FOUND
:= $(shell $(PKG_CONFIG
) --atleast-version
=1 libnl-1
&& echo Y
)
48 override CFLAGS
+= -DCONFIG_LIBNL20
49 override LIBS
+= -lnl-genl
54 # libnl 3.2 might be found as 3.2 and 3.0
56 override CFLAGS
+= -DCONFIG_LIBNL30
57 override LIBS
+= -lnl-genl-3
62 override CFLAGS
+= -DCONFIG_LIBNL30
63 override LIBS
+= -lnl-genl
67 # nl-3.1 has a broken libnl-gnl-3.1.pc file
68 # as show by pkg-config --debug --libs --cflags --exact-version=3.1 libnl-genl-3.1;echo $?
70 override CFLAGS
+= -DCONFIG_LIBNL30
71 override LIBS
+= -lnl-genl
76 $(error Cannot find development files for any supported version of libnl
)
79 override LIBS
+= $(shell $(PKG_CONFIG
) --libs
$(NLLIBNAME
))
80 override CFLAGS
+= $(shell $(PKG_CONFIG
) --cflags $(NLLIBNAME
))
93 version.c
: version.sh
$(patsubst %.o
,%.c
,$(VERSION_OBJS
)) nl80211.h iw.h Makefile \
94 $(wildcard .git
/index .git
/refs
/tags)
98 nl80211-commands.inc
: nl80211.h
100 $(Q
)sed
's%^\tNL80211_CMD_%%;t n;d;:n s%^\([^=]*\),.*%\t[NL80211_CMD_\1] = \"\L\1\",%;t;d' nl80211.h | grep
-v
"reserved" > $@
102 %.o
: %.c iw.h nl80211.h nl80211-commands.inc
104 $(Q
)$(CC
) $(CFLAGS
) $(CPPFLAGS
) -c
-o
$@
$<
106 ifeq ($(IW_ANDROID_BUILD
),)
109 $(Q
)$(CC
) $(LDFLAGS
) $(OBJS
) $(LIBS
) -o iw
113 $(Q
)$(MAKE
) all CC
="REAL_CC=$(CC) CHECK=\"sparse -Wall\" cgcc"
121 $(Q
)$(MKDIR
) $(DESTDIR
)$(SBINDIR
)
122 $(Q
)$(INSTALL
) -m
755 iw
$(DESTDIR
)$(SBINDIR
)
124 $(Q
)$(MKDIR
) $(DESTDIR
)$(MANDIR
)/man8
/
125 $(Q
)$(INSTALL
) -m
644 iw
.8.gz
$(DESTDIR
)$(MANDIR
)/man8
/
128 $(Q
)rm -f iw
*.o
*~
*.gz version.c
*-stamp nl80211-commands.inc