Allow CRDA to use new libnl2
[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 verify
11
12 ifeq ($(USE_OPENSSL),1)
13 CFLAGS += -DUSE_OPENSSL `pkg-config --cflags openssl`
14 LDLIBS += `pkg-config --libs openssl`
15
16 reglib.o: keys-ssl.c
17
18 else
19 CFLAGS += -DUSE_GCRYPT
20 LDLIBS += -lgcrypt
21
22 reglib.o: keys-gcrypt.c
23
24 endif
25 MKDIR ?= mkdir -p
26 INSTALL ?= install
27
28 NL1FOUND := $(shell pkg-config --atleast-version=1 libnl-1 && echo Y)
29 NL2FOUND := $(shell pkg-config --atleast-version=2 libnl-2.0 && echo Y)
30
31 ifeq ($(NL1FOUND),Y)
32 NLLIBNAME = libnl-1
33 endif
34
35 ifeq ($(NL2FOUND),Y)
36 CFLAGS += -DCONFIG_LIBNL20
37 LIBS += -lnl-genl
38 NLLIBNAME = libnl-2.0
39 endif
40
41 LIBS += `pkg-config --libs $(NLLIBNAME)`
42 CFLAGS += `pkg-config --cflags $(NLLIBNAME)`
43
44 ifeq ($(V),1)
45 Q=
46 NQ=@true
47 else
48 Q=@
49 NQ=@echo
50 endif
51
52 keys-%.c: utils/key2pub.py $(wildcard $(PUBKEY_DIR)/*.pem)
53         $(NQ) '  GEN ' $@
54         $(Q)./utils/key2pub.py --$* $(wildcard $(PUBKEY_DIR)/*.pem) > $@
55
56 %.o: %.c regdb.h
57         $(NQ) '  CC  ' $@
58         $(Q)$(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
59
60 crda: reglib.o crda.o
61         $(NQ) '  LD  ' $@
62         $(Q)$(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) -o $@ $^ $(LDLIBS)
63
64 regdbdump: reglib.o regdbdump.o print-regdom.o
65         $(NQ) '  LD  ' $@
66         $(Q)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
67
68 intersect: reglib.o intersect.o print-regdom.o
69         $(NQ) '  LD  ' $@
70         $(Q)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
71
72 verify: $(REG_BIN) regdbdump
73         $(NQ) '  CHK  $(REG_BIN)'
74         $(Q)./regdbdump $(REG_BIN) >/dev/null
75
76 install: crda
77         $(NQ) '  INSTALL  crda'
78         $(Q)$(MKDIR) $(DESTDIR)/sbin
79         $(Q)$(INSTALL) -m 755 -t $(DESTDIR)/sbin/ crda
80         $(NQ) '  INSTALL  regdbdump'
81         $(Q)$(INSTALL) -m 755 -t $(DESTDIR)/sbin/ regdbdump
82         $(NQ) '  INSTALL  regulatory.rules'
83         $(Q)$(MKDIR) $(DESTDIR)/etc/udev/rules.d
84         $(Q)$(INSTALL) -m 644 -t $(DESTDIR)/etc/udev/rules.d/ udev/regulatory.rules
85
86 clean:
87         $(Q)rm -f crda regdbdump intersect *.o *~ *.pyc keys-*.c