1 # -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
4 # This file is part of the LibreOffice project.
6 # This Source Code Form is subject to the terms of the Mozilla Public
7 # License, v. 2.0. If a copy of the MPL was not distributed with this
8 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
12 $(eval
$(call gb_Module_Module
,libreoffice
))
14 # These have to be included before the others for more_fonts dependencies
15 $(eval
$(call gb_Module_add_moduledirs
,libreoffice
,\
16 $(call gb_Helper_optional
,MORE_FONTS
,external
/more_fonts
) \
21 # This makefile needs to be read first because some variables like T_LIBS
22 # for libmerged are cleared there and then later we append stuff to it
23 # through e.g. gb_Library_use_external for various libraries in libmerged.
25 $(eval
$(call gb_Module_add_targets
,libreoffice
,\
30 $(eval
$(call gb_Module_add_moduledirs
,libreoffice
,\
35 $(call gb_Helper_optional
,AVMEDIA
,avmedia
) \
45 $(call gb_Helper_optional
,DESKTOP
,codemaker
) \
54 $(call gb_Helper_optional
,DBCONNECTIVITY
,dbaccess
) \
56 $(call gb_Helper_optional
,DICTIONARIES
,dictionaries
) \
66 $(call gb_Helper_optional
,DBCONNECTIVITY
,forms
) \
68 $(call gb_Helper_optional
,DESKTOP
,fpicker
) \
70 $(call gb_Helper_optional
,DESKTOP
,helpcompiler
) \
71 $(call gb_Helper_optional
,HELP
,helpcontent2
) \
77 $(call gb_Helper_optional
,DESKTOP
,idlc
) \
89 $(call gb_Helper_optional
,DESKTOP
,l10ntools
) \
90 $(call gb_Helper_optional
,NLPSOLVER
,nlpsolver
) \
92 $(call gb_Helper_optional
,ODK
,odk
) \
98 $(call gb_Helper_optional
,OPENCL
,opencl
) \
102 $(call gb_Helper_optional
,PYUNO
,pyuno
) \
103 $(call gb_Helper_optional
,QADEVOOO
,qadevOOo
) \
108 $(call gb_Helper_optional
,DBCONNECTIVITY
,reportdesign
) \
116 $(call gb_Helper_optional
,DESKTOP
,scp2
) \
120 $(call gb_Helper_optional
,DESKTOP
,setup_native
) \
146 $(call gb_Helper_optional
,PYUNO
,uitest
) \
163 $(call gb_Helper_optional
,DESKTOP
,xmlhelp
) \
170 # Especially when building everything with symbols, the linking of the largest
171 # libraries takes enormous amounts of RAM. To prevent annoying OOM situations
172 # etc., try to prevent linking these in parallel by adding artificial build
173 # order dependencies here.
174 define repositorymodule_serialize1
175 $(call gb_LinkTarget_get_target
,$(call gb_Library_get_linktarget
,$(1))) \
176 :|
$(foreach lib
,$(2),$(call gb_Library_get_target
,$(lib
)))
179 define repositorymodule_serialize
180 $(if
$(filter-out 0 1,$(words $(1))),\
181 $(call repositorymodule_serialize1
,$(firstword $(1)),$(wordlist
2,$(words $(1)),$(1))))
183 $(call repositorymodule_serialize
,$(wordlist
2,$(words $(1)),$(1))))
186 # DO NOT SORT ALPHABETICALLY: the libraries must be listed in dependency order,
187 # otherwise cyclic dependencies ruin everything.
188 # do not serialize on a partial build as that may fail due to missing deps.
189 # the default goal is all (see Module.mk)
190 ifeq (,$(filter-out all build
check unitcheck slowcheck screenshot subsequentcheck uicheck
,$(MAKECMDGOALS
)))
191 $(eval
$(call repositorymodule_serialize
,\
193 $(call gb_Helper_optional
,SCRIPTING
,vbaobj
) \
195 $(call gb_Helper_optional
,DESKTOP
,swui
) \
197 $(call gb_Helper_optional
,DBCONNECTIVITY
,dbu
) \
198 writerfilter cui chartcontroller chartcore oox \
199 $(if
$(MERGELIBS
), merged
, \
200 svx svxcore xo sfx fwk svt vcl
) \
204 # vim: set noet sw=4 ts=4: