1# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- 2# 3# This file is part of the LibreOffice project. 4# 5# This Source Code Form is subject to the terms of the Mozilla Public 6# License, v. 2.0. If a copy of the MPL was not distributed with this 7# file, You can obtain one at http://mozilla.org/MPL/2.0/. 8# 9 10ifeq ($(DISABLE_DYNLOADING),TRUE) 11 12gb_STDLIBS := -static-libstdc++ 13 14endif 15 16# No unit testing can be run 17gb_CppunitTest_CPPTESTPRECOMMAND := : 18 19# Re-define this from unxgcc.mk with some small but important 20# changes. Just temporarily done this way, shm_get promised to 21# eventually enable this to be done this in some more elegant and less 22# redundant fashion. 23 24gb_LinkTarget_LDFLAGS += \ 25 -Wl,-z,defs \ 26 -Wl,--as-needed \ 27 -Wl,--no-add-needed 28 29define gb_LinkTarget__command_dynamiclink 30$(call gb_Helper_abbreviate_dirs,\ 31 $(if $(CXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) \ 32 -shared \ 33 $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \ 34 $(subst \d,$$,$(RPATH)) \ 35 $(T_LDFLAGS) \ 36 $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ 37 $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ 38 $(foreach object,$(ASMOBJECTS),$(call gb_AsmObject_get_target,$(object))) \ 39 $(foreach object,$(GENCOBJECTS),$(call gb_GenCObject_get_target,$(object))) \ 40 $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ 41 $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),`cat $(extraobjectlist)`) \ 42 -Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group \ 43 $(T_LIBS) \ 44 $(patsubst lib%.a,-l%,$(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib))))) \ 45 -o $(1)) 46endef 47 48ifeq ($(DISABLE_DYNLOADING),TRUE) 49 50# Library class 51 52gb_Library_DEFS := 53gb_Library_SYSPRE := lib 54gb_Library_UNOVERPRE := $(gb_Library_SYSPRE)uno_ 55gb_Library_PLAINEXT := .a 56gb_Library_DLLEXT := .a 57gb_Library_RTEXT := gcc3$(gb_Library_PLAINEXT) 58 59gb_Library_OOOEXT := $(gb_Library_DLLPOSTFIX)$(gb_Library_PLAINEXT) 60gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT) 61 62endif 63 64# Prefix UNO library filenames with "lib" 65gb_Library_FILENAMES := \ 66 $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \ 67 $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ 68 $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ 69 $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ 70 $(foreach lib,$(gb_Library_PRIVATELIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \ 71 $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ 72 $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \ 73 74 75ifeq ($(DISABLE_DYNLOADING),TRUE) 76 77gb_Library_FILENAMES += \ 78 $(foreach lib,$(gb_Library_PLAINLIBS_OXT),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ 79 $(foreach lib,$(gb_Library_EXTENSIONLIBS),$(lib):$(lib)$(gb_Library_UNOEXT)) \ 80 81gb_Library_LAYER := \ 82 $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \ 83 $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):OOO) \ 84 $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \ 85 $(foreach lib,$(gb_Library_PLAINLIBS_OXT),$(lib):OXT) \ 86 $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):NONE) \ 87 $(foreach lib,$(gb_Library_PRIVATELIBS_URE),$(lib):OOO) \ 88 $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):OOO) \ 89 $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):OOO) \ 90 $(foreach lib,$(gb_Library_EXTENSIONLIBS),$(lib):OXT) \ 91 92define gb_Library_Library_platform 93$(call gb_LinkTarget_get_target,$(2)) : LAYER := $(call gb_Library_get_layer,$(1)) 94 95endef 96 97# CppunitTest class 98 99gb_CppunitTest_get_filename = libtest_$(1).a 100 101# No use for Cppunit targets now for Android (which would be just 102# static archives), they are just a waste of disk space. 103define gb_LinkTarget__command 104$(call gb_Output_announce,$(2),$(true),LNK,4) 105$(if $(filter CppunitTest,$(TARGETTYPE)), \ 106 touch $(1), \ 107 $(call gb_LinkTarget__command_staticlink,$(1))) 108endef 109 110endif 111 112# No DT_RPATH or DT_RUNPATH support in the Bionic dynamic linker so 113# don't bother generating such. 114 115define gb_Library_get_rpath 116endef 117 118define gb_Executable_get_rpath 119endef 120 121gb_LinkTarget_LDFLAGS := $(subst -Wl$(COMMA)-rpath-link$(COMMA)$(SYSBASE)/lib:$(SYSBASE)/usr/lib,,$(gb_LinkTarget_LDFLAGS)) 122 123gb_Library__set_soversion_script_platform = 124 125 126# vim: set noet sw=4 ts=4: 127