# 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/.

STANDALONE_MAKEFILE := 1

include $(topsrcdir)/config/rules.mk

MOZ_PKG_REMOVALS = $(srcdir)/removed-files.in

MOZ_PKG_MANIFEST_P = $(srcdir)/package-manifest.in

DEFINES += \
	-DMOZ_APP_NAME=$(MOZ_APP_NAME) \
	-DPREF_DIR=$(PREF_DIR) \
	$(NULL)

DEFINES += -DJAREXT=

DEFINES += -DMOZ_CHILD_PROCESS_NAME=$(MOZ_CHILD_PROCESS_NAME)

# Set MSVC dlls version to package, if any.
ifdef WIN32_REDIST_DIR
ifdef MOZ_NO_DEBUG_RTL
DEFINES += -DMOZ_PACKAGE_MSVC_DLLS=1
DEFINES += -DMSVC_C_RUNTIME_DLL=$(MSVC_C_RUNTIME_DLL)
DEFINES += -DMSVC_CXX_RUNTIME_DLL=$(MSVC_CXX_RUNTIME_DLL)
ifdef MSVC_APPCRT_DLL
DEFINES += -DMSVC_APPCRT_DLL=$(MSVC_APPCRT_DLL)
endif
ifdef MSVC_DESKTOPCRT_DLL
DEFINES += -DMSVC_DESKTOPCRT_DLL=$(MSVC_DESKTOPCRT_DLL)
endif
endif
endif

ifdef MOZ_DEBUG
DEFINES += -DMOZ_DEBUG=1
endif

ifdef ENABLE_MARIONETTE
DEFINES += -DENABLE_MARIONETTE=1
endif

ifdef MOZ_PKG_MANIFEST_P
MOZ_PKG_MANIFEST = package-manifest
endif

MOZ_PACKAGER_MINIFY=1

ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
ifndef _APPNAME
_APPNAME = $(MOZ_MACBUNDLE_NAME)
endif
ifndef _BINPATH
_BINPATH = /$(_APPNAME)/Contents/MacOS
endif
endif

include $(topsrcdir)/toolkit/mozapps/installer/packager.mk

# Note that JS_BINARY can be defined in packager.mk, so this test must come after
# including that file. MOZ_PACKAGER_MINIFY_JS is used in packager.mk, but since
# recipe evaluation is deferred, we can set it here after the inclusion.
ifneq (,$(JS_BINARY))
ifndef MOZ_DEBUG
MOZ_PACKAGER_MINIFY_JS=1
endif
endif

ifeq (bundle, $(MOZ_FS_LAYOUT))
BINPATH = $(_BINPATH)
DEFINES += -DAPPNAME=$(_APPNAME)
else
# Every other platform just winds up in dist/bin
BINPATH = bin
endif
DEFINES += -DBINPATH=$(BINPATH)

ifneq (,$(filter WINNT Darwin Android,$(OS_TARGET)))
DEFINES += -DMOZ_SHARED_MOZGLUE=1
endif

ifneq (,$(filter rtsp,$(NECKO_PROTOCOLS)))
DEFINES += -DMOZ_RTSP
endif

ifdef GKMEDIAS_SHARED_LIBRARY
DEFINES += -DGKMEDIAS_SHARED_LIBRARY
endif

ifdef MOZ_JEMALLOC3
DEFINES += -DMOZ_JEMALLOC3
endif

ifdef MOZ_WIDGET_GTK
DEFINES += -DMOZ_GTK=1
ifdef MOZ_ENABLE_GTK3
DEFINES += -DMOZ_GTK3=1
endif
endif

ifdef MOZ_PKG_MANIFEST_P
$(MOZ_PKG_MANIFEST): $(MOZ_PKG_MANIFEST_P) FORCE
	$(call py_action,preprocessor,$(DEFINES) $(ACDEFINES) $< -o $@)
ifdef MOZ_CHROME_MULTILOCALE
	printf '\n[multilocale]\n' >> $@
	for LOCALE in $(MOZ_CHROME_MULTILOCALE) ;\
	do \
	  printf '$(BINPATH)/chrome/'"$$LOCALE"'$(JAREXT)\n' >> $@; \
	  printf '$(BINPATH)/chrome/'"$$LOCALE"'.manifest\n' >> $@; \
	done
endif

GARBAGE += $(MOZ_PKG_MANIFEST)
endif

ifdef FXOS_SIMULATOR
export MAKE

.PHONY: simulator
simulator: make-package
	@echo 'Building simulator addon...'
	$(PYTHON) $(topsrcdir)/b2g/simulator/build_xpi.py $(MOZ_PKG_PLATFORM)

libs:: simulator

# Ensure copying Simulator xpi to ftp
UPLOAD_EXTRA_FILES += fxos-simulator-*-*.xpi
endif
