1 # Modify as you see fit, note this is built into crda,
2 # so if you change it here you will have to change crda.c
3 REG_BIN?=/usr/lib/crda/regulatory.bin
4 REG_GIT?=git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-regdb.git
7 MANDIR ?= $(PREFIX)/share/man/
11 # Use a custom CRDA_UDEV_LEVEL when callling make install to
12 # change your desired level for the udev regulatory.rules
14 UDEV_LEVEL=$(CRDA_UDEV_LEVEL)-
15 # You can customize this if your distributions uses
16 # a different location.
17 UDEV_RULE_DIR?=/lib/udev/rules.d/
19 # Used locally to retrieve all pubkeys during build time
24 all: $(REG_BIN) crda intersect verify
26 ifeq ($(USE_OPENSSL),1)
27 CFLAGS += -DUSE_OPENSSL `pkg-config --cflags openssl`
28 LDLIBS += `pkg-config --libs openssl`
33 CFLAGS += -DUSE_GCRYPT
36 reglib.o: keys-gcrypt.c
42 NL1FOUND := $(shell pkg-config --atleast-version=1 libnl-1 && echo Y)
43 NL2FOUND := $(shell pkg-config --atleast-version=2 libnl-2.0 && echo Y)
50 CFLAGS += -DCONFIG_LIBNL20
56 $(error Cannot find development files for any supported version of libnl)
59 NLLIBS += `pkg-config --libs $(NLLIBNAME)`
60 CFLAGS += `pkg-config --cflags $(NLLIBNAME)`
71 $(NQ) ' EXIST ' $(REG_BIN)
73 $(NQ) ERROR: The file: $(REG_BIN) is missing. You need this in place in order
74 $(NQ) to build CRDA. You can get it from:
78 $(NQ) "Once cloned (no need to build) cp regulatory.bin to $(REG_BIN)"
82 keys-%.c: utils/key2pub.py $(wildcard $(PUBKEY_DIR)/*.pem)
84 $(Q)./utils/key2pub.py --$* $(wildcard $(PUBKEY_DIR)/*.pem) $@
88 $(Q)$(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
92 $(Q)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS) $(NLLIBS)
94 regdbdump: reglib.o regdbdump.o print-regdom.o
96 $(Q)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
98 intersect: reglib.o intersect.o print-regdom.o
100 $(Q)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
102 verify: $(REG_BIN) regdbdump
103 $(NQ) ' CHK $(REG_BIN)'
104 $(Q)./regdbdump $(REG_BIN) >/dev/null
110 install: crda crda.8.gz regdbdump.8.gz
111 $(NQ) ' INSTALL crda'
112 $(Q)$(MKDIR) $(DESTDIR)/sbin
113 $(Q)$(INSTALL) -m 755 -t $(DESTDIR)/$(SBINDIR) crda
114 $(NQ) ' INSTALL regdbdump'
115 $(Q)$(INSTALL) -m 755 -t $(DESTDIR)/$(SBINDIR) regdbdump
116 $(NQ) ' INSTALL $(UDEV_LEVEL)regulatory.rules'
117 $(Q)$(MKDIR) $(DESTDIR)/$(UDEV_RULE_DIR)/
118 @# This removes the old rule you may have, we were not
119 @# putting it in the right place.
120 $(Q)rm -f $(DESTDIR)/etc/udev/rules.d/regulatory.rules
121 $(Q)ln -sf regulatory.rules udev/$(UDEV_LEVEL)regulatory.rules
122 $(Q)$(INSTALL) -m 644 -t \
123 $(DESTDIR)/$(UDEV_RULE_DIR)/ \
124 udev/$(UDEV_LEVEL)regulatory.rules
125 $(NQ) ' INSTALL crda.8.gz'
126 $(Q)$(MKDIR) $(DESTDIR)$(MANDIR)/man8/
127 $(Q)$(INSTALL) -m 644 -t $(DESTDIR)/$(MANDIR)/man8/ crda.8.gz
128 $(NQ) ' INSTALL regdbdump.8.gz'
129 $(Q)$(INSTALL) -m 644 -t $(DESTDIR)/$(MANDIR)/man8/ regdbdump.8.gz
132 $(Q)rm -f crda regdbdump intersect *.o *~ *.pyc keys-*.c *.gz \
133 udev/$(UDEV_LEVEL)regulatory.rules