]> rtime.felk.cvut.cz Git - l4.git/blobdiff - kernel/fiasco/src/Makeconf
update
[l4.git] / kernel / fiasco / src / Makeconf
index 2003c96f6f2a0e8f815c1dc88aace345e5d332e6..64c327b13d0b644ad4f3576ed5b045f2fc78aaf2 100644 (file)
@@ -30,7 +30,7 @@ CP            := cp
 GREP           := GREP_OPTIONS= grep
 AWKP           ?= gawk --posix
 CFLAGS         :=
-CXXFLAGS       :=
+CXXFLAGS       := -std=c++0x
 OPT_CFLAGS     := -O2
 OPT_CXXFLAGS   := -O2
 NOOPT_CFLAGS   := -Os
@@ -54,12 +54,7 @@ endif
 # objdir/Makeconf.local.
 MODULES_FILE   = $(srcdir)/Modules.$(CONFIG_XARCH)
 
-PREPROCESS = \
-  $(word 1, $(wildcard $(shell cd $(srcdir)/../../../tools/preprocess/src 2>/dev/null; \
-                               pwd)/preprocess \
-   $(shell cd $(srcdir)/../../tools/preprocess/src 2>/dev/null; \
-                               pwd)/preprocess \
-                      $(DROPS_STDDIR)/tool/bin/preprocess) preprocess)
+PREPROCESS = $(srcdir)/../tool/preprocess/src/preprocess
 
 ifeq ($(CONFIG_INLINE),y)
   PREPROCESS_FLAGS = -i -t
@@ -88,57 +83,52 @@ ifneq ($(CCXX_VERSION),)
   CCXX_SUFFIX          := -$(CCXX_VERSION)
 endif
 
+CPP                    := $(SYSTEM_TARGET)cpp$(CCXX_SUFFIX)
+
 CC                     := $(CCXX_WRAP) $(SYSTEM_TARGET)$(CC)$(CCXX_SUFFIX)
 CXX                    := $(CCXX_WRAP) $(SYSTEM_TARGET)$(CXX)$(CCXX_SUFFIX)
 
+CC_TYPE                 := $(if $(findstring clang,$(shell $(CXX) --version)),clang,gcc)
 CCVER_MAJOR            := $(shell $(CXX) -dumpversion | cut -d . -f 1)
 CCVER_MINOR            := $(shell $(CXX) -dumpversion | cut -d . -f 2)
 LIBGCC                 := $(shell $(CXX) -print-libgcc-file-name)
 
+
 L4ALL_INCDIR           ?= $(addprefix -I, $(PRIVATE_INCDIR))
 L4STD_INCDIR           ?= -nostdinc
 L4STD_INCDIR_LAST      ?= -I$(wildcard $(dir $(LIBGCC))/include \
                                        $(dir $(LIBGCC))/../include)
 KERNEL_LDFLAGS         += -gc-sections
-SHARED_FLAGS           += -fno-defer-pop -freg-struct-return -g -Wall -W
+SHARED_FLAGS-gcc        += -fno-defer-pop -freg-struct-return
+SHARED_FLAGS           += -g -Wall -W
 SHARED_FLAGS           += -Wno-parentheses
 SHARED_FLAGS           += $(call CHECKCC,-Wformat=2,)
 SHARED_FLAGS           += $(call CHECKCC,-fno-stack-protector,)
-SHARED_FLAGS           += $(call CHECKCC,-Wframe-larger-than=512)
 SHARED_FLAGS           += $(call CHECKCC,-fdiagnostics-show-option)
-OPT_CXXFLAGS           += $(call CHECKCXX,-fweb,)
-OPT_CFLAGS             += $(call CHECKCC,-fweb,)
-OPT_SHARED_FLAGS       += $(call CHECKCC,-frename-registers,)
-OPT_SHARED_FLAGS       += $(call CHECKCC,-fgcse-after-reload,)
-CXXFLAGS               += -fno-implement-inlines
+
+OPT_CXXFLAGS-gcc       += $(call CHECKCXX,-fweb,)
+OPT_CFLAGS-gcc         += $(call CHECKCC,-fweb,)
+OPT_SHARED_FLAGS-gcc   += $(call CHECKCC,-frename-registers,)
+OPT_SHARED_FLAGS-gcc   += $(call CHECKCC,-fgcse-after-reload,)
+CXXFLAGS-gcc           += -fno-implement-inlines
 
 -include $(objbase)/.Host-config
 
 # Configuration dependent compile flags
-ifneq ($(CONFIG_PROFILE),y)
-  SHARED_FLAGS         += -ffunction-sections
-endif
-ifeq ($(CONFIG_NDEBUG),y)
-  SHARED_FLAGS         += -DNDEBUG
-endif
-ifeq ($(CONFIG_NO_FRAME_PTR),y)
-  SHARED_FLAGS         += -fomit-frame-pointer
-endif
-ifeq ($(CONFIG_GSTABS),y)
-  SHARED_FLAGS         += -gstabs+
-endif
-ifeq ($(CONFIG_PROFILE),y)
-  PROF_FLAGS           += -pg
-endif
-ifeq ($(CONFIG_UNREACHABLE_CODE),y)
-  SHARED_FLAGS         += $(call CHECKCC,-Wunreachable-code,)
-endif
+SHARED_FLAGS-$(CONFIG_NDEBUG)           += -DNDEBUG
+SHARED_FLAGS-$(CONFIG_NO_FRAME_PTR)     += -fomit-frame-pointer
+SHARED_FLAGS-$(CONFIG_GSTABS)           += -gstabs+
+SHARED_FLAGS-$(CONFIG_UNREACHABLE_CODE) += $(call CHECKCC,-Wunreachable-code,)
 
 # Eagerly compute SHARED_FLAGS to avoid calling CHECKCC over and over again.
