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