* and a header file like all the other plugins
[olsrd.git] / Makefile.inc
index 83d49aa..f3bee6a 100644 (file)
@@ -1,27 +1,45 @@
 # 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
-# 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
+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 
 
 # 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
+CFLAGS +=      -Wextra
+CFLAGS +=      -Wmissing-prototypes
+CFLAGS +=      -Wstrict-prototypes
+CFLAGS +=      -Wmissing-declarations
+CFLAGS +=      -Wsign-compare
+CFLAGS +=      -Waggregate-return
+CFLAGS +=      -Wold-style-definition
+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
@@ -43,7 +61,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