-SHARED_FLAGS   := $(SHARED_FLAGS) $(SHARED_FLAGS-y)
+SHARED_FLAGS       := $(SHARED_FLAGS) $(SHARED_FLAGS-y)
+SHARED_FLAGS       += $(SHARED_FLAGS-$(CC_TYPE))
+OPT_SHARED_FLAGS   += $(OPT_SHARED_FLAGS-$(CC_TYPE))
+NOOPT_SHARED_FLAGS += $(NOOPT_SHARED_FLAGS-$(CC_TYPE))
 
 # Standard compile flags
 ASFLAGS                += $(SHARED_FLAGS) -DASSEMBLER
+ASFLAGS-clang  += -no-integrated-as
 CFLAGS         += $(SHARED_FLAGS)
 CXXFLAGS       += $(SHARED_FLAGS) -fno-rtti -fno-exceptions
 OPT_CFLAGS     += $(OPT_SHARED_FLAGS)
@@ -149,24 +139,25 @@ CPPFLAGS  += $(L4STD_INCDIR) $(L4ALL_INCDIR) $(L4STD_INCDIR_LAST)
 CXXFLAGS       += $(call CHECKCXX,-fno-threadsafe-statics,)
 CXXFLAGS       += $(call CHECKCXX,-Wno-non-virtual-dtor,)
 
-ifneq ($(CONFIG_VERBOSE),y)
-VERBOSE                = @
-PREP_MESSAGE   ?= @$(ECHO) "  ... Preprocessing $*"
-endif
+ASFLAGS         += $(ASFLAGS-$(CC_TYPE))
+CXXFLAGS        += $(CXXFLAGS-$(CC_TYPE))
+OPT_CFLAGS      += $(OPT_CFLAGS-$(CC_TYPE))
+OPT_CXXFLAGS    += $(OPT_CXXFLAGS-$(CC_TYPE))
+NOOPT_CFLAGS    += $(NOOPT_CFLAGS-$(CC_TYPE))
+NOOPT_CXXFLAGS  += $(NOOPT_CXXFLAGS-$(CC_TYPE))
+
 
 # Output formatting, set V=1 to see command line, V=0 to prevent printing them
-VERBOSE                ?=
+VERBOSE                ?= @
 ifeq ($(V),1)
   VERBOSE :=
-endif
-ifeq ($(V),0)
-  VERBOSE := @
+  PREP_MESSAGE  ?= @$(ECHO) "  ... Preprocessing $(filter %.cpp,$^)"
 endif
 AR_MESSAGE     ?= @$(ECHO) "  ==> Archiving into $@"
 COMP_MESSAGE   ?= @$(ECHO) "  ... Making $@"
 LINK_MESSAGE   ?= @$(ECHO) "  ==> Linking $@"
 DEP_MESSAGE    ?= @$(ECHO) "  ... Building dependencies for $<"
-PREP_MESSAGE    ?= @$(ECHO) "  ... Preprocessing $(filter %.cpp,$^)"
+PREP_MESSAGE   ?= @$(ECHO) "  ... Preprocessing $*"
 CHKSUM_MESSAGE  ?= @$(ECHO) "  ... Generating checksum for "
 PATCH_MESSAGE   ?= @$(ECHO) "  ... Writing checksum into "
 STRIP_MESSAGE  ?= @$(ECHO) "  ... Stripping $@"
@@ -189,6 +180,26 @@ else
 DEPS    = /dev/null
 endif
 
-ifeq ("$(CONFIG_ALLOW_RO_TEXT)","y")
-  PREPROCESS_PARTS += rotext
+# To enable all warning ...
+ENABLE_ALL_WARNINGS ?= n
+
+ifeq ($(CC_TYPE),gcc)
+  ifeq ($(ENABLE_ALL_WARNINGS),y)
+    tmp := $(call CHECKCC,-Wframe-larger-than=512)
+    CFLAGS   += $(tmp)
+    CXXFLAGS += $(tmp)
+    tmp :=
+  else
+    F_UNINITIALIZED := $(firstword $(call CHECKCC,-Wmaybe-uninitialized) \
+                                  $(call CHECKCC,-Wuninitialized))
+    F_SET_NOT_USED  := $(call CHECKCC,-Wunused-but-set-variable)
+
+    F_UNINITIALIZED := $(patsubst -W%,-Wno-%,$(F_UNINITIALIZED))
+    F_SET_NOT_USED  := $(patsubst -W%,-Wno-%,$(F_SET_NOT_USED))
+
+    CFLAGS +=   $(F_UNINITIALIZED) $(F_SET_NOT_USED)
+    CXXFLAGS += $(F_UNINITIALIZED) $(F_SET_NOT_USED)
+  endif
 endif
+
+