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