blob: 52361349f5e3ef28e3dbaa20450ee3837c47752a [file] [log] [blame]
Takeshi Abeb2bd33e2011-08-10 02:12:48 +09001# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
Michael Stahlb0b92d12012-05-15 14:47:37 +02002#
Michael Meeks72e5d0c2013-04-24 17:14:03 +01003# This file is part of the LibreOffice project.
Michael Stahlb0b92d12012-05-15 14:47:37 +02004#
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#
Norbert Thiebaudc857dff2012-01-24 15:48:30 -06009
Matúš Kukan14443162014-09-05 12:43:34 +020010gb_Top_MODULE_CHECK_TARGETS := slowcheck unitcheck subsequentcheck perfcheck
11
Takeshi Abe775d99c2014-11-07 21:14:50 +090012.PHONY : all bootstrap gbuild build build-non-l10n-only build-l10n-only check clean clean-build clean-host test-install distclean distro-pack-install docs download etags fetch findunusedcode get-submodules id install install-strip tags debugrun help showmodules translations packageinfo internal.clean $(gb_Top_MODULE_CHECK_TARGETS)
Matúš Kukan0e6212c2012-12-23 19:27:28 +010013
Bjoern Michaelsen4a016d12013-11-21 00:34:20 +010014MAKECMDGOALS?=all
Norbert Thiebaud3047ac52014-02-08 22:08:33 -060015build_goal:=$(if $(filter build check,$(MAKECMDGOALS)),all)\
16 $(if $(filter build-nocheck,$(MAKECMDGOALS)),build)\
17 $(if $(filter check,$(MAKECMDGOALS)),subsequentcheck)\
Peter Foley7abf6862014-09-08 14:52:03 -040018 $(filter all build-l10n-only build-non-l10n-only debugrun help showmodules translations $(gb_Top_MODULE_CHECK_TARGETS) check packageinfo,$(MAKECMDGOALS))
Norbert Thiebaude48d33b2012-01-26 16:29:26 -060019
Michael Stahl2768d782014-06-04 22:21:53 +020020SHELL := @SHELL_BASH@
Matúš Kukan0e6212c2012-12-23 19:27:28 +010021SRCDIR := @SRC_ROOT@
22BUILDDIR := @BUILDDIR@
David Tardon40ae8f32013-05-30 16:12:22 +020023GIT_BUILD := $(if $(wildcard $(SRCDIR)/.git),T)
Norbert Thiebaudc857dff2012-01-24 15:48:30 -060024
David Tardon40ae8f32013-05-30 16:12:22 +020025# Run autogen.sh if needed and force make to restart itself.
26# ... but there are several cases where we do not want to run
27# autogen.sh:
28# 1. if we are building from tarballs, not git checkout (I do not
29# think packagers would ever want that. I certainly do not.)
30# 2. if we are making help, clean or distclean, because they do not
31# need updated configuration
Peter Foley7abf6862014-09-08 14:52:03 -040032ifeq (,$(MAKE_RESTARTS)$(if $(GIT_BUILD),,T)$(if $(filter-out help showmodules clean distclean,$(MAKECMDGOALS)),,T))
Norbert Thiebaudc857dff2012-01-24 15:48:30 -060033
Matúš Kukan0e6212c2012-12-23 19:27:28 +010034.PHONY : force-restart
David Tardonc8708f32015-03-26 09:19:01 +010035Makefile: $(BUILDDIR)/config_host.mk $(BUILDDIR)/config_host_lang.mk force-restart
Matúš Kukan0e6212c2012-12-23 19:27:28 +010036 @touch $@
Norbert Thiebaudc857dff2012-01-24 15:48:30 -060037
Michael Stahlb0b92d12012-05-15 14:47:37 +020038# run configure in an environment not polluted by config_host.mk
Matúš Kukan38a22f562013-11-21 00:02:18 +010039$(BUILDDIR)/config_host.mk : $(wildcard \
Michael Stahlb0b92d12012-05-15 14:47:37 +020040 $(SRCDIR)/config_host.mk.in \
David Tardonc8708f32015-03-26 09:19:01 +010041 $(SRCDIR)/config_host_lang.mk.in \
Norbert Thiebaudae4e3272012-12-11 07:49:24 -060042 $(SRCDIR)/Makefile.in \
Michael Stahl2a9ecb82013-01-18 22:11:53 +010043 $(SRCDIR)/instsetoo_native/util/openoffice.lst.in \
Peter Foley39558762012-10-19 16:59:21 -040044 $(SRCDIR)/configure.ac \
Matúš Kukan38a22f562013-11-21 00:02:18 +010045 $(SRCDIR)/config_host/*.h.in \
Miklos Vajna562d8f52015-05-21 17:55:28 +010046 $(SRCDIR)/android/source/AndroidManifest.xml.in \
Matúš Kukan38a22f562013-11-21 00:02:18 +010047 $(BUILDDIR)/autogen.input \
48 $(BUILDDIR)/autogen.lastrun \
Miklos Vajnaaefc43b2015-03-08 16:58:35 +010049 $(BUILDDIR)/autogen.sh \
Matúš Kukan38a22f562013-11-21 00:02:18 +010050 )
Michael Stahlfe8c5f62014-06-02 00:18:08 +020051 sh -c $(SRCDIR)/autogen.sh
Norbert Thiebaud84399902012-01-26 14:26:49 -060052
Matúš Kukan0e6212c2012-12-23 19:27:28 +010053else # MAKE_RESTARTS
54
55all: build
56
Bjoern Michaelsen4a016d12013-11-21 00:34:20 +010057gb_Side ?= host
Matúš Kukan0e6212c2012-12-23 19:27:28 +010058
59include $(BUILDDIR)/config_$(gb_Side).mk
Matúš Kukan0e6212c2012-12-23 19:27:28 +010060
Norbert Thiebauda8db3572015-08-10 14:06:40 -050061export GMAKE_OPTIONS?=-r$(if $(verbose),,s)$(value $(MAKEFLAGS))
Matúš Kukan0e6212c2012-12-23 19:27:28 +010062
Luboš Luňákf605cfc2014-03-23 15:58:00 +010063PARALLELISM_OPTION := $(if $(filter-out 0,$(PARALLELISM)),-j $(PARALLELISM),)
64
Michael Stahl886452b2014-11-17 17:27:03 +010065IWYU_OPTION := $(if $(IWYU_PATH),-k CC=$(IWYU_PATH) CXX=$(IWYU_PATH),)
Riccardo Magliocchettic716b382014-11-04 16:26:45 +010066
Michael Stahlfea3ca32014-11-24 15:17:26 +010067# don't want to have a dependency to iwyudummy.generate because it's
68# useful to manually edit the generated StaticLibrary_iwyudummy.mk
Michael Stahl096c7e82014-11-14 18:54:06 +010069iwyudummy: bootstrap fetch
Michael Stahlfea3ca32014-11-24 15:17:26 +010070 $(if $(wildcard $(BUILDDIR)/iwyudummy),,$(error first call "make iwyudummy.generate"))
Michael Stahl096c7e82014-11-14 18:54:06 +010071 cd $(BUILDDIR)/iwyudummy && $(MAKE) $(IWYU_OPTION) $(GMAKE_OPTIONS)
72
Noel Grandin460deba2014-11-20 09:47:17 +020073iwyudummy.generate:
74 $(SRCDIR)/bin/gen-iwyu-dummy-lib
75
Matúš Kukanf2e73652013-02-27 18:40:36 +010076#
77# Partial Build
78#
Bjoern Michaelsen60c64b42013-11-20 19:21:34 +010079define gb_Top_GbuildModuleRules
Matúš Kukan14443162014-09-05 12:43:34 +020080.PHONY: $(1) $(1).all $(1).build $(1).check $(1).clean $(1).showdeliverables $(foreach target,$(gb_Top_MODULE_CHECK_TARGETS),$(1).$(target))
Matúš Kukan0e6212c2012-12-23 19:27:28 +010081
82$(1): bootstrap fetch
Riccardo Magliocchettic716b382014-11-04 16:26:45 +010083 cd $(SRCDIR)/$(2) && $$(MAKE) $(IWYU_OPTION) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS)
Matúš Kukan0e6212c2012-12-23 19:27:28 +010084
Matúš Kukan14443162014-09-05 12:43:34 +020085$(1).build $(1).check $(1).clean $(1).showdeliverables $(foreach target,$(gb_Top_MODULE_CHECK_TARGETS),$(1).$(target)):
Luboš Luňák35720ea2014-03-23 21:20:00 +010086 cd $(SRCDIR)/$(2) && $$(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) $$(patsubst $(1).%,%,$$@)
Matúš Kukan0e6212c2012-12-23 19:27:28 +010087
Matúš Kukanbdd92142013-02-26 15:15:22 +010088$(1).all: bootstrap fetch
Riccardo Magliocchettic716b382014-11-04 16:26:45 +010089 $$(MAKE) $(PARALLELISM_OPTION) $(IWYU_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $(WORKDIR)/Module/$(1) $(if $(CROSS_COMPILING),,$(WORKDIR)/Module/check/$(1) $(WORKDIR)/Module/slowcheck/$(1))
Matúš Kukanbdd92142013-02-26 15:15:22 +010090
Matúš Kukan0e6212c2012-12-23 19:27:28 +010091endef
Norbert Thiebaudae4e3272012-12-11 07:49:24 -060092
Bjoern Michaelsen60c64b42013-11-20 19:21:34 +010093define gb_Top_GbuildModulesRules
94$(foreach m,$(1),$(call gb_Top_GbuildModuleRules,$(notdir $(m)),$(m)))
Matúš Kukan0e6212c2012-12-23 19:27:28 +010095endef
96
Michael Stahldddff6e2013-10-23 16:33:50 +020097gbuild_modules := $(patsubst $(SRCDIR)/%/,%,$(dir $(wildcard $(SRCDIR)/*/Module_*.mk $(SRCDIR)/external/*/Module_*.mk)))
Peter Foley96f94302013-03-24 09:34:55 -040098
Noel Grandin065d6cc2014-07-07 14:29:05 +020099gbuild_internal_modules := $(filter-out odk external,$(patsubst $(SRCDIR)/%/,%,$(dir $(wildcard $(SRCDIR)/*/Module_*.mk))))
100
101internal.clean: $(addsuffix .clean,$(gbuild_internal_modules))
102
103
Bjoern Michaelsen60c64b42013-11-20 19:21:34 +0100104$(eval $(call gb_Top_GbuildModulesRules,$(gbuild_modules)))
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100105
Peter Foleyac3e90b2013-03-02 13:06:22 -0500106gbuild_TARGETS := AllLangHelp \
David Tardone78646e2013-05-07 12:29:34 +0200107 AllLangPackage \
Peter Foleyac3e90b2013-03-02 13:06:22 -0500108 AllLangResTarget \
Matúš Kukan7a878f92013-06-10 00:56:28 +0200109 AutoInstall \
Peter Foleyac3e90b2013-03-02 13:06:22 -0500110 CliLibrary \
111 CliNativeLibrary \
Michael Stahl6bd0f9b2013-10-28 10:32:03 +0100112 CliUnoApi \
Peter Foleyac3e90b2013-03-02 13:06:22 -0500113 Configuration \
114 CppunitTest \
115 CustomTarget \
116 Dictionary \
117 Executable \
118 Extension \
Michael Stahl704451d2013-10-31 00:15:51 +0100119 ExtensionPackage \
Michael Stahl60211132013-10-31 00:58:46 +0100120 ExtensionPackageSet \
Peter Foleyac3e90b2013-03-02 13:06:22 -0500121 ExternalPackage \
122 ExternalProject \
Stephan Bergmann514baf72015-01-07 13:45:56 +0100123 Gallery \
David Tardon0fd330e2013-05-04 13:21:33 +0200124 GeneratedPackage \
Peter Foleyac3e90b2013-03-02 13:06:22 -0500125 InstallModule \
126 InstallScript \
127 InternalUnoApi \
128 Jar \
129 JunitTest \
130 Library \
131 Module \
132 Package \
David Tardon9d54f0e2013-04-07 09:45:19 +0200133 PackageSet \
Peter Foleyac3e90b2013-03-02 13:06:22 -0500134 Pagein \
David Tardondf7b8632013-05-24 15:49:11 +0200135 Postprocess \
Peter Foleyac3e90b2013-03-02 13:06:22 -0500136 Pyuno \
Michael Stahl3094d722013-04-18 22:59:25 +0200137 PythonTest \
Peter Foleyac3e90b2013-03-02 13:06:22 -0500138 Rdb \
139 StaticLibrary \
David Tardoned729832013-04-06 13:10:54 +0200140 UIConfig \
Peter Foleyac3e90b2013-03-02 13:06:22 -0500141 UnoApi \
Peter Foleyac3e90b2013-03-02 13:06:22 -0500142 UnpackedTarball \
143 WinResTarget \
David Tardonea18ca02013-03-31 11:34:10 +0200144 Zip \
David Tardon3d50cfa2013-04-14 08:18:27 +0200145
Peter Foleyac3e90b2013-03-02 13:06:22 -0500146# build a generic gbuild target
Stephan Bergmannb3046282014-06-18 13:27:47 +0200147$(foreach target,$(gbuild_TARGETS),$(target)_% $(foreach module,$(gbuild_modules),$(target)_$(module)/%)) %.genpatch: bootstrap fetch
Luboš Luňákf8062812014-03-23 17:46:23 +0100148 $(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $@
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100149
150#
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100151# Clean
152#
153clean: clean-host clean-build
154
155clean-host:
Michael Stahlf1d08892013-10-01 15:30:08 +0200156 rm -fr $(TESTINSTALLDIR)
David Tardonbba6e9e2013-04-03 17:13:32 +0200157 rm -fr $(INSTDIR)
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100158 rm -fr $(WORKDIR)
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100159
160clean-build:
Michael Stahld729d162014-02-27 16:19:43 +0100161ifneq ($(CROSS_COMPILING),)
Matúš Kukan58ff5d52013-09-25 09:44:35 +0200162 rm -fr $(INSTDIR_FOR_BUILD)
Matúš Kukanf2e73652013-02-27 18:40:36 +0100163 rm -fr $(WORKDIR_FOR_BUILD)
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100164endif
165
166include $(SRCDIR)/compilerplugins/Makefile.mk
167
168#
169# Distclean
170#
171distclean : clean compilerplugins-clean
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100172 rm -fr \
173 $(BUILDDIR)/Makefile \
174 $(BUILDDIR)/aclocal.m4 \
Miklos Vajna562d8f52015-05-21 17:55:28 +0100175 $(BUILDDIR)/android/source/AndroidManifest.xml \
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100176 $(BUILDDIR)/autom4te.cache \
177 $(BUILDDIR)/config.log \
Stephan Bergmann16b48022013-12-17 14:06:42 +0100178 $(BUILDDIR)/config.Build.log \
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100179 $(BUILDDIR)/config.status \
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100180 $(BUILDDIR)/config_build.mk \
181 $(BUILDDIR)/config_host.mk \
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100182 $(BUILDDIR)/config_host.mk.stamp \
David Tardonc8708f32015-03-26 09:19:01 +0100183 $(BUILDDIR)/config_host_lang.mk \
184 $(BUILDDIR)/config_host_lang.mk.stamp \
Stephan Bergmann353e1772013-02-04 08:39:08 +0100185 $(BUILDDIR)/config_host/*.h \
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100186 $(BUILDDIR)/configure \
Stephan Bergmanncb50efb2013-01-14 11:05:50 +0100187 $(BUILDDIR)/instsetoo_native/util/openoffice.lst \
Stephan Bergmann9e973322013-10-17 23:37:29 +0200188 $(BUILDDIR)/ios/lo.xcconfig \
Stephan Bergmanna3267252013-10-02 21:19:01 +0200189 $(BUILDDIR)/lo.xcent \
Tor Lillqvist332f6a52014-09-17 17:39:10 +0300190 $(BUILDDIR)/sysui/desktop/macosx/Info.plist
Michael Stahlbc5069a2013-11-01 12:19:09 +0100191 find $(SRCDIR)/solenv/gdb -name "*.pyc" -exec rm {} \;
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100192
193#
194# custom command
195#
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100196cmd:
197 echo "custom cmd" && ( $(cmd) )
198
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100199#
200# Fetch
201#
Michael Stahle3ba7642014-03-10 23:42:26 +0100202ifneq ($(DO_FETCH_TARBALLS),)
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100203include $(SRCDIR)/Makefile.fetch
204fetch: download
205fetch: get-submodules
206
207ifneq (,$(wildcard $(SRCDIR)/.git))
208get-submodules:
209ifneq ($(foreach i,$(GIT_NEEDED_SUBMODULES),$(i)/.git),$(wildcard $(foreach i,$(GIT_NEEDED_SUBMODULES),$(i)/.git)))
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100210 cd $(SRCDIR) && ./g -f clone
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100211endif
Peter Foleyc2aaa832013-02-13 17:19:59 -0500212 @cd $(SRCDIR) && ./g -z # make sure the git hooks are in place enen if no submodules are needed
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100213
214else # these sources are from a tarball, so get the other source tarballs
215gb_LO_VER := $(shell . $(SRCDIR)/sources.ver && echo $$lo_sources_ver)
216$(if $(gb_LO_VER),,$(error Error while retrieving $$lo_sources_ver from $(SRCDIR)/sources.ver))
217
218get-submodules: | download
219ifneq ($(foreach i,$(subst helpcontent2,help,$(GIT_NEEDED_SUBMODULES)),$(SRCDIR)/src/libreoffice-$(i)-$(gb_LO_VER)),$(wildcard $(foreach i,$(subst helpcontent2,help,$(GIT_NEEDED_SUBMODULES)),$(SRCDIR)/src/libreoffice-$(i)-$(gb_LO_VER))))
220 $(foreach i,$(subst helpcontent2,help,$(GIT_NEEDED_SUBMODULES)),\
David Tardon922b03f02014-08-04 19:34:03 +0200221 $(call fetch_Download_item_unchecked,http://download.documentfoundation.org/libreoffice/src/$(shell echo $(gb_LO_VER) | sed -e "s/\([0-9]*\.[0-9]*\.[0-9]*\).*/\1/"),libreoffice-$(i)-$(gb_LO_VER).tar.xz))
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100222 $(SRCDIR)/bin/unpack-sources $(SRCDIR) $(foreach i,$(subst helpcontent2,help,$(GIT_NEEDED_SUBMODULES)),\
223 $(TARFILE_LOCATION)/libreoffice-$(i)-$(gb_LO_VER).tar.xz)
224endif
225
226endif
227
228else
229fetch:
230 @echo "Automatic fetching of external tarballs is disabled."
231
232endif
233
234#
235# Bootstap
236#
Bjoern Michaelsen2b791f12013-02-25 11:56:21 +0100237bootstrap: compilerplugins
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100238
239#
240# Build
241#
Bjoern Michaelsen4eebd652013-11-19 14:25:45 +0100242# Note: this will pipe through all gbuild targets to ... gbuild
243# with some translations like "build"->"all" for historic reasons
Michael Stahlbbadfca2013-10-03 18:49:25 +0200244#
Michael Stahlb8002162013-11-06 16:36:04 +0100245build: bootstrap fetch $(if $(CROSS_COMPILING),cross-toolset)
Miklos Vajna49137ed2015-02-20 15:52:23 +0100246ifneq ($(filter-out WNT MACOSX IOS,$(OS)),)
Stephan Bergmann45fffdb2014-11-20 14:30:27 +0100247 mkdir -p $(INSTDIR)
248 $(SRCDIR)/solenv/bin/install-gdb-printers -a $(INSTDIR) -c
Michael Stahl2cb380b2013-10-29 17:51:06 +0100249endif
Riccardo Magliocchettic716b382014-11-04 16:26:45 +0100250 $(MAKE) $(PARALLELISM_OPTION) $(IWYU_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $(build_goal)
Tor Lillqvist685a12a2013-04-19 09:27:44 +0300251ifeq ($(OS),IOS)
Luboš Luňákf8062812014-03-23 17:46:23 +0100252 $(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) ios
Tor Lillqvist685a12a2013-04-19 09:27:44 +0300253endif
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100254
Peter Foley7abf6862014-09-08 14:52:03 -0400255build-non-l10n-only build-l10n-only build-nocheck check debugrun translations packageinfo $(gb_Top_MODULE_CHECK_TARGETS): build
256
257help showmodules:
258 $(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $@
Bjoern Michaelsen04dead12013-11-13 02:12:48 +0100259
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100260cross-toolset: bootstrap fetch
Luboš Luňákf8062812014-03-23 17:46:23 +0100261 $(MAKE) gb_Side=build $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild build-tools
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100262
Tor Lillqvist18041132013-08-16 11:06:51 +0300263
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100264#
265# Install
266#
267
Bjoern Michaelsenac32aaf2013-11-20 19:36:03 +0100268define gb_Top_DoInstall
269echo "$(1) in $(INSTALLDIR) ..." && \
Stephan Bergmannb02fe062014-11-21 11:45:16 +0100270$(SRCDIR)/solenv/bin/ooinstall $(2) "$(INSTALLDIR)"
Bjoern Michaelsenac32aaf2013-11-20 19:36:03 +0100271
272endef
273
274ifneq ($(OS),MACOSX)
275define gb_Top_InstallFinished
276echo && echo "If you want to edit the .ui files with glade first execute:" && \
277echo && echo "export GLADE_CATALOG_SEARCH_PATH=$(2)/share/glade" && \
278echo && echo "$(1) finished, you can now execute:" && \
279echo "$(2)/program/soffice"
280
281endef
282else
283define gb_Top_InstallFinished
284echo && echo "$(1) finished, you can now run: " && \
285echo "open $(2)/$(PRODUCTNAME).app" && \
286echo "" && \
287echo "To debug: gdb $(2)/$(PRODUCTNAME).app/Contents/MacOS/soffice"
288
289endef
290endif
291
292ifneq ($(OS),MACOSX)
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100293install:
Bjoern Michaelsenac32aaf2013-11-20 19:36:03 +0100294 @$(call gb_Top_DoInstall,Installing,)
295 @$(call gb_Top_InstallFinished,Installation,$(INSTALLDIR))
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100296
297install-strip:
Bjoern Michaelsenac32aaf2013-11-20 19:36:03 +0100298 @$(call gb_Top_DoInstall,Installing and stripping binaries,--strip)
299 @$(call gb_Top_InstallFinished,Installation,$(INSTALLDIR))
Tor Lillqvist18041132013-08-16 11:06:51 +0300300endif # !MACOSX
301
Michael Stahlbe592882013-10-01 15:08:15 +0200302test-install: build
Michael Stahlf1d08892013-10-01 15:30:08 +0200303 @rm -rf $(TESTINSTALLDIR)
Michael Stahlb81f49c2013-10-01 17:39:52 +0200304 @mkdir -p $(TESTINSTALLDIR)
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100305ifeq ($(OS_FOR_BUILD),WNT)
Luboš Luňákf8062812014-03-23 17:46:23 +0100306 cd $(SRCDIR)/instsetoo_native && $(MAKE) LIBO_TEST_INSTALL=TRUE $(GMAKE_OPTIONS)
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100307else
Stephan Bergmannb02fe062014-11-21 11:45:16 +0100308 @$(SRCDIR)/solenv/bin/ooinstall $(TESTINSTALLDIR)
Tor Lillqvistebdd6162013-02-01 14:48:15 +0200309ifneq ($(MACOSX_CODESIGNING_IDENTITY),)
Stephan Bergmannb02fe062014-11-21 11:45:16 +0100310 @$(SRCDIR)/solenv/bin/macosx-codesign-app-bundle $(TESTINSTALLDIR)/LibreOffice$(if $(ENABLE_RELEASE_BUILD),,Dev).app
Tor Lillqvist2b71c1a2013-01-31 23:22:35 +0200311endif
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100312endif
Bjoern Michaelsenac32aaf2013-11-20 19:36:03 +0100313 @$(call gb_Top_InstallFinished,Test Installation,$(TESTINSTALLDIR))
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100314
Tor Lillqvist8ff6bfb2014-06-06 18:51:48 +0300315mac-app-store-package: test-install
316ifneq ($(MACOSX_PACKAGE_SIGNING_IDENTITY),)
317 mv "$(TESTINSTALLDIR)/$(PRODUCTNAME).app" "$(MACOSX_APP_NAME).app"
318 productbuild --component "$(MACOSX_APP_NAME).app" /Applications --sign $(MACOSX_PACKAGE_SIGNING_IDENTITY) $(shell echo "$(MACOSX_APP_NAME)" | tr ' ' '-').pkg
319else
320 @echo You did not provide an installer signing identity with --enable-macosx-package-signing
321 @exit 1
322endif
323
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100324distro-pack-install: install
325 $(SRCDIR)/bin/distro-install-clean-up
326 $(SRCDIR)/bin/distro-install-desktop-integration
327 $(SRCDIR)/bin/distro-install-sdk
328 $(SRCDIR)/bin/distro-install-file-lists
329
Bjoern Michaelsenc6fe5c62013-12-08 03:39:37 +0100330install-package-%:
Luboš Luňákf8062812014-03-23 17:46:23 +0100331 $(MAKE) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $@
Bjoern Michaelsenc6fe5c62013-12-08 03:39:37 +0100332
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100333id:
Stephan Bergmannb02fe062014-11-21 11:45:16 +0100334 @$(SRCDIR)/solenv/bin/create-ids
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100335
336tags:
Stephan Bergmannb02fe062014-11-21 11:45:16 +0100337 @$(SRCDIR)/solenv/bin/create-tags
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100338
Takeshi Abe775d99c2014-11-07 21:14:50 +0900339etags:
Stephan Bergmannb02fe062014-11-21 11:45:16 +0100340 @$(SRCDIR)/solenv/bin/create-tags -e
Takeshi Abe775d99c2014-11-07 21:14:50 +0900341
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100342docs:
Stephan Bergmannb02fe062014-11-21 11:45:16 +0100343 @$(SRCDIR)/solenv/bin/mkdocs.sh $(SRCDIR)/docs $(SRCDIR)/solenv/inc/doxygen.cfg
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100344
345findunusedcode:
Luboš Luňákf8062812014-03-23 17:46:23 +0100346 @$(SRCDIR)/bin/findunusedcode $(SRCDIR) $(MAKE)
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100347
Bjoern Michaelsene4fbcc52013-10-15 10:18:29 +0200348findunusedheaders:
349 $(SRCDIR)/bin/find-unusedheaders.pl
350
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100351
Michael Meeksd614ca72013-03-04 18:01:19 +0000352dump-deps:
Luboš Luňákf8062812014-03-23 17:46:23 +0100353 @$(SRCDIR)/bin/module-deps.pl $(MAKE) $(SRCDIR)/Makefile.gbuild
Michael Meeksd614ca72013-03-04 18:01:19 +0000354
David Ostrovsky0670c3f2013-03-09 16:08:47 +0100355dump-deps-png:
Luboš Luňákf8062812014-03-23 17:46:23 +0100356 @$(SRCDIR)/bin/module-deps.pl $(MAKE) $(SRCDIR)/Makefile.gbuild | dot -Tpng -o lo.png
David Ostrovsky0670c3f2013-03-09 16:08:47 +0100357
Stephan Bergmanna19440b2014-02-17 18:03:44 +0100358dump-deps-sort:
Luboš Luňákf8062812014-03-23 17:46:23 +0100359 @$(SRCDIR)/bin/module-deps.pl -t $(MAKE) $(SRCDIR)/Makefile.gbuild
Stephan Bergmanna19440b2014-02-17 18:03:44 +0100360
Bjoern Michaelsen60c64b42013-11-20 19:21:34 +0100361define gb_Top_GbuildToIdeIntegration
Bjoern Michaelsenba99e292013-11-15 18:39:46 +0100362$(1)-ide-integration:
Luboš Luňákf8062812014-03-23 17:46:23 +0100363 cd $(SRCDIR) && (LC_MESSAGES=C $(MAKE) cmd="$(MAKE) -npf Makefile.gbuild all" cmd || true) | $(SRCDIR)/bin/gbuild-to-ide --ide $(1)
Bjoern Michaelsenba99e292013-11-15 18:39:46 +0100364
365endef
366
367$(foreach ide,\
Markus Mohrhard071c09d2014-08-07 22:11:50 +0200368 debug \
Tor Lillqvist61e66d72013-11-26 21:39:58 +0200369 kdevelop \
Honza Havlíček2e2303a2014-02-09 20:58:46 +0100370 vs2012 \
David Ostrovskyfc24ead2014-10-01 01:44:20 +0200371 vs2013 \
Markus Mohrhard071c09d2014-08-07 22:11:50 +0200372 vim \
Michel Renon237a1b72015-05-19 16:30:41 +0200373 xcode \
374 qtcreator,\
Bjoern Michaelsen60c64b42013-11-20 19:21:34 +0100375$(eval $(call gb_Top_GbuildToIdeIntegration,$(ide))))
Bjoern Michaelsenba99e292013-11-15 18:39:46 +0100376
Matúš Kukan0e6212c2012-12-23 19:27:28 +0100377endif # MAKE_RESTARTS
378
379# vim: set noet sw=4 ts=4: