SHELL := /bin/bash -euo pipefail

NODE_DIR := $(shell jiri v23-profile list --info Target.InstallationDir nodejs)
export PATH := ./go/bin:$(JIRI_ROOT)/release/go/bin:node_modules/.bin:$(NODE_DIR)/bin:$(PATH)

# This target causes any target files to be deleted if the target task fails.
.DELETE_ON_ERROR:

UNAME := $(shell uname)

# When running browser tests on non-Darwin machines, set the --headless flag.
# This uses Xvfb underneath the hood (inside prova => browser-launcher =>
# headless), which is not supported on OS X.
# See: https://github.com/kesla/node-headless/
ifndef NOHEADLESS
	ifneq ($(UNAME),Darwin)
		HEADLESS := --headless
	endif
endif

ifdef STOPONFAIL
	STOPONFAIL := --stopOnFirstFailure
endif

ifndef NOTAP
	TAP := --tap
endif

ifndef NOQUIT
	QUIT := --quit
endif

ifdef XUNIT
	TAP := --tap # TAP must be set for xunit to work
	OUTPUT_TRANSFORM := tap-xunit
endif

ifdef BROWSER_OUTPUT
	BROWSER_OUTPUT_LOCAL = $(BROWSER_OUTPUT)
	ifdef OUTPUT_TRANSFORM
		BROWSER_OUTPUT_LOCAL := >($(OUTPUT_TRANSFORM) --package=javascript.browser > $(BROWSER_OUTPUT_LOCAL))
	endif
	BROWSER_OUTPUT_LOCAL := | tee $(BROWSER_OUTPUT_LOCAL)
endif

PROVA_OPTS := --includeFilenameAsPackage $(TAP) $(QUIT) $(STOPONFAIL)

BROWSER_OPTS := --browser --launch chrome $(HEADLESS) --log=./tmp/chrome.log

.DEFAULT_GOAL := all

.PHONY: all
all:

go/bin: $(shell find $(JIRI_ROOT) -name "*.go")
	jiri go build -a -o $@/principal v.io/x/ref/cmd/principal
	jiri go build -a -tags wspr -o $@/servicerunner v.io/x/ref/cmd/servicerunner
	jiri go build -a -o $@/syncbased v.io/x/ref/services/syncbase/syncbased

.PHONY: gen-vdl
gen-vdl:
	jiri run vdl generate --lang=javascript --js-out-dir=src/gen-vdl v.io/v23/services/syncbase/...

node_modules: package.json
	npm prune
	npm install
	# Link Vanadium from JIRI_ROOT.
	rm -rf ./node_modules/vanadium
	cd "$(JIRI_ROOT)/release/javascript/core" && npm link
	npm link vanadium
	touch node_modules

# We use the same test runner as vanadium.js.  It handles starting and stopping
# all required services (proxy, wspr, mounntabled), and runs tests in chrome
# with prova.
# TODO(sadovsky): Some of the deps in our package.json are needed solely for
# runner.js. We should restructure things so that runner.js is its own npm
# package with its own deps.
.NOTPARALLEL: test
.PHONY: test
test: test-integration

.NOTPARALLEL: test-integration
.PHONY: test-integration
test-integration: test-integration-browser test-integration-node

.PHONY: test-integration-node
test-integration-node: export PATH := ./test:$(PATH)
test-integration-node: go/bin lint node_modules
	node ./node_modules/vanadium/test/integration/runner.js --services=start-syncbased.sh -- \
	prova test/integration/test-*.js $(PROVA_OPTS) $(NODE_OUTPUT_LOCAL)

.PHONY: test-integration-browser
test-integration-browser: export PATH := ./test:$(PATH)
test-integration-browser: go/bin lint node_modules
	node ./node_modules/vanadium/test/integration/runner.js --services=start-syncbased.sh -- \
	make test-integration-browser-runner

# Note: runner.js sets the V23_NAMESPACE and PROXY_ADDR env vars for the
# spawned test subprocess; we specify "make test-integration-browser-runner" as
# the test command so that we can then reference these vars in the Vanadium
# extension and our prova command.
.PHONY: test-integration-browser-runner
test-integration-browser-runner: VANADIUM_JS := $(JIRI_ROOT)/release/javascript/core
test-integration-browser-runner: BROWSER_OPTS := --options="--load-extension=$(VANADIUM_JS)/extension/build-test/,--ignore-certificate-errors,--enable-logging=stderr" $(BROWSER_OPTS)
test-integration-browser-runner:
	$(MAKE) -C $(VANADIUM_JS)/extension clean
	$(MAKE) -C $(VANADIUM_JS)/extension build-test
	prova ./test/integration/test-*.js $(PROVA_OPTS) $(BROWSER_OPTS) $(BROWSER_OUTPUT_LOCAL)

.PHONY: clean
clean:
	rm -rf \
		docs \
		go/bin \
		node_modules \
		tmp

.PHONY: lint
lint: node_modules
ifdef NOLINT
	@echo "Skipping lint - disabled by NOLINT environment variable"
else
	jshint .
endif

# The following target is copied and modifed from ../core/Makefile.
DOCSTRAP_LOC:= node_modules/ink-docstrap
JS_SRC_FILES = $(shell find src -name "*.js" | sed 's/ /\\ /')
docs: $(JS_SRC_FILES) ../core/jsdocs/docstrap-template/compiled/site.vanadium.css | node_modules
	# Copy our compiled style template.
	cp -f ../core/jsdocs/docstrap-template/compiled/site.vanadium.css ${DOCSTRAP_LOC}/template/static/styles

	# Build the docs.
	jsdoc $^ --readme ./jsdocs/index.md --configure ./jsdocs/conf.json --template ${DOCSTRAP_LOC}/template --destination $@

	# Copy favicon.
	cp -f ../core/jsdocs/favicon.ico $@

# Serves the docs at http://localhost:8020.
serve-docs: docs
	static docs -p 8020

.PHONY: serve-docs

.PHONY: deploy-docs-production
deploy-docs-production: docs
	make -C $(JIRI_ROOT)/infrastructure/deploy jsdoc-syncbase-production

.PHONY: deploy-docs-staging
deploy-docs-staging: docs
	make -C $(JIRI_ROOT)/infrastructure/deploy jsdoc-syncbase-staging
