85abfbe39e047e87bb61aebda647920d30202985
[olsrd.git] / src / cfgparser / Makefile
1
2 # The olsr.org Optimized Link-State Routing daemon(olsrd)
3 # Copyright (c) 2004, Andreas T√łnnesen(andreto@olsr.org)
4 # All rights reserved.
5 #
6 # Redistribution and use in source and binary forms, with or without 
7 # modification, are permitted provided that the following conditions 
8 # are met:
9 #
10 # * Redistributions of source code must retain the above copyright 
11 #   notice, this list of conditions and the following disclaimer.
12 # * Redistributions in binary form must reproduce the above copyright 
13 #   notice, this list of conditions and the following disclaimer in 
14 #   the documentation and/or other materials provided with the 
15 #   distribution.
16 # * Neither the name of olsr.org, olsrd nor the names of its 
17 #   contributors may be used to endorse or promote products derived 
18 #   from this software without specific prior written permission.
19 #
20 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
21 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
22 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
23 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
24 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
25 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
26 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
27 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
28 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
29 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
30 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
31 # POSSIBILITY OF SUCH DAMAGE.
32 #
33 # Visit http://www.olsr.org for more information.
34 #
35 # If you find this software useful feel free to make a donation
36 # to the project. For more information see the website or contact
37 # the copyright holders.
38 #
39 # $Id: Makefile,v 1.18 2005/03/21 02:17:36 tlopatic Exp $
40
41 CC ?=           gcc
42 BISON ?=        bison
43 FLEX ?=         flex
44 CFLAGS ?=       -Wall -Wmissing-prototypes -Wstrict-prototypes -g 
45 LIBDIR ?=       $(INSTALL_PREFIX)/usr/lib
46 DEPFILE =       .depend
47 INCLUDES =      -I..
48 SRCS =          olsrd_conf.c  oparse.c  oscan.c cfgfile_gen.c
49 HDRS =          olsrd_conf.h  oparse.h
50 PIPETONULL =
51 DEPFLAGS =
52
53 ifeq ($(OS), Windows_NT)
54 OS =            win32
55 endif
56
57 ifeq ($(OS), linux)
58 PIPETONULL =    >/dev/null 2>&1
59 DEPFLAGS +=     -Dlinux -Y
60 endif
61
62 ifeq ($(OS), fbsd)
63 DEPFLAGS +=     -D__FreeBSD__
64 endif
65
66 ifeq ($(OS), nbsd)
67 DEPFLAGS +=     -D__NetBSD__
68 endif
69
70 ifeq ($(OS), osx)
71 DEPFLAGS +=     -D__MacOSX__
72 endif
73
74 ifeq ($(OS), win32)
75
76 LIBNAME ?=      olsrd_cfgparser.dll
77 BINNAME ?=      olsrd_cfgparser.exe
78
79 PORT_CFLAGS =   -mno-cygwin -I../win32 -DWIN32_STDIO_HACK
80 PORT_LDFLAGS =  -mno-cygwin
81 PORT_OBJS =     ../win32/compat.o
82 PORT_LIBS =     -lws2_32
83 DEPFLAGS +=     -DWIN32_STDIO_HACK -DWIN32
84 INCLUDES +=     ../win32
85
86 else
87 ifeq ($(OS), wince)
88
89 LIBNAME ?=
90 BINNAME ?=
91
92 PORT_CFLAGS =   -I../win32 -I../win32/ce
93 PORT_LDFLAGS =
94 PORT_OBJS =
95 PORT_LIBS =
96 DEPFLAGS +=     -DWIN32 -DWINCE
97 INCLUDES +=     ../win32 ../win32/ce
98
99 else
100
101 LIBNAME ?=      olsrd_cfgparser.so.0.1
102 BINNAME ?=      olsrd_cfgparser
103
104 PORT_CFLAGS =   -fPIC
105 PORT_LDFLAGS =  -Wl,--version-script=version-script.txt
106 PORT_OBJS =
107 PORT_LIBS =     -lm -lc
108
109 endif
110 endif
111
112
113 ifdef MAKELIB
114
115 LDFLAGS +=      -shared -Wl,-soname,$(LIBNAME)
116 CFLAGS +=       -DMAKELIB
117 NAME =          $(LIBNAME)
118
119 DEPFLAGS +=     -DMAKELIB 
120
121 else 
122 ifdef MAKEBIN
123
124 CFLAGS +=       -DMAKEBIN 
125 NAME =          $(BINNAME)
126
127 DEPFLAGS +=     -DMAKEBIN
128
129 endif
130 endif
131
132 MAKEDEPEND =    makedepend -f $(DEPFILE) $(DEPFLAGS) $(INCLUDES) $(SRCS) $(PIPETONULL)
133
134 OBJS =          olsrd_conf.o oparse.o oscan.o cfgfile_gen.o $(PORT_OBJS)
135 LIBS +=         $(PORT_LIBS)
136 CFLAGS +=       -I.. $(PORT_CFLAGS)
137 LDFLAGS +=      $(PORT_LDFLAGS)
138
139
140 all:            $(OBJS) $(NAME)
141
142 $(DEPFILE):     $(SRCS) $(HDRS)
143 ifdef MAKEDEPEND
144                 @echo '# olsrd dependency file. AUTOGENERATED' > $(DEPFILE)
145                 $(MAKEDEPEND)
146 endif
147
148 $(NAME):        $(OBJS)
149                 $(CC) $(LDFLAGS) -o $(NAME) $(OBJS) $(LIBS)
150
151 oscan.c:        oscan.lex
152                 $(FLEX) -ooscan.c oscan.lex
153
154 oparse.c:       oparse.y olsrd_conf.h
155                 $(BISON) -d -ooparse.c oparse.y
156
157 .PHONY: install clean uberclean
158
159 install:
160                 install -D -m 755 $(NAME) $(LIBDIR)/$(NAME)
161                 /sbin/ldconfig -n $(LIBDIR)
162
163 clean:
164                 rm -f *.o
165                 rm -f $(LIBNAME)
166                 rm -f $(BINNAME)
167
168 uberclean:      clean
169                 rm -f $(DEPFILE) $(DEPFILE).bak
170                 rm -f oparse.c oparse.h oscan.c
171
172 sinclude        $(DEPFILE)