Merge branch 'PolynomialDivision-feature/add_workflow'
[olsrd.git] / make / Makefile.linux
1 # The olsr.org Optimized Link-State Routing daemon (olsrd)
2 #
3 # (c) by the OLSR project
4 #
5 # See our Git repository to find out who worked on this file
6 # and thus is a copyright holder on it.
7 #
8 # All rights reserved.
9 #
10 # Redistribution and use in source and binary forms, with or without
11 # modification, are permitted provided that the following conditions
12 # are met:
13 #
14 # * Redistributions of source code must retain the above copyright
15 #   notice, this list of conditions and the following disclaimer.
16 # * Redistributions in binary form must reproduce the above copyright
17 #   notice, this list of conditions and the following disclaimer in
18 #   the documentation and/or other materials provided with the
19 #   distribution.
20 # * Neither the name of olsr.org, olsrd nor the names of its
21 #   contributors may be used to endorse or promote products derived
22 #   from this software without specific prior written permission.
23 #
24 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
27 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
28 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
29 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
30 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
31 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
34 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 # POSSIBILITY OF SUCH DAMAGE.
36 #
37 # Visit http://www.olsr.org for more information.
38 #
39 # If you find this software useful feel free to make a donation
40 # to the project. For more information see the website or contact
41 # the copyright holders.
42 #
43
44 #
45 # LINUX SPECIFIC CONFIGURATION
46 #
47
48 ARCH := $(shell uname -m)
49 LDCONFIG ?= /sbin/ldconfig
50
51 DESTDIR ?=
52 prefix ?= /usr/local
53 libdir ?= $(prefix)/lib
54 datarootdir ?= $(prefix)/share
55 mandir ?= $(datarootdir)/man
56 sbindir ?= $(prefix)/sbin
57
58 # the rest are defined in Makefile.inc, but we don't need to override defaults
59 LIBDIR =        $(DESTDIR)$(libdir)
60 MANDIR =        $(DESTDIR)$(mandir)
61 SBINDIR =       $(DESTDIR)$(sbindir)
62 SHAREDIR =      $(DESTDIR)$(datarootdir)
63
64 SRCS +=         $(sort $(wildcard src/linux/*.c src/unix/*.c))
65 HDRS +=         $(sort $(wildcard src/linux/*.h src/unix/*.h))
66
67 CPPFLAGS +=
68 LIBS += -lrt
69
70 # Enable the FLAGS and LIBS below for nl80211-support in the LQ plugin 'lq_plugin_ffeth_nl80211'.
71 # By default this is not enabled and the plugin will not incorporate the nl80211 data. This avoids
72 # breaking builds on Linux systems that do not support it.
73 # CPPFLAGS +=   -Dlinux -DLINUX_NETLINK_ROUTING -DLINUX_NL80211
74 # LIBS +=               -lnl
75
76 PLUGIN_SONAME ?= lib$(PLUGIN_NAME).so
77 PLUGIN_FULLNAME ?= $(PLUGIN_NAME).so.$(PLUGIN_VER)
78 INSTALL_LIB =   install -D -m 755 $(PLUGIN_FULLNAME) $(LIBDIR)/$(PLUGIN_FULLNAME); \
79                 $(LDCONFIG) -n $(LIBDIR)
80 UNINSTALL_LIB = rm -f $(LIBDIR)/$(PLUGIN_FULLNAME); \
81                 $(LDCONFIG) -n $(LIBDIR)
82
83 ifdef OLSRD_PLUGIN
84 GENERATE_PIC = true
85 endif
86 ifeq ($(filter-out mips mips64 alpha x86_64 parisc64 ia64, $(ARCH)),)
87 GENERATE_PIC = true
88 endif
89
90 ifdef GENERATE_PIC
91 CFLAGS +=       -fPIC
92 LDFLAGS +=      -fPIC
93 endif
94
95 OS_LIB_PTHREAD = -lpthread
96 OS_CFLAG_PTHREAD = -pthread
97 OS_LIB_DYNLOAD = -ldl
98
99 # Local Variables:
100 # mode: makefile
101 # End: