PageRenderTime 85ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/solenv/gbuild/platform/IOS_ARM_GCC.mk

https://bitbucket.org/markjenkins/libreoffice_ubuntu-debian-fixes
Makefile | 335 lines | 209 code | 73 blank | 53 comment | 10 complexity | f9f566a90151305e8ce11b218c5f2976 MD5 | raw file
Possible License(s): GPL-3.0, LGPL-3.0, MPL-2.0-no-copyleft-exception, LGPL-2.1, BSD-3-Clause-No-Nuclear-License-2014
  1. # -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
  2. #*************************************************************************
  3. #
  4. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  5. #
  6. # Copyright 2000, 2011 Oracle and/or its affiliates.
  7. #
  8. # OpenOffice.org - a multi-platform office productivity suite
  9. #
  10. # This file is part of OpenOffice.org.
  11. #
  12. # OpenOffice.org is free software: you can redistribute it and/or modify
  13. # it under the terms of the GNU Lesser General Public License version 3
  14. # only, as published by the Free Software Foundation.
  15. #
  16. # OpenOffice.org is distributed in the hope that it will be useful,
  17. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19. # GNU Lesser General Public License version 3 for more details
  20. # (a copy is included in the LICENSE file that accompanied this code).
  21. #
  22. # You should have received a copy of the GNU Lesser General Public License
  23. # version 3 along with OpenOffice.org. If not, see
  24. # <http://www.openoffice.org/license.html>
  25. # for a copy of the LGPLv3 License.
  26. #
  27. #*************************************************************************
  28. gb_CPUDEFS := -DARM32
  29. ifeq ($(CC),)
  30. $(error You must set CC in the environment. See README.cross for example.)
  31. endif
  32. ifeq ($(CXX),)
  33. $(error You must set CXX in the environment. See README.cross for example.)
  34. endif
  35. include $(GBUILDDIR)/platform/com_GCC_defs.mk
  36. # Darwin mktemp -t expects a prefix, not a pattern
  37. gb_MKTEMP := /usr/bin/mktemp -t gbuild.
  38. gb_OSDEFS := \
  39. -D$(OS) \
  40. -D_PTHREADS \
  41. -DUNIX \
  42. -DUNX \
  43. -D_REENTRANT \
  44. -DNO_PTHREAD_PRIORITY \
  45. $(EXTRA_CDEFS) \
  46. gb_CFLAGS := \
  47. $(gb_CFLAGS_COMMON) \
  48. -Wshadow \
  49. -fno-strict-aliasing \
  50. # For -Wno-non-virtual-dtor see <http://markmail.org/message/664jsoqe6n6smy3b>
  51. # "Re: [dev] warnings01: -Wnon-virtual-dtor" message to dev@openoffice.org from
  52. # Feb 1, 2006:
  53. gb_CXXFLAGS := \
  54. $(gb_CXXFLAGS_COMMON) \
  55. -Wno-ctor-dtor-privacy \
  56. -Wno-non-virtual-dtor \
  57. -fno-strict-aliasing \
  58. -fsigned-char
  59. # No idea if -malign-natural is needed, but macosx.mk uses it...
  60. # Why it isn't used in gb_CFLAGS I have no idea.
  61. # Anyway, Clang doesn't have this option.
  62. ifneq ($(COM_GCC_IS_CLANG),TRUE)
  63. gb_CXXFLAGS += \
  64. -malign-natural
  65. endif
  66. # these are to get gcc to switch to Objective-C++ or Objective-C mode
  67. gb_OBJC_OBJCXX_COMMON_FLAGS := -fobjc-abi-version=2 -fobjc-legacy-dispatch -D__IPHONE_OS_VERSION_MIN_REQUIRED=40300
  68. gb_OBJCXXFLAGS := -x objective-c++ $(gb_OBJC_OBJCXX_COMMON_FLAGS)
  69. gb_OBJCFLAGS := -x objective-c $(gb_OBJC_OBJCXX_COMMON_FLAGS)
  70. gb_COMPILERDEFS += \
  71. -DBOOST_DETAIL_NO_CONTAINER_FWD
  72. gb_LinkTarget_LDFLAGS := \
  73. $(subst -L../lib , ,$(SOLARLIB)) \
  74. #man ld says: obsolete -Wl,-multiply_defined,suppress \
  75. gb_DEBUG_CFLAGS := -g -fno-inline
  76. # ObjCxxObject class
  77. define gb_ObjCxxObject__command
  78. $(call gb_Output_announce,$(2).mm,$(true),OCX,3)
  79. $(call gb_Helper_abbreviate_dirs,\
  80. mkdir -p $(dir $(1)) $(dir $(4)) && \
  81. $(gb_CXX) \
  82. $(DEFS) \
  83. $(T_OBJCXXFLAGS) \
  84. $(if $(WARNINGS_NOT_ERRORS),,$(gb_CXXFLAGS_WERROR)) \
  85. -c $(3) \
  86. -o $(1) \
  87. -MMD -MT $(1) \
  88. -MP -MF $(4) \
  89. -I$(dir $(3)) \
  90. $(INCLUDE))
  91. endef
  92. # ObjCObject class
  93. define gb_ObjCObject__command
  94. $(call gb_Output_announce,$(2).m,$(true),OCC,3)
  95. $(call gb_Helper_abbreviate_dirs,\
  96. mkdir -p $(dir $(1)) && \
  97. mkdir -p $(dir $(call gb_ObjCObject_get_dep_target,$(2))) && \
  98. $(gb_CC) \
  99. $(DEFS) $(OBJCFLAGS) \
  100. $(if $(WARNINGS_NOT_ERRORS),,$(gb_CFLAGS_WERROR)) \
  101. -c $(3) \
  102. -o $(1) \
  103. -MMD -MT $(call gb_ObjCObject_get_target,$(2)) \
  104. -MP -MF $(call gb_ObjCObject_get_dep_target,$(2)) \
  105. -I$(dir $(3)) \
  106. $(INCLUDE))
  107. endef
  108. # LinkTarget class
  109. gb_LinkTarget_CFLAGS := $(gb_CFLAGS)
  110. gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS)
  111. gb_LinkTarget_OBJCXXFLAGS := $(gb_CXXFLAGS) $(gb_OBJCXXFLAGS)
  112. gb_LinkTarget_OBJCFLAGS := $(gb_CFLAGS) $(gb_OBJCFLAGS)
  113. ifeq ($(gb_SYMBOL),$(true))
  114. gb_LinkTarget_CFLAGS += $(gb_DEBUG_CFLAGS)
  115. gb_LinkTarget_CXXFLAGS += $(gb_DEBUG_CFLAGS)
  116. gb_LinkTarget_OBJCXXFLAGS += $(gb_DEBUG_CFLAGS)
  117. gb_LinkTarget_OBJCFLAGS += $(gb_DEBUG_CFLAGS)
  118. endif
  119. define gb_LinkTarget__get_liblinkflags
  120. $(patsubst lib%.a,-l%,$(foreach lib,$(filter-out $(gb_Library_UNOLIBS_OOO),$(1)),$(call gb_Library_get_filename,$(lib)))) \
  121. $(foreach lib,$(filter $(gb_Library_UNOLIBS_OOO),$(1)),$(SOLARVER)/$(INPATH)/lib/$(lib)$(gb_Library_UNOEXT))
  122. endef
  123. define gb_LinkTarget__get_layer
  124. $(if $(filter Executable,$(1)),\
  125. $$(call gb_Executable_get_layer,$(2)),\
  126. $$(call gb_Library_get_layer,$(2)))
  127. endef
  128. define gb_LinkTarget__command_dynamiclink
  129. $(if $(filter Library CppunitTest,$(TARGETTYPE)),@echo No dynamic libraries should be built for iOS && exit 1, \
  130. mkdir -p $(dir $(1)) && \
  131. $(gb_CXX) \
  132. $(gb_Executable_TARGETTYPEFLAGS) \
  133. $(subst \d,$$,$(RPATH)) \
  134. $(T_LDFLAGS) \
  135. $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
  136. $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
  137. $(foreach object,$(OBJCOBJECTS),$(call gb_ObjCObject_get_target,$(object))) \
  138. $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \
  139. $(foreach object,$(ASMOBJECTS),$(call gb_AsmObject_get_target,$(object))) \
  140. $(foreach object,$(GENCOBJECTS),$(call gb_GenCObject_get_target,$(object))) \
  141. $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
  142. $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),`cat $(extraobjectlist)`) \
  143. $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \
  144. $(call gb_LinkTarget__get_liblinkflags,$(LINKED_LIBS)) \
  145. $(LIBS) \
  146. -o $(1))
  147. endef
  148. # parameters: 1-linktarget 2-cobjects 3-cxxobjects
  149. define gb_LinkTarget__command_staticlink
  150. $(call gb_Helper_abbreviate_dirs,\
  151. mkdir -p $(dir $(1)) && \
  152. rm -f $(1) && \
  153. $(gb_AR) -rsu $(1) \
  154. $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
  155. $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
  156. $(foreach object,$(OBJCOBJECTS),$(call gb_ObjCObject_get_target,$(object))) \
  157. $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \
  158. $(foreach object,$(ASMOBJECTS),$(call gb_AsmObject_get_target,$(object))) \
  159. $(foreach object,$(GENCOBJECTS),$(call gb_GenCObject_get_target,$(object))) \
  160. $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
  161. $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),@$(extraobjectlist)) \
  162. $(if $(findstring s,$(MAKEFLAGS)),2> /dev/null))
  163. endef
  164. define gb_LinkTarget__command
  165. $(call gb_Output_announce,$(2),$(true),LNK,4)
  166. $(call gb_LinkTarget__command_staticlink,$(1))
  167. endef
  168. define gb_LinkTarget_use_system_darwin_frameworks
  169. $(call gb_LinkTarget_add_libs,$(1),$(foreach fw,$(2),-framework $(fw)))
  170. endef
  171. # Library class
  172. gb_Library_DEFS :=
  173. gb_Library_SYSPRE := lib
  174. gb_Library_UNOVERPRE := $(gb_Library_SYSPRE)uno_
  175. gb_Library_PLAINEXT := .a
  176. gb_Library_DLLEXT := .a
  177. gb_Library_RTEXT := gcc3$(gb_Library_PLAINEXT)
  178. gb_Library_OOOEXT := $(gb_Library_DLLPOSTFIX)$(gb_Library_PLAINEXT)
  179. gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT)
  180. gb_Library_FILENAMES := \
  181. $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \
  182. $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \
  183. $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \
  184. $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \
  185. $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \
  186. $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \
  187. $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \
  188. $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \
  189. $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \
  190. $(foreach lib,$(gb_Library_EXTENSIONLIBS),$(lib):$(lib)$(gb_Library_UNOEXT)) \
  191. gb_Library_LAYER := \
  192. $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \
  193. $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):OOO) \
  194. $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \
  195. $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \
  196. $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):OOO) \
  197. $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):OOO) \
  198. $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \
  199. $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):OOO) \
  200. $(foreach lib,$(gb_Library_EXTENSIONLIBS),$(lib):OXT) \
  201. define gb_Library_Library_platform
  202. $(call gb_LinkTarget_get_target,$(2)) : LAYER := $(call gb_Library_get_layer,$(1))
  203. endef
  204. # StaticLibrary class
  205. gb_StaticLibrary_SYSPRE := lib
  206. gb_StaticLibrary_PLAINEXT := .a
  207. gb_StaticLibrary_FILENAMES := \
  208. $(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \
  209. gb_StaticLibrary_StaticLibrary_platform =
  210. # Executable class
  211. gb_Executable_EXT := .a
  212. gb_Executable_TARGETTYPEFLAGS :=
  213. gb_Executable_LAYER := \
  214. $(foreach exe,$(gb_Executable_UREBIN),$(exe):OOO) \
  215. $(foreach exe,$(gb_Executable_SDK),$(exe):OOO) \
  216. $(foreach exe,$(gb_Executable_OOO),$(exe):OOO) \
  217. $(foreach exe,$(gb_Executable_NONE),$(exe):OOO) \
  218. define gb_Executable_Executable_platform
  219. $(call gb_LinkTarget_get_target,$(2)) : LAYER := $(call gb_Executable_get_layer,$(1))
  220. endef
  221. # CppunitTest class
  222. gb_CppunitTest_CPPTESTPRECOMMAND := :
  223. gb_CppunitTest_SYSPRE := libtest_
  224. gb_CppunitTest_EXT := .a
  225. gb_CppunitTest_LIBDIR := $(gb_Helper_OUTDIRLIBDIR)
  226. gb_CppunitTest_get_filename = $(gb_CppunitTest_SYSPRE)$(1)$(gb_CppunitTest_EXT)
  227. gb_CppunitTest_get_libfilename = $(gb_CppunitTest_get_filename)
  228. define gb_CppunitTest_CppunitTest_platform
  229. $(call gb_LinkTarget_get_target,$(2)) : LAYER := NONE
  230. endef
  231. # InstallModuleTarget class
  232. define gb_InstallModuleTarget_InstallModuleTarget_platform
  233. $(call gb_InstallModuleTarget_add_defs,$(1),\
  234. $(gb_CPUDEFS) \
  235. $(gb_OSDEFS) \
  236. -DCOMID=gcc3 \
  237. -DCOMNAME=gcc3 \
  238. -D_gcc3 \
  239. $(if $(filter TRUE,$(SOLAR_JAVA)),-DSOLAR_JAVA) \
  240. )
  241. endef
  242. # ScpConvertTarget class
  243. gb_ScpConvertTarget_ScpConvertTarget_platform :=
  244. # InstallScript class
  245. gb_InstallScript_EXT := .ins
  246. # CliAssemblyTarget class
  247. gb_CliAssemblyTarget_POLICYEXT :=
  248. gb_CliAssemblyTarget_get_dll :=
  249. # ExtensionTarget class
  250. gb_ExtensionTarget_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE
  251. # UnpackedTarget class
  252. gb_UnpackedTarget_TARFILE_LOCATION := $(TARFILE_LOCATION)
  253. # UnoApiHeadersTarget class
  254. ifeq ($(DISABLE_DYNLOADING),TRUE)
  255. gb_UnoApiHeadersTarget_select_variant = $(if $(filter udkapi,$(1)),comprehensive,$(2))
  256. else
  257. gb_UnoApiHeadersTarget_select_variant = $(2)
  258. endif
  259. # Python
  260. gb_PYTHON_PRECOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR_FOR_BUILD)/lib
  261. include $(GBUILDDIR)/platform/com_GCC_class.mk
  262. # vim: set noet sw=4: