another round of Makefile cleanup
[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.59 2005/05/25 13:50:22 br1 Exp $
39
40 TOPDIR = .
41 include Makefile.inc
42
43 VERS =          0.4.10pre
44
45 CFGDIR =        src/cfgparser
46 CFGOBJS =       $(CFGDIR)/oscan.o $(CFGDIR)/oparse.o $(CFGDIR)/olsrd_conf.o
47 CFGDEPS =       $(wildcard $(CFGDIR)/*.c) $(wildcard $(CFGDIR)/*.h) $(CFGDIR)/oparse.y $(CFGDIR)/oscan.lex
48
49 default_target: cfgparser olsrd
50
51 olsrd:          $(OBJS) $(CFGOBJS)
52                 $(CC) -o $@ $(OBJS) $(CFGOBJS) $(LIBS) 
53
54 cfgparser:      $(CFGDEPS)
55                 $(MAKE) -C $(CFGDIR)
56
57 $(CFGOBJS):
58                 $(MAKE) -C $(CFGDIR)
59
60 .PHONY: help libs clean_libs libs_clean clean uberclean install_libs libs_install install_bin install_olsrd install
61
62 clean:
63                 -rm -f $(OBJS) $(SRCS:%.c=%.d) olsrd olsrd.exe $(TAGFILE)
64                 $(MAKE) -C src/cfgparser clean
65
66 uberclean:      clean clean_libs
67                 -rm -f src/*[od~] src/linux/*[od~] src/unix/*[od~] src/win32/*[od~]
68                 -rm -f src/bsd/*[od~] 
69                 $(MAKE) -C src/cfgparser uberclean
70
71 install: install_olsrd
72
73 install_bin:
74                 $(STRIP) $(EXENAME)
75                 mkdir -p $(SBINDIR)
76                 install -m 755 $(EXENAME) $(SBINDIR)
77
78 install_olsrd:  install_bin
79                 @echo ========= C O N F I G U R A T I O N - F I L E ============
80                 @echo olsrd uses the configfile $(INSTALL_PREFIX)/etc/olsr.conf
81                 @echo a default configfile. A sample RFC-compliance aimed
82                 @echo configfile can be installed. Note that a LQ-based configfile
83                 @echo can be found at files/olsrd.conf.default.lq
84                 @echo ==========================================================
85                 mkdir -p $(ETCDIR)
86                 -cp -i files/olsrd.conf.default.rfc $(CFGFILE)
87                 @echo -------------------------------------------
88                 @echo Edit $(CFGFILE) before running olsrd!!
89                 @echo -------------------------------------------
90                 @echo Installing manpages olsrd\(8\) and olsrd.conf\(5\)
91                 mkdir -p $(MANDIR)/man8/
92                 cp files/olsrd.8.gz $(MANDIR)/man8/olsrd.8.gz
93                 mkdir -p $(MANDIR)/man5/
94                 cp files/olsrd.conf.5.gz $(MANDIR)/man5/olsrd.conf.5.gz
95
96 tags:
97                 $(TAGCMD) -o $(TAGFILE) $(SRCS) $(HDRS) $(wildcard src/cfgparser/*.c) $(wildcard src/cfgparser/*.h)
98
99 #
100 # PLUGINS
101 #
102
103 libs: 
104                 $(MAKE) -C lib LIBDIR=$(LIBDIR)
105
106 libs_clean clean_libs:
107                 $(MAKE) -C lib LIBDIR=$(LIBDIR) clean
108
109 libs_install install_libs:
110                 $(MAKE) -C lib LIBDIR=$(LIBDIR) install
111
112 httpinfo:
113                 $(MAKE) -C lib/httpinfo clean
114                 $(MAKE) -C lib/httpinfo 
115                 $(MAKE) -C lib/httpinfo install 
116
117 tas:
118                 $(MAKE) -C lib/tas clean
119                 $(MAKE) -C lib/tas install
120
121 dot_draw:
122                 $(MAKE) -C lib/dot_draw clean
123                 $(MAKE) -C lib/dot_draw install
124
125 nameservice:
126                 $(MAKE) -C lib/nameservice clean
127                 $(MAKE) -C lib/nameservice install
128
129 dyn_gw:
130                 $(MAKE) -C lib/dyn_gw clean
131                 $(MAKE) -C lib/dyn_gw
132                 $(MAKE) -C lib/dyn_gw install
133
134 powerinfo:
135                 $(MAKE) -C lib/powerinfo clean
136                 $(MAKE) -C lib/powerinfo 
137                 $(MAKE) -C lib/powerinfo install
138
139 secure:
140                 $(MAKE) -C lib/secure clean
141                 $(MAKE) -C lib/secure
142                 $(MAKE) -C lib/secure install