* changed the version to 0.5.1pre
[olsrd.git] / Makefile.inc
1 # programs
2 CCACHE =        $(shell sh -c "type -path ccache")
3 CC ?=           $(CCACHE) gcc
4 STRIP ?=        strip
5 BISON ?=        bison
6 FLEX ?=         flex
7 TAGCMD ?=       etags
8
9 # target directories and names
10 DESTDIR ?=
11 SBINDIR ?= $(DESTDIR)/usr/sbin
12 ETCDIR  ?= $(DESTDIR)/etc
13 LIBDIR  ?= $(DESTDIR)/usr/lib
14 DOCDIR  ?= $(DESTDIR)/usr/share/doc
15 MANDIR  ?= $(DESTDIR)/usr/share/man
16 CFGFILE ?= $(ETCDIR)/olsrd.conf
17 EXENAME ?= olsrd
18
19 INCLUDES =      -Isrc -I$(TOPDIR)/src 
20
21 # add gcc warnings and optimizations if CFLAGS not set
22 ifndef CFLAGS
23 CFLAGS +=       -Wall -Wmissing-prototypes -Wstrict-prototypes \
24                 -Wmissing-declarations -Wsign-compare
25 CFLAGS +=       -O2 -g
26 endif
27
28 ifdef OLSRD_PLUGIN
29 # c and ld flags for libraries (plugins)
30 CFLAGS +=       -DOLSR_PLUGIN
31 LDFLAGS +=      -shared -Wl,-soname,$(PLUGIN_NAME)
32 LDFLAGS +=      -Wl,--version-script=version-script.txt 
33 else
34 # c and ld flags for main
35 LDFLAGS +=      -Wl,-export-dynamic 
36 endif
37
38 # search sources and headers in current dir and in src/
39 SRCS =          $(wildcard src/*.c)
40 SRCS +=         $(wildcard *.c)
41 HDRS =          $(wildcard src/*.h)
42 HDRS +=         $(wildcard *.h)
43
44 all: default_target
45
46 # OS detection
47 OS =            $(shell sh $(TOPDIR)/make/guess_os.sh)
48 ifeq ($(OS),UNKNOWN)
49 all: help
50 else
51 # include OS specifics
52 include $(TOPDIR)/make/Makefile.$(OS)
53 all: default_target
54 endif
55
56 # one object for each source file
57 OBJS +=         $(patsubst %.c,%.o,$(SRCS))
58
59 # debugging or non-debugging flags
60 ifdef DEBUG
61 CFLAGS +=       -DDEBUG
62 endif
63 ifdef NODEBUG
64 CFLAGS +=       -DNODEBUG
65 endif
66
67 # let gcc generate dependency information (*.d)
68 CFLAGS +=       -MD
69
70 # we always need the includes and defines
71 CFLAGS += $(INCLUDES) $(DEFINES)
72
73 TAGFILE ?=      src/TAGS
74
75 help:
76         @echo 
77         @echo '***** olsr.org olsr daemon Make ****'
78         @echo ' Automatic detection of your OS     '
79         @echo ' failed!                            '
80         @echo ' You can provide a valid target OS  '
81         @echo ' by setting the OS variable! Valid  '
82         @echo ' target OSes are:                   '
83         @echo ' ---------------------------------  '
84         @echo ' linux - GNU/Linux                  '
85         @echo ' win32 - MS Windows                 '
86         @echo ' fbsd  - FreeBSD                    '
87         @echo ' nbsd  - NetBSD                     '
88         @echo ' obsd  - OpenBSD                    '
89         @echo ' osx   - Mac OS X                   '
90         @echo ' ---------------------------------  '
91         @echo ' Example - build for windows:       '
92         @echo ' make OS=win32                      '
93         @echo ' If you are developing olsrd code,  '
94         @echo ' exporting the OS variable might    '
95         @echo ' be a good idea :-) Have fun!       '
96         @echo '************************************'
97         @echo
98
99 # include dependencies
100 -include $(SRCS:%.c=%.d)
101
102 # Local Variables:
103 # mode: makefile
104 # End: