1*2ee67178SXianjun JiaoMAKEFLAGS += --no-print-directory 2*2ee67178SXianjun Jiao 3*2ee67178SXianjun JiaoPREFIX ?= /usr 4*2ee67178SXianjun JiaoSBINDIR ?= $(PREFIX)/sbin 5*2ee67178SXianjun JiaoMANDIR ?= $(PREFIX)/share/man 6*2ee67178SXianjun JiaoPKG_CONFIG ?= pkg-config 7*2ee67178SXianjun Jiao 8*2ee67178SXianjun JiaoMKDIR ?= mkdir -p 9*2ee67178SXianjun JiaoINSTALL ?= install 10*2ee67178SXianjun JiaoCC ?= "gcc" 11*2ee67178SXianjun Jiao 12*2ee67178SXianjun JiaoCFLAGS ?= -O2 -g 13*2ee67178SXianjun JiaoCFLAGS += -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration 14*2ee67178SXianjun Jiao 15*2ee67178SXianjun Jiao# OBJS = iw.o genl.o event.o info.o phy.o \ 16*2ee67178SXianjun Jiao interface.o ibss.o station.o survey.o util.o \ 17*2ee67178SXianjun Jiao mesh.o mpath.o scan.o reg.o version.o \ 18*2ee67178SXianjun Jiao reason.o status.o connect.o link.o offch.o ps.o cqm.o \ 19*2ee67178SXianjun Jiao bitrate.o wowlan.o coalesce.o roc.o p2p.o 20*2ee67178SXianjun Jiao 21*2ee67178SXianjun JiaoOBJS = sdrctl.o cmd.o version.o 22*2ee67178SXianjun Jiao 23*2ee67178SXianjun JiaoOBJS += sections.o 24*2ee67178SXianjun Jiao 25*2ee67178SXianjun Jiao# OBJS-$(HWSIM) += hwsim.o 26*2ee67178SXianjun Jiao 27*2ee67178SXianjun JiaoOBJS += $(OBJS-y) $(OBJS-Y) 28*2ee67178SXianjun Jiao 29*2ee67178SXianjun JiaoALL = sdrctl 30*2ee67178SXianjun Jiao 31*2ee67178SXianjun Jiaoifeq ($(NO_PKG_CONFIG),) 32*2ee67178SXianjun JiaoNL3xFOUND := $(shell $(PKG_CONFIG) --atleast-version=3.2 libnl-3.0 && echo Y) 33*2ee67178SXianjun Jiaoifneq ($(NL3xFOUND),Y) 34*2ee67178SXianjun JiaoNL31FOUND := $(shell $(PKG_CONFIG) --exact-version=3.1 libnl-3.1 && echo Y) 35*2ee67178SXianjun Jiaoifneq ($(NL31FOUND),Y) 36*2ee67178SXianjun JiaoNL3FOUND := $(shell $(PKG_CONFIG) --atleast-version=3 libnl-3.0 && echo Y) 37*2ee67178SXianjun Jiaoifneq ($(NL3FOUND),Y) 38*2ee67178SXianjun JiaoNL2FOUND := $(shell $(PKG_CONFIG) --atleast-version=2 libnl-2.0 && echo Y) 39*2ee67178SXianjun Jiaoifneq ($(NL2FOUND),Y) 40*2ee67178SXianjun JiaoNL1FOUND := $(shell $(PKG_CONFIG) --atleast-version=1 libnl-1 && echo Y) 41*2ee67178SXianjun Jiaoendif 42*2ee67178SXianjun Jiaoendif 43*2ee67178SXianjun Jiaoendif 44*2ee67178SXianjun Jiaoendif 45*2ee67178SXianjun Jiao 46*2ee67178SXianjun Jiaoifeq ($(NL1FOUND),Y) 47*2ee67178SXianjun JiaoNLLIBNAME = libnl-1 48*2ee67178SXianjun Jiaoendif 49*2ee67178SXianjun Jiao 50*2ee67178SXianjun Jiaoifeq ($(NL2FOUND),Y) 51*2ee67178SXianjun JiaoCFLAGS += -DCONFIG_LIBNL20 52*2ee67178SXianjun JiaoLIBS += -lnl-genl 53*2ee67178SXianjun JiaoNLLIBNAME = libnl-2.0 54*2ee67178SXianjun Jiaoendif 55*2ee67178SXianjun Jiao 56*2ee67178SXianjun Jiaoifeq ($(NL3xFOUND),Y) 57*2ee67178SXianjun Jiao# libnl 3.2 might be found as 3.2 and 3.0 58*2ee67178SXianjun JiaoNL3FOUND = N 59*2ee67178SXianjun JiaoCFLAGS += -DCONFIG_LIBNL30 60*2ee67178SXianjun JiaoLIBS += -lnl-genl-3 61*2ee67178SXianjun JiaoNLLIBNAME = libnl-3.0 62*2ee67178SXianjun Jiaoendif 63*2ee67178SXianjun Jiao 64*2ee67178SXianjun Jiaoifeq ($(NL3FOUND),Y) 65*2ee67178SXianjun JiaoCFLAGS += -DCONFIG_LIBNL30 66*2ee67178SXianjun JiaoLIBS += -lnl-genl 67*2ee67178SXianjun JiaoNLLIBNAME = libnl-3.0 68*2ee67178SXianjun Jiaoendif 69*2ee67178SXianjun Jiao 70*2ee67178SXianjun Jiao# nl-3.1 has a broken libnl-gnl-3.1.pc file 71*2ee67178SXianjun Jiao# as show by pkg-config --debug --libs --cflags --exact-version=3.1 libnl-genl-3.1;echo $? 72*2ee67178SXianjun Jiaoifeq ($(NL31FOUND),Y) 73*2ee67178SXianjun JiaoCFLAGS += -DCONFIG_LIBNL30 74*2ee67178SXianjun JiaoLIBS += -lnl-genl 75*2ee67178SXianjun JiaoNLLIBNAME = libnl-3.1 76*2ee67178SXianjun Jiaoendif 77*2ee67178SXianjun Jiao 78*2ee67178SXianjun Jiaoifeq ($(NLLIBNAME),) 79*2ee67178SXianjun Jiao$(error Cannot find development files for any supported version of libnl) 80*2ee67178SXianjun Jiaoendif 81*2ee67178SXianjun Jiao 82*2ee67178SXianjun JiaoLIBS += $(shell $(PKG_CONFIG) --libs $(NLLIBNAME)) 83*2ee67178SXianjun JiaoCFLAGS += $(shell $(PKG_CONFIG) --cflags $(NLLIBNAME)) 84*2ee67178SXianjun Jiaoendif # NO_PKG_CONFIG 85*2ee67178SXianjun Jiao 86*2ee67178SXianjun Jiaoifeq ($(V),1) 87*2ee67178SXianjun JiaoQ= 88*2ee67178SXianjun JiaoNQ=true 89*2ee67178SXianjun Jiaoelse 90*2ee67178SXianjun JiaoQ=@ 91*2ee67178SXianjun JiaoNQ=echo 92*2ee67178SXianjun Jiaoendif 93*2ee67178SXianjun Jiao 94*2ee67178SXianjun Jiaoall: $(ALL) 95*2ee67178SXianjun Jiao 96*2ee67178SXianjun JiaoVERSION_OBJS := $(filter-out version.o, $(OBJS)) 97*2ee67178SXianjun Jiao 98*2ee67178SXianjun Jiaoversion.c: version.sh $(patsubst %.o,%.c,$(VERSION_OBJS)) nl80211.h sdrctl.h Makefile \ 99*2ee67178SXianjun Jiao $(wildcard .git/index .git/refs/tags) 100*2ee67178SXianjun Jiao @$(NQ) ' GEN ' $@ 101*2ee67178SXianjun Jiao $(Q)./version.sh $@ 102*2ee67178SXianjun Jiao 103*2ee67178SXianjun Jiao%.o: %.c sdrctl.h nl80211.h 104*2ee67178SXianjun Jiao @$(NQ) ' CC ' $@ 105*2ee67178SXianjun Jiao $(Q)$(CC) $(CFLAGS) -c -o $@ $< 106*2ee67178SXianjun Jiao 107*2ee67178SXianjun Jiaosdrctl: $(OBJS) 108*2ee67178SXianjun Jiao @$(NQ) ' CC ' sdrctl 109*2ee67178SXianjun Jiao $(Q)$(CC) $(LDFLAGS) $(OBJS) $(LIBS) -o sdrctl 110*2ee67178SXianjun Jiao 111*2ee67178SXianjun Jiaocheck: 112*2ee67178SXianjun Jiao $(Q)$(MAKE) all CC="REAL_CC=$(CC) CHECK=\"sparse -Wall\" cgcc" 113*2ee67178SXianjun Jiao 114*2ee67178SXianjun Jiao%.gz: % 115*2ee67178SXianjun Jiao @$(NQ) ' GZIP' $< 116*2ee67178SXianjun Jiao $(Q)gzip < $< > $@ 117*2ee67178SXianjun Jiao 118*2ee67178SXianjun Jiaoinstall: sdrctl sdrctl.8.gz 119*2ee67178SXianjun Jiao @$(NQ) ' INST sdrctl' 120*2ee67178SXianjun Jiao $(Q)$(MKDIR) $(DESTDIR)$(SBINDIR) 121*2ee67178SXianjun Jiao $(Q)$(INSTALL) -m 755 sdrctl $(DESTDIR)$(SBINDIR) 122*2ee67178SXianjun Jiao @$(NQ) ' INST sdrctl.8' 123*2ee67178SXianjun Jiao $(Q)$(MKDIR) $(DESTDIR)$(MANDIR)/man8/ 124*2ee67178SXianjun Jiao $(Q)$(INSTALL) -m 644 sdrctl.8.gz $(DESTDIR)$(MANDIR)/man8/ 125*2ee67178SXianjun Jiao 126*2ee67178SXianjun Jiaoclean: 127*2ee67178SXianjun Jiao $(Q)rm -f sdrctl *.o *~ *.gz version.c *-stamp 128