X-Git-Url: http://olsr.org/git/?p=olsrd.git;a=blobdiff_plain;f=Makefile.inc;h=9ef988184c4a37bcfdbb18d109002d592ac37b3d;hp=d72fdf4d505e714f4a672502c06902bc70cfedb7;hb=8e0c65d59d109204e2a5980d17561d4360618afd;hpb=247df06e955d5b4b0bdf824e1c0c43d7a068b10d diff --git a/Makefile.inc b/Makefile.inc index d72fdf4d..9ef98818 100644 --- a/Makefile.inc +++ b/Makefile.inc @@ -17,6 +17,15 @@ OPTIMIZE ?= # you need a recent enough gcc and the libmudflap installed MUDFLAP ?= 0 +# shows full compiler/linker calls if activated +VERBOSE ?= 0 + +ifeq ($(VERBOSE),0) +MAKECMDPREFIX = @ +else +MAKECMDPREFIX = +endif + # OS detection ifeq ($(OS),Windows_NT) OS := win32 @@ -50,6 +59,7 @@ TAGCMD ?= etags DESTDIR ?= ETCDIR ?= $(DESTDIR)/etc USRDIR ?= $(DESTDIR)/usr +INCLUDEDIR ?= $(DESTDIR)/usr/include LIBDIR ?= $(USRDIR)/lib SBINDIR ?= $(USRDIR)/sbin SHAREDIR ?= $(USRDIR)/share @@ -59,6 +69,9 @@ EXENAME ?= olsrd CFGNAME ?= $(EXENAME).conf CFGFILE ?= $(ETCDIR)/$(CFGNAME) +DOCDIR_OLSRD ?= $(DOCDIR)/$(EXENAME) + + CPPFLAGS = -Isrc ifneq ($(TOPDIR),.) CPPFLAGS += -I$(TOPDIR)/src @@ -89,12 +102,20 @@ WARNINGS += -Wshadow WARNINGS += -Wformat WARNINGS += -Wsequence-point WARNINGS += -Wcast-align -WARNINGS += -Wdouble-promotion WARNINGS += -Wformat-security WARNINGS += -Wformat-y2k +WARNINGS += -Werror=format-security WARNINGS += -Winit-self WARNINGS += -Wswitch-default WARNINGS += -Wsync-nand +WARNINGS += -Wundef +WARNINGS += -Wlogical-op +ifneq ($(OS),android) +WARNINGS += -Wdouble-promotion +WARNINGS += -Wjump-misses-init +WARNINGS += -Wtrampolines +endif +WARNINGS += -Wunused-parameter # the following 2 do not work yet and need more work on it #WARNINGS += -Wconversion #WARNINGS += -Wredundant-decls @@ -123,7 +144,7 @@ WARNINGS += -finline-limit=350 # from the source by hand. #WARNINGS += -ffunction-sections #WARNINGS += -fdata-sections -WARNINGS := $(shell CC="$(CC)" $(TOPDIR)/gcc-warnings $(WARNINGS)) +WARNINGS := $(shell CC="$(CC)" "$(TOPDIR)/gcc-warnings" $(WARNINGS)) endif CFLAGS += $(WARNINGS) CFLAGS += $(OPTIMIZE) @@ -199,6 +220,9 @@ CPPFLAGS += -DDEBUG CFLAGS += -ggdb else CPPFLAGS += -DNDEBUG +ifeq ($(OPTIMIZE),) +OPTIMIZE += -O2 -D_FORTIFY_SOURCE=2 +endif endif ifeq ($(NO_DEBUG_MESSAGES),1) CPPFLAGS += -DNODEBUG @@ -213,11 +237,13 @@ quote = $(subst .,\.,$(subst /,\/,$1)) # fully automatic and working dependency generation %.d: %.c - @$(filter-out $(CCACHE),$(CC)) -M $(strip $(CPPFLAGS)) "$<" | sed -e '1s/\($(call quote,$(*F))\.o\)[ :]*/$(call quote,$(*D)/\1 $@: Makefile $(TOPDIR)$(if $(TOPDIR),/)Makefile.inc) /g' >"$@" + $(MAKECMDPREFIX)$(filter-out $(CCACHE),$(CC)) -M $(strip $(CPPFLAGS)) "$<" | sed -e '1s/\($(call quote,$(*F))\.o\)[ :]*/$(call quote,$(*D)/\1 $@: Makefile $(TOPDIR)$(if $(TOPDIR),/)Makefile.inc) /g' >"$@" %.o: %.c +ifeq ($(VERBOSE),0) @echo "[CC] $<" - @$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< +endif + $(MAKECMDPREFIX)$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< # we always need the includes and defines # for legacy since now