# vim: set shiftwidth=8 tabstop=8 autoindent noexpandtab copyindent:
# 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/.

ifdef XPI_NAME
NO_JS_MANIFEST = 1
DIST_FILES = install.rdf

ifeq ($(MOZ_BUILD_APP),mobile/android)
DEFINES += -DBOOTSTRAP
DIST_FILES += bootstrap.js
endif

ifeq ($(MOZ_BUILD_APP),b2g)
DEFINES += -DBOOTSTRAP
DEFINES += -DREFTEST_B2G
endif

# Used in install.rdf
USE_EXTENSION_MANIFEST=1
else
EXTRA_COMPONENTS += reftest-cmdline.manifest
endif

_DEST_DIR = $(DEPTH)/_tests/reftest

_HARNESS_FILES = \
  $(srcdir)/runreftest.py \
  $(srcdir)/remotereftest.py \
  $(srcdir)/runreftestb2g.py \
  $(srcdir)/b2g_desktop.py \
  automation.py \
  $(topsrcdir)/testing/mozbase/mozdevice/mozdevice/devicemanager.py \
  $(topsrcdir)/testing/mozbase/mozdevice/mozdevice/devicemanagerADB.py \
  $(topsrcdir)/testing/mozbase/mozdevice/mozdevice/devicemanagerSUT.py \
  $(topsrcdir)/testing/mozbase/mozdevice/mozdevice/droid.py \
  $(topsrcdir)/testing/mozbase/mozdevice/mozdevice/Zeroconf.py \
  $(topsrcdir)/testing/mozbase/moznetwork/moznetwork/moznetwork.py \
  $(topsrcdir)/build/mobile/b2gautomation.py \
  $(topsrcdir)/build/automationutils.py \
  $(topsrcdir)/build/mobile/remoteautomation.py \
  $(topsrcdir)/testing/mochitest/server.js \
  $(topsrcdir)/build/pgo/server-locations.txt \
  $(NULL)

_HARNESS_PP_FILES = \
  b2g_start_script.js \
  $(NULL)
_HARNESS_PP_FILES_PATH = $(_DEST_DIR)
PP_TARGETS += _HARNESS_PP_FILES

include $(topsrcdir)/config/rules.mk

# We're installing to _tests/reftest
TARGET_DEPTH = ../..
include $(topsrcdir)/build/automation-build.mk

# We want to get an extension-packaged version of reftest as well, 
# so this seems to be the simplest way to make that happen.
ifndef XPI_NAME
make-xpi:
	+$(MAKE) -C $(DEPTH)/netwerk/test/httpserver libs XPI_NAME=reftest
	+$(MAKE) libs XPI_NAME=reftest
copy-harness: make-xpi
libs:: copy-harness
endif

$(_DEST_DIR):
	$(NSINSTALL) -D $@

$(_HARNESS_FILES): $(_DEST_DIR)

# copy harness and the reftest extension bits to $(_DEST_DIR)
copy-harness: $(_HARNESS_FILES) $(addprefix $(_DEST_DIR)/,$(_HARNESS_PP_FILES))
	$(INSTALL) $(_HARNESS_FILES) $(_DEST_DIR)
	(cd $(DIST)/xpi-stage && tar $(TAR_CREATE_FLAGS) - reftest) | (cd $(_DEST_DIR) && tar -xf -)

PKG_STAGE = $(DIST)/test-package-stage

# stage harness and tests for packaging
stage-package:
	$(NSINSTALL) -D $(PKG_STAGE)/reftest && $(NSINSTALL) -D $(PKG_STAGE)/reftest/tests
	(cd $(DEPTH)/_tests/reftest/ && tar $(TAR_CREATE_FLAGS) - *) | (cd $(PKG_STAGE)/reftest && tar -xf -)
	$(PYTHON) $(topsrcdir)/layout/tools/reftest/print-manifest-dirs.py \
          $(topsrcdir) \
          $(topsrcdir)/layout/reftests/reftest.list \
          $(topsrcdir)/testing/crashtest/crashtests.list \
          | (cd $(topsrcdir) && xargs tar $(TAR_CREATE_FLAGS) -) \
          | (cd $(PKG_STAGE)/reftest/tests && tar -xf -)
