| 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 | # |
| 3 | # Copyright 2012 LibreOffice contributors. |
| 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 | f2e7365 | 2013-02-27 18:40:36 +0100 | [diff] [blame] | 10 | .PHONY : all bootstrap build check clean clean-build clean-host dev-install distclean distro-pack-install docs download fetch findunusedcode get-submodules id install install-strip install-tb subsequentcheck tags |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 11 | |
| Norbert Thiebaud | e48d33b | 2012-01-26 16:29:26 -0600 | [diff] [blame] | 12 | ifeq ($(MAKECMDGOALS),) |
| 13 | MAKECMDGOALS:=all |
| 14 | endif |
| 15 | |
| Stephan Bergmann | a21266f | 2013-03-27 11:07:58 +0100 | [diff] [blame] | 16 | SHELL=/usr/bin/env bash |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 17 | SRCDIR := @SRC_ROOT@ |
| 18 | BUILDDIR := @BUILDDIR@ |
| Norbert Thiebaud | c857dff | 2012-01-24 15:48:30 -0600 | [diff] [blame] | 19 | |
| Matúš Kukan | ae20a66 | 2012-12-23 20:36:29 +0100 | [diff] [blame] | 20 | # Next 'if' means: |
| 21 | # If you want to make something more than help clean distclean, |
| 22 | # and make has not yet restarted itself.. |
| 23 | # ..run autogen.sh if needed and force make to restart itself. |
| Matúš Kukan | 149277b | 2013-01-04 21:09:17 +0100 | [diff] [blame] | 24 | ifeq (,$(MAKE_RESTARTS)$(if $(filter-out help clean distclean,$(MAKECMDGOALS)),,T)) |
| Norbert Thiebaud | c857dff | 2012-01-24 15:48:30 -0600 | [diff] [blame] | 25 | |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 26 | .PHONY : force-restart |
| 27 | Makefile: $(BUILDDIR)/config_host.mk force-restart |
| 28 | @touch $@ |
| Norbert Thiebaud | c857dff | 2012-01-24 15:48:30 -0600 | [diff] [blame] | 29 | |
| Michael Stahl | b0b92d1 | 2012-05-15 14:47:37 +0200 | [diff] [blame] | 30 | # run configure in an environment not polluted by config_host.mk |
| Luboš Luňák | c8c056f | 2012-12-11 15:39:49 +0100 | [diff] [blame] | 31 | $(BUILDDIR)/config_host.mk : \ |
| Michael Stahl | b0b92d1 | 2012-05-15 14:47:37 +0200 | [diff] [blame] | 32 | $(SRCDIR)/config_host.mk.in \ |
| Norbert Thiebaud | ae4e327 | 2012-12-11 07:49:24 -0600 | [diff] [blame] | 33 | $(SRCDIR)/Makefile.in \ |
| Michael Stahl | 2a9ecb8 | 2013-01-18 22:11:53 +0100 | [diff] [blame] | 34 | $(SRCDIR)/instsetoo_native/util/openoffice.lst.in \ |
| Peter Foley | 3955876 | 2012-10-19 16:59:21 -0400 | [diff] [blame] | 35 | $(SRCDIR)/configure.ac \ |
| Tor Lillqvist | ca0c54d | 2013-03-28 15:26:25 +0200 | [diff] [blame] | 36 | $(if $(wildcard $(BUILDDIR)/autogen.input),$(BUILDDIR)/autogen.input,$(if $(wildcard $(BUILDDIR)/autogen.lastrun),$(BUILDDIR)/autogen.lastrun)) |
| Norbert Thiebaud | ae4e327 | 2012-12-11 07:49:24 -0600 | [diff] [blame] | 37 | $(SRCDIR)/autogen.sh |
| Norbert Thiebaud | 8439990 | 2012-01-26 14:26:49 -0600 | [diff] [blame] | 38 | |
| Tor Lillqvist | ca0c54d | 2013-03-28 15:26:25 +0200 | [diff] [blame] | 39 | # dummy rule in case any of the above prerequisites are removed, so |
| 40 | # that a stale Makefile still triggers autogen.sh, or in case |
| 41 | # autogen.input does not exist, or autogen.lastrun does not yet exist |
| Stephan Bergmann | a32283f | 2013-03-04 08:49:23 +0100 | [diff] [blame] | 42 | $(SRCDIR)/config_host.mk.in \ |
| 43 | $(SRCDIR)/Makefile.in \ |
| 44 | $(SRCDIR)/instsetoo_native/util/openoffice.lst.in \ |
| 45 | $(SRCDIR)/configure.ac \ |
| Tor Lillqvist | ca0c54d | 2013-03-28 15:26:25 +0200 | [diff] [blame] | 46 | $(BUILDDIR)/autogen.input \ |
| Luboš Luňák | c8c056f | 2012-12-11 15:39:49 +0100 | [diff] [blame] | 47 | $(BUILDDIR)/autogen.lastrun: |
| Peter Foley | a75873d | 2012-02-26 13:53:09 -0500 | [diff] [blame] | 48 | @true |
| 49 | |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 50 | else # MAKE_RESTARTS |
| 51 | |
| 52 | all: build |
| 53 | |
| 54 | ifeq ($(gb_Side),) |
| Matúš Kukan | f2e7365 | 2013-02-27 18:40:36 +0100 | [diff] [blame] | 55 | gb_Side := host |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 56 | endif |
| 57 | |
| 58 | include $(BUILDDIR)/config_$(gb_Side).mk |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 59 | |
| 60 | ifeq ($(GMAKE_OPTIONS),) |
| 61 | ifeq ($(verbose)$(VERBOSE),) |
| Peter Foley | 61add5c | 2013-03-04 19:16:59 -0500 | [diff] [blame] | 62 | export GMAKE_OPTIONS:=-rs$(MAKEFLAGS) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 63 | else |
| Peter Foley | 61add5c | 2013-03-04 19:16:59 -0500 | [diff] [blame] | 64 | export GMAKE_OPTIONS:=-r$(MAKEFLAGS) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 65 | endif |
| 66 | endif |
| 67 | |
| Matúš Kukan | f2e7365 | 2013-02-27 18:40:36 +0100 | [diff] [blame] | 68 | # |
| 69 | # Partial Build |
| 70 | # |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 71 | define gbuild_module_rules |
| Stephan Bergmann | 823ef20 | 2013-02-27 11:32:18 +0100 | [diff] [blame] | 72 | .PHONY: $(1) $(1).all $(1).build $(1).check $(1).clean $(1).showdeliverables $(1).subsequentcheck |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 73 | |
| 74 | $(1): bootstrap fetch |
| Matúš Kukan | 13bb231 | 2013-02-28 11:33:12 +0100 | [diff] [blame] | 75 | cd $(SRCDIR)/$(1) && $(GNUMAKE) -j $(PARALLELISM) $(GMAKE_OPTIONS) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 76 | |
| Stephan Bergmann | 823ef20 | 2013-02-27 11:32:18 +0100 | [diff] [blame] | 77 | $(1).build $(1).check $(1).clean $(1).showdeliverables: |
| Matúš Kukan | 13bb231 | 2013-02-28 11:33:12 +0100 | [diff] [blame] | 78 | cd $(SRCDIR)/$(1) && $(GNUMAKE) -j $(PARALLELISM) $(GMAKE_OPTIONS) $$(patsubst $(1).%,%,$$@) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 79 | |
| 80 | $(1).subsequentcheck: |
| Matúš Kukan | 13bb231 | 2013-02-28 11:33:12 +0100 | [diff] [blame] | 81 | cd $(SRCDIR)/$(1) && $(GNUMAKE) -j $(CHECK_PARALLELISM) $(GMAKE_OPTIONS) subsequentcheck |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 82 | |
| Matúš Kukan | bdd9214 | 2013-02-26 15:15:22 +0100 | [diff] [blame] | 83 | $(1).all: bootstrap fetch |
| David Tardon | 1ef1695 | 2013-03-27 10:07:04 +0100 | [diff] [blame] | 84 | $(GNUMAKE) -j $(PARALLELISM) $(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] | 85 | |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 86 | endef |
| Norbert Thiebaud | ae4e327 | 2012-12-11 07:49:24 -0600 | [diff] [blame] | 87 | |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 88 | define gbuild_modules_rules |
| 89 | $(foreach m,$(1),$(call gbuild_module_rules,$(m))) |
| 90 | endef |
| 91 | |
| Peter Foley | 96f9430 | 2013-03-24 09:34:55 -0400 | [diff] [blame] | 92 | gbuild_modules := $(filter-out Module%,$(subst /, ,$(subst $(SRCDIR)/,,$(wildcard $(SRCDIR)/*/Module_*.mk)))) |
| 93 | |
| 94 | $(eval $(call gbuild_modules_rules,$(gbuild_modules))) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 95 | |
| Peter Foley | ac3e90b | 2013-03-02 13:06:22 -0500 | [diff] [blame] | 96 | gbuild_TARGETS := AllLangHelp \ |
| 97 | AllLangResTarget \ |
| 98 | AllLangZip \ |
| 99 | AutoInstallLibs \ |
| 100 | CliLibrary \ |
| 101 | CliNativeLibrary \ |
| 102 | CliUnoApiTarget \ |
| 103 | Configuration \ |
| 104 | CppunitTest \ |
| 105 | CustomTarget \ |
| 106 | Dictionary \ |
| 107 | Executable \ |
| 108 | Extension \ |
| 109 | ExternalPackage \ |
| 110 | ExternalProject \ |
| 111 | InstallModule \ |
| 112 | InstallScript \ |
| 113 | InternalUnoApi \ |
| 114 | Jar \ |
| 115 | JunitTest \ |
| 116 | Library \ |
| 117 | Module \ |
| 118 | Package \ |
| David Tardon | 9d54f0e | 2013-04-07 09:45:19 +0200 | [diff] [blame] | 119 | PackageSet \ |
| Peter Foley | ac3e90b | 2013-03-02 13:06:22 -0500 | [diff] [blame] | 120 | Pagein \ |
| 121 | Pyuno \ |
| 122 | Rdb \ |
| 123 | StaticLibrary \ |
| David Tardon | ed72983 | 2013-04-06 13:10:54 +0200 | [diff] [blame] | 124 | UIConfig \ |
| Peter Foley | ac3e90b | 2013-03-02 13:06:22 -0500 | [diff] [blame] | 125 | UnoApi \ |
| 126 | UnoApiMerge \ |
| 127 | UnpackedTarball \ |
| 128 | WinResTarget \ |
| David Tardon | ea18ca0 | 2013-03-31 11:34:10 +0200 | [diff] [blame] | 129 | Zip \ |
| 130 | ZipPackage |
| Peter Foley | ac3e90b | 2013-03-02 13:06:22 -0500 | [diff] [blame] | 131 | # build a generic gbuild target |
| Peter Foley | 96f9430 | 2013-03-24 09:34:55 -0400 | [diff] [blame] | 132 | $(foreach target,$(gbuild_TARGETS),$(target)_% $(foreach module,$(gbuild_modules),$(target)_$(module)/%)): |
| Matúš Kukan | ce1bdc4 | 2013-03-04 15:32:05 +0100 | [diff] [blame] | 133 | $(GNUMAKE) -j $(PARALLELISM) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $@ |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 134 | |
| 135 | # |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 136 | # Clean |
| 137 | # |
| 138 | clean: clean-host clean-build |
| 139 | |
| 140 | clean-host: |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 141 | rm -fr $(DEVINSTALLDIR) |
| David Tardon | bba6e9e | 2013-04-03 17:13:32 +0200 | [diff] [blame] | 142 | rm -fr $(INSTDIR) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 143 | rm -fr $(OUTDIR) |
| 144 | rm -fr $(WORKDIR) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 145 | rm -fr install |
| 146 | |
| 147 | clean-build: |
| 148 | ifeq ($(CROSS_COMPILING),YES) |
| Matúš Kukan | f2e7365 | 2013-02-27 18:40:36 +0100 | [diff] [blame] | 149 | rm -fr $(OUTDIR_FOR_BUILD) |
| 150 | rm -fr $(WORKDIR_FOR_BUILD) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 151 | endif |
| 152 | |
| 153 | include $(SRCDIR)/compilerplugins/Makefile.mk |
| 154 | |
| 155 | # |
| 156 | # Distclean |
| 157 | # |
| 158 | distclean : clean compilerplugins-clean |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 159 | rm -fr \ |
| 160 | $(BUILDDIR)/Makefile \ |
| 161 | $(BUILDDIR)/aclocal.m4 \ |
| 162 | $(BUILDDIR)/autom4te.cache \ |
| 163 | $(BUILDDIR)/config.log \ |
| 164 | $(BUILDDIR)/config.status \ |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 165 | $(BUILDDIR)/config_build.mk \ |
| 166 | $(BUILDDIR)/config_host.mk \ |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 167 | $(BUILDDIR)/config_host.mk.stamp \ |
| Stephan Bergmann | 353e177 | 2013-02-04 08:39:08 +0100 | [diff] [blame] | 168 | $(BUILDDIR)/config_host/*.h \ |
| Matúš Kukan | 2057218 | 2013-02-28 09:51:12 +0100 | [diff] [blame] | 169 | $(BUILDDIR)/config_host/*.mk \ |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 170 | $(BUILDDIR)/configure \ |
| Stephan Bergmann | cb50efb | 2013-01-14 11:05:50 +0100 | [diff] [blame] | 171 | $(BUILDDIR)/instsetoo_native/util/openoffice.lst \ |
| Matúš Kukan | ee0dd36 | 2013-03-01 13:50:16 +0100 | [diff] [blame] | 172 | $(BUILDDIR)/lo.xcent |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 173 | find $(SOLARENV)/gdb -name "*.pyc" -exec rm {} \; |
| 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 | # |
| 184 | ifneq ($(DO_FETCH_TARBALLS),NO) |
| 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 | # |
| Peter Foley | 1d84e9d | 2013-02-21 20:40:59 -0500 | [diff] [blame] | 224 | build: bootstrap fetch $(if $(filter $(INPATH),$(INPATH_FOR_BUILD)),,cross-toolset) |
| Matúš Kukan | 9640947 | 2013-03-05 17:03:04 +0100 | [diff] [blame] | 225 | $(GNUMAKE) -j $(PARALLELISM) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 226 | |
| Matúš Kukan | 9640947 | 2013-03-05 17:03:04 +0100 | [diff] [blame] | 227 | build-nocheck: bootstrap fetch $(if $(filter $(INPATH),$(INPATH_FOR_BUILD)),,cross-toolset) |
| 228 | $(GNUMAKE) -j $(PARALLELISM) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild build |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 229 | |
| 230 | cross-toolset: bootstrap fetch |
| Matúš Kukan | bdfdd05 | 2013-03-08 14:14:46 +0100 | [diff] [blame] | 231 | $(GNUMAKE) gb_Side=build -j $(PARALLELISM) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild build-tools |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 232 | |
| 233 | # |
| 234 | # Install |
| 235 | # |
| 236 | |
| 237 | install: |
| 238 | echo "Installing in $(INSTALLDIR)..." && \ |
| 239 | ooinstall "$(INSTALLDIR)" && \ |
| 240 | echo "" && \ |
| 241 | echo "Installation finished, you can now execute:" && \ |
| 242 | echo "$(INSTALLDIR)/program/soffice" |
| 243 | |
| 244 | install-strip: |
| 245 | echo "Installing and stripping binaries in $(INSTALLDIR)..." && \ |
| 246 | ooinstall --strip "$(INSTALLDIR)" && \ |
| 247 | echo "" && \ |
| 248 | echo "Installation finished, you can now execute:" && \ |
| 249 | echo "$(INSTALLDIR)/program/soffice" |
| 250 | |
| Tor Lillqvist | 4783eea | 2013-02-02 23:25:56 +0200 | [diff] [blame] | 251 | ifeq ($(ENABLE_MACOSX_SANDBOX),YES) |
| 252 | entitlements:=--entitlements $(SRC_ROOT)/lo.xcent |
| 253 | endif |
| 254 | |
| Tor Lillqvist | 24a29a1 | 2013-02-03 11:52:13 +0200 | [diff] [blame] | 255 | dev-install: build |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 256 | @rm -rf $(DEVINSTALLDIR) |
| 257 | @mkdir $(DEVINSTALLDIR) |
| 258 | ifeq ($(OS_FOR_BUILD),WNT) |
| Peter Foley | 1d84e9d | 2013-02-21 20:40:59 -0500 | [diff] [blame] | 259 | cd $(SRCDIR)/instsetoo_native && $(GNUMAKE) LIBO_DEV_INSTALL=TRUE $(GMAKE_OPTIONS) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 260 | else |
| 261 | ifeq ($(DISABLE_LINKOO),TRUE) |
| 262 | @ooinstall $(DEVINSTALLDIR)/opt |
| Tor Lillqvist | ebdd616 | 2013-02-01 14:48:15 +0200 | [diff] [blame] | 263 | ifneq ($(MACOSX_CODESIGNING_IDENTITY),) |
| 264 | # |
| 265 | # Sign dylibs |
| Tor Lillqvist | 3dfd5c9 | 2013-02-02 10:07:10 +0200 | [diff] [blame] | 266 | # |
| 267 | # Executables get signed right after linking, see |
| 268 | # solenv/gbuild/platform/macosx.mk. But many of our dylibs are built |
| 269 | # by ad-hoc or 3rd-party mechanisms, so we can't easily sign them |
| 270 | # right after linking. So do it here. |
| 271 | # |
| 272 | # The dylibs in the Python framework are called *.so. Go figure |
| 273 | # |
| 274 | find $(DEVINSTALLDIR)/opt/LibreOffice.app \( -name '*.dylib' -or -name '*.dylib.*' -or -name '*.so' \) ! -type l | \ |
| Tor Lillqvist | ebdd616 | 2013-02-01 14:48:15 +0200 | [diff] [blame] | 275 | while read dylib; do \ |
| 276 | id=`basename "$$dylib"`; \ |
| 277 | case $$id in \ |
| Tor Lillqvist | 3dfd5c9 | 2013-02-02 10:07:10 +0200 | [diff] [blame] | 278 | *.dylib|*.so) \ |
| Tor Lillqvist | ebdd616 | 2013-02-01 14:48:15 +0200 | [diff] [blame] | 279 | ;; \ |
| Tor Lillqvist | 3dfd5c9 | 2013-02-02 10:07:10 +0200 | [diff] [blame] | 280 | *.dylib.*) \ |
| Tor Lillqvist | ebdd616 | 2013-02-01 14:48:15 +0200 | [diff] [blame] | 281 | id=`echo $$id | sed -e 's/dylib.*/dylib/'`; \ |
| 282 | ;; \ |
| 283 | esac; \ |
| 284 | codesign --verbose --identifier=$(MACOSX_BUNDLE_IDENTIFIER).$$id --sign $(MACOSX_CODESIGNING_IDENTITY) "$$dylib"; \ |
| 285 | done |
| 286 | # |
| 287 | # Sign frameworks. |
| 288 | # |
| 289 | # Yeah, we don't bundle any other framework than our Python one, and |
| 290 | # it has just one version, so this generic search is mostly for |
| 291 | # completeness. |
| Tor Lillqvist | 4783eea | 2013-02-02 23:25:56 +0200 | [diff] [blame] | 292 | # |
| Tor Lillqvist | ebdd616 | 2013-02-01 14:48:15 +0200 | [diff] [blame] | 293 | for framework in `find $(DEVINSTALLDIR)/opt/LibreOffice.app -name '*.framework' -type d`; do \ |
| 294 | for version in $$framework/Versions/*; do \ |
| 295 | test -d $$version && codesign --force --verbose --prefix=$(MACOSX_BUNDLE_IDENTIFIER). --sign $(MACOSX_CODESIGNING_IDENTITY) $$version; \ |
| 296 | done; \ |
| 297 | done |
| 298 | # |
| 299 | # Sign the app bundle as a whole (will sign the soffice binary) |
| Tor Lillqvist | dc6fda0 | 2013-02-02 10:36:28 +0200 | [diff] [blame] | 300 | # |
| Tor Lillqvist | 1f04735 | 2013-02-02 10:39:32 +0200 | [diff] [blame] | 301 | # The soffice binary will have been signed after linking but it needs |
| Tor Lillqvist | dc6fda0 | 2013-02-02 10:36:28 +0200 | [diff] [blame] | 302 | # to be re-signed as it has been renamed, or modified, or something |
| 303 | # after linking. |
| Tor Lillqvist | 4783eea | 2013-02-02 23:25:56 +0200 | [diff] [blame] | 304 | # |
| 305 | # At this stage we also attach the entitlements in the sandboxing case |
| 306 | # |
| 307 | codesign --force --verbose --sign $(MACOSX_CODESIGNING_IDENTITY) $(entitlements) $(DEVINSTALLDIR)/opt/LibreOffice.app |
| Tor Lillqvist | ebdd616 | 2013-02-01 14:48:15 +0200 | [diff] [blame] | 308 | # |
| Tor Lillqvist | 2b71c1a | 2013-01-31 23:22:35 +0200 | [diff] [blame] | 309 | endif |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 310 | @install-gdb-printers -L |
| 311 | else |
| 312 | @ooinstall -l $(DEVINSTALLDIR)/opt |
| 313 | endif |
| 314 | endif |
| 315 | @rm -f $(SRCDIR)/install && ln -s $(DEVINSTALLDIR)/opt/ $(SRCDIR)/install |
| Caolán McNamara | d48d8c5 | 2013-02-21 10:21:12 +0000 | [diff] [blame] | 316 | @echo |
| 317 | @echo "If you want to edit the .ui files with glade first execute:" |
| 318 | @echo |
| 319 | @echo "export GLADE_CATALOG_SEARCH_PATH=$(SRCDIR)/install/share/glade" |
| Tor Lillqvist | 95e2c26 | 2013-02-19 10:38:12 +0200 | [diff] [blame] | 320 | ifeq ($(OS),LINUX) |
| Jan Holesovsky | bbca222 | 2013-02-19 08:05:25 +0100 | [diff] [blame] | 321 | @echo |
| 322 | @echo "Developer installation finished, you can now execute:" |
| Jan Holesovsky | eee2fe2 | 2013-02-19 08:13:14 +0100 | [diff] [blame] | 323 | @echo |
| Luboš Luňák | f37df27 | 2013-02-19 15:22:03 +0100 | [diff] [blame] | 324 | @echo "$(SRCDIR)/install/program/soffice" |
| Tor Lillqvist | 95e2c26 | 2013-02-19 10:38:12 +0200 | [diff] [blame] | 325 | else ifeq ($(OS),MACOSX) |
| 326 | @echo |
| 327 | @echo "Developer installation finished, you can now run:" |
| 328 | @echo |
| 329 | @echo " open $(SRCDIR)/install/LibreOffice.app" |
| 330 | @echo |
| 331 | @echo "To debug: gdb install/LibreOffice.app/Contents/MacOS/soffice" |
| 332 | endif |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 333 | |
| Matúš Kukan | 9640947 | 2013-03-05 17:03:04 +0100 | [diff] [blame] | 334 | dev-install-nocheck: build-nocheck |
| 335 | $(MAKE) dev-install -o build |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 336 | |
| 337 | dev-update: |
| 338 | ifeq ($(DISABLE_LINKOO),TRUE) |
| 339 | @linkoo --copy $(DEVINSTALLDIR)/opt $(SRCDIR) |
| 340 | else |
| 341 | @linkoo $(DEVINSTALLDIR)/opt $(SRCDIR) |
| 342 | endif |
| 343 | |
| 344 | install-tb: |
| 345 | @rm -rf $(DEVINSTALLDIR) |
| 346 | @mkdir $(DEVINSTALLDIR) |
| 347 | ifeq ($(OS_FOR_BUILD),WNT) |
| Peter Foley | 1d84e9d | 2013-02-21 20:40:59 -0500 | [diff] [blame] | 348 | cd $(SRCDIR)/instsetoo_native && $(GNUMAKE) LIBO_DEV_INSTALL=TRUE $(GMAKE_OPTIONS) |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 349 | else |
| 350 | @ooinstall $(DEVINSTALLDIR)/opt |
| 351 | @install-gdb-printers |
| 352 | endif |
| 353 | @rm -f $(SRCDIR)/install && ln -s $(DEVINSTALLDIR)/opt/ $(SRCDIR)/install |
| 354 | |
| 355 | distro-pack-install: install |
| 356 | $(SRCDIR)/bin/distro-install-clean-up |
| 357 | $(SRCDIR)/bin/distro-install-desktop-integration |
| 358 | $(SRCDIR)/bin/distro-install-sdk |
| 359 | $(SRCDIR)/bin/distro-install-file-lists |
| 360 | |
| 361 | id: |
| 362 | @create-ids |
| 363 | |
| 364 | tags: |
| 365 | @create-tags |
| 366 | |
| 367 | docs: |
| 368 | @mkdocs.sh $(SRCDIR)/docs $(SOLARENV)/inc/doxygen.cfg |
| 369 | |
| 370 | findunusedcode: |
| 371 | @which callcatcher > /dev/null 2>&1 || \ |
| 372 | (echo "callcatcher not installed" && false) |
| 373 | @sed -e s,$$INPATH,callcatcher,g config_host.mk | sed -e s,"export OOO_JUNIT_JAR=.*","export OOO_JUNIT_JAR=",g > $(SRCDIR)/config_host_callcatcher.mk |
| 374 | @echo unexport ARCH_FLAGS >> $(SRCDIR)/config_host_callcatcher.mk |
| 375 | @echo unexport CFLAGS >> $(SRCDIR)/config_host_callcatcher.mk |
| 376 | @echo unexport CXXFLAGS >> $(SRCDIR)/config_host_callcatcher.mk |
| 377 | @mkdir -p $(SRCDIR)/solenv/callcatcher/bin && \ |
| Caolán McNamara | 4e1dd61 | 2013-02-28 23:28:49 +0000 | [diff] [blame] | 378 | $(GNUMAKE) -f $(SOLARENV)/bin/callcatcher.Makefile findunusedcode |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 379 | @grep ::.*\( unusedcode.all \ |
| 380 | | grep -v ^Atom \ |
| 381 | | grep -v ^atom:: \ |
| 382 | | grep -v ^boost:: \ |
| 383 | | grep -v ^CIcc \ |
| 384 | | grep -v ^CLuceneError:: \ |
| 385 | | grep -v ^cppu:: \ |
| Caolán McNamara | afae9b5 | 2013-03-05 10:51:35 +0000 | [diff] [blame] | 386 | | grep -v ^CppUnit:: \ |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 387 | | grep -v ^Dde \ |
| 388 | | grep -v ^graphite2:: \ |
| 389 | | grep -v ^jvmaccess:: \ |
| 390 | | grep -v ^libcdr:: \ |
| 391 | | grep -v ^libcmis:: \ |
| 392 | | grep -v ^libmspub:: \ |
| 393 | | grep -v ^libvisio:: \ |
| 394 | | grep -v ^libwpg:: \ |
| 395 | | grep -v ^libwps_tools_win:: \ |
| 396 | | grep -v ^lucene:: \ |
| 397 | | grep -v ^Matrix3d:: \ |
| 398 | | grep -v ^RelatedMultipart:: \ |
| 399 | | grep -v ^salhelper:: \ |
| 400 | | grep -v ^VSDInternalStream:: \ |
| 401 | | grep -v ^WP1 \ |
| 402 | | grep -v ^WP3 \ |
| 403 | | grep -v ^WP42 \ |
| 404 | | grep -v ^WP6 \ |
| 405 | | grep -v ^WPG \ |
| 406 | | grep -v ^WPS \ |
| 407 | | grep -v WPX \ |
| 408 | | grep -v ^WSObject \ |
| 409 | > unusedcode.easy |
| 410 | |
| 411 | check: dev-install subsequentcheck |
| 412 | |
| Michael Meeks | d614ca7 | 2013-03-04 18:01:19 +0000 | [diff] [blame] | 413 | dump-deps: |
| Michael Meeks | 956c8ee | 2013-03-05 18:31:18 +0000 | [diff] [blame] | 414 | @$(SRCDIR)/bin/module-deps.pl $(GNUMAKE) $(SRCDIR)/Makefile.gbuild |
| Michael Meeks | d614ca7 | 2013-03-04 18:01:19 +0000 | [diff] [blame] | 415 | |
| David Ostrovsky | 0670c3f | 2013-03-09 16:08:47 +0100 | [diff] [blame] | 416 | dump-deps-png: |
| 417 | @$(SRCDIR)/bin/module-deps.pl $(GNUMAKE) $(SRCDIR)/Makefile.gbuild | dot -Tpng -o lo.png |
| 418 | |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 419 | subsequentcheck :| $(if $(filter-out subsequentcheck,$(MAKECMDGOALS)),dev-install) |
| Matúš Kukan | ce1bdc4 | 2013-03-04 15:32:05 +0100 | [diff] [blame] | 420 | $(GNUMAKE) -j $(CHECK_PARALLELISM) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $@ |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 421 | |
| Matúš Kukan | f2e7365 | 2013-02-27 18:40:36 +0100 | [diff] [blame] | 422 | .PHONY : debugrun help slowcheck translations unitcheck |
| 423 | debugrun help slowcheck translations unitcheck : |
| Matúš Kukan | ce1bdc4 | 2013-03-04 15:32:05 +0100 | [diff] [blame] | 424 | $(GNUMAKE) -j $(PARALLELISM) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $@ |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 425 | |
| Matúš Kukan | 0e6212c | 2012-12-23 19:27:28 +0100 | [diff] [blame] | 426 | endif # MAKE_RESTARTS |
| 427 | |
| 428 | # vim: set noet sw=4 ts=4: |