2013-03-14 21:21:28 -04:00
|
|
|
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
|
|
|
|
#
|
|
|
|
# This file is part of the LibreOffice project.
|
|
|
|
#
|
|
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
#
|
|
|
|
|
2013-04-09 20:28:27 +02:00
|
|
|
$(eval $(call gb_Library_Library,$(gb_CPPU_ENV)_uno))
|
2013-03-14 21:21:28 -04:00
|
|
|
|
|
|
|
ifeq ($(OS),IOS)
|
2017-09-19 09:44:38 +02:00
|
|
|
bridges_SELECTED_BRIDGE := gcc3_ios
|
2017-09-22 08:29:13 +02:00
|
|
|
bridge_noopt_objects := cpp2uno cpp2uno-simulator except uno2cpp uno2cpp-simulator callvirtualmethod abi call
|
|
|
|
bridge_asm_objects := ios64_helper
|
2017-06-27 11:24:38 +02:00
|
|
|
|
|
|
|
else ifeq ($(CPUNAME),ARM)
|
|
|
|
|
|
|
|
ifneq ($(filter ANDROID DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS)),)
|
2013-03-14 21:21:28 -04:00
|
|
|
bridges_SELECTED_BRIDGE := gcc3_linux_arm
|
|
|
|
bridge_noopt_objects := cpp2uno except uno2cpp
|
|
|
|
# HACK
|
2013-09-16 12:13:02 +02:00
|
|
|
$(call gb_LinkTarget_get_target,$(call gb_Library_get_linktarget,gcc3_uno)) : \
|
2013-03-14 21:21:28 -04:00
|
|
|
$(call gb_CustomTarget_get_workdir,bridges/source/cpp_uno/gcc3_linux_arm)/armhelper.objectlist
|
2013-09-16 12:13:02 +02:00
|
|
|
$(call gb_LinkTarget_get_target,$(call gb_Library_get_linktarget,gcc3_uno)) : \
|
2013-03-14 21:21:28 -04:00
|
|
|
EXTRAOBJECTLISTS += $(call gb_CustomTarget_get_workdir,bridges/source/cpp_uno/gcc3_linux_arm)/armhelper.objectlist
|
2013-03-19 10:05:35 +02:00
|
|
|
endif
|
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
else ifeq ($(CPUNAME),AARCH64)
|
2014-08-29 17:17:42 +02:00
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
ifneq ($(filter ANDROID DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS)),)
|
2014-08-29 17:17:42 +02:00
|
|
|
bridges_SELECTED_BRIDGE := gcc3_linux_aarch64
|
2014-09-04 15:26:58 +02:00
|
|
|
bridge_exception_objects := abi callvirtualfunction uno2cpp
|
|
|
|
|
|
|
|
$(eval $(call gb_Library_add_cxxobjects,$(gb_CPPU_ENV)_uno, \
|
|
|
|
bridges/source/cpp_uno/$(bridges_SELECTED_BRIDGE)/cpp2uno, \
|
2017-10-19 15:29:38 +02:00
|
|
|
$(gb_LinkTarget_EXCEPTIONFLAGS) \
|
|
|
|
$(call gb_LinkTarget__get_cxxflags,$(gb_CPPU_ENV)_uno) -fstack-protector \
|
2014-09-04 15:26:58 +02:00
|
|
|
))
|
2015-11-26 09:33:37 +00:00
|
|
|
endif
|
2014-08-29 17:17:42 +02:00
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
else ifeq ($(CPUNAME),AXP)
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
ifneq ($(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS)),)
|
2013-03-14 21:21:28 -04:00
|
|
|
bridges_SELECTED_BRIDGE := gcc3_linux_alpha
|
|
|
|
bridge_exception_objects := cpp2uno except uno2cpp
|
2015-11-26 09:33:37 +00:00
|
|
|
endif
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
else ifeq ($(CPUNAME),HPPA)
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
ifneq ($(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS)),)
|
2013-03-14 21:21:28 -04:00
|
|
|
bridges_SELECTED_BRIDGE := gcc3_linux_hppa
|
2014-04-21 00:19:47 +02:00
|
|
|
bridge_noopt_objects := call cpp2uno except uno2cpp
|
2015-11-26 09:33:37 +00:00
|
|
|
endif
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
else ifeq ($(CPUNAME),IA64)
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
ifneq ($(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS)),)
|
2013-03-14 21:21:28 -04:00
|
|
|
bridges_SELECTED_BRIDGE := gcc3_linux_ia64
|
|
|
|
bridge_asm_objects := call
|
|
|
|
bridge_exception_objects := except
|
|
|
|
bridge_noopt_objects := cpp2uno uno2cpp
|
2015-11-26 09:33:37 +00:00
|
|
|
endif
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2013-11-06 18:59:45 +01:00
|
|
|
else ifeq ($(CPUNAME),INTEL)
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2013-03-14 21:21:28 -04:00
|
|
|
ifneq ($(filter ANDROID DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS)),)
|
|
|
|
bridges_SELECTED_BRIDGE := gcc3_linux_intel
|
|
|
|
bridge_asm_objects := call
|
2013-05-29 09:58:34 +01:00
|
|
|
bridge_exception_objects := cpp2uno except uno2cpp
|
|
|
|
bridge_noncallexception_objects := callvirtualmethod
|
2014-06-23 10:54:19 +02:00
|
|
|
else ifeq ($(OS),SOLARIS)
|
|
|
|
bridges_SELECTED_BRIDGE := gcc3_solaris_intel
|
|
|
|
bridge_exception_objects := cpp2uno except uno2cpp
|
2015-02-19 14:36:39 +01:00
|
|
|
bridge_noncallexception_objects := callvirtualmethod
|
2013-03-14 21:21:28 -04:00
|
|
|
else ifeq ($(COM),MSC)
|
|
|
|
bridges_SELECTED_BRIDGE := msvc_win32_intel
|
|
|
|
bridge_exception_objects := cpp2uno dllinit uno2cpp
|
|
|
|
bridge_noopt_objects := except
|
2013-03-19 10:05:35 +02:00
|
|
|
endif
|
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
else ifeq ($(CPUNAME),M68K)
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
ifneq ($(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS)),)
|
2013-03-14 21:21:28 -04:00
|
|
|
bridges_SELECTED_BRIDGE := gcc3_linux_m68k
|
|
|
|
bridge_noopt_objects := cpp2uno except uno2cpp
|
2015-11-26 09:33:37 +00:00
|
|
|
endif
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2013-11-06 18:59:45 +01:00
|
|
|
else ifeq ($(CPUNAME),GODSON)
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2013-03-14 21:21:28 -04:00
|
|
|
ifneq ($(filter ANDROID LINUX,$(OS)),)
|
|
|
|
bridges_SELECTED_BRIDGE := gcc3_linux_mips
|
|
|
|
bridge_noopt_objects := cpp2uno uno2cpp
|
|
|
|
bridge_exception_objects := except
|
2013-03-19 10:05:35 +02:00
|
|
|
endif
|
|
|
|
|
2015-07-07 18:19:09 +08:00
|
|
|
else ifeq ($(CPUNAME),GODSON64)
|
|
|
|
|
|
|
|
ifneq ($(filter ANDROID LINUX,$(OS)),)
|
|
|
|
bridges_SELECTED_BRIDGE := gcc3_linux_mips64
|
|
|
|
bridge_asm_objects := call
|
|
|
|
bridge_noopt_objects := cpp2uno uno2cpp
|
|
|
|
bridge_exception_objects := except
|
|
|
|
endif
|
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
else ifeq ($(CPUNAME),POWERPC)
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
ifneq ($(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS)),)
|
2013-03-14 21:21:28 -04:00
|
|
|
bridges_SELECTED_BRIDGE := gcc3_linux_powerpc
|
|
|
|
bridge_noopt_objects := uno2cpp
|
|
|
|
bridge_exception_objects := cpp2uno except
|
2015-11-26 09:33:37 +00:00
|
|
|
else ifeq ($(OS),AIX)
|
|
|
|
bridges_SELECTED_BRIDGE := gcc3_aix_powerpc
|
|
|
|
bridge_exception_objects := except
|
|
|
|
bridge_cxx_objects := cpp2uno uno2cpp
|
|
|
|
endif
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
else ifeq ($(CPUNAME),POWERPC64)
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
ifneq ($(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS)),)
|
2013-03-14 21:21:28 -04:00
|
|
|
bridges_SELECTED_BRIDGE := gcc3_linux_powerpc64
|
|
|
|
bridge_noopt_objects := cpp2uno uno2cpp
|
|
|
|
bridge_exception_objects := except
|
2015-11-26 09:33:37 +00:00
|
|
|
endif
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
else ifeq ($(CPUNAME),S390)
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
ifneq ($(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS)),)
|
2013-03-14 21:21:28 -04:00
|
|
|
bridges_SELECTED_BRIDGE := gcc3_linux_s390
|
|
|
|
bridge_exception_objects := cpp2uno except uno2cpp
|
2015-11-26 09:33:37 +00:00
|
|
|
endif
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
else ifeq ($(CPUNAME),S390X)
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
ifneq ($(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS)),)
|
2013-03-14 21:21:28 -04:00
|
|
|
bridges_SELECTED_BRIDGE := gcc3_linux_s390x
|
|
|
|
bridge_exception_objects := cpp2uno except uno2cpp
|
2015-11-26 09:33:37 +00:00
|
|
|
endif
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
else ifeq ($(CPUNAME),SPARC)
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2015-11-26 09:33:37 +00:00
|
|
|
ifneq ($(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS)),)
|
2013-03-14 21:21:28 -04:00
|
|
|
bridges_SELECTED_BRIDGE := gcc3_linux_sparc
|
|
|
|
bridge_asm_objects := call
|
|
|
|
bridge_noopt_objects := except
|
|
|
|
bridge_exception_objects := cpp2uno uno2cpp
|
2015-11-26 09:33:37 +00:00
|
|
|
else ifeq ($(OS),SOLARIS)
|
|
|
|
bridges_SELECTED_BRIDGE := gcc3_solaris_sparc
|
|
|
|
bridge_noopt_objects := cpp2uno uno2cpp
|
|
|
|
bridge_exception_objects := except
|
|
|
|
endif
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2016-08-05 18:07:33 +02:00
|
|
|
else ifeq ($(OS)-$(CPUNAME),LINUX-SPARC64)
|
|
|
|
|
|
|
|
bridges_SELECTED_BRIDGE := gcc3_linux_sparc64
|
|
|
|
bridge_asm_objects := call
|
|
|
|
bridge_noopt_objects := cpp2uno uno2cpp
|
|
|
|
bridge_exception_objects := except
|
|
|
|
|
2013-11-06 18:59:45 +01:00
|
|
|
else ifeq ($(CPUNAME),X86_64)
|
2013-03-19 10:05:35 +02:00
|
|
|
|
2013-03-14 21:21:28 -04:00
|
|
|
ifneq ($(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS)),)
|
|
|
|
bridges_SELECTED_BRIDGE := gcc3_linux_x86-64
|
|
|
|
bridge_asm_objects := call
|
2013-05-29 09:58:34 +01:00
|
|
|
bridge_noncallexception_noopt_objects := callvirtualmethod
|
2014-08-07 18:21:08 +02:00
|
|
|
bridge_exception_objects := abi cpp2uno except rtti uno2cpp
|
2013-03-14 21:21:28 -04:00
|
|
|
else ifeq ($(OS),MACOSX)
|
|
|
|
bridges_SELECTED_BRIDGE := gcc3_macosx_x86-64
|
2013-04-09 00:39:41 +03:00
|
|
|
bridge_exception_objects := abi call cpp2uno except uno2cpp
|
2013-05-29 09:58:34 +01:00
|
|
|
bridge_noncallexception_noopt_objects := callvirtualmethod
|
2013-03-14 21:21:28 -04:00
|
|
|
else ifeq ($(COM),MSC)
|
|
|
|
bridges_SELECTED_BRIDGE := msvc_win32_x86-64
|
|
|
|
bridge_exception_objects := cpp2uno dllinit uno2cpp
|
|
|
|
bridge_noopt_objects := except
|
|
|
|
bridge_asm_objects := call
|
2013-03-19 10:05:35 +02:00
|
|
|
endif
|
|
|
|
|
2013-03-14 21:21:28 -04:00
|
|
|
endif
|
|
|
|
|
2013-04-09 20:28:27 +02:00
|
|
|
$(eval $(call gb_Library_use_internal_comprehensive_api,$(gb_CPPU_ENV)_uno,\
|
2013-03-14 21:21:28 -04:00
|
|
|
udkapi \
|
|
|
|
))
|
|
|
|
|
2013-04-09 20:28:27 +02:00
|
|
|
$(eval $(call gb_Library_set_include,$(gb_CPPU_ENV)_uno,\
|
2013-03-14 21:21:28 -04:00
|
|
|
-I$(SRCDIR)/bridges/inc \
|
|
|
|
$$(INCLUDE) \
|
|
|
|
))
|
|
|
|
|
|
|
|
ifeq ($(HAVE_POSIX_FALLOCATE),YES)
|
2013-04-09 20:28:27 +02:00
|
|
|
$(eval $(call gb_Library_add_defs,$(gb_CPPU_ENV)_uno,\
|
2013-03-14 21:21:28 -04:00
|
|
|
-DHAVE_POSIX_FALLOCATE \
|
|
|
|
))
|
|
|
|
endif
|
|
|
|
|
|
|
|
# In case someone enabled the non-standard -fomit-frame-pointer which does not
|
|
|
|
# work with the .cxx sources of this library.
|
|
|
|
# LTO causes crashes when enabled for this library
|
|
|
|
# In case the compiler supports AVX this code segfaults so specifically turn
|
|
|
|
# it off.
|
|
|
|
ifeq ($(COM),GCC)
|
|
|
|
$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
|
|
|
|
-fno-omit-frame-pointer \
|
|
|
|
-fno-strict-aliasing \
|
|
|
|
$(if $(filter TRUE,$(ENABLE_LTO)),-fno-lto) \
|
2013-03-21 12:50:07 +01:00
|
|
|
$(if $(filter TRUE,$(HAVE_GCC_AVX)),-mno-avx) \
|
2013-03-14 21:21:28 -04:00
|
|
|
))
|
|
|
|
|
2014-06-10 18:32:51 +02:00
|
|
|
ifeq ($(filter ANDROID WNT DRAGONFLY FREEBSD NETBSD OPENBSD MACOSX,$(OS)),)
|
2013-03-14 21:21:28 -04:00
|
|
|
$(eval $(call gb_Library_add_libs,gcc3_uno,\
|
|
|
|
-ldl \
|
|
|
|
))
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
2013-05-29 09:58:34 +01:00
|
|
|
ifeq ($(COM),GCC)
|
2015-11-12 15:00:25 +01:00
|
|
|
ifneq ($(COM_IS_CLANG),TRUE)
|
2013-05-29 09:58:34 +01:00
|
|
|
bridges_NON_CALL_EXCEPTIONS_FLAGS := -fnon-call-exceptions
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
2016-07-08 18:29:01 +02:00
|
|
|
bridges_DEBUGINFO_FLAGS := $(if $(filter $(true),$(gb_SYMBOL)),$(gb_DEBUGINFO_FLAGS))
|
2015-11-02 17:01:06 +01:00
|
|
|
|
2013-04-09 20:28:27 +02:00
|
|
|
$(eval $(call gb_Library_use_libraries,$(gb_CPPU_ENV)_uno,\
|
2013-03-14 21:21:28 -04:00
|
|
|
cppu \
|
|
|
|
sal \
|
|
|
|
))
|
|
|
|
|
|
|
|
$(foreach obj,$(bridge_exception_objects),\
|
2013-04-09 20:28:27 +02:00
|
|
|
$(eval $(call gb_Library_add_exception_objects,$(gb_CPPU_ENV)_uno,\
|
2013-03-14 21:21:28 -04:00
|
|
|
bridges/source/cpp_uno/$(bridges_SELECTED_BRIDGE)/$(obj))) \
|
|
|
|
)
|
2013-05-29 09:58:34 +01:00
|
|
|
$(foreach obj,$(bridge_noncallexception_objects),\
|
|
|
|
$(eval $(call gb_Library_add_cxxobjects,$(gb_CPPU_ENV)_uno,\
|
|
|
|
bridges/source/cpp_uno/$(bridges_SELECTED_BRIDGE)/$(obj) \
|
2015-11-02 17:01:06 +01:00
|
|
|
, $(bridges_NON_CALL_EXCEPTIONS_FLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) $(bridges_DEBUGINFO_FLAGS))) \
|
2013-05-29 09:58:34 +01:00
|
|
|
)
|
2013-03-14 21:21:28 -04:00
|
|
|
$(foreach obj,$(bridge_noopt_objects),\
|
2013-04-09 20:28:27 +02:00
|
|
|
$(eval $(call gb_Library_add_cxxobjects,$(gb_CPPU_ENV)_uno,\
|
2013-03-14 21:21:28 -04:00
|
|
|
bridges/source/cpp_uno/$(bridges_SELECTED_BRIDGE)/$(obj) \
|
2015-11-02 20:56:32 +01:00
|
|
|
, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) $(bridges_DEBUGINFO_FLAGS))) \
|
2013-03-14 21:21:28 -04:00
|
|
|
)
|
2013-05-29 09:58:34 +01:00
|
|
|
$(foreach obj,$(bridge_noncallexception_noopt_objects),\
|
|
|
|
$(eval $(call gb_Library_add_cxxobjects,$(gb_CPPU_ENV)_uno,\
|
|
|
|
bridges/source/cpp_uno/$(bridges_SELECTED_BRIDGE)/$(obj) \
|
2015-11-02 17:01:06 +01:00
|
|
|
, $(gb_COMPILERNOOPTFLAGS) $(bridges_NON_CALL_EXCEPTIONS_FLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) $(bridges_DEBUGINFO_FLAGS))) \
|
2013-05-29 09:58:34 +01:00
|
|
|
)
|
2013-03-14 21:21:28 -04:00
|
|
|
$(foreach obj,$(bridge_cxx_objects),\
|
2013-04-09 20:28:27 +02:00
|
|
|
$(eval $(call gb_Library_add_cxxobjects,$(gb_CPPU_ENV)_uno,\
|
2013-03-14 21:21:28 -04:00
|
|
|
bridges/source/cpp_uno/$(bridges_SELECTED_BRIDGE)/$(obj))) \
|
|
|
|
)
|
|
|
|
$(foreach obj,$(bridge_asm_objects),\
|
2013-04-09 20:28:27 +02:00
|
|
|
$(eval $(call gb_Library_add_asmobjects,$(gb_CPPU_ENV)_uno,\
|
2013-03-14 21:21:28 -04:00
|
|
|
bridges/source/cpp_uno/$(bridges_SELECTED_BRIDGE)/$(obj))) \
|
|
|
|
)
|
|
|
|
|
2013-04-09 20:28:27 +02:00
|
|
|
$(eval $(call gb_Library_add_exception_objects,$(gb_CPPU_ENV)_uno,\
|
2013-03-14 21:21:28 -04:00
|
|
|
bridges/source/cpp_uno/shared/bridge \
|
|
|
|
bridges/source/cpp_uno/shared/component \
|
|
|
|
bridges/source/cpp_uno/shared/types \
|
|
|
|
bridges/source/cpp_uno/shared/unointerfaceproxy \
|
|
|
|
bridges/source/cpp_uno/shared/vtablefactory \
|
|
|
|
bridges/source/cpp_uno/shared/vtables \
|
|
|
|
))
|
|
|
|
|
2013-04-09 20:28:27 +02:00
|
|
|
$(eval $(call gb_Library_add_cxxobjects,$(gb_CPPU_ENV)_uno,\
|
2013-03-14 21:21:28 -04:00
|
|
|
bridges/source/cpp_uno/shared/cppinterfaceproxy \
|
|
|
|
, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
|
|
|
|
))
|
|
|
|
|
|
|
|
# vim: set noet sw=4 ts=4:
|