summaryrefslogtreecommitdiff
path: root/solenv/gbuild/platform/macosx.mk
diff options
context:
space:
mode:
authorMatúš Kukan <matus.kukan@gmail.com>2011-08-19 23:06:13 +0200
committerMatúš Kukan <matus.kukan@gmail.com>2011-08-22 12:54:53 +0200
commitfc41132306cf8ff523fb26518154c1c99c3ca388 (patch)
tree0bd638f2f7f4dd799aeb38b271e45b5741bc8c94 /solenv/gbuild/platform/macosx.mk
parent63eef1c1cf203aa75093b479a1e8dd24593546e7 (diff)
enable using link-time optimization
This commit enables LTO for all shared libraries. Build takes much longer. Use just with gcc-4.5 or later.
Diffstat (limited to 'solenv/gbuild/platform/macosx.mk')
-rw-r--r--solenv/gbuild/platform/macosx.mk8
1 files changed, 8 insertions, 0 deletions
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index d8f17db1d9cc..b074ff930b33 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -120,6 +120,10 @@ gb_CFLAGS_WERROR := -Werror
gb_CXXFLAGS_WERROR := -Werror
endif
+ifeq ($(ENABLE_LTO),TRUE)
+gb_Library_LTOFLAGS := -flto
+endif
+
gb_LinkTarget_EXCEPTIONFLAGS := \
-DEXCEPTIONS_ON \
-fexceptions \
@@ -191,6 +195,7 @@ $(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) $(dir $(4)) && \
$(gb_CC) \
$(DEFS) \
+ $(if $(filter Library,$(TARGETTYPE)),$(gb_Library_LTOFLAGS)) \
$(T_CFLAGS) \
-c $(3) \
-o $(1) \
@@ -210,6 +215,7 @@ $(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) $(dir $(4)) && \
$(gb_CXX) \
$(DEFS) \
+ $(if $(filter Library,$(TARGETTYPE)),$(gb_Library_LTOFLAGS)) \
$(T_CXXFLAGS) \
-c $(3) \
-o $(1) \
@@ -309,12 +315,14 @@ $(call gb_Helper_abbreviate_dirs,\
$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
$(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \
$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
+ $(if $(filter Library,$(TARGETTYPE)),$(gb_Library_LTOFLAGS)) \
$(subst \d,$$,$(RPATH)) \
$(T_LDFLAGS) \
$(patsubst lib%.dylib,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))) > $${DYLIB_FILE} && \
$(gb_CXX) \
$(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \
$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
+ $(if $(filter Library,$(TARGETTYPE)),$(gb_Library_LTOFLAGS)) \
$(subst \d,$$,$(RPATH)) \
$(T_LDFLAGS) \
$(call gb_LinkTarget__get_liblinkflags,$(LINKED_LIBS)) \