Fix 'inactive' routes when using 'additional' option
[olsrd.git] / Makefile.inc
index 8b9cc44..31eeb74 100644 (file)
@@ -10,9 +10,6 @@ DEBUG ?= 1
 # compile OLSR_PRINTF out
 NO_DEBUG_MESSAGES ?= 0
 
-# the optimize option to be set for gcc
-OPTIMIZE ?= 
-
 # enable mudflap with 1 or deactivate with 0
 # you need a recent enough gcc and the libmudflap installed
 MUDFLAP ?= 0
@@ -38,6 +35,7 @@ endif
 BISON ?=       bison
 FLEX ?=                flex
 TAGCMD ?=      etags
+LD_HAS_DYN ?=   $(shell $(CC) -Wl,--help 2>&1|grep -w -q -- --dynamic-list && echo yes)
 
 # target directories and names
 PREFIX  ?= /usr/local
@@ -52,6 +50,8 @@ CFGNAME ?= $(EXENAME).conf
 CFGFILE ?= $(ETCDIR)/$(CFGNAME)
 
 CPPFLAGS =     $(filter-out -I./src,-Isrc -I$(TOPDIR)/src)
+CPPFLAGS +=    -DOLSRD_CONF_FILE_NAME='"$(CFGNAME)"'
+CPPFLAGS +=    -DOLSRD_GLOBAL_CONF_FILE='"$(CFGFILE)"'
 
 # add gcc warnings and optimizations if CFLAGS not set
 ifndef CFLAGS
@@ -90,7 +90,7 @@ endif
 #ALL_WARNINGS +=       -Wunreachable-code
 ALL_WARNINGS +=        -Winline
 ALL_WARNINGS +=        -Wdisabled-optimization
-#ALL_WARNINGS +=       -Werror
+ALL_WARNINGS +=        -Werror
 ALL_WARNINGS +=        -finline-functions-called-once
 ALL_WARNINGS +=        -funit-at-a-time
 ALL_WARNINGS +=        -fearly-inlining
@@ -119,9 +119,8 @@ ifneq ($(filter -Wstrict-overflow%,$(WARNINGS)),)
 NO_STRICT_OVERFLOW = -Wstrict-overflow=0
 endif
 
-# Must be specified along with -lpthread on linux
-CPPFLAGS +=    $(OS_CFLAG_PTHREAD)
-endif
+endif # ifndef CFLAGS
+
 ifneq ($(MUDFLAP),0)
 CFLAGS +=      -fmudflapth
 endif
@@ -131,13 +130,17 @@ ifdef OLSRD_PLUGIN
 CPPFLAGS +=    -DOLSR_PLUGIN
 LDFLAGS +=     -shared
 LDFLAGS +=     -Wl,-soname,$(PLUGIN_NAME)
-LDFLAGS +=     -Wl,--version-script=version-script.txt 
+LDFLAGS +=     -Wl,--version-script=version-script.txt
 else
 # c and ld flags for main
-LDFLAGS +=     -Wl,-export-dynamic 
+ifeq ($(LD_HAS_DYN), yes)
+LDFLAGS_EXE += -Wl,--dynamic-list=$(EXENAME).exports
+else
+LDFLAGS_EXE += -Wl,-export-dynamic
+endif
 LDFLAGS +=     -Wl,-rpath,$(LIBDIR)
 endif
-# LDFLAGS for all 
+# LDFLAGS for all
 LDFLAGS +=     -Wl,--warn-common
 # See above at "-ffunction-sections" for an explanation (and why it is disabled).
 #LDOPTS +=     -Wl,--gc-sections
@@ -146,25 +149,14 @@ LDFLAGS +=        -Wl,--warn-common
 ifneq ($(MUDFLAP),0)
 LIBS +=                -lmudflapth
 endif
-LIBS +=                $(OS_LIB_PTHREAD)
 
 # extra options from the outside
 CPPFLAGS +=    $(EXTRA_CPPFLAGS)
 LDFLAGS +=     $(EXTRA_LDFLAGS)
 
-###################################
-#
-# options to save space on small systems
-
-# we have plugins with the old interface
-#CPPFLAGS +=   -DSUPPORT_OLD_PLUGIN_VERSIONS=1
-
-# use the new fixed point math stuff
-#CPPFLAGS +=     -DUSE_FPM
-
 # search sources and headers in current dir and in src/
-SRCS +=                $(wildcard src/common/*.c src/*.c *.c)
-HDRS +=                $(wildcard src/common/*.h src/*.h *.h)
+SRCS +=                $(wildcard src/common/*.c src/*.c)
+HDRS +=                $(wildcard src/common/*.h src/*.h)
 
 # OS detection
 ifeq ($(OS),Windows_NT)
@@ -188,12 +180,14 @@ OBJS +=           $(SRCS:%.c=%.o)
 ifeq ($(DEBUG),1)
 CPPFLAGS +=    -DDEBUG
 CFLAGS +=      -ggdb
+OPTIMIZE ?=    -O0
 else
 CPPFLAGS +=    -DNDEBUG
+OPTIMIZE ?=    -O2
 endif
 ifeq ($(NO_DEBUG_MESSAGES),1)
 CPPFLAGS +=    -DNODEBUG
-OPTIMIZE = -Os
+OPTIMIZE ?=    -Os
 endif
 
 # a make function to quote "/" and "."
@@ -218,7 +212,7 @@ endif
 TAGFILE ?=     src/TAGS
 
 help:
-       @echo 
+       @echo
        @echo '***** olsr.org olsr daemon Make ****'
        @echo ' Automatic detection of your OS     '
        @echo ' failed!                            '