]> git.ipfire.org Git - thirdparty/iw.git/blobdiff - Makefile
iw: print ctrl port tx status event
[thirdparty/iw.git] / Makefile
index 46d30306f63109dccf620b99a7dac79174079335..8bd5457279df4332b8a392492bb1cb0f611e974c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -9,23 +9,19 @@ MKDIR ?= mkdir -p
 INSTALL ?= install
 CC ?= "gcc"
 
-CFLAGS ?= -O2 -g
-CFLAGS += -Wall -Wextra -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common \
-         -Werror-implicit-function-declaration -Wsign-compare -Wno-unused-parameter \
-         -Wstringop-overflow=4
+cc-option = $(shell set -e ; $(CC) $(1) -c -x c /dev/null -o /dev/null >/dev/null 2>&1 && echo '$(1)')
 
-OBJS = iw.o genl.o event.o info.o phy.o \
-       interface.o ibss.o station.o survey.o util.o ocb.o \
-       mesh.o mpath.o mpp.o scan.o reg.o version.o \
-       reason.o status.o connect.o link.o offch.o ps.o cqm.o \
-       bitrate.o wowlan.o coalesce.o roc.o p2p.o vendor.o mgmt.o \
-       ap.o sha256.o nan.o bloom.o \
-       measurements.o ftm.o
-OBJS += sections.o
+CFLAGS_EVAL := $(call cc-option,-Wstringop-overflow=4)
 
-OBJS-$(HWSIM) += hwsim.o
+CFLAGS ?= -O2 -g
+CFLAGS += -Wall -Wextra -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common
+CFLAGS += -Werror-implicit-function-declaration -Wsign-compare -Wno-unused-parameter
+CFLAGS += -Wdeclaration-after-statement
+CFLAGS += $(CFLAGS_EVAL)
 
-OBJS += $(OBJS-y) $(OBJS-Y)
+_OBJS := $(sort $(patsubst %.c,%.o,$(wildcard *.c)))
+VERSION_OBJS := $(filter-out version.o, $(_OBJS))
+OBJS := $(VERSION_OBJS) version.o
 
 ALL = iw
 
@@ -94,14 +90,16 @@ endif
 
 all: $(ALL)
 
-VERSION_OBJS := $(filter-out version.o, $(OBJS))
-
 version.c: version.sh $(patsubst %.o,%.c,$(VERSION_OBJS)) nl80211.h iw.h Makefile \
                $(wildcard .git/index .git/refs/tags)
        @$(NQ) ' GEN ' $@
        $(Q)./version.sh $@
 
-%.o: %.c iw.h nl80211.h
+nl80211-commands.inc: nl80211.h
+       @$(NQ) ' GEN ' $@
+       $(Q)sed 's%^\tNL80211_CMD_%%;t n;d;:n s%^\([^=]*\),.*%\t[NL80211_CMD_\1] = \"\L\1\",%;t;d' nl80211.h | grep -v "reserved" > $@
+
+%.o: %.c iw.h nl80211.h nl80211-commands.inc
        @$(NQ) ' CC  ' $@
        $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
 
@@ -127,4 +125,4 @@ install: iw iw.8.gz
        $(Q)$(INSTALL) -m 644 iw.8.gz $(DESTDIR)$(MANDIR)/man8/
 
 clean:
-       $(Q)rm -f iw *.o *~ *.gz version.c *-stamp
+       $(Q)rm -f iw *.o *~ *.gz version.c *-stamp nl80211-commands.inc