* make it compile on Debian/Sarge with a gcc-3.3.5
[olsrd.git] / Makefile.inc
index 353531c..2704b13 100644 (file)
@@ -1,33 +1,57 @@
 # programs
-CC ?=          gcc
+CCACHE ?=       $(shell sh -c "type -path ccache")
+CC ?=          $(CCACHE) gcc
 STRIP ?=       strip
 BISON ?=       bison
 FLEX ?=                flex
 TAGCMD ?=      etags
 
 # target directories and names
-#INSTALL_PREFIX = 
-SBINDIR = $(INSTALL_PREFIX)/usr/sbin
-ETCDIR = $(INSTALL_PREFIX)/etc
-LIBDIR = $(INSTALL_PREFIX)/usr/lib
-DOCDIR = $(INSTALL_PREFIX)/usr/share/doc
-MANDIR = $(INSTALL_PREFIX)/usr/share/man
-CFGFILE = $(ETCDIR)/olsrd.conf
-EXENAME = olsrd
+DESTDIR ?=
+SBINDIR ?= $(DESTDIR)/usr/sbin
+ETCDIR  ?= $(DESTDIR)/etc
+LIBDIR  ?= $(DESTDIR)/usr/lib
+DOCDIR  ?= $(DESTDIR)/usr/share/doc
+MANDIR  ?= $(DESTDIR)/usr/share/man
+CFGFILE ?= $(ETCDIR)/olsrd.conf
+EXENAME ?= olsrd
 
 INCLUDES =     -Isrc -I$(TOPDIR)/src 
 
+GCC_VERSION := $(shell v=$$($(CC) -dumpversion); echo $${v//./ })
+
 # add gcc warnings and optimizations if CFLAGS not set
 ifndef CFLAGS
-CFLAGS +=      -Wall -Wmissing-prototypes -Wstrict-prototypes \
-               -Wmissing-declarations -Wsign-compare
-CFLAGS +=      -O2 -g
+CFLAGS +=      -Wall
+# gcc-3.3.5 on Debian sarge doesn't know the following warnings
+ifneq ("$(GCC_VERSION)","3 3 5")
+CFLAGS +=      -Wextra
+CFLAGS +=      -Wold-style-definition
+CFLAGS +=      -Wdeclaration-after-statement
+endif
+CFLAGS +=      -Wmissing-prototypes
+CFLAGS +=      -Wstrict-prototypes
+CFLAGS +=      -Wmissing-declarations
+CFLAGS +=      -Wsign-compare
+CFLAGS +=      -Waggregate-return
+CFLAGS +=      -Wmissing-noreturn
+CFLAGS +=      -Wmissing-format-attribute
+CFLAGS +=      -Wno-multichar
+CFLAGS +=      -Wno-deprecated-declarations
+#CFLAGS +=     -Wredundant-decls
+CFLAGS +=      -Wnested-externs
+#CFLAGS +=     -Wunreachable-code
+CFLAGS +=      -Winline
+CFLAGS +=      -Wdisabled-optimization
+CFLAGS +=      -O2
+CFLAGS +=      -g
+#CFLAGS +=     -Werror
 endif
 
 ifdef OLSRD_PLUGIN
 # c and ld flags for libraries (plugins)
-CFLAGS +=      -DOLSR_PLUGIN -fPIC
-LDFLAGS +=     -shared  -fPIC -Wl,-soname,$(PLUGIN_NAME)
+CFLAGS +=      -DOLSR_PLUGIN
+LDFLAGS +=     -shared -Wl,-soname,$(PLUGIN_NAME)
 LDFLAGS +=     -Wl,--version-script=version-script.txt 
 else
 # c and ld flags for main
@@ -43,7 +67,9 @@ HDRS +=               $(wildcard *.h)
 all: default_target
 
 # OS detection
-OS =           $(shell sh $(TOPDIR)/make/guess_os.sh)
+ifeq ($(OS),)
+OS :=          $(shell sh $(TOPDIR)/make/guess_os.sh)
+endif
 ifeq ($(OS),UNKNOWN)
 all: help
 else
@@ -94,6 +120,10 @@ help:
        @echo ' be a good idea :-) Have fun!       '
        @echo '************************************'
        @echo
-       
+
 # include dependencies
 -include $(SRCS:%.c=%.d)
+
+# Local Variables:
+# mode: makefile
+# End: