Merged Windows changes into Bruno's new version.
[olsrd.git] / lib / nameservice / 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.8 2005/03/01 21:35:13 tlopatic Exp $
39
40 PLUGIN_NAME =   olsrd_nameservice
41 PLUGIN_VER =    0.2
42
43 CC ?=           gcc
44 STRIP ?=        strip
45
46 # default CFLAGS and LDFLAGS, used if not externally set
47
48 # used for compilation: yes
49 # used for dependency file generation: no
50
51 CFLAGS_SET =    -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes
52 LDFLAGS_SET =   -g
53
54 # always appended to default or externally set CFLAGS and LDFLAGS
55
56 # used for compilation: yes
57 # used for dependency file generation: yes
58
59 CFLAGS_ADD =    -DOLSR_PLUGIN -I../../src
60 LDFLAGS_ADD =   -Wall -shared -Wl,--version-script=version-script.txt
61
62 # same as CFLAGS_ADD, but not used for dependency file generation
63
64 # used for compilation: yes
65 # used for dependency file generation: no
66
67 CFLAGS_ADD2 =   # nothing
68
69 DEPFILE =       .depend
70
71 SRCS =          $(wildcard src/*.c)
72 OBJS =          $(patsubst %.c,%.o,$(SRCS))
73 HDRS =          $(wildcard src/*.c)
74
75 ifndef OS
76 all:            help
77 install:        help
78 clean:          help
79 endif
80
81 ifeq ($(OS), linux)
82
83 NAME ?=         $(PLUGIN_NAME).so.$(PLUGIN_VER)
84
85 CFLAGS_ADD +=   -Dlinux -D_GNU_SOURCE
86 CFLAGS_ADD2 +=  -fPIC
87 LDFLAGS_ADD +=  -fPIC -Wl,-soname,$(NAME)
88
89 CFLAGS_SET +=   # nothing
90 LDFLAGS_SET +=  # nothing
91
92 LIBS ?=         -lc -lm
93
94 LIBDIR ?=       $(INSTALL_PREFIX)/usr/lib
95
96 INSTALL_LIB =   install -D -m 755 $(NAME) $(LIBDIR)/$(NAME); \
97                 /sbin/ldconfig -n $(LIBDIR)
98
99 EXTRA_OBJS =    # nothing
100
101 MAKEDEPEND =    makedepend -f $(DEPFILE) $(CFLAGS_ADD) -Y $(INCLUDES) \
102                 $(SRCS) >/dev/null 2>&1
103
104 all:            all2
105 install:        install2
106 clean:          clean2
107
108 else
109 ifeq ($(OS), fbsd)
110
111 NAME ?=         $(PLUGIN_NAME).so.$(PLUGIN_VER)
112
113 CFLAGS_ADD +=   # nothing
114 CFLAGS_ADD2 +=  -fPIC
115 LDFLAGS_ADD +=  -fPIC -Wl,-soname,$(NAME)
116
117 CFLAGS_SET +=   # nothing
118 LDFLAGS_SET +=  # nothing
119
120 LIBS ?=         -lc -lm
121
122 LIBDIR ?=       $(INSTALL_PREFIX)/usr/lib
123
124 INSTALL_LIB =   install -m 755 $(NAME) $(LIBDIR)/$(NAME); \
125                 /sbin/ldconfig
126
127 EXTRA_OBJS =    # nothing
128
129 MAKEDEPEND =    makedepend -f $(DEPFILE) $(CFLAGS_ADD) $(INCLUDES) $(SRCS)
130
131 all:            all2
132 install:        install2
133 clean:          clean2
134
135 else
136 ifeq ($(OS), win32)
137
138 NAME ?=         $(PLUGIN_NAME).dll
139
140 CFLAGS_ADD +=   -mno-cygwin -I../../src/win32 -DWIN32
141 CFLAGS_ADD2 +=  # nothing
142 LDFLAGS_ADD +=  -mno-cygwin -Wl,-soname,$(NAME)
143
144 CFLAGS_SET +=   # nothing
145 LDFLAGS_SET +=  # nothing
146
147 LIBS ?=         -lws2_32
148
149 INSTALL_LIB =   cp $(NAME) ../..
150
151 EXTRA_OBJS =    ../../src/win32/compat.o
152
153 MAKEDEPEND =    makedepend -f $(DEPFILE) $(CFLAGS_ADD) $(INCLUDES) $(SRCS)
154
155 all:            all2
156 install:        install2
157 clean:          clean2
158
159 else
160
161 all:            help
162 install:        help
163 clean:          help
164
165 endif
166 endif
167 endif
168
169 CFLAGS ?=       $(CFLAGS_SET)
170 LDFLAGS ?=      $(LDFLAGS_SET)
171
172 CFLAGS          += $(CFLAGS_ADD) $(CFLAGS_ADD2)
173 LDFLAGS         += $(LDFLAGS_ADD)
174
175 all2:           $(NAME)
176
177 $(NAME):        $(OBJS) $(EXTRA_OBJS)
178                 $(CC) $(LDFLAGS) -o $(NAME) $(OBJS) $(EXTRA_OBJS) $(LIBS)
179
180 install2:       $(NAME)
181                 $(STRIP) $(NAME)
182                 $(INSTALL_LIB)
183
184 clean2:
185                 rm -f $(OBJS) $(NAME) $(DEPFILE)
186
187 $(DEPFILE):     $(SRCS) $(HDRS)
188 ifdef MAKEDEPEND
189                 echo "# Generated automatically. DO NOT EDIT." >$(DEPFILE)
190                 $(MAKEDEPEND)
191 endif
192
193 help:
194                 @echo
195                 @echo '                     * * * *  olsr.org Plugin Make  * * * *'
196                 @echo
197                 @echo '  Plugin: $(PLUGIN_NAME), version $(PLUGIN_VER)'
198                 @echo
199                 @echo '  You must provide a valid target OS by setting the OS variable.'
200                 @echo
201                 @echo '  Valid settings are:'
202                 @echo
203                 @echo '    linux - GNU/Linux'
204                 @echo '    win32 - Microsoft Windows'
205                 @echo '    fbsd  - FreeBSD'
206                 @echo
207                 @echo '  Example - Build on Windows:'
208                 @echo
209                 @echo '    make OS=win32'
210                 @echo
211                 @echo '  Example - Build and install on Linux:'
212                 @echo
213                 @echo '    make OS=linux install            '
214                 @echo
215
216 sinclude $(DEPFILE)