build/moz-automation.mk

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 #
     2 # This Source Code Form is subject to the terms of the Mozilla Public
     3 # License, v. 2.0. If a copy of the MPL was not distributed with this
     4 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
     6 ifneq (,$(filter automation/%,$(MAKECMDGOALS)))
     7 ifeq (4.0,$(firstword $(sort 4.0 $(MAKE_VERSION))))
     8 MAKEFLAGS += --output-sync=target
     9 else
    10 .NOTPARALLEL:
    11 endif
    12 endif
    14 include $(topsrcdir)/toolkit/mozapps/installer/package-name.mk
    16 # Log file from the 'make upload' step. We need this to parse out the URLs of
    17 # the uploaded files.
    18 AUTOMATION_UPLOAD_OUTPUT = $(DIST)/automation-upload.txt
    20 # Helper variables to convert from MOZ_AUTOMATION_* variables to the
    21 # corresponding the make target
    22 tier_BUILD_SYMBOLS = buildsymbols
    23 tier_L10N_CHECK = l10n-check
    24 tier_PRETTY_L10N_CHECK = pretty-l10n-check
    25 tier_INSTALLER = installer
    26 tier_PRETTY_INSTALLER = pretty-installer
    27 tier_PACKAGE = package
    28 tier_PRETTY_PACKAGE = pretty-package
    29 tier_PACKAGE_TESTS = package-tests
    30 tier_PRETTY_PACKAGE_TESTS = pretty-package-tests
    31 tier_UPDATE_PACKAGING = update-packaging
    32 tier_PRETTY_UPDATE_PACKAGING = pretty-update-packaging
    33 tier_UPLOAD_SYMBOLS = uploadsymbols
    34 tier_UPLOAD = upload
    36 # Automation build steps. Everything in MOZ_AUTOMATION_TIERS also gets used in
    37 # TIERS for mach display. As such, the MOZ_AUTOMATION_TIERS are roughly sorted
    38 # here in the order that they will be executed (since mach doesn't know of the
    39 # dependencies between them).
    40 moz_automation_symbols = \
    41   PACKAGE_TESTS \
    42   PRETTY_PACKAGE_TESTS \
    43   BUILD_SYMBOLS \
    44   UPLOAD_SYMBOLS \
    45   PACKAGE \
    46   PRETTY_PACKAGE \
    47   INSTALLER \
    48   PRETTY_INSTALLER \
    49   UPDATE_PACKAGING \
    50   PRETTY_UPDATE_PACKAGING \
    51   L10N_CHECK \
    52   PRETTY_L10N_CHECK \
    53   UPLOAD \
    54   $(NULL)
    55 MOZ_AUTOMATION_TIERS := $(foreach sym,$(moz_automation_symbols),$(if $(filter 1,$(MOZ_AUTOMATION_$(sym))),$(tier_$(sym))))
    57 # Dependencies between automation build steps
    58 automation/uploadsymbols: automation/buildsymbols
    60 automation/update-packaging: automation/package
    61 automation/pretty-update-packaging: automation/pretty-package
    62 automation/pretty-update-packaging: automation/pretty-installer
    64 automation/l10n-check: automation/package
    65 automation/l10n-check: automation/installer
    66 automation/pretty-l10n-check: automation/pretty-package
    67 automation/pretty-l10n-check: automation/pretty-installer
    69 automation/upload: automation/installer
    70 automation/upload: automation/package
    71 automation/upload: automation/package-tests
    72 automation/upload: automation/buildsymbols
    73 automation/upload: automation/update-packaging
    75 # automation/{pretty-}package should depend on build (which is implicit due to
    76 # the way client.mk invokes automation/build), but buildsymbols changes the
    77 # binaries/libs, and that's what we package/test.
    78 automation/pretty-package: automation/buildsymbols
    80 # The 'pretty' versions of targets run before the regular ones to avoid
    81 # conflicts in writing to the same files.
    82 automation/installer: automation/pretty-installer
    83 automation/package: automation/pretty-package
    84 automation/package-tests: automation/pretty-package-tests
    85 automation/l10n-check: automation/pretty-l10n-check
    86 automation/update-packaging: automation/pretty-update-packaging
    88 automation/build: $(addprefix automation/,$(MOZ_AUTOMATION_TIERS))
    89 	$(PYTHON) $(topsrcdir)/build/gen_mach_buildprops.py --complete-mar-file $(DIST)/$(COMPLETE_MAR) $(addprefix --partial-mar-file ,$(wildcard $(DIST)/$(PARTIAL_MAR))) --upload-output $(AUTOMATION_UPLOAD_OUTPUT)
    91 # We need the log from make upload to grep it for urls in order to set
    92 # properties.
    93 AUTOMATION_EXTRA_CMDLINE-upload = 2>&1 | tee $(AUTOMATION_UPLOAD_OUTPUT)
    95 # Note: We have to force -j1 here, at least until bug 1036563 is fixed.
    96 AUTOMATION_EXTRA_CMDLINE-l10n-check = -j1
    97 AUTOMATION_EXTRA_CMDLINE-pretty-l10n-check = -j1
    99 # And force -j1 here until bug 1077670 is fixed.
   100 AUTOMATION_EXTRA_CMDLINE-package-tests = -j1
   101 AUTOMATION_EXTRA_CMDLINE-pretty-package-tests = -j1
   103 # The commands only run if the corresponding MOZ_AUTOMATION_* variable is
   104 # enabled. This means, for example, if we enable MOZ_AUTOMATION_UPLOAD, then
   105 # 'buildsymbols' will only run if MOZ_AUTOMATION_BUILD_SYMBOLS is also set.
   106 # However, the target automation/buildsymbols will still be executed in this
   107 # case because it is a prerequisite of automation/upload.
   108 define automation_commands
   109 $(call BUILDSTATUS,TIER_START $1)
   110 @$(MAKE) $1 $(AUTOMATION_EXTRA_CMDLINE-$1)
   111 $(call BUILDSTATUS,TIER_FINISH $1)
   112 endef
   114 automation/%:
   115 	$(if $(filter $*,$(MOZ_AUTOMATION_TIERS)),$(call automation_commands,$*))

mercurial