* the contents of INCLUDES and DEFINES should now be placed into CPPFLAGS
[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.27 2007/07/26 17:34:54 bernd67 Exp $
40
41 TOPDIR=../..
42 include $(TOPDIR)/Makefile.inc
43
44 SRCS =          olsrd_conf.c  oparse.c  oscan.c cfgfile_gen.c
45 HDRS =          olsrd_conf.h  oparse.h
46
47 ifeq ($(OS), win32)
48
49 LIBNAME ?=      olsrd_cfgparser.dll
50 BINNAME ?=      olsrd_cfgparser.exe
51 CPPFLAGS +=     -DWIN32_STDIO_HACK
52 OBJS +=         ../win32/compat.o
53
54 else
55
56 LIBNAME ?=      olsrd_cfgparser.so.0.1
57 BINNAME ?=      olsrd_cfgparser
58
59 endif
60
61
62 ifdef MAKEBIN
63
64 CPPFLAGS +=     -DMAKEBIN 
65 NAME =          $(BINNAME)
66
67 else 
68
69 # build lib per default
70
71 ifeq (${OS}, osx)
72 LDFLAGS +=      -dynamiclib -single_module
73 else
74 LDFLAGS +=      -shared -Wl,-soname,$(LIBNAME)
75 endif
76
77 ifeq (${OS}, win32)
78 LDFLAGS +=      -Wl,--out-implib=libolsrd_cfgparser.a -Wl,--export-all-symbols
79 endif
80
81 CPPFLAGS +=     -DMAKELIB
82 NAME =          $(LIBNAME)
83
84 endif
85
86
87 default_target: $(NAME)
88
89 $(NAME):        $(OBJS)
90                 $(CC) $(LDFLAGS) -o $(NAME) $(OBJS) $(LIBS)
91
92 oscan.c:        oscan.lex Makefile
93                 $(FLEX) -Cem -ooscan.c-tmp oscan.lex
94                 sed     -e '/^static/s/yy_get_next_buffer[\(][\)]/yy_get_next_buffer(void)/' \
95                         -e '/^static/s/yy_get_previous_state[\(][\)]/yy_get_previous_state(void)/' \
96                         -e '/^static/s/yygrowstack[\(][\)]/yygrowstack(void)/' \
97                         -e '/^static/s/input[\(][\)]/input(void)/' \
98                         -e '/^static  *void  *yy_fatal_error/s/^\(.*)\);$$/\1 __attribute__((noreturn));/' \
99                         < oscan.c-tmp >oscan.c
100                 $(RM) oscan.c-tmp
101
102 oparse.c:       oparse.y olsrd_conf.h Makefile
103                 $(BISON) -d -o oparse.c oparse.y
104
105 #oscan.o oparse.o:: CFLAGS := $(filter-out -Wunreachable-code, $(CFLAGS))
106
107 .PHONY: install clean uberclean
108
109 install:
110                 install -D -m 755 $(NAME) $(LIBDIR)/$(NAME)
111                 /sbin/ldconfig -n $(LIBDIR)
112
113 clean:
114                 rm -f *.[od~] oscan.c oparse.[ch]
115                 rm -f $(LIBNAME)
116                 rm -f $(BINNAME)
117                 $(RM) oparse.c-tmp
118
119 uberclean:      clean
120                 rm -f oparse.c oparse.h oscan.c