Make it possible to switch gcrypt/openssl via knob
[platform/upstream/crda.git] / Makefile
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
5 # Used locally to retrieve all pubkeys during build time
6 PUBKEY_DIR=pubkeys
7
8 CFLAGS += -Wall -g
9
10 all: crda intersect
11         $(Q)$(MAKE) --no-print-directory -f Makefile verify
12
13 ifeq ($(USE_OPENSSL),1)
14 CFLAGS += -DUSE_OPENSSL `pkg-config --cflags openssl`
15 LDLIBS += `pkg-config --libs openssl`
16
17 reglib.o: keys-ssl.c
18
19 else
20 CFLAGS += -DUSE_GCRYPT
21 LDLIBS += -lgcrypt
22
23 reglib.o: keys-gcrypt.c
24
25 endif
26 MKDIR ?= mkdir -p
27 INSTALL ?= install
28
29 ifeq ($(V),1)
30 Q=
31 NQ=@true
32 else
33 Q=@
34 NQ=@echo
35 endif
36
37 keys-%.c: utils/key2pub.py $(PUBKEY_DIR)/$(wildcard *.pem)
38         $(NQ) '  GEN ' $@
39         $(Q)./utils/key2pub.py --$* $(PUBKEY_DIR)/*.pem > $@
40
41 %.o: %.c regdb.h
42         $(NQ) '  CC  ' $@
43         $(Q)$(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
44
45 crda: reglib.o crda.o
46         $(NQ) '  LD  ' $@
47         $(Q)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ reglib.o crda.o `pkg-config --libs libnl-1` $(LDLIBS)
48
49 regdbdump: reglib.o regdbdump.o
50         $(NQ) '  LD  ' $@
51         $(Q)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ reglib.o regdbdump.o $(LDLIBS)
52
53 intersect: reglib.o intersect.o
54         $(NQ) '  LD  ' $@
55         $(Q)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ reglib.o intersect.o $(LDLIBS)
56
57 verify: $(REG_BIN) regdbdump
58         $(NQ) '  CHK  $(REG_BIN)'
59         $(Q)./regdbdump $(REG_BIN) >/dev/null
60
61 install: crda
62         $(NQ) '  INSTALL  crda'
63         $(Q)$(MKDIR) $(DESTDIR)/sbin
64         $(Q)$(INSTALL) -m 755 -t $(DESTDIR)/sbin/ crda
65         $(NQ) '  INSTALL  regdbdump'
66         $(Q)$(INSTALL) -m 755 -t $(DESTDIR)/sbin/ regdbdump
67         $(NQ) '  INSTALL  regulatory.rules'
68         $(Q)$(MKDIR) $(DESTDIR)/etc/udev/rules.d
69         $(Q)$(INSTALL) -m 644 -t $(DESTDIR)/etc/udev/rules.d/ udev/regulatory.rules
70
71 clean:
72         $(Q)rm -f crda regdbdump intersect *.o *~ *.pyc keys-*.c