# THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT MODIFY BY HAND.
DEPTH := .
topobjdir := /jenkins/jobs/oi-userland/workspace/components/web/firefox/build/amd64
topsrcdir := /jenkins/jobs/oi-userland/workspace/components/web/firefox/firefox-155.0.1
srcdir := /jenkins/jobs/oi-userland/workspace/components/web/firefox/firefox-155.0.1
srcdir_rel := ../../firefox-155.0.1
relativesrcdir := .
include $(DEPTH)/config/autoconf.mk
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

export TOPLEVEL_BUILD := 1

default::

ifndef TEST_MOZBUILD
ifdef MOZ_BUILD_APP
include $(wildcard $(topsrcdir)/$(MOZ_BUILD_APP)/build.mk)
endif
endif

include $(topsrcdir)/config/config.mk

ifneq (mobile/android,$(MOZ_BUILD_APP))
# We only want to generate buildid.h once, during the (recurse) export phase.
# faster make build the files explicitly so also match thoses
ifneq ($(filter $(MAKECMDGOALS),recurse_export buildid.h source-repo.h),)
$(MDDEPDIR)/buildid.h.stub $(MDDEPDIR)/source-repo.h.stub: FORCE
endif
endif
source-repo.h: $(MDDEPDIR)/source-repo.h.stub
buildid.h: $(MDDEPDIR)/buildid.h.stub

BUILD_BACKEND_FILES := $(addprefix backend.,$(addsuffix Backend,$(BUILD_BACKENDS)))

ifndef TEST_MOZBUILD
# We need to explicitly put BUILD_BACKEND_FILES here otherwise the rule in
# rules.mk doesn't run early enough.
$(RUNNABLE_TIERS) binaries:: CLOBBER $(BUILD_BACKEND_FILES)
endif

ifdef JS_STANDALONE
.PHONY: CLOBBER
CLOBBER:
else
CLOBBER: $(topsrcdir)/CLOBBER
	@echo 'STOP!  The CLOBBER file has changed.'
	@echo 'Please run the build through "mach build".'
	@exit 1
endif

# Consumed by backend-emitted install manifest rules.
install_manifest_depends = \
  CLOBBER \
  $(BUILD_BACKEND_FILES) \
  $(NULL)

include $(topsrcdir)/build/moz-automation.mk

# Dummy rule for the cases below where we don't depend on dist/include
recurse_pre-export:

# For the binaries rule, not all the install manifests matter, so force only
# the interesting ones to be done.
recurse_pre-export: install-manifests
binaries::
	@$(MAKE) install-manifests-binaries

ifdef BUILD_VERBOSE_LOG
verbose_flag = -v
endif

recurse_artifact:
	$(PYTHON3) $(topsrcdir)/mach --log-no-times artifact install$(if $(MOZ_ARTIFACT_BUILD_SYMBOLS), --symbols$(addprefix =,$(filter full,$(MOZ_ARTIFACT_BUILD_SYMBOLS)))) $(if $(ENABLE_TESTS),,--no-tests) $(verbose_flag)

ifdef MOZ_ANDROID_FAT_AAR_ARCHITECTURES
recurse_android-fat-aar-artifact:
	$(call py_action,fat_aar,$(MOZ_ANDROID_FAT_AAR_ARCHITECTURES) \
    $(if $(MOZ_ANDROID_FAT_AAR_ARMEABI_V7A),--armeabi-v7a $(MOZ_ANDROID_FAT_AAR_ARMEABI_V7A)) \
    $(if $(MOZ_ANDROID_FAT_AAR_ARM64_V8A),--arm64-v8a $(MOZ_ANDROID_FAT_AAR_ARM64_V8A)) \
    $(if $(MOZ_ANDROID_FAT_AAR_X86_64),--x86-64 $(MOZ_ANDROID_FAT_AAR_X86_64)) \
    --distdir $(abspath $(DIST)/fat-aar))
endif

ifeq ($(MOZ_BUILD_APP),mobile/android)

recurse_android-stage-package: stage-package

