2 # OLSR ad-hoc routing table management protocol
3 # Copyright (C) 2003-2004 Andreas Tønnesen (andreto@ifi.uio.no)
5 # This file is part of the olsr.org OLSR daemon.
7 # olsr.org is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2 of the License, or
10 # (at your option) any later version.
12 # olsr.org is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with olsr.org; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 # $Id: Makefile,v 1.21 2004/11/10 11:12:50 kattemat Exp $
38 CFGDIR = src/cfgparser
42 DEPEND = makedepend -f $(DEPFILE)
44 DEFINES = -DUSE_LINK_QUALITY
49 SRCS = $(wildcard src/*.c) \
50 $(CFGDIR)/oparse.c $(CFGDIR)/oscan.c $(CFGDIR)/olsrd_conf.c
52 HDRS = $(wildcard src/*.h) \
53 $(CFGDIR)/oparse.h $(CFGDIR)/olsrd_conf.h
55 OBJS = $(patsubst %.c,%.o,$(wildcard src/*.c)) \
56 $(CFGDIR)/oparse.o $(CFGDIR)/oscan.o $(CFGDIR)/olsrd_conf.o
60 SRCS += $(wildcard src/linux/*.c) $(wildcard src/unix/*.c)
62 HDRS += $(wildcard src/linux/*.h) $(wildcard src/unix/*.h)
64 OBJS += $(patsubst %.c,%.o,$(wildcard src/linux/*.c)) \
65 $(patsubst %.c,%.o,$(wildcard src/unix/*.c))
69 CFLAGS ?= -Wall -Wmissing-prototypes -Wstrict-prototypes \
70 -O2 -g #-pg -DDEBUG #-march=i686
72 LIBS = -lpthread -lm -ldl
75 $(DEPFILE): $(SRCS) $(HDRS)
76 @echo '# olsrd dependency file. AUTOGENERATED' > $(DEPFILE)
77 $(DEPEND) -Y $(INCLUDES) $(DEFINES) $(SRCS) >/dev/null 2>&1
80 $(CC) -o bin/$@ $(OBJS) $(LIBS)
85 SRCS += $(wildcard src/bsd/*.c) $(wildcard src/unix/*.c)
87 HDRS += $(wildcard src/bsd/*.h) $(wildcard src/unix/*.h)
89 OBJS += $(patsubst %.c,%.o,$(wildcard src/bsd/*.c)) \
90 $(patsubst %.c,%.o,$(wildcard src/unix/*.c))
92 CFLAGS ?= -Wall -Wmissing-prototypes -Wstrict-prototypes \
97 $(DEPFILE): $(SRCS) $(HDRS)
98 @echo '# olsrd dependency file. AUTOGENERATED' > $(DEPFILE)
99 $(DEPEND) $(INCLUDES) $(DEFINES) $(SRCS)
102 $(CC) -o bin/$@ $(OBJS) $(LIBS)
107 SRCS += $(wildcard src/win32/*.c)
109 HDRS += $(wildcard src/win32/*.h)
111 OBJS += $(patsubst %.c,%.o,$(wildcard src/win32/*.c))
113 INCLUDES += -Isrc/win32
117 CFLAGS ?= -Wall -Wmissing-prototypes \
118 -Wstrict-prototypes -mno-cygwin -O2 -g
120 LIBS = -mno-cygwin -lws2_32 -liphlpapi
122 $(DEPFILE): $(SRCS) $(HDRS)
123 @echo '# olsrd dependency file. AUTOGENERATED' > $(DEPFILE)
124 $(DEPEND) $(INCLUDES) $(DEFINES) $(SRCS) >/dev/null 2>&1
127 $(CC) -o bin/$@ $(OBJS) $(LIBS)
132 SRCS += $(wildcard src/bsd/*.c) $(wildcard src/unix/*.c)
134 HDRS += $(wildcard src/bsd/*.h) $(wildcard src/unix/*.h)
136 OBJS += $(patsubst %.c,%.o,$(wildcard src/bsd/*.c)) \
137 $(patsubst %.c,%.o,$(wildcard src/unix/*.c))
139 DEFINES += -D__MacOSX__
141 CFLAGS ?= -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -g
145 $(DEPFILE): $(SRCS) $(HDRS)
146 @echo '# olsrd dependency file. AUTOGENERATED' > $(DEPFILE)
147 $(DEPEND) $(INCLUDES) $(DEFINES) $(SRCS)
150 $(CC) -o bin/$@ $(OBJS) $(LIBS)
156 @echo '***** olsr.org olsr daemon Make ****'
157 @echo ' You must provide a valid target OS '
158 @echo ' by setting the OS variable! Valid '
159 @echo ' target OSes are: '
160 @echo ' --------------------------------- '
161 @echo ' linux - GNU/Linux '
162 @echo ' win32 - Windows NT family(2k/XP) '
163 @echo ' fbsd - FreeBSD '
164 @echo ' osx - Mac OS X '
165 @echo ' --------------------------------- '
166 @echo ' Example - build for windows: '
167 @echo ' make OS=win32 '
168 @echo ' If you are developing olsrd code, '
169 @echo ' exporting the OS variable might '
170 @echo ' be a good idea :-) Have fun! '
171 @echo '************************************'
178 override CFLAGS += $(INCLUDES) $(DEFINES)
183 $(CFGDIR)/oparse.c: \
184 $(CFGDIR)/oparse.y $(CFGDIR)/olsrd_conf.h
185 $(BISON) -d -o$(CFGDIR)/oparse.c $(CFGDIR)/oparse.y
187 $(CFGDIR)/oparse.h: \
191 $(CFGDIR)/oscan.lex $(CFGDIR)/oparse.h $(CFGDIR)/olsrd_conf.h
192 $(FLEX) -o$(CFGDIR)/oscan.c $(CFGDIR)/oscan.lex
201 $(MAKE) -C $$i clean; \
210 rm -f $(OBJS) $(DEPFILE) $(DEPBAK)
211 rm -f $(CFGDIR)/oscan.c $(CFGDIR)/oparse.h $(CFGDIR)/oparse.c
212 rm -f bin/olsrd bin/olsrd.exe
213 rm -f src/*~ src/linux/*~ src/unix/*~ src/win32/*~
214 rm -f src/bsd/*~ src/cfgparser/*~
218 $(MAKE) -C $$i LIBDIR=$(PREFIX)/usr/lib install; \
223 install -D -m 755 bin/olsrd $(PREFIX)/usr/sbin/olsrd
226 @echo olsrd uses the configfile $(PREFIX)/etc/olsr.conf
227 @echo a default configfile. A sample configfile
228 @echo can be installed
229 mkdir -p $(PREFIX)/etc
230 cp -i files/olsrd.conf.default $(PREFIX)/etc/olsrd.conf
231 @echo -------------------------------------------
232 @echo Edit $(PREFIX)/etc/olsrd.conf before running olsrd!!
233 @echo -------------------------------------------
234 mkdir -p $(PREFIX)/usr/share/man/man8/
235 cp files/olsrd.8.gz $(PREFIX)/usr/share/man/man8/olsrd.8.gz