| Takeshi Abe | b2bd33e | 2011-08-10 02:12:48 +0900 | [diff] [blame] | 1 | # -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- |
| Michael Stahl | b0b92d1 | 2012-05-15 14:47:37 +0200 | [diff] [blame] | 2 | # |
| Michael Meeks | 72e5d0c | 2013-04-24 17:14:03 +0100 | [diff] [blame] | 3 | # This file is part of the LibreOffice project. |
| Michael Stahl | b0b92d1 | 2012-05-15 14:47:37 +0200 | [diff] [blame] | 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 | # |
| Norbert Thiebaud | c857dff | 2012-01-24 15:48:30 -0600 | [diff] [blame] | 9 | |
| Matúš Kukan | 1444316 | 2014-09-05 12:43:34 +0200 | [diff] [blame] | 10 | gb_Top_MODULE_CHECK_TARGETS := slowcheck unitcheck subsequentcheck perfcheck |
| 11 | |
| Takeshi Abe | 775d99c | 2014-11-07 21:14:50 +0900 | [diff] [blame] | 12 | .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úš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 13 | |
| Bjoern Michaelsen | 4a016d1 | 2013-11-21 00:34:20 +0100 | [diff] [blame] | 14 | MAKECMDGOALS?=all |
| Norbert Thiebaud | 3047ac5 | 2014-02-08 22:08:33 -0600 | [diff] [blame] | 15 | build_goal:=$(if $(filter build check,$(MAKECMDGOALS)),all)\ |
| 16 | $(if $(filter build-nocheck,$(MAKECMDGOALS)),build)\ |
| 17 | $(if $(filter check,$(MAKECMDGOALS)),subsequentcheck)\ |
| Peter Foley | 7abf686 | 2014-09-08 14:52:03 -0400 | [diff] [blame] | 18 | $(filter all build-l10n-only build-non-l10n-only debugrun help showmodules translations $(gb_Top_MODULE_CHECK_TARGETS) check packageinfo,$(MAKECMDGOALS)) |
| Norbert Thiebaud | e48d33b | 2012-01-26 16:29:26 -0600 | [diff] [blame] | 19 | |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 20 | SRCDIR := @SRC_ROOT@ |
| 21 | BUILDDIR := @BUILDDIR@ |
| David Tardon | 40ae8f3 | 2013-05-30 16:12:22 +0200 | [diff] [blame] | 22 | GIT_BUILD := $(if $(wildcard $(SRCDIR)/.git),T) |
| Norbert Thiebaud | c857dff | 2012-01-24 15:48:30 -0600 | [diff] [blame] | 23 | |
| David Tardon | 40ae8f3 | 2013-05-30 16:12:22 +0200 | [diff] [blame] | 24 | # Run autogen.sh if needed and force make to restart itself. |
| 25 | # ... but there are several cases where we do not want to run |
| 26 | # autogen.sh: |
| 27 | # 1. if we are building from tarballs, not git checkout (I do not |
| 28 | # think packagers would ever want that. I certainly do not.) |
| 29 | # 2. if we are making help, clean or distclean, because they do not |
| 30 | # need updated configuration |
| Peter Foley | 7abf686 | 2014-09-08 14:52:03 -0400 | [diff] [blame] | 31 | ifeq (,$(MAKE_RESTARTS)$(if $(GIT_BUILD),,T)$(if $(filter-out help showmodules clean distclean,$(MAKECMDGOALS)),,T)) |
| Norbert Thiebaud | c857dff | 2012-01-24 15:48:30 -0600 | [diff] [blame] | 32 | |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 33 | .PHONY : force-restart |
| David Tardon | c8708f3 | 2015-03-26 09:19:01 +0100 | [diff] [blame] | 34 | Makefile: $(BUILDDIR)/config_host.mk $(BUILDDIR)/config_host_lang.mk force-restart |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 35 | @touch $@ |
| Norbert Thiebaud | c857dff | 2012-01-24 15:48:30 -0600 | [diff] [blame] | 36 | |
| Michael Stahl | b0b92d1 | 2012-05-15 14:47:37 +0200 | [diff] [blame] | 37 | # run configure in an environment not polluted by config_host.mk |
| Matúš Kukan | 38a22f56 | 2013-11-21 00:02:18 +0100 | [diff] [blame] | 38 | $(BUILDDIR)/config_host.mk : $(wildcard \ |
| Michael Stahl | b0b92d1 | 2012-05-15 14:47:37 +0200 | [diff] [blame] | 39 | $(SRCDIR)/config_host.mk.in \ |
| David Tardon | c8708f3 | 2015-03-26 09:19:01 +0100 | [diff] [blame] | 40 | $(SRCDIR)/config_host_lang.mk.in \ |
| Norbert Thiebaud | ae4e327 | 2012-12-11 07:49:24 -0600 | [diff] [blame] | 41 | $(SRCDIR)/Makefile.in \ |
| Michael Stahl | 2a9ecb8 | 2013-01-18 22:11:53 +0100 | [diff] [blame] | 42 | $(SRCDIR)/instsetoo_native/util/openoffice.lst.in \ |
| Peter Foley | 3955876 | 2012-10-19 16:59:21 -0400 | [diff] [blame] | 43 | $(SRCDIR)/configure.ac \ |
| Matúš Kukan | 38a22f56 | 2013-11-21 00:02:18 +0100 | [diff] [blame] | 44 | $(SRCDIR)/config_host/*.h.in \ |
| 45 | $(BUILDDIR)/autogen.input \ |
| 46 | $(BUILDDIR)/autogen.lastrun \ |
| Miklos Vajna | aefc43b | 2015-03-08 16:58:35 +0100 | [diff] [blame] | 47 | $(BUILDDIR)/autogen.sh \ |
| Matúš Kukan | 38a22f56 | 2013-11-21 00:02:18 +0100 | [diff] [blame] | 48 | ) |
| Michael Stahl | fe8c5f6 | 2014-06-02 00:18:08 +0200 | [diff] [blame] | 49 | sh -c $(SRCDIR)/autogen.sh |
| Norbert Thiebaud | 8439990 | 2012-01-26 14:26:49 -0600 | [diff] [blame] | 50 | |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 51 | else # MAKE_RESTARTS |
| 52 | |
| 53 | all: build |
| 54 | |
| Bjoern Michaelsen | 4a016d1 | 2013-11-21 00:34:20 +0100 | [diff] [blame] | 55 | gb_Side ?= host |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 56 | |
| 57 | include $(BUILDDIR)/config_$(gb_Side).mk |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 58 | |
| Stephan Bergmann | 5067d31 | 2015-10-02 11:30:40 +0200 | [diff] [blame] | 59 | export GMAKE_OPTIONS?=-r$(if $(verbose),,s)$(value $(MAKEFLAGS)) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 60 | |
| Luboš Luňák | f605cfc | 2014-03-23 15:58:00 +0100 | [diff] [blame] | 61 | PARALLELISM_OPTION := $(if $(filter-out 0,$(PARALLELISM)),-j $(PARALLELISM),) |
| 62 | |
| Michael Stahl | 886452b | 2014-11-17 17:27:03 +0100 | [diff] [blame] | 63 | IWYU_OPTION := $(if $(IWYU_PATH),-k CC=$(IWYU_PATH) CXX=$(IWYU_PATH),) |
| Riccardo Magliocchetti | c716b38 | 2014-11-04 16:26:45 +0100 | [diff] [blame] | 64 | |
| Michael Stahl | fea3ca3 | 2014-11-24 15:17:26 +0100 | [diff] [blame] | 65 | # don't want to have a dependency to iwyudummy.generate because it's |
| 66 | # useful to manually edit the generated StaticLibrary_iwyudummy.mk |
| Michael Stahl | 096c7e8 | 2014-11-14 18:54:06 +0100 | [diff] [blame] | 67 | iwyudummy: bootstrap fetch |
| Michael Stahl | fea3ca3 | 2014-11-24 15:17:26 +0100 | [diff] [blame] | 68 | $(if $(wildcard $(BUILDDIR)/iwyudummy),,$(error first call "make iwyudummy.generate")) |
| Michael Stahl | 096c7e8 | 2014-11-14 18:54:06 +0100 | [diff] [blame] | 69 | cd $(BUILDDIR)/iwyudummy && $(MAKE) $(IWYU_OPTION) $(GMAKE_OPTIONS) |
| 70 | |
| Noel Grandin | 460deba | 2014-11-20 09:47:17 +0200 | [diff] [blame] | 71 | iwyudummy.generate: |
| 72 | $(SRCDIR)/bin/gen-iwyu-dummy-lib |
| 73 | |
| Matúš Kukan | f2e7365 | 2013-02-27 18:40:36 +0100 | [diff] [blame] | 74 | # |
| 75 | # Partial Build |
| 76 | # |
| Bjoern Michaelsen | 60c64b4 | 2013-11-20 19:21:34 +0100 | [diff] [blame] | 77 | define gb_Top_GbuildModuleRules |
| Matúš Kukan | 1444316 | 2014-09-05 12:43:34 +0200 | [diff] [blame] | 78 | .PHONY: $(1) $(1).all $(1).build $(1).check $(1).clean $(1).showdeliverables $(foreach target,$(gb_Top_MODULE_CHECK_TARGETS),$(1).$(target)) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 79 | |
| 80 | $(1): bootstrap fetch |
| Riccardo Magliocchetti | c716b38 | 2014-11-04 16:26:45 +0100 | [diff] [blame] | 81 | cd $(SRCDIR)/$(2) && $$(MAKE) $(IWYU_OPTION) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 82 | |
| Matúš Kukan | 1444316 | 2014-09-05 12:43:34 +0200 | [diff] [blame] | 83 | $(1).build $(1).check $(1).clean $(1).showdeliverables $(foreach target,$(gb_Top_MODULE_CHECK_TARGETS),$(1).$(target)): |
| Luboš Luňák | 35720ea | 2014-03-23 21:20:00 +0100 | [diff] [blame] | 84 | cd $(SRCDIR)/$(2) && $$(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) $$(patsubst $(1).%,%,$$@) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 85 | |
| Matúš Kukan | bdd9214 | 2013-02-26 15:15:22 +0100 | [diff] [blame] | 86 | $(1).all: bootstrap fetch |
| Riccardo Magliocchetti | c716b38 | 2014-11-04 16:26:45 +0100 | [diff] [blame] | 87 | $$(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úš Kukan | bdd9214 | 2013-02-26 15:15:22 +0100 | [diff] [blame] | 88 | |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 89 | endef |
| Norbert Thiebaud | ae4e327 | 2012-12-11 07:49:24 -0600 | [diff] [blame] | 90 | |
| Bjoern Michaelsen | 60c64b4 | 2013-11-20 19:21:34 +0100 | [diff] [blame] | 91 | define gb_Top_GbuildModulesRules |
| 92 | $(foreach m,$(1),$(call gb_Top_GbuildModuleRules,$(notdir $(m)),$(m))) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 93 | endef |
| 94 | |
| Michael Stahl | dddff6e | 2013-10-23 16:33:50 +0200 | [diff] [blame] | 95 | gbuild_modules := $(patsubst $(SRCDIR)/%/,%,$(dir $(wildcard $(SRCDIR)/*/Module_*.mk $(SRCDIR)/external/*/Module_*.mk))) |
| Peter Foley | 96f9430 | 2013-03-24 09:34:55 -0400 | [diff] [blame] | 96 | |
| Noel Grandin | 065d6cc | 2014-07-07 14:29:05 +0200 | [diff] [blame] | 97 | gbuild_internal_modules := $(filter-out odk external,$(patsubst $(SRCDIR)/%/,%,$(dir $(wildcard $(SRCDIR)/*/Module_*.mk)))) |
| 98 | |
| 99 | internal.clean: $(addsuffix .clean,$(gbuild_internal_modules)) |
| 100 | |
| 101 | |
| Bjoern Michaelsen | 60c64b4 | 2013-11-20 19:21:34 +0100 | [diff] [blame] | 102 | $(eval $(call gb_Top_GbuildModulesRules,$(gbuild_modules))) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 103 | |
| Peter Foley | ac3e90b | 2013-03-02 13:06:22 -0500 | [diff] [blame] | 104 | gbuild_TARGETS := AllLangHelp \ |
| David Tardon | e78646e | 2013-05-07 12:29:34 +0200 | [diff] [blame] | 105 | AllLangPackage \ |
| Peter Foley | ac3e90b | 2013-03-02 13:06:22 -0500 | [diff] [blame] | 106 | AllLangResTarget \ |
| Matúš Kukan | 7a878f9 | 2013-06-10 00:56:28 +0200 | [diff] [blame] | 107 | AutoInstall \ |
| Peter Foley | ac3e90b | 2013-03-02 13:06:22 -0500 | [diff] [blame] | 108 | CliLibrary \ |
| 109 | CliNativeLibrary \ |
| Michael Stahl | 6bd0f9b | 2013-10-28 10:32:03 +0100 | [diff] [blame] | 110 | CliUnoApi \ |
| Peter Foley | ac3e90b | 2013-03-02 13:06:22 -0500 | [diff] [blame] | 111 | Configuration \ |
| 112 | CppunitTest \ |
| 113 | CustomTarget \ |
| 114 | Dictionary \ |
| 115 | Executable \ |
| 116 | Extension \ |
| Michael Stahl | 704451d | 2013-10-31 00:15:51 +0100 | [diff] [blame] | 117 | ExtensionPackage \ |
| Michael Stahl | 6021113 | 2013-10-31 00:58:46 +0100 | [diff] [blame] | 118 | ExtensionPackageSet \ |
| Peter Foley | ac3e90b | 2013-03-02 13:06:22 -0500 | [diff] [blame] | 119 | ExternalPackage \ |
| 120 | ExternalProject \ |
| Stephan Bergmann | 514baf7 | 2015-01-07 13:45:56 +0100 | [diff] [blame] | 121 | Gallery \ |
| David Tardon | 0fd330e | 2013-05-04 13:21:33 +0200 | [diff] [blame] | 122 | GeneratedPackage \ |
| Peter Foley | ac3e90b | 2013-03-02 13:06:22 -0500 | [diff] [blame] | 123 | InstallModule \ |
| 124 | InstallScript \ |
| 125 | InternalUnoApi \ |
| 126 | Jar \ |
| 127 | JunitTest \ |
| 128 | Library \ |
| 129 | Module \ |
| 130 | Package \ |
| David Tardon | 9d54f0e | 2013-04-07 09:45:19 +0200 | [diff] [blame] | 131 | PackageSet \ |
| Peter Foley | ac3e90b | 2013-03-02 13:06:22 -0500 | [diff] [blame] | 132 | Pagein \ |
| David Tardon | df7b863 | 2013-05-24 15:49:11 +0200 | [diff] [blame] | 133 | Postprocess \ |
| Peter Foley | ac3e90b | 2013-03-02 13:06:22 -0500 | [diff] [blame] | 134 | Pyuno \ |
| Michael Stahl | 3094d72 | 2013-04-18 22:59:25 +0200 | [diff] [blame] | 135 | PythonTest \ |
| Peter Foley | ac3e90b | 2013-03-02 13:06:22 -0500 | [diff] [blame] | 136 | Rdb \ |
| 137 | StaticLibrary \ |
| David Tardon | ed72983 | 2013-04-06 13:10:54 +0200 | [diff] [blame] | 138 | UIConfig \ |
| Peter Foley | ac3e90b | 2013-03-02 13:06:22 -0500 | [diff] [blame] | 139 | UnoApi \ |
| Peter Foley | ac3e90b | 2013-03-02 13:06:22 -0500 | [diff] [blame] | 140 | UnpackedTarball \ |
| 141 | WinResTarget \ |
| David Tardon | ea18ca0 | 2013-03-31 11:34:10 +0200 | [diff] [blame] | 142 | Zip \ |
| David Tardon | 3d50cfa | 2013-04-14 08:18:27 +0200 | [diff] [blame] | 143 | |
| Peter Foley | ac3e90b | 2013-03-02 13:06:22 -0500 | [diff] [blame] | 144 | # build a generic gbuild target |
| Stephan Bergmann | b304628 | 2014-06-18 13:27:47 +0200 | [diff] [blame] | 145 | $(foreach target,$(gbuild_TARGETS),$(target)_% $(foreach module,$(gbuild_modules),$(target)_$(module)/%)) %.genpatch: bootstrap fetch |
| Luboš Luňák | f806281 | 2014-03-23 17:46:23 +0100 | [diff] [blame] | 146 | $(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $@ |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 147 | |
| 148 | # |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 149 | # Clean |
| 150 | # |
| 151 | clean: clean-host clean-build |
| 152 | |
| 153 | clean-host: |
| Michael Stahl | f1d0889 | 2013-10-01 15:30:08 +0200 | [diff] [blame] | 154 | rm -fr $(TESTINSTALLDIR) |
| David Tardon | bba6e9e | 2013-04-03 17:13:32 +0200 | [diff] [blame] | 155 | rm -fr $(INSTDIR) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 156 | rm -fr $(WORKDIR) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 157 | |
| 158 | clean-build: |
| Michael Stahl | d729d16 | 2014-02-27 16:19:43 +0100 | [diff] [blame] | 159 | ifneq ($(CROSS_COMPILING),) |
| Matúš Kukan | 58ff5d5 | 2013-09-25 09:44:35 +0200 | [diff] [blame] | 160 | rm -fr $(INSTDIR_FOR_BUILD) |
| Matúš Kukan | f2e7365 | 2013-02-27 18:40:36 +0100 | [diff] [blame] | 161 | rm -fr $(WORKDIR_FOR_BUILD) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 162 | endif |
| 163 | |
| 164 | include $(SRCDIR)/compilerplugins/Makefile.mk |
| 165 | |
| 166 | # |
| 167 | # Distclean |
| 168 | # |
| 169 | distclean : clean compilerplugins-clean |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 170 | rm -fr \ |
| 171 | $(BUILDDIR)/Makefile \ |
| 172 | $(BUILDDIR)/aclocal.m4 \ |
| 173 | $(BUILDDIR)/autom4te.cache \ |
| 174 | $(BUILDDIR)/config.log \ |
| Stephan Bergmann | 16b4802 | 2013-12-17 14:06:42 +0100 | [diff] [blame] | 175 | $(BUILDDIR)/config.Build.log \ |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 176 | $(BUILDDIR)/config.status \ |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 177 | $(BUILDDIR)/config_build.mk \ |
| 178 | $(BUILDDIR)/config_host.mk \ |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 179 | $(BUILDDIR)/config_host.mk.stamp \ |
| David Tardon | c8708f3 | 2015-03-26 09:19:01 +0100 | [diff] [blame] | 180 | $(BUILDDIR)/config_host_lang.mk \ |
| 181 | $(BUILDDIR)/config_host_lang.mk.stamp \ |
| Stephan Bergmann | 353e177 | 2013-02-04 08:39:08 +0100 | [diff] [blame] | 182 | $(BUILDDIR)/config_host/*.h \ |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 183 | $(BUILDDIR)/configure \ |
| Stephan Bergmann | cb50efb | 2013-01-14 11:05:50 +0100 | [diff] [blame] | 184 | $(BUILDDIR)/instsetoo_native/util/openoffice.lst \ |
| Stephan Bergmann | 9e97332 | 2013-10-17 23:37:29 +0200 | [diff] [blame] | 185 | $(BUILDDIR)/ios/lo.xcconfig \ |
| Stephan Bergmann | a326725 | 2013-10-02 21:19:01 +0200 | [diff] [blame] | 186 | $(BUILDDIR)/lo.xcent \ |
| Tor Lillqvist | 332f6a5 | 2014-09-17 17:39:10 +0300 | [diff] [blame] | 187 | $(BUILDDIR)/sysui/desktop/macosx/Info.plist |
| Michael Stahl | e9cd508 | 2016-01-06 21:28:17 +0100 | [diff] [blame] | 188 | $(FIND) $(SRCDIR)/solenv/gdb -name "*.pyc" -exec rm {} \; |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 189 | |
| 190 | # |
| 191 | # custom command |
| 192 | # |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 193 | cmd: |
| 194 | echo "custom cmd" && ( $(cmd) ) |
| 195 | |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 196 | # |
| 197 | # Fetch |
| 198 | # |
| Michael Stahl | e3ba764 | 2014-03-10 23:42:26 +0100 | [diff] [blame] | 199 | ifneq ($(DO_FETCH_TARBALLS),) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 200 | include $(SRCDIR)/Makefile.fetch |
| 201 | fetch: download |
| 202 | fetch: get-submodules |
| 203 | |
| 204 | ifneq (,$(wildcard $(SRCDIR)/.git)) |
| 205 | get-submodules: |
| 206 | ifneq ($(foreach i,$(GIT_NEEDED_SUBMODULES),$(i)/.git),$(wildcard $(foreach i,$(GIT_NEEDED_SUBMODULES),$(i)/.git))) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 207 | cd $(SRCDIR) && ./g -f clone |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 208 | endif |
| Andrea Gelmini | fbec6ac | 2016-01-04 12:22:58 +0100 | [diff] [blame] | 209 | @cd $(SRCDIR) && ./g -z # make sure the git hooks are in place even if no submodules are needed |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 210 | |
| 211 | else # these sources are from a tarball, so get the other source tarballs |
| 212 | gb_LO_VER := $(shell . $(SRCDIR)/sources.ver && echo $$lo_sources_ver) |
| 213 | $(if $(gb_LO_VER),,$(error Error while retrieving $$lo_sources_ver from $(SRCDIR)/sources.ver)) |
| 214 | |
| 215 | get-submodules: | download |
| 216 | ifneq ($(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)))) |
| 217 | $(foreach i,$(subst helpcontent2,help,$(GIT_NEEDED_SUBMODULES)),\ |
| David Tardon | 922b03f0 | 2014-08-04 19:34:03 +0200 | [diff] [blame] | 218 | $(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úš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 219 | $(SRCDIR)/bin/unpack-sources $(SRCDIR) $(foreach i,$(subst helpcontent2,help,$(GIT_NEEDED_SUBMODULES)),\ |
| 220 | $(TARFILE_LOCATION)/libreoffice-$(i)-$(gb_LO_VER).tar.xz) |
| 221 | endif |
| 222 | |
| 223 | endif |
| 224 | |
| 225 | else |
| 226 | fetch: |
| 227 | @echo "Automatic fetching of external tarballs is disabled." |
| 228 | |
| 229 | endif |
| 230 | |
| 231 | # |
| 232 | # Bootstap |
| 233 | # |
| Bjoern Michaelsen | 2b791f1 | 2013-02-25 11:56:21 +0100 | [diff] [blame] | 234 | bootstrap: compilerplugins |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 235 | |
| 236 | # |
| 237 | # Build |
| 238 | # |
| Bjoern Michaelsen | 4eebd65 | 2013-11-19 14:25:45 +0100 | [diff] [blame] | 239 | # Note: this will pipe through all gbuild targets to ... gbuild |
| 240 | # with some translations like "build"->"all" for historic reasons |
| Michael Stahl | bbadfca | 2013-10-03 18:49:25 +0200 | [diff] [blame] | 241 | # |
| Michael Stahl | b800216 | 2013-11-06 16:36:04 +0100 | [diff] [blame] | 242 | build: bootstrap fetch $(if $(CROSS_COMPILING),cross-toolset) |
| Miklos Vajna | 49137ed | 2015-02-20 15:52:23 +0100 | [diff] [blame] | 243 | ifneq ($(filter-out WNT MACOSX IOS,$(OS)),) |
| Stephan Bergmann | 45fffdb | 2014-11-20 14:30:27 +0100 | [diff] [blame] | 244 | mkdir -p $(INSTDIR) |
| 245 | $(SRCDIR)/solenv/bin/install-gdb-printers -a $(INSTDIR) -c |
| Michael Stahl | 2cb380b | 2013-10-29 17:51:06 +0100 | [diff] [blame] | 246 | endif |
| Riccardo Magliocchetti | c716b38 | 2014-11-04 16:26:45 +0100 | [diff] [blame] | 247 | $(MAKE) $(PARALLELISM_OPTION) $(IWYU_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $(build_goal) |
| Tor Lillqvist | 685a12a | 2013-04-19 09:27:44 +0300 | [diff] [blame] | 248 | ifeq ($(OS),IOS) |
| Luboš Luňák | f806281 | 2014-03-23 17:46:23 +0100 | [diff] [blame] | 249 | $(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) ios |
| Tor Lillqvist | 685a12a | 2013-04-19 09:27:44 +0300 | [diff] [blame] | 250 | endif |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 251 | |
| Peter Foley | 7abf686 | 2014-09-08 14:52:03 -0400 | [diff] [blame] | 252 | build-non-l10n-only build-l10n-only build-nocheck check debugrun translations packageinfo $(gb_Top_MODULE_CHECK_TARGETS): build |
| 253 | |
| 254 | help showmodules: |
| 255 | $(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $@ |
| Bjoern Michaelsen | 04dead1 | 2013-11-13 02:12:48 +0100 | [diff] [blame] | 256 | |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 257 | cross-toolset: bootstrap fetch |
| Luboš Luňák | f806281 | 2014-03-23 17:46:23 +0100 | [diff] [blame] | 258 | $(MAKE) gb_Side=build $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild build-tools |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 259 | |
| Tor Lillqvist | 1804113 | 2013-08-16 11:06:51 +0300 | [diff] [blame] | 260 | |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 261 | # |
| 262 | # Install |
| 263 | # |
| 264 | |
| Bjoern Michaelsen | ac32aaf | 2013-11-20 19:36:03 +0100 | [diff] [blame] | 265 | define gb_Top_DoInstall |
| 266 | echo "$(1) in $(INSTALLDIR) ..." && \ |
| Stephan Bergmann | b02fe06 | 2014-11-21 11:45:16 +0100 | [diff] [blame] | 267 | $(SRCDIR)/solenv/bin/ooinstall $(2) "$(INSTALLDIR)" |
| Bjoern Michaelsen | ac32aaf | 2013-11-20 19:36:03 +0100 | [diff] [blame] | 268 | |
| 269 | endef |
| 270 | |
| 271 | ifneq ($(OS),MACOSX) |
| 272 | define gb_Top_InstallFinished |
| 273 | echo && echo "If you want to edit the .ui files with glade first execute:" && \ |
| 274 | echo && echo "export GLADE_CATALOG_SEARCH_PATH=$(2)/share/glade" && \ |
| 275 | echo && echo "$(1) finished, you can now execute:" && \ |
| 276 | echo "$(2)/program/soffice" |
| 277 | |
| 278 | endef |
| 279 | else |
| 280 | define gb_Top_InstallFinished |
| 281 | echo && echo "$(1) finished, you can now run: " && \ |
| 282 | echo "open $(2)/$(PRODUCTNAME).app" && \ |
| 283 | echo "" && \ |
| 284 | echo "To debug: gdb $(2)/$(PRODUCTNAME).app/Contents/MacOS/soffice" |
| 285 | |
| 286 | endef |
| 287 | endif |
| 288 | |
| 289 | ifneq ($(OS),MACOSX) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 290 | install: |
| Bjoern Michaelsen | ac32aaf | 2013-11-20 19:36:03 +0100 | [diff] [blame] | 291 | @$(call gb_Top_DoInstall,Installing,) |
| 292 | @$(call gb_Top_InstallFinished,Installation,$(INSTALLDIR)) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 293 | |
| 294 | install-strip: |
| Bjoern Michaelsen | ac32aaf | 2013-11-20 19:36:03 +0100 | [diff] [blame] | 295 | @$(call gb_Top_DoInstall,Installing and stripping binaries,--strip) |
| 296 | @$(call gb_Top_InstallFinished,Installation,$(INSTALLDIR)) |
| Tor Lillqvist | 1804113 | 2013-08-16 11:06:51 +0300 | [diff] [blame] | 297 | endif # !MACOSX |
| 298 | |
| Michael Stahl | be59288 | 2013-10-01 15:08:15 +0200 | [diff] [blame] | 299 | test-install: build |
| Michael Stahl | f1d0889 | 2013-10-01 15:30:08 +0200 | [diff] [blame] | 300 | @rm -rf $(TESTINSTALLDIR) |
| Michael Stahl | b81f49c | 2013-10-01 17:39:52 +0200 | [diff] [blame] | 301 | @mkdir -p $(TESTINSTALLDIR) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 302 | ifeq ($(OS_FOR_BUILD),WNT) |
| Luboš Luňák | f806281 | 2014-03-23 17:46:23 +0100 | [diff] [blame] | 303 | cd $(SRCDIR)/instsetoo_native && $(MAKE) LIBO_TEST_INSTALL=TRUE $(GMAKE_OPTIONS) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 304 | else |
| Stephan Bergmann | b02fe06 | 2014-11-21 11:45:16 +0100 | [diff] [blame] | 305 | @$(SRCDIR)/solenv/bin/ooinstall $(TESTINSTALLDIR) |
| Tor Lillqvist | ebdd616 | 2013-02-01 14:48:15 +0200 | [diff] [blame] | 306 | ifneq ($(MACOSX_CODESIGNING_IDENTITY),) |
| Stephan Bergmann | b02fe06 | 2014-11-21 11:45:16 +0100 | [diff] [blame] | 307 | @$(SRCDIR)/solenv/bin/macosx-codesign-app-bundle $(TESTINSTALLDIR)/LibreOffice$(if $(ENABLE_RELEASE_BUILD),,Dev).app |
| Tor Lillqvist | 2b71c1a | 2013-01-31 23:22:35 +0200 | [diff] [blame] | 308 | endif |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 309 | endif |
| Bjoern Michaelsen | ac32aaf | 2013-11-20 19:36:03 +0100 | [diff] [blame] | 310 | @$(call gb_Top_InstallFinished,Test Installation,$(TESTINSTALLDIR)) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 311 | |
| Tor Lillqvist | 8ff6bfb | 2014-06-06 18:51:48 +0300 | [diff] [blame] | 312 | mac-app-store-package: test-install |
| 313 | ifneq ($(MACOSX_PACKAGE_SIGNING_IDENTITY),) |
| 314 | mv "$(TESTINSTALLDIR)/$(PRODUCTNAME).app" "$(MACOSX_APP_NAME).app" |
| 315 | productbuild --component "$(MACOSX_APP_NAME).app" /Applications --sign $(MACOSX_PACKAGE_SIGNING_IDENTITY) $(shell echo "$(MACOSX_APP_NAME)" | tr ' ' '-').pkg |
| 316 | else |
| 317 | @echo You did not provide an installer signing identity with --enable-macosx-package-signing |
| 318 | @exit 1 |
| 319 | endif |
| 320 | |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 321 | distro-pack-install: install |
| 322 | $(SRCDIR)/bin/distro-install-clean-up |
| 323 | $(SRCDIR)/bin/distro-install-desktop-integration |
| 324 | $(SRCDIR)/bin/distro-install-sdk |
| 325 | $(SRCDIR)/bin/distro-install-file-lists |
| 326 | |
| Bjoern Michaelsen | c6fe5c6 | 2013-12-08 03:39:37 +0100 | [diff] [blame] | 327 | install-package-%: |
| Luboš Luňák | f806281 | 2014-03-23 17:46:23 +0100 | [diff] [blame] | 328 | $(MAKE) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $@ |
| Bjoern Michaelsen | c6fe5c6 | 2013-12-08 03:39:37 +0100 | [diff] [blame] | 329 | |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 330 | id: |
| Stephan Bergmann | b02fe06 | 2014-11-21 11:45:16 +0100 | [diff] [blame] | 331 | @$(SRCDIR)/solenv/bin/create-ids |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 332 | |
| 333 | tags: |
| Stephan Bergmann | b02fe06 | 2014-11-21 11:45:16 +0100 | [diff] [blame] | 334 | @$(SRCDIR)/solenv/bin/create-tags |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 335 | |
| Takeshi Abe | 775d99c | 2014-11-07 21:14:50 +0900 | [diff] [blame] | 336 | etags: |
| Stephan Bergmann | b02fe06 | 2014-11-21 11:45:16 +0100 | [diff] [blame] | 337 | @$(SRCDIR)/solenv/bin/create-tags -e |
| Takeshi Abe | 775d99c | 2014-11-07 21:14:50 +0900 | [diff] [blame] | 338 | |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 339 | docs: |
| Stephan Bergmann | b02fe06 | 2014-11-21 11:45:16 +0100 | [diff] [blame] | 340 | @$(SRCDIR)/solenv/bin/mkdocs.sh $(SRCDIR)/docs $(SRCDIR)/solenv/inc/doxygen.cfg |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 341 | |
| 342 | findunusedcode: |
| Luboš Luňák | f806281 | 2014-03-23 17:46:23 +0100 | [diff] [blame] | 343 | @$(SRCDIR)/bin/findunusedcode $(SRCDIR) $(MAKE) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 344 | |
| Bjoern Michaelsen | e4fbcc5 | 2013-10-15 10:18:29 +0200 | [diff] [blame] | 345 | findunusedheaders: |
| 346 | $(SRCDIR)/bin/find-unusedheaders.pl |
| 347 | |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 348 | |
| Michael Meeks | d614ca7 | 2013-03-04 18:01:19 +0000 | [diff] [blame] | 349 | dump-deps: |
| Luboš Luňák | f806281 | 2014-03-23 17:46:23 +0100 | [diff] [blame] | 350 | @$(SRCDIR)/bin/module-deps.pl $(MAKE) $(SRCDIR)/Makefile.gbuild |
| Michael Meeks | d614ca7 | 2013-03-04 18:01:19 +0000 | [diff] [blame] | 351 | |
| David Ostrovsky | 0670c3f | 2013-03-09 16:08:47 +0100 | [diff] [blame] | 352 | dump-deps-png: |
| Luboš Luňák | f806281 | 2014-03-23 17:46:23 +0100 | [diff] [blame] | 353 | @$(SRCDIR)/bin/module-deps.pl $(MAKE) $(SRCDIR)/Makefile.gbuild | dot -Tpng -o lo.png |
| David Ostrovsky | 0670c3f | 2013-03-09 16:08:47 +0100 | [diff] [blame] | 354 | |
| Stephan Bergmann | a19440b | 2014-02-17 18:03:44 +0100 | [diff] [blame] | 355 | dump-deps-sort: |
| Luboš Luňák | f806281 | 2014-03-23 17:46:23 +0100 | [diff] [blame] | 356 | @$(SRCDIR)/bin/module-deps.pl -t $(MAKE) $(SRCDIR)/Makefile.gbuild |
| Stephan Bergmann | a19440b | 2014-02-17 18:03:44 +0100 | [diff] [blame] | 357 | |
| Bjoern Michaelsen | 60c64b4 | 2013-11-20 19:21:34 +0100 | [diff] [blame] | 358 | define gb_Top_GbuildToIdeIntegration |
| Bjoern Michaelsen | ba99e29 | 2013-11-15 18:39:46 +0100 | [diff] [blame] | 359 | $(1)-ide-integration: |
| Luboš Luňák | f806281 | 2014-03-23 17:46:23 +0100 | [diff] [blame] | 360 | cd $(SRCDIR) && (LC_MESSAGES=C $(MAKE) cmd="$(MAKE) -npf Makefile.gbuild all" cmd || true) | $(SRCDIR)/bin/gbuild-to-ide --ide $(1) |
| Bjoern Michaelsen | ba99e29 | 2013-11-15 18:39:46 +0100 | [diff] [blame] | 361 | |
| 362 | endef |
| 363 | |
| 364 | $(foreach ide,\ |
| Markus Mohrhard | 071c09d | 2014-08-07 22:11:50 +0200 | [diff] [blame] | 365 | debug \ |
| Tor Lillqvist | 61e66d7 | 2013-11-26 21:39:58 +0200 | [diff] [blame] | 366 | kdevelop \ |
| Honza Havlíček | 2e2303a | 2014-02-09 20:58:46 +0100 | [diff] [blame] | 367 | vs2012 \ |
| David Ostrovsky | fc24ead | 2014-10-01 01:44:20 +0200 | [diff] [blame] | 368 | vs2013 \ |
| Markus Mohrhard | 071c09d | 2014-08-07 22:11:50 +0200 | [diff] [blame] | 369 | vim \ |
| Michel Renon | 237a1b7 | 2015-05-19 16:30:41 +0200 | [diff] [blame] | 370 | xcode \ |
| Gulsah Kose | bc7a490 | 2015-11-27 20:28:10 +0200 | [diff] [blame] | 371 | qtcreator \ |
| 372 | eclipsecdt,\ |
| Bjoern Michaelsen | 60c64b4 | 2013-11-20 19:21:34 +0100 | [diff] [blame] | 373 | $(eval $(call gb_Top_GbuildToIdeIntegration,$(ide)))) |
| Bjoern Michaelsen | ba99e29 | 2013-11-15 18:39:46 +0100 | [diff] [blame] | 374 | |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 375 | endif # MAKE_RESTARTS |
| 376 | |
| 377 | # vim: set noet sw=4 ts=4: |