a54bfae8fa8bd8290847d698df2c2c7d4ac6a59b
[olsrd.git] / Makefile
1
2 #
3 # olsr.org makefile
4 # $Id: Makefile,v 1.11 2004/11/04 20:25:05 kattemat Exp $
5 #
6
7 CC ?= gcc
8 MAKE ?= make
9
10 CFLAGS ?= -Isrc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -g #-pg -DDEBUG #-march=i686
11 LIBS = -lpthread -lm -ldl
12 INSTALL_PREFIX ?=
13 STRIP ?= strip
14 BISON ?= bison
15 FLEX ?= flex
16 CFGDIR = src/cfgparser
17
18 DEPFILE = .linux-depend
19 DEPEND= makedepend -Dlinux -Y -f $(DEPFILE) -- $(CFLAGS)
20
21 SRCS= $(wildcard src/*.c) \
22       $(wildcard src/linux/*.c) \
23       $(CFGDIR)/oparse.c $(CFGDIR)/oscan.c $(CFGDIR)/olsrd_conf.c
24
25 HDRS= $(wildcard src/*.h) \
26       $(wildcard src/linux/*.h) \
27       $(CFGDIR)/oparse.h $(CFGDIR)/olsrd_conf.h
28
29 OBJS= $(patsubst %.c,%.o,$(wildcard src/*.c)) \
30       $(patsubst %.c,%.o,$(wildcard src/linux/*.c)) \
31       $(CFGDIR)/oparse.o $(CFGDIR)/oscan.o $(CFGDIR)/olsrd_conf.o
32
33
34 all:    olsrd
35
36 olsrd:  $(OBJS)
37         $(CC) $(LIBS) -o bin/$@ $(OBJS)
38
39 depend:
40         rm -f $(DEPFILE)
41         $(MAKE) $(DEPFILE)
42
43
44 $(DEPFILE):
45         @echo '# olsrd dependency file. AUTOGENERATED' > $(DEPFILE)
46         $(DEPEND) -- $(SRCS) >&/dev/null
47
48
49 $(CFGDIR)/oparse.c: $(CFGDIR)/oparse.y $(CFGDIR)/olsrd_conf.h
50         $(BISON) -d -o$(CFGDIR)/oparse.c $(CFGDIR)/oparse.y
51
52 $(CFGDIR)/oparse.h: $(CFGDIR)/oparse.c
53
54
55 $(CFGDIR)/oscan.c: $(CFGDIR)/oscan.lex $(CFGDIR)/oparse.h $(CFGDIR)/olsrd_conf.h
56         $(FLEX) -o$(CFGDIR)/oscan.c $(CFGDIR)/oscan.lex
57
58 libs: 
59         for i in lib/*; do \
60                 $(MAKE) -C $$i; \
61         done; 
62
63 clean_libs: 
64         for i in lib/*; do \
65                 $(MAKE) -C $$i clean; \
66         done; 
67
68 .PHONY: clean
69 clean:
70         rm -f $(OBJS)
71
72 uberclean:
73         rm -f $(OBJS) $(DEPFILE) 
74         rm -f $(CFGDIR)/oscan.c $(CFGDIR)/oparse.h $(CFGDIR)/oparse.c
75         rm -f bin/olsrd
76         rm -f src/*~ src/linux/*~ src/cfgparser/*~
77
78 install_libs:
79         for i in lib/*; do \
80                 $(MAKE) -C $$i LIBDIR=$(INSTALL_PREFIX)/usr/lib install; \
81         done;   
82
83
84 install_bin:
85         $(STRIP) bin/olsrd
86         install -D -m 755 bin/olsrd $(INSTALL_PREFIX)/usr/sbin/olsrd
87
88 install: install_bin
89         @echo olsrd uses the configfile $(INSTALL_PREFIX)/etc/olsr.conf
90         @echo a default configfile. A sample configfile
91         @echo can be installed
92         mkdir -p $(INSTALL_PREFIX)/etc
93         cp -i files/olsrd.conf.default $(INSTALL_PREFIX)/etc/olsrd.conf
94         @echo -------------------------------------------
95         @echo Edit $(INSTALL_PREFIX)/etc/olsrd.conf before running olsrd!!
96         @echo -------------------------------------------
97         mkdir -p $(INSTALL_PREFIX)/usr/share/man/man8/
98         cp files/olsrd.8.gz $(INSTALL_PREFIX)/usr/share/man/man8/olsrd.8.gz
99
100
101 sinclude $(DEPFILE)