Reactivate debug output in default makefile
[olsrd.git] / Makefile.inc
index d7e1373..c57d79f 100644 (file)
@@ -2,17 +2,16 @@
 #
 # Highlevel configuration options for all
 #
-# $Id: Makefile.inc,v 1.45 2007/11/16 22:56:53 bernd67 Exp $
 #
 
 # activate debugging with 1 or deactivate with 0
-DEBUG ?= 0
+DEBUG ?= 1
 
 # compile OLSR_PRINTF out
 NO_DEBUG_MESSAGES ?= 0
 
 # the optimize option to be set for gcc
-OPTIMIZE ?= -O2
+OPTIMIZE ?= 
 
 # enable mudflap with 1 or deactivate with 0
 # you need a recent enough gcc and the libmudflap installed
@@ -25,7 +24,7 @@ MUDFLAP ?= 0
 #
 
 # programs
-CCACHE ?=       $(shell which ccache 2> /dev/null)
+CCACHE ?=       $(shell IFS=:; for i in $$PATH;do test -x "$$i/ccache" && echo "$$i/ccache" && break; done)
 ifeq ($(origin CC),default)
 CC =           $(CCACHE) gcc
 else
@@ -75,8 +74,11 @@ WARNINGS +=  -Wno-deprecated-declarations
 WARNINGS +=    -Wendif-labels
 WARNINGS +=    -Wwrite-strings
 WARNINGS +=    -Wbad-function-cast
-#WARNINGS +=   -Wpointer-arith
+WARNINGS +=    -Wpointer-arith
 WARNINGS +=    -Wcast-qual
+# the following 5 do not work yet and need more work on it
+#WARNINGS +=   -Wshadow
+#WARNINGS +=   -Wpointer-arith
 #WARNINGS +=   -Wcast-align
 #WARNINGS +=   -Wconversion
 #WARNINGS +=   -Wredundant-decls
@@ -92,10 +94,18 @@ WARNINGS += -Wdisabled-optimization
 WARNINGS +=    -finline-functions-called-once
 WARNINGS +=    -fearly-inlining
 ifeq ($(DEBUG),0)
-WARNINGS +=    -fomit-framepointers
-endif
-# we have small inline functions in src/lq_route.c which should always be inlined
-WARNINGS +=    -finline-limit=50
+WARNINGS +=    -fomit-frame-pointer
+endif
+# we have small inline functions in src/lq_route.h which should always be inlined
+WARNINGS +=    -finline-limit=350
+# These tell gcc to put each function and global variable in a separate section.
+# The linker can than remove all unreferenced section. But in the olsrd binary
+# unused doesn't imply unused at all since the function may be used by plugins,
+# e.g. the ones in src/plugin_utils.c.
+# So we can use that featuer at most to identify unused functions and remove them
+# from the source by hand.
+#WARNINGS +=   -ffunction-sections
+#WARNINGS +=   -fdata-sections
 WARNINGS :=    $(shell CC="$(CC)" $(TOPDIR)/gcc-warnings $(WARNINGS))
 endif
 CFLAGS +=      $(WARNINGS)
@@ -112,17 +122,28 @@ endif
 ifdef OLSRD_PLUGIN
 # c and ld flags for libraries (plugins)
 CPPFLAGS +=    -DOLSR_PLUGIN
-LDFLAGS +=     -shared -Wl,-soname,$(PLUGIN_NAME)
+LDFLAGS +=     -shared
+LDFLAGS +=     -Wl,-soname,$(PLUGIN_NAME)
 LDFLAGS +=     -Wl,--version-script=version-script.txt 
 else
 # c and ld flags for main
 LDFLAGS +=     -Wl,-export-dynamic 
-endif
+LDFLAGS +=     -Wl,-rpath,$(LIBDIR)
+endif
+# LDFLAGS for all 
+LDFLAGS +=     -Wl,--warn-common
+# See above at "-ffunction-sections" for an explanation (and why it is disabled).
+#LDOPTS +=     -Wl,--gc-sections
+#LDOPTS +=     -Wl,--print-gc-sections
+#LDFLAGS +=    $(shell CC="$(CC)" $(TOPDIR)/ld-warnings $(LDOPTS))
 ifneq ($(MUDFLAP),0)
 LIBS +=                -lmudflapth
 endif
 LIBS +=                $(OS_LIB_PTHREAD)
 
+# extra options from the outside
+CPPFLAGS +=    $(EXTRA_CPPFLAGS)
+
 ###################################
 #
 # options to save space on small systems
@@ -130,9 +151,12 @@ LIBS +=            $(OS_LIB_PTHREAD)
 # 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/*.c *.c)
-HDRS +=                $(wildcard src/*.h *.h)
+SRCS +=                $(wildcard src/common/*.c src/*.c *.c)
+HDRS +=                $(wildcard src/common/*.h src/*.h *.h)
 
 # OS detection
 ifeq ($(OS),Windows_NT)
@@ -155,7 +179,7 @@ OBJS +=             $(SRCS:%.c=%.o)
 # debugging or non-debugging flags
 ifeq ($(DEBUG),1)
 CPPFLAGS +=    -DDEBUG
-CFLAGS +=      -g
+CFLAGS +=      -ggdb
 else
 CPPFLAGS +=    -DNDEBUG
 endif