recurse_android-archive-geckoview:
	GRADLE_INVOKED_WITHIN_MACH_BUILD=1 $(PYTHON3) $(topsrcdir)/mach --log-no-times android archive-geckoview  $(if $(MOZ_AUTOMATION),--no-configuration-cache)
endif

ifdef MOZ_WIDGET_TOOLKIT
ifdef ENABLE_TESTS
# Additional makefile targets to call automated test suites
include $(topsrcdir)/testing/testsuite-targets.mk
endif
endif

default all::
	$(call BUILDSTATUS,TIERS $(TIERS) $(if $(MOZ_AUTOMATION),$(MOZ_AUTOMATION_TIERS)))

include $(topsrcdir)/config/rules.mk

ifdef SCCACHE_VERBOSE_STATS
default::
	-$(CCACHE) --show-adv-stats --stats-format=json > '$(UPLOAD_PATH)/sccache-stats.json'
	@echo "===SCCACHE STATS==="
	-$(CCACHE) --show-adv-stats
	@echo "==================="
endif

ifdef MOZ_CRASHREPORTER
include $(topsrcdir)/toolkit/mozapps/installer/package-name.mk

endif

.PHONY: prepsymbolsarchive
prepsymbolsarchive:
	echo packing symbols
	$(NSINSTALL) -D $(DIST)/$(PKG_PATH)

ifndef MOZ_AUTOMATION
prepsymbolsarchive: recurse_syms
endif

.PHONY: symbolsfullarchive
symbolsfullarchive: prepsymbolsarchive
	$(RM) '$(DIST)/$(PKG_PATH)$(SYMBOL_FULL_ARCHIVE_BASENAME).tar.zst'
	$(call py_action,symbols_archive $(SYMBOL_FULL_ARCHIVE_BASENAME).tar.zst,'$(DIST)/$(PKG_PATH)$(SYMBOL_FULL_ARCHIVE_BASENAME).tar.zst' \
                                     $(abspath $(DIST)/crashreporter-symbols) \
                                     --full-archive)

.PHONY: symbolsarchive
symbolsarchive: prepsymbolsarchive
	$(RM) '$(DIST)/$(PKG_PATH)$(SYMBOL_ARCHIVE_BASENAME).zip'
	$(call py_action,symbols_archive $(SYMBOL_ARCHIVE_BASENAME).zip,'$(DIST)/$(PKG_PATH)$(SYMBOL_ARCHIVE_BASENAME).zip' \
                                     $(abspath $(DIST)/crashreporter-symbols))

# Set MOZ_ENABLE_FULL_SYMBOLS to enable generation and upload of the full
# crashreporter symbols archives
ifdef MOZ_ENABLE_FULL_SYMBOLS
buildsymbols: symbolsfullarchive symbolsarchive
else
ifdef MOZ_CRASHREPORTER
buildsymbols: symbolsarchive
else
buildsymbols:
	@echo "Skipping symbols generation because MOZ_CRASHREPORTER is not set."
endif # MOZ_CRASHREPORTER
endif # MOZ_ENABLE_FULL_SYMBOLS

uploadsymbols:
ifdef MOZ_ENABLE_FULL_SYMBOLS
	$(PYTHON3) -u $(topsrcdir)/toolkit/crashreporter/tools/upload_symbols.py '$(DIST)/$(PKG_PATH)$(SYMBOL_FULL_ARCHIVE_BASENAME).tar.zst'
endif

.PHONY: package-generated-sources
package-generated-sources:
	$(call py_action,package_generated_sources,'$(DIST)/$(PKG_PATH)$(GENERATED_SOURCE_FILE_PACKAGE)')

ifdef JS_STANDALONE
# Delegate js-specific rules to js
check-%:
	$(MAKE) -C js/src $@

install:
	$(MAKE) -C js/src $@

# Every export rule depends on config/export, but the rule for config/export
# doesn't exist when building js non-standalone.
.PHONY: config/export
config/export:

endif

# There used to be build interdependencies here. They are now in config/recurse.mk

include $(topsrcdir)/config/recurse.mk
