Consolidate db signature validation in one function.
[platform/upstream/crda.git] / Makefile
1 ifeq ($(origin $(KLIB)), undefined)
2 KLIB := /lib/modules/$(shell uname -r)
3 endif
4 KLIB_BUILD ?= $(KLIB)/build
5
6 CFLAGS += -Wall -g3
7 #CFLAGS += -DUSE_OPENSSL
8 #LDFLAGS += -lssl
9 ifneq ($(COMPAT_TREE),)
10 CFLAGS += -I$(COMPAT_TREE)/include/
11 endif
12 CFLAGS += -I$(KLIB_BUILD)/include -DUSE_GCRYPT
13 LDFLAGS += -lgcrypt
14
15 MKDIR ?= mkdir -p
16 INSTALL ?= install
17
18 CRDA_LIB = "/usr/lib/crda/"
19
20 all: regulatory.bin warn crda
21         @$(MAKE) --no-print-directory -f Makefile verify
22
23 regulatory.bin: db2bin.py key.priv.pem db.txt dbparse.py
24         @./db2bin.py regulatory.bin db.txt key.priv.pem
25
26 crda: keys-ssl.c keys-gcrypt.c regdb.h regdb.o crda.o
27         $(CC) $(CFLAGS) $(LDFLAGS) -lnl -o $@ regdb.o crda.o
28
29 clean:
30         @rm -f regulatory.bin crda dump *.o *~ *.pyc keys-*.c
31         @if test -f key.priv.pem && diff -qNs test-key key.priv.pem >/dev/null ; then \
32         rm -f key.priv.pem;\
33         fi
34
35 warn:
36         @if test ! -f key.priv.pem || diff -qNs test-key key.priv.pem >/dev/null ; then \
37         echo '**************************************';\
38         echo '**  WARNING!                        **';\
39         echo '**  No key found, using TEST key!   **';\
40         echo '**************************************';\
41         fi
42
43 key.priv.pem:
44         cp test-key key.priv.pem
45
46 generate_key:
47         openssl genrsa -out key.priv.pem 2048
48
49 dump: keys-ssl.c keys-gcrypt.c regdb.h regdb.o dump.o
50         $(CC) $(CFLAGS) $(LDFLAGS) -o $@ regdb.o dump.o
51
52 keys-ssl.c: key2pub.py $(wildcard *.pem)
53         @./key2pub.py --ssl *.pem > keys-ssl.c
54
55 keys-gcrypt.c: key2pub.py $(wildcard *.pem)
56         @./key2pub.py --gcrypt *.pem > keys-gcrypt.c
57
58 verify: dump
59         @./dump regulatory.bin >/dev/null
60
61 install: regulatory.bin crda
62         $(MKDIR) $(DESTDIR)$(CRDA_LIB)
63         $(INSTALL) -m 644 -t $(DESTDIR)$(CRDA_LIB) regulatory.bin
64         $(INSTALL) -m 755 -t $(DESTDIR)/sbin/ crda
65         $(INSTALL) -m 644 -t $(DESTDIR)/etc/udev/rules.d/ regulatory.rules