Makefile improvements.
[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 ifneq ($(COMPAT_TREE),)
7 CFLAGS += -I$(COMPAT_TREE)/include/
8 endif
9
10 CRDA_LIB := "/usr/lib/crda/"
11
12 CFLAGS += -Wall -g -I$(KLIB_BUILD)/include
13 #CFLAGS += -DUSE_OPENSSL `pkg-config --cflags openssl`
14 #LDFLAGS += `pkg-config --libs openssl`
15 CFLAGS += -DUSE_GCRYPT
16 LDFLAGS += -lgcrypt
17
18 MKDIR ?= mkdir -p
19 INSTALL ?= install
20
21 ifeq ($(V),1)
22 Q=
23 NQ=@true
24 else
25 Q=@
26 NQ=@echo
27 endif
28
29 all: regulatory.bin warn crda
30         $(Q)$(MAKE) --no-print-directory -f Makefile verify
31
32 regulatory.bin: dbparse.py db2bin.py key.priv.pem db.txt
33         $(NQ) '  GEN ' $@
34         $(Q)./db2bin.py $@ db.txt key.priv.pem
35
36 keys-%.c: key2pub.py $(wildcard *.pem)
37         $(NQ) '  GEN ' $@
38         $(Q)./key2pub.py --$* *.pem > $@
39
40 %.o: %.c regdb.h
41         $(NQ) '  CC  ' $@
42         $(Q)$(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
43
44 crda: keys-ssl.c keys-gcrypt.c regdb.o crda.o
45         $(NQ) '  LD  ' $@
46         $(Q)$(CC) $(CFLAGS) $(LDFLAGS) `pkg-config --libs libnl-1` -o $@ regdb.o crda.o
47
48 warn:
49         @if test ! -f key.priv.pem || diff -qNs test-key key.priv.pem >/dev/null ; then \
50         echo '**************************************';\
51         echo '**  WARNING!                        **';\
52         echo '**  No key found, using TEST key!   **';\
53         echo '**************************************';\
54         fi
55
56 key.priv.pem:
57         $(Q)cp test-key key.priv.pem
58
59 generate_key:
60         $(Q)openssl genrsa -out key.priv.pem 2048
61
62 dump: keys-ssl.c keys-gcrypt.c regdb.o dump.o
63         $(NQ) '  LD  ' $@
64         $(Q)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ regdb.o dump.o
65
66 verify: regulatory.bin dump
67         $(NQ) '  CHK  regulatory.bin'
68         $(Q)./dump regulatory.bin >/dev/null
69
70 install: regulatory.bin crda
71         $(NQ) '  INSTALL  crda'
72         $(Q)$(MKDIR) $(DESTDIR)/sbin
73         $(Q)$(INSTALL) -m 755 -t $(DESTDIR)/sbin/ crda
74         $(NQ) '  INSTALL  regulatory.bin'
75         $(Q)$(MKDIR) $(DESTDIR)$(CRDA_LIB)
76         $(Q)$(INSTALL) -m 644 -t $(DESTDIR)$(CRDA_LIB) regulatory.bin
77         $(NQ) '  INSTALL  regulatory.rules'
78         $(Q)$(MKDIR) $(DESTDIR)/etc/udev/rules.d
79         $(Q)$(INSTALL) -m 644 -t $(DESTDIR)/etc/udev/rules.d/ regulatory.rules
80
81 clean:
82         $(Q)rm -f regulatory.bin crda dump *.o *~ *.pyc keys-*.c
83         $(Q)if test -f key.priv.pem && diff -qNs test-key key.priv.pem >/dev/null ; then \
84                 rm -f key.priv.pem;\
85         fi