summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorBjoern Michaelsen <bjoern.michaelsen@canonical.com>2012-04-16 00:42:28 +0200
committerBjoern Michaelsen <bjoern.michaelsen@canonical.com>2012-04-16 11:59:42 +0200
commitebed42c38ae91147633c47873307e07984bc62c1 (patch)
tree1a03eab7f4ba386f5fb75b8bfb23657b63155652 /solenv
parent839a8250114dd0352048c4812b6fa71dc9b1c5b3 (diff)
introduce ENABLE_DEBUG_ONLY
with this you can now do: ./autogen.sh --enable-debug="sw sc" and your build will have debug version of the libraries sw and sc, but a non-debug build elsewhere. This currently only works for libraries. It would be also possible to extend that to excutables, but that would need explicit in the enable-debug switch then: ./autogen.sh --enable-debug="Library/sw Library/sc Executable/mkunroll" so I dont know if it is worth it.
Diffstat (limited to 'solenv')
-rw-r--r--solenv/gbuild/LinkTarget.mk64
1 files changed, 21 insertions, 43 deletions
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index 8d886c68e9bb..dc752001ac53 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -35,15 +35,22 @@
# OBJCXXFLAGS
# LDFLAGS
-# CFLAGS from environment override debug/optimization flags
+# this returns the cflags/cxxflags to use from either the environment or
+# otherwise debug flags, if ENABLE_DEBUG is set or the LinkTarget is named
+# in the list of libraries of ENABLE_DEBUG_ONLY
+
ifeq ($(gb_DEBUGLEVEL),2)
-CFLAGS ?= $(gb_COMPILEROPTFLAGS) $(gb_DEBUG_CFLAGS)
-CXXFLAGS ?= $(gb_COMPILEROPTFLAGS) $(gb_DEBUG_CFLAGS) $(gb_DEBUG_CXXFLAGS)
-OBJCXXFLAGS ?= $(gb_COMPILEROPTFLAGS) $(gb_DEBUG_CFLAGS) $(gb_DEBUG_CXXFLAGS)
+define gb_LinkTarget__get_debugcflags
+$(if $(CFLAGS),$(CFLAGS),$(gb_DEBUG_CFLAGS))
+endef
+
+define gb_LinkTarget__get_debugcxxflags
+$(if $(CXXFLAGS),$(CXXFLAGS),$(gb_DEBUG_CFLAGS) $(gb_DEBUG_CXXFLAGS))
+endef
+
else
-CFLAGS ?= $(gb_COMPILEROPTFLAGS)
-CXXFLAGS ?= $(gb_COMPILEROPTFLAGS)
-OBJCXXFLAGS ?= $(gb_COMPILEROPTFLAGS)
+gb_LinkTarget__get_debugcflags=$(if $(filter $(1),$(foreach lib,$(ENABLE_DEBUG_ONLY),$(call gb_Library_get_linktargetname,$(lib)))),$(gb_DEBUG_CFLAGS))
+gb_LinkTarget__get_debugcxxflags=$(if $(filter $(1),$(foreach lib,$(ENABLE_DEBUG_ONLY),$(call gb_Library_get_linktargetname,$(lib)))),$(gb_DEBUG_CFLAGS) $(gb_DEBUG_CXXFLAGS))
endif
# Overview of dependencies and tasks of LinkTarget
@@ -426,10 +433,10 @@ $(call gb_LinkTarget_get_target,$(1)) : GENCOBJECTS :=
$(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)) : T_CFLAGS := $$(gb_LinkTarget_CFLAGS) $(CFLAGS)
+$(call gb_LinkTarget_get_target,$(1)) : T_CFLAGS := $$(gb_LinkTarget_CFLAGS)
$(call gb_LinkTarget_get_headers_target,$(1)) \
$(call gb_LinkTarget_get_target,$(1)) : T_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS)
-$(call gb_LinkTarget_get_target,$(1)) : T_OBJCXXFLAGS := $$(gb_LinkTarget_OBJCXXFLAGS) $(OBJCXXFLAGS)
+$(call gb_LinkTarget_get_target,$(1)) : T_OBJCXXFLAGS := $$(gb_LinkTarget_OBJCXXFLAGS)
$(call gb_LinkTarget_get_target,$(1)) : T_OBJCFLAGS := $$(gb_LinkTarget_OBJCFLAGS) $(OBJCFLAGS)
$(call gb_LinkTarget_get_headers_target,$(1)) \
$(call gb_LinkTarget_get_target,$(1)) : DEFS := $$(gb_LinkTarget_DEFAULTDEFS) $(CPPFLAGS)
@@ -459,7 +466,7 @@ $(call gb_LinkTarget_get_dep_target,$(1)) : ASMOBJECTS :=
$(call gb_LinkTarget_get_dep_target,$(1)) : GENCOBJECTS :=
$(call gb_LinkTarget_get_dep_target,$(1)) : GENCXXOBJECTS :=
$(call gb_LinkTarget_get_dep_target,$(1)) : YACCOBJECTS :=
-$(call gb_LinkTarget_get_dep_target,$(1)) : T_CFLAGS := $$(gb_LinkTarget_CFLAGS) $(CFLAGS)
+$(call gb_LinkTarget_get_dep_target,$(1)) : T_CFLAGS := $$(gb_LinkTarget_CFLAGS)
$(call gb_LinkTarget_get_dep_target,$(1)) : T_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS)
$(call gb_LinkTarget_get_dep_target,$(1)) : T_OBJCXXFLAGS := $$(gb_LinkTarget_OBJCXXFLAGS) $(OBJCXXFLAGS)
$(call gb_LinkTarget_get_dep_target,$(1)) : T_OBJCFLAGS := $$(gb_LinkTarget_OBJCFLAGS) $(OBJCFLAGS)
@@ -484,16 +491,8 @@ endif
endef
define gb_LinkTarget_set_defs
-ifeq (,)
$$(call gb_Output_error,\
gb_LinkTarget_set_defs: use gb_LinkTarget_add_defs instead.)
-else
-$(call gb_LinkTarget_get_headers_target,$(1)) \
-$(call gb_LinkTarget_get_target,$(1)) : DEFS := $(2)
-
-ifeq ($(gb_FULLDEPS),$(true))
-$(call gb_LinkTarget_get_dep_target,$(1)) : DEFS := $(2)
-endif
endif
endef
@@ -507,14 +506,8 @@ endif
endef
define gb_LinkTarget_set_cflags
-ifeq (,)
$$(call gb_Output_error,\
gb_LinkTarget_set_cflags: use gb_LinkTarget_add_cflags instead.)
-else
-$(call gb_LinkTarget_get_target,$(1)) : T_CFLAGS := $(2)
-ifeq ($(gb_FULLDEPS),$(true))
-$(call gb_LinkTarget_get_dep_target,$(1)) : T_CFLAGS := $(2)
-endif
endif
endef
@@ -528,16 +521,8 @@ endif
endef
define gb_LinkTarget_set_cxxflags
-ifeq (,)
$$(call gb_Output_error,\
gb_LinkTarget_set_cxxflags: use gb_LinkTarget_add_cxxflags instead.)
-else
-$(call gb_LinkTarget_get_headers_target,$(1)) \
-$(call gb_LinkTarget_get_target,$(1)) : T_CXXFLAGS := $(2)
-ifeq ($(gb_FULLDEPS),$(true))
-$(call gb_LinkTarget_get_dep_target,$(1)) : T_CXXFLAGS := $(2)
-endif
-endif
endef
@@ -549,15 +534,8 @@ endif
endef
define gb_LinkTarget_set_objcxxflags
-ifeq (,)
$$(call gb_Output_error,\
gb_LinkTarget_set_objcxxflags: use gb_LinkTarget_add_objcxxflags instead.)
-else
-$(call gb_LinkTarget_get_target,$(1)) : T_OBJCXXFLAGS := $(2)
-ifeq ($(gb_FULLDEPS),$(true))
-$(call gb_LinkTarget_get_dep_target,$(1)) : T_OBJCXXFLAGS := $(2)
-endif
-endif
endef
@@ -727,7 +705,7 @@ $(call gb_LinkTarget_get_clean_target,$(1)) : COBJECTS += $(2)
$(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)) : T_CFLAGS += $(3)
+$(call gb_CObject_get_target,$(2)) : T_CFLAGS += $(call gb_LinkTarget__get_debugcflags,$(1)) $(3)
$(call gb_CObject_get_target,$(2)) : \
OBJECTOWNER := $(call gb_Object__owner,$(2),$(1))
@@ -866,11 +844,11 @@ $(foreach grammar,$(2),$(call gb_LinkTarget_add_grammar,$(1),$(grammar)))
endef
define gb_LinkTarget_add_noexception_object
-$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_NOEXCEPTIONFLAGS) $(CXXFLAGS))
+$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_NOEXCEPTIONFLAGS) $(gb_COMPILEROPTFLAGS) $(call gb_LinkTarget__get_debugcxxflags,$(1)))
endef
define gb_LinkTarget_add_exception_object
-$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS) $(CXXFLAGS))
+$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS) $(gb_COMPILEROPTFLAGS) $(call gb_LinkTarget__get_debugcxxflags,$(1)))
endef
define gb_LinkTarget_add_linktarget_objects
@@ -953,7 +931,7 @@ $(foreach obj,$(2),$(call gb_LinkTarget_add_generated_cxx_object,$(1),$(obj),$(3
endef
define gb_LinkTarget_add_generated_exception_object
-$(call gb_LinkTarget_add_generated_cxx_object,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS) $(gb_COMPILEROPTFLAGS) $(CXXFLAGS))
+$(call gb_LinkTarget_add_generated_cxx_object,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS) $(gb_COMPILEROPTFLAGS) $(call gb_LinkTarget__get_debugcxxflags,$(1)))
endef
define gb_LinkTarget_add_generated_exception_objects