Added Id to makefile
[olsrd.git] / Makefile
1
2 #
3 # olsr.org makefile
4 # $Id: Makefile,v 1.9 2004/10/19 22:13:21 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       $(wildcard src/cfgparser/*.c)
23
24 HDRS= $(wildcard src/*.h) \
25       $(wildcard src/linux/*.h) \
26       $(wildcard src/cfgparser/*.h)
27
28 OBJS= $(patsubst %.c,%.o,$(wildcard src/*.c)) \
29       $(patsubst %.c,%.o,$(wildcard src/linux/*.c)) \
30       $(patsubst %.c,%.o,$(wildcard src/cfgparser/*.c))
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) $(DEPFILE)
70
71 install_libs:
72         for i in lib/*; do \
73                 $(MAKE) -C $$i LIBDIR=$(INSTALL_PREFIX)/usr/lib install; \
74         done;   
75
76
77 install_bin:
78         $(STRIP) bin/olsrd
79         install -D -m 755 bin/olsrd $(INSTALL_PREFIX)/usr/sbin/olsrd
80
81 install: install_bin
82         @echo olsrd uses the configfile $(INSTALL_PREFIX)/etc/olsr.conf
83         @echo a default configfile. A sample configfile
84         @echo can be installed
85         mkdir -p $(INSTALL_PREFIX)/etc
86         cp -i files/olsrd.conf.default $(INSTALL_PREFIX)/etc/olsrd.conf
87         @echo -------------------------------------------
88         @echo Edit $(INSTALL_PREFIX)/etc/olsrd.conf before running olsrd!!
89         @echo -------------------------------------------
90         mkdir -p $(INSTALL_PREFIX)/usr/share/man/man8/
91         cp files/olsrd.8.gz $(INSTALL_PREFIX)/usr/share/man/man8/olsrd.8.gz
92
93
94 sinclude $(DEPFILE)