Author: arist Date: Wed Nov 14 23:31:53 2012 New Revision: 1409555 URL: http://svn.apache.org/viewvc?rev=1409555&view=rev Log: gnumake4_057_6af861d98643.patch # HG changeset patch # User Michael Stahl <m...@openoffice.org> # Date 1302178164 0 # Node ID 6af861d986439b9a6242acf5c9c56932a11479c3 # Parent 38ca0135d0e95fa325154a72121300ee158f38e9 gnumake4: #i116959#: allow user to override {C,CXX,OBJCXX}FLAGS: optional flags (for optimization/debug) can be overridden.
Modified: incubator/ooo/branches/gbuild/main/solenv/gbuild/LinkTarget.mk incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/linux.mk incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/macosx.mk incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/solaris.mk incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/windows.mk incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/winmingw.mk Modified: incubator/ooo/branches/gbuild/main/solenv/gbuild/LinkTarget.mk URL: http://svn.apache.org/viewvc/incubator/ooo/branches/gbuild/main/solenv/gbuild/LinkTarget.mk?rev=1409555&r1=1409554&r2=1409555&view=diff ============================================================================== --- incubator/ooo/branches/gbuild/main/solenv/gbuild/LinkTarget.mk (original) +++ incubator/ooo/branches/gbuild/main/solenv/gbuild/LinkTarget.mk Wed Nov 14 23:31:53 2012 @@ -21,6 +21,17 @@ +# CFLAGS from environment override debug/optimization flags +ifeq ($(gb_DEBUGLEVEL),2) +CFLAGS ?= $(gb_COMPILEROPTFLAGS) $(gb_DEBUG_CFLAGS) +CXXFLAGS ?= $(gb_COMPILEROPTFLAGS) $(gb_DEBUG_CFLAGS) +OBJCXXFLAGS ?= $(gb_COMPILEROPTFLAGS) $(gb_DEBUG_CFLAGS) +else +CFLAGS ?= $(gb_COMPILEROPTFLAGS) +CXXFLAGS ?= $(gb_COMPILEROPTFLAGS) +OBJCXXFLAGS ?= $(gb_COMPILEROPTFLAGS) +endif + # CObject class @@ -210,6 +221,9 @@ gb_ObjCxxObject_ObjCxxObject = # LinkTarget class +# need an alias for global CXXFLAGS in gb_LinkTarget_add_exception_object etc. +gb_CXXFLAGS_TOO := $(CXXFLAGS) + gb_LinkTarget_DEFAULTDEFS := $(gb_GLOBALDEFS) # defined by platform # gb_LinkTarget_CXXFLAGS @@ -322,6 +336,13 @@ $(call gb_LinkTarget_get_headers_target, # Therefore it is important that objects are only directly depended on by the # linktarget. This for example means that you cannot build a single object # alone, because then you would directly depend on the object. +# +# A note about flags: here the global variable CFLAGS is overridden by a target +# local variable of the same name. The $(CFLAGS) on the rhs refers to the +# global variable. (same thing for OBJCXXFLAGS) +# CXXFLAGS is slightly different, because it is not set at the link target, +# but only when using gb_LinkTarget_add_{no,}exception_object etc., to +# provide a mechanism that disables optimization for a specific file. define gb_LinkTarget_LinkTarget $(call gb_LinkTarget_get_clean_target,$(1)) : AUXTARGETS := $(call gb_LinkTarget_get_external_headers_target,$(1)) : SELF := $(1) @@ -335,12 +356,12 @@ $(call gb_LinkTarget_get_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : GENCXXOBJECTS := $(call gb_LinkTarget_get_headers_target,$(1)) \ -$(call gb_LinkTarget_get_target,$(1)) : CFLAGS := $$(gb_LinkTarget_CFLAGS) +$(call gb_LinkTarget_get_target,$(1)) : override CFLAGS := $$(gb_LinkTarget_CFLAGS) $(CFLAGS) $(call gb_LinkTarget_get_headers_target,$(1)) \ -$(call gb_LinkTarget_get_target,$(1)) : CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) +$(call gb_LinkTarget_get_target,$(1)) : override CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) $(call gb_LinkTarget_get_headers_target,$(1)) \ -$(call gb_LinkTarget_get_target,$(1)) : PCH_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) $(gb_COMPILEROPTFLAGS) -$(call gb_LinkTarget_get_target,$(1)) : OBJCXXFLAGS := $$(gb_LinkTarget_OBJCXXFLAGS) +$(call gb_LinkTarget_get_target,$(1)) : PCH_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) $(CXXFLAGS) +$(call gb_LinkTarget_get_target,$(1)) : override OBJCXXFLAGS := $$(gb_LinkTarget_OBJCXXFLAGS) $(OBJCXXFLAGS) $(call gb_LinkTarget_get_headers_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : DEFS := $$(gb_LinkTarget_DEFAULTDEFS) $(call gb_LinkTarget_get_headers_target,$(1)) \ @@ -372,10 +393,10 @@ $(call gb_LinkTarget_get_dep_target,$(1) $(call gb_LinkTarget_get_dep_target,$(1)) : CXXOBJECTS := $(call gb_LinkTarget_get_dep_target,$(1)) : OBJCXXOBJECTS := $(call gb_LinkTarget_get_dep_target,$(1)) : GENCXXOBJECTS := -$(call gb_LinkTarget_get_dep_target,$(1)) : CFLAGS := $$(gb_LinkTarget_CFLAGS) -$(call gb_LinkTarget_get_dep_target,$(1)) : CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) -$(call gb_LinkTarget_get_dep_target,$(1)) : PCH_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) $(gb_COMPILEROPTFLAGS) -$(call gb_LinkTarget_get_dep_target,$(1)) : OBJCXXFLAGS := $$(gb_LinkTarget_OBJCXXFLAGS) +$(call gb_LinkTarget_get_dep_target,$(1)) : override CFLAGS := $$(gb_LinkTarget_CFLAGS) $(CFLAGS) +$(call gb_LinkTarget_get_dep_target,$(1)) : override CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) +$(call gb_LinkTarget_get_dep_target,$(1)) : PCH_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) $(CXXFLAGS) +$(call gb_LinkTarget_get_dep_target,$(1)) : override OBJCXXFLAGS := $$(gb_LinkTarget_OBJCXXFLAGS) $(OBJCXXFLAGS) $(call gb_LinkTarget_get_dep_target,$(1)) : DEFS := $$(gb_LinkTarget_DEFAULTDEFS) $(call gb_LinkTarget_get_dep_target,$(1)) : PCH_DEFS := $$(gb_LinkTarget_DEFAULTDEFS) $(call gb_LinkTarget_get_dep_target,$(1)) : INCLUDE := $$(gb_LinkTarget_INCLUDE) @@ -400,29 +421,29 @@ endif endef define gb_LinkTarget_set_cflags -$(call gb_LinkTarget_get_target,$(1)) : CFLAGS := $(2) +$(call gb_LinkTarget_get_target,$(1)) : override CFLAGS := $(2) ifeq ($(gb_FULLDEPS),$(true)) -$(call gb_LinkTarget_get_dep_target,$(1)) : CFLAGS := $(2) +$(call gb_LinkTarget_get_dep_target,$(1)) : override CFLAGS := $(2) endif endef define gb_LinkTarget_set_cxxflags $(call gb_LinkTarget_get_headers_target,$(1)) \ -$(call gb_LinkTarget_get_target,$(1)) : CXXFLAGS := $(2) +$(call gb_LinkTarget_get_target,$(1)) : override CXXFLAGS := $(2) $(call gb_LinkTarget_get_headers_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : PCH_CXXFLAGS := $(2) ifeq ($(gb_FULLDEPS),$(true)) -$(call gb_LinkTarget_get_dep_target,$(1)) : CXXFLAGS := $(2) +$(call gb_LinkTarget_get_dep_target,$(1)) : override CXXFLAGS := $(2) $(call gb_LinkTarget_get_dep_target,$(1)) : PCH_CXXFLAGS := $(2) endif endef define gb_LinkTarget_set_objcxxflags -$(call gb_LinkTarget_get_target,$(1)) : OBJCXXFLAGS := $(2) +$(call gb_LinkTarget_get_target,$(1)) : override OBJCXXFLAGS := $(2) ifeq ($(gb_FULLDEPS),$(true)) -$(call gb_LinkTarget_get_dep_target,$(1)) : OBJCXXFLAGS := $(2) +$(call gb_LinkTarget_get_dep_target,$(1)) : override OBJCXXFLAGS := $(2) endif endef @@ -532,7 +553,7 @@ $(call gb_LinkTarget_get_clean_target,$( $(call gb_LinkTarget_get_target,$(1)) : $(call gb_CObject_get_target,$(2)) $(call gb_CObject_get_target,$(2)) : | $(call gb_LinkTarget_get_headers_target,$(1)) -$(call gb_CObject_get_target,$(2)) : CFLAGS += $(3) +$(call gb_CObject_get_target,$(2)) : override CFLAGS += $(3) ifeq ($(gb_FULLDEPS),$(true)) $(call gb_LinkTarget_get_dep_target,$(1)) : COBJECTS += $(2) @@ -547,7 +568,7 @@ $(call gb_LinkTarget_get_clean_target,$( $(call gb_LinkTarget_get_target,$(1)) : $(call gb_CxxObject_get_target,$(2)) $(call gb_CxxObject_get_target,$(2)) : | $(call gb_LinkTarget_get_headers_target,$(1)) -$(call gb_CxxObject_get_target,$(2)) : CXXFLAGS += $(3) +$(call gb_CxxObject_get_target,$(2)) : override CXXFLAGS += $(3) ifeq ($(gb_FULLDEPS),$(true)) $(call gb_LinkTarget_get_dep_target,$(1)) : CXXOBJECTS += $(2) @@ -562,7 +583,7 @@ $(call gb_LinkTarget_get_clean_target,$( $(call gb_LinkTarget_get_target,$(1)) : $(call gb_ObjCxxObject_get_target,$(2)) $(call gb_ObjCxxObject_get_target,$(2)) : | $(call gb_LinkTarget_get_headers_target,$(1)) -$(call gb_ObjCxxObject_get_target,$(2)) : OBJCXXFLAGS += $(3) +$(call gb_ObjCxxObject_get_target,$(2)) : override OBJCXXFLAGS += $(3) ifeq ($(gb_FULLDEPS),$(true)) $(call gb_LinkTarget_get_dep_target,$(1)) : OBJCXXOBJECTS += $(2) @@ -577,7 +598,7 @@ $(call gb_LinkTarget_get_clean_target,$( $(call gb_LinkTarget_get_target,$(1)) : $(call gb_GenCxxObject_get_target,$(2)) $(call gb_GenCxxObject_get_source,$(2)) : | $(call gb_LinkTarget_get_headers_target,$(1)) -$(call gb_GenCxxObject_get_target,$(2)) : CXXFLAGS += $(3) $(gb_COMPILEROPTFLAGS) +$(call gb_GenCxxObject_get_target,$(2)) : override CXXFLAGS += $(3) $(gb_CXXFLAGS_TOO) ifeq ($(gb_FULLDEPS),$(true)) $(call gb_LinkTarget_get_dep_target,$(1)) : GENCXXOBJECTS += $(2) @@ -587,11 +608,11 @@ endif endef define gb_LinkTarget_add_noexception_object -$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_NOEXCEPTIONFLAGS) $(gb_COMPILEROPTFLAGS)) +$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_NOEXCEPTIONFLAGS) $(gb_CXXFLAGS_TOO)) endef define gb_LinkTarget_add_exception_object -$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS) $(gb_COMPILEROPTFLAGS)) +$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS) $(gb_CXXFLAGS_TOO)) endef define gb_LinkTarget_add_cobjects Modified: incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/linux.mk URL: http://svn.apache.org/viewvc/incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/linux.mk?rev=1409555&r1=1409554&r2=1409555&view=diff ============================================================================== --- incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/linux.mk (original) +++ incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/linux.mk Wed Nov 14 23:31:53 2012 @@ -137,6 +137,8 @@ gb_LinkTarget_LDFLAGS += \ endif +gb_DEBUG_CFLAGS := -ggdb3 -finline-limit=0 -fno-inline -fno-default-inline + ifeq ($(gb_DEBUGLEVEL),2) gb_COMPILEROPTFLAGS := -O0 else @@ -212,14 +214,9 @@ gb_LinkTarget__RPATHS := \ SDKBIN:\dORIGIN/../../ure-link/lib \ NONEBIN:\dORIGIN/../lib:\dORIGIN \ -gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS) +gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) -ifeq ($(gb_DEBUGLEVEL),2) -gb_LinkTarget_CXXFLAGS += -ggdb3 -finline-limit=0 -fno-inline -fno-default-inline -gb_LinkTarget_CFLAGS += -ggdb3 -finline-limit=0 -fno-inline -fno-default-inline - -endif gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC))) Modified: incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/macosx.mk URL: http://svn.apache.org/viewvc/incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/macosx.mk?rev=1409555&r1=1409554&r2=1409555&view=diff ============================================================================== --- incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/macosx.mk (original) +++ incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/macosx.mk Wed Nov 14 23:31:53 2012 @@ -126,6 +126,8 @@ gb_LinkTarget_LDFLAGS := \ $(subst -L../lib , ,$(SOLARLIB)) \ #man ld says: obsolete -Wl,-multiply_defined,suppress \ +gb_DEBUG_CFLAGS := -g + ifeq ($(gb_DEBUGLEVEL),2) gb_COMPILEROPTFLAGS := -O0 else @@ -226,15 +228,9 @@ define gb_LinkTarget__get_installname $(if $(2),-install_name '$(2)$(1)',) endef -gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS) +gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) -gb_LinkTarget_OBJCXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) $(gb_OBJCXXFLAGS) $(gb_COMPILEROPTFLAGS) - -ifeq ($(gb_DEBUGLEVEL),2) -gb_LinkTarget_CFLAGS += -g -gb_LinkTarget_CXXFLAGS += -g -gb_LinkTarget_OBJCXXFLAGS += -g -endif +gb_LinkTarget_OBJCXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) $(gb_OBJCXXFLAGS) gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC))) Modified: incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/solaris.mk URL: http://svn.apache.org/viewvc/incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/solaris.mk?rev=1409555&r1=1409554&r2=1409555&view=diff ============================================================================== --- incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/solaris.mk (original) +++ incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/solaris.mk Wed Nov 14 23:31:53 2012 @@ -104,6 +104,9 @@ gb_LinkTarget_LDFLAGS := \ -PIC \ -library=no%Cstd \ + +gb_DEBUG_CFLAGS := -g + ifeq ($(gb_DEBUGLEVEL),2) gb_COMPILEROPTFLAGS := else @@ -190,13 +193,9 @@ gb_LinkTarget__RPATHS := \ SDKBIN:\dORIGIN/../../ure-link/lib \ NONEBIN:\dORIGIN/../lib:\dORIGIN \ -gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS) +gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) -ifeq ($(gb_DEBUGLEVEL),2) -gb_LinkTarget_CXXFLAGS += -g -gb_LinkTarget_CFLAGS += -g -endif gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC))) Modified: incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/windows.mk URL: http://svn.apache.org/viewvc/incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/windows.mk?rev=1409555&r1=1409554&r2=1409555&view=diff ============================================================================== --- incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/windows.mk (original) +++ incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/windows.mk Wed Nov 14 23:31:53 2012 @@ -196,6 +196,9 @@ gb_LinkTarget_LDFLAGS := \ -dynamicbase \ $(patsubst %,-LIBPATH:%,$(filter-out .,$(subst ;, ,$(subst \,/,$(ILIB))))) \ +gb_DEBUG_CFLAGS := -Zi + +# this does not use CFLAGS so it is not overridable ifneq ($(ENABLE_CRASHDUMP),) gb_LinkTarget_LDFLAGS += -DEBUG gb_CFLAGS+=-Zi @@ -203,10 +206,8 @@ gb_CXXFLAGS+=-Zi endif ifeq ($(gb_DEBUGLEVEL),2) -gb_CXXFLAGS +=-Zi -gb_CFLAGS +=-Zi -gb_COMPILEROPTFLAGS := gb_LinkTarget_LDFLAGS += -DEBUG +gb_COMPILEROPTFLAGS := else gb_COMPILEROPTFLAGS := -Ob1 -Oxs -Oy- endif @@ -410,7 +411,7 @@ endef # LinkTarget class -gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS) +gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) gb_LinkTarget_INCLUDE :=\ Modified: incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/winmingw.mk URL: http://svn.apache.org/viewvc/incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/winmingw.mk?rev=1409555&r1=1409554&r2=1409555&view=diff ============================================================================== --- incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/winmingw.mk (original) +++ incubator/ooo/branches/gbuild/main/solenv/gbuild/platform/winmingw.mk Wed Nov 14 23:31:53 2012 @@ -164,6 +164,8 @@ ifeq ($(MINGW_GCCLIB_EH),YES) gb_LinkTarget_LDFLAGS += -shared-libgcc endif +gb_DEBUG_CFLAGS := -ggdb3 -finline-limit=0 -fno-inline -fno-default-inline + ifeq ($(gb_DEBUGLEVEL),2) gb_COMPILEROPTFLAGS := -O0 else @@ -383,15 +385,9 @@ endef # LinkTarget class -gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS) +gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) -ifeq ($(gb_DEBUGLEVEL),2) -gb_LinkTarget_CXXFLAGS += -ggdb3 -finline-limit=0 -fno-inline -fno-default-inline -gb_LinkTarget_CFLAGS += -ggdb3 -finline-limit=0 -fno-inline -fno-default-inline - -endif - gb_LinkTarget_INCLUDE :=\ $(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) \ $(foreach inc,$(subst ;, ,$(JDKINC)),-I$(inc)) \