add build_all and install_all targets to build and install both olsrd and plug-ins
[olsrd.git] / Makefile
1 # The olsr.org Optimized Link-State Routing daemon(olsrd)
2 # Copyright (c) 2004, Andreas T√łnnesen(andreto@olsr.org)
3 # All rights reserved.
4 #
5 # Redistribution and use in source and binary forms, with or without 
6 # modification, are permitted provided that the following conditions 
7 # are met:
8 #
9 # * Redistributions of source code must retain the above copyright 
10 #   notice, this list of conditions and the following disclaimer.
11 # * Redistributions in binary form must reproduce the above copyright 
12 #   notice, this list of conditions and the following disclaimer in 
13 #   the documentation and/or other materials provided with the 
14 #   distribution.
15 # * Neither the name of olsr.org, olsrd nor the names of its 
16 #   contributors may be used to endorse or promote products derived 
17 #   from this software without specific prior written permission.
18 #
19 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
20 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
21 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
22 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
23 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
24 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
25 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
26 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
27 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
28 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
29 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
30 # POSSIBILITY OF SUCH DAMAGE.
31 #
32 # Visit http://www.olsr.org for more information.
33 #
34 # If you find this software useful feel free to make a donation
35 # to the project. For more information see the website or contact
36 # the copyright holders.
37 #
38 # $Id: Makefile,v 1.63 2005/06/02 19:12:24 spoggle Exp $
39
40 TOPDIR = .
41 include Makefile.inc
42
43 LIBS +=         $(OS_LIB_DYNLOAD)
44
45 ifeq ($(OS), win32)
46 LDFLAGS +=      -Wl,--out-implib=libolsrd.a -Wl,--export-all-symbols
47 endif
48
49 VERS =          0.4.10pre
50
51 SWITCHDIR =     src/olsr_switch
52 CFGDIR =        src/cfgparser
53 CFGOBJS =       $(CFGDIR)/oscan.o $(CFGDIR)/oparse.o $(CFGDIR)/olsrd_conf.o
54 CFGDEPS =       $(wildcard $(CFGDIR)/*.c) $(wildcard $(CFGDIR)/*.h) $(CFGDIR)/oparse.y $(CFGDIR)/oscan.lex
55
56 default_target: cfgparser olsrd
57
58 olsrd:          $(OBJS) $(CFGOBJS)
59                 $(CC) $(LDFLAGS) -o $@ $(OBJS) $(CFGOBJS) $(LIBS)
60
61 cfgparser:      $(CFGDEPS)
62                 $(MAKE) -C $(CFGDIR)
63
64 switch:         
65                 $(MAKE) -C $(SWITCHDIR)
66
67 $(CFGOBJS):
68                 $(MAKE) -C $(CFGDIR)
69
70 .PHONY: help libs clean_libs libs_clean clean uberclean install_libs libs_install install_bin install_olsrd install build_all install_all
71
72 clean:
73                 -rm -f $(OBJS) $(SRCS:%.c=%.d) olsrd olsrd.exe $(TAGFILE)
74                 $(MAKE) -C $(CFGDIR) clean
75                 $(MAKE) -C $(SWITCHDIR) clean
76
77 uberclean:      clean clean_libs
78                 -rm -f src/*[od~] src/linux/*[od~] src/unix/*[od~] src/win32/*[od~]
79                 -rm -f src/bsd/*[od~] 
80                 $(MAKE) -C $(CFGDIR) uberclean
81                 $(MAKE) -C $(SWITCHDIR) clean
82
83 install: install_olsrd
84
85 install_bin:
86                 $(STRIP) $(EXENAME)
87                 mkdir -p $(SBINDIR)
88                 install -m 755 $(EXENAME) $(SBINDIR)
89
90 install_olsrd:  install_bin
91                 @echo ========= C O N F I G U R A T I O N - F I L E ============
92                 @echo olsrd uses the configfile $(INSTALL_PREFIX)/etc/olsr.conf
93                 @echo a default configfile. A sample RFC-compliance aimed
94                 @echo configfile can be installed. Note that a LQ-based configfile
95                 @echo can be found at files/olsrd.conf.default.lq
96                 @echo ==========================================================
97                 mkdir -p $(ETCDIR)
98                 -cp -i files/olsrd.conf.default.rfc $(CFGFILE)
99                 @echo -------------------------------------------
100                 @echo Edit $(CFGFILE) before running olsrd!!
101                 @echo -------------------------------------------
102                 @echo Installing manpages olsrd\(8\) and olsrd.conf\(5\)
103                 mkdir -p $(MANDIR)/man8/
104                 cp files/olsrd.8.gz $(MANDIR)/man8/olsrd.8.gz
105                 mkdir -p $(MANDIR)/man5/
106                 cp files/olsrd.conf.5.gz $(MANDIR)/man5/olsrd.conf.5.gz
107
108 tags:
109                 $(TAGCMD) -o $(TAGFILE) $(SRCS) $(HDRS) $(wildcard src/cfgparser/*.c) $(wildcard src/cfgparser/*.h)
110
111 #
112 # PLUGINS
113 #
114
115 libs: 
116                 $(MAKE) -C lib LIBDIR=$(LIBDIR)
117
118 libs_clean clean_libs:
119                 $(MAKE) -C lib LIBDIR=$(LIBDIR) clean
120
121 libs_install install_libs:
122                 $(MAKE) -C lib LIBDIR=$(LIBDIR) install
123
124 httpinfo:
125                 $(MAKE) -C lib/httpinfo clean
126                 $(MAKE) -C lib/httpinfo 
127                 $(MAKE) -C lib/httpinfo install 
128
129 tas:
130                 $(MAKE) -C lib/tas clean
131                 $(MAKE) -C lib/tas install
132
133 dot_draw:
134                 $(MAKE) -C lib/dot_draw clean
135                 $(MAKE) -C lib/dot_draw install
136
137 nameservice:
138                 $(MAKE) -C lib/nameservice clean
139                 $(MAKE) -C lib/nameservice install
140
141 dyn_gw:
142                 $(MAKE) -C lib/dyn_gw clean
143                 $(MAKE) -C lib/dyn_gw
144                 $(MAKE) -C lib/dyn_gw install
145
146 powerinfo:
147                 $(MAKE) -C lib/powerinfo clean
148                 $(MAKE) -C lib/powerinfo 
149                 $(MAKE) -C lib/powerinfo install
150
151 secure:
152                 $(MAKE) -C lib/secure clean
153                 $(MAKE) -C lib/secure
154                 $(MAKE) -C lib/secure install
155
156 build_all:      cfgparser olsrd libs
157 install_all:    install install_libs