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

NODE_BIN := $(JIRI_ROOT)/release/javascript/core/node_modules/.bin
GOPATH := $(JIRI_ROOT)/release/javascript/core/go
VDLPATH := $(JIRI_ROOT)/release/go/src:$(GOPATH)/src
GOBIN := $(JIRI_ROOT)/release/javascript/core/go/bin
VGO := GOPATH="$(GOPATH)" VDLPATH="$(VDLPATH)" jiri go
GO_FILES := $(shell find go/src $(JIRI_ROOT)/release/go/src/v.io -name "*.go")

NODE_MODULE_JS_FILES := $(shell find node_modules -name *.js | sed 's/ /\\ /')

SHELL := /bin/bash -e -o pipefail

UNAME := $(shell uname)

.DEFAULT_GOAL := all

# Default browserify options: create a standalone bundle, and use sourcemaps.
BROWSERIFY_OPTS := --standalone vanadium --debug
# Names that should not be mangled by minification.
RESERVED_NAMES := 'context,ctx,callback,cb,$$stream,serverCall'
# Don't mangle RESERVED_NAMES, and screw ie8.
MANGLE_OPTS := --mangle [--except $(RESERVED_NAMES) --screw_ie8 ]
# Don't remove unused variables from function arguments, which could mess up signatures.
# Also don't evaulate constant expressions, since we rely on them to conditionally require modules only in node.
COMPRESS_OPTS := --compress [ --no-unused --no-evaluate ]

# Browserify and extract sourcemap, but do not minify.
define BROWSERIFY
	mkdir -p $(dir $2)
	browserify $1 $(BROWSERIFY_OPTS) | exorcist $2.map > $2
endef

# Browserify, minify, and extract sourcemap.
define BROWSERIFY-MIN
	mkdir -p $(dir $2)
	browserify $1 $(BROWSERIFY_OPTS) --g [ uglifyify $(MANGLE_OPTS) $(COMPRESS_OPTS) ] | exorcist $2.map > $2
endef

# 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 NODE_OUTPUT
	NODE_OUTPUT_LOCAL = $(NODE_OUTPUT)
	ifdef OUTPUT_TRANSFORM
		NODE_OUTPUT_LOCAL := >($(OUTPUT_TRANSFORM) --package=javascript.node > $(NODE_OUTPUT_LOCAL))
	endif
	NODE_OUTPUT_LOCAL := | tee $(NODE_OUTPUT_LOCAL)
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 --transform envify --launch chrome $(HEADLESS)

JS_SRC_FILES = $(shell find src -name "*.js" | sed 's/ /\\ /')

# Common services needed for all integration tests. Must be a comma-seperated
# string with no spaces.
COMMON_SERVICES := "test_serviced"

LOADTEST_SERVICE := "stressd"

all: gen-vdl lint build docs

build: dist docs extension/vanadium.zip

dist/vanadium.js: src/vanadium.js $(JS_SRC_FILES) $(NODE_MODULES_JS_FILES) | node_modules
	$(call BROWSERIFY,$<,$@)

dist/vanadium.min.js: src/vanadium.js $(JS_SRC_FILES) $(NODE_MODULES_JS_FILES) | node_modules
	$(call BROWSERIFY-MIN,$<,$@)

dist: dist/vanadium.js dist/vanadium.min.js

extension/vanadium.zip: node_modules
	$(MAKE) -C extension vanadium.zip

test-precheck: gen-vdl-test node_modules lint dependency-check

test: test-unit test-integration test-vdl test-vom

test-vdl: test-vdl-node test-vdl-browser

# This generates the VDL files and asks git if there are any changed files.
# We don't have to check the extension since it does not check in VDL files.
#
# The alternative is to use the vdl audit command, but that requires checking
# after both vdl commands in gen-vdl-impl as opposed to a single git status.
test-vdl-audit: gen-vdl
	@if [ "`git status --porcelain | grep ' src/gen-vdl/' | sed 's/^ //'`" != "" ]; then \
	  echo "Some VDL files changed but were not committed!"; \
	  echo "`git status --porcelain | grep ' src/gen-vdl/' | sed 's/^ //'`"; \
	  echo "Run 'make gen-vdl' in the javascript/core repo, and commit the changed files."; \
	  exit 1; \
	fi

test-vom: test-vom-node test-vom-browser

# This generates the output of the vdl files in src/gen-vdl/v.io/<package-path>
# The command will generate all the dependent files as well.
gen-vdl: JS_VDL_DIR := "$(JIRI_ROOT)/release/javascript/core/src/gen-vdl"
gen-vdl: JS_VDL_PATH_TO_CORE := ".."
gen-vdl: gen-vdl-impl

# This generates the output of the vdl files in test/vdl-out/gen-vdl/v.io/<package-path>
# The command will generate all the dependent files as well.
gen-vdl-test: JS_VDL_DIR := "$(JIRI_ROOT)/release/javascript/core/test/vdl-out"
gen-vdl-test: EXTRA_VDL_PATHS := "javascript-test/..." "v.io/x/js.core/..."
gen-vdl-test: VDLPATH := "$(JIRI_ROOT)/release/go/src:$(JIRI_ROOT)/release/javascript/core/test/vdl-in/src:$(JIRI_ROOT)/release/javascript/core/go/src"
gen-vdl-test: JS_VDL_PATH_TO_CORE := "../../src"
gen-vdl-test: gen-vdl-impl

# This generates the vdl files used by test/vom/test-vdl-arith.js
# They are placed in test/vdl/expected-gen/v.io/<package-path>.
# This command is not normally run by the tests. It should only be run when the
# expected vdl files need to be updated.
gen-vdl-test-expected: JS_VDL_DIR := "$(JIRI_ROOT)/release/javascript/core/test/vdl/expected-gen"
gen-vdl-test-expected: JS_VDL_PATH_TO_CORE := "../../../src"
gen-vdl-test-expected: gen-vdl-test-expected-impl

gen-vdl-test-expected-impl:
	rm -rf $(JS_VDL_DIR)
	echo $(VDLPATH)
	VDLPATH=$(VDLPATH) vdl generate -lang=javascript \
		-js-relative-path-to-core=$(JS_VDL_PATH_TO_CORE) \
		-js-out-dir=$(JS_VDL_DIR) \
		v.io/x/ref/lib/vdl/testdata/...

gen-vdl-impl:
ifndef NOVDLGEN
	rm -rf $(JS_VDL_DIR)
	VDLPATH=$(VDLPATH) vdl generate -lang=javascript \
		-js-relative-path-to-core=$(JS_VDL_PATH_TO_CORE) \
		-js-out-dir=$(JS_VDL_DIR) \
		v.io/x/ref/lib/vdl/testdata/... \
		v.io/x/ref/services/wspr/... \
		v.io/v23/rpc/... \
		v.io/v23/naming/... \
		v.io/v23/verror/... \
		v.io/v23/vom/... \
		$(EXTRA_VDL_PATHS)
	# TODO(bjornick): We build the vdlroot stuff with a different set of command line options because the package
	# path does not equal the directory path of the source file.  This is not ideal, but bjornick and toddw will
	# discuss how to fix this later.
	VDLPATH=$(VDLPATH) vdl generate -lang=javascript \
			-js-relative-path-to-core=../../../$(JS_VDL_PATH_TO_CORE) \
			-js-out-dir=$(JS_VDL_DIR) \
			$(JIRI_ROOT)/release/go/src/v.io/v23/vdlroot/...
endif

test-vdl-node: test-precheck
	prova test/vdl/test-*.js $(PROVA_OPTS) $(NODE_OUTPUT_LOCAL)

test-vdl-browser: test-precheck
	prova test/vdl/test-*.js $(PROVA_OPTS) $(BROWSER_OPTS) $(BROWSER_OUTPUT_LOCAL)

test-vom-node: test-precheck
	prova test/vom/test-*.js $(PROVA_OPTS) $(NODE_OUTPUT_LOCAL)

test-vom-browser: test-precheck
	prova test/vom/test-*.js $(PROVA_OPTS) $(BROWSER_OPTS) $(BROWSER_OUTPUT_LOCAL)

test-unit: test-unit-node test-unit-browser

test-unit-node: test-precheck
	prova test/unit/test-*.js $(PROVA_OPTS) $(NODE_OUTPUT_LOCAL)

test-unit-browser: test-precheck
	prova test/unit/test-*.js $(PROVA_OPTS) $(BROWSER_OPTS) $(BROWSER_OUTPUT_LOCAL)

test-integration: lint test-integration-node test-integration-browser

test-integration-node: test-precheck go/bin
	node test/integration/runner.js --services=$(COMMON_SERVICES) -- \
	prova test/integration/test-*.js $(PROVA_OPTS) $(NODE_OUTPUT_LOCAL)

test-integration-browser: test-precheck go/bin
	node test/integration/runner.js --services=$(COMMON_SERVICES) -- \
	make test-integration-browser-runner

test-integration-browser-runner: BROWSER_OPTS := --options="--load-extension=$(PWD)/extension/build-test/,--ignore-certificate-errors,--enable-logging=stderr" $(BROWSER_OPTS)
test-integration-browser-runner:
	@$(RM) -fr extension/build-test
	$(MAKE) -C extension build-test
	prova test/integration/test-*.js --log=./tmp/chrome.log $(PROVA_OPTS) $(BROWSER_OPTS) $(BROWSER_OUTPUT_LOCAL) $(SAVE_CHROME_LOGS)

test-load-node: test-precheck go/bin
	node test/integration/runner.js --services=$(LOADTEST_SERVICE)  -- \
	prova test/load/test-*.js $(PROVA_OPTS) $(NODE_OUTPUT_LOCAL)


test-load-browser: test-precheck go/bin
	node test/integration/runner.js --services=$(LOADTEST_SERVICE)  -- \
	make test-load-browser-runner

test-load-browser-runner: BROWSER_OPTS := --options="--load-extension=$(PWD)/extension/build-test/,--ignore-certificate-errors,--enable-logging=stderr" $(BROWSER_OPTS)
test-load-browser-runner:
	@$(RM) -fr extension/build-test
	$(MAKE) -C extension build-test
	prova test/load/test-*.js --log=./tmp/chrome.log $(PROVA_OPTS) $(BROWSER_OPTS) $(BROWSER_OUTPUT_LOCAL) $(SAVE_CHROME_LOGS)




go/bin: $(GO_FILES)
	@$(VGO) build -o $(GOBIN)/servicerunner -a -tags wspr v.io/x/ref/cmd/servicerunner
	@$(VGO) build -o $(GOBIN)/principal v.io/x/ref/cmd/principal
	@$(VGO) build -o $(GOBIN)/test_serviced v.io/x/js.core/test_service/test_serviced
	@$(VGO) build -o $(GOBIN)/stressd v.io/x/js.core/stress/stressd

lint: node_modules
ifdef NOLINT
	@echo "Skipping lint - disabled by NOLINT environment variable"
else
	jshint .
	$(MAKE) -C extension lint
endif

dependency-check: node_modules
	dependency-check package.json --entry src/vanadium.js

clean:
	@$(RM) -fr dist
	@$(RM) -fr docs
	@$(RM) -fr go/bin
	@$(RM) -fr go/pkg
	@$(RM) -fr node_modules
	@$(RM) -fr npm-debug.log
	@$(RM) -fr tmp
	@$(RM) -fr xunit.xml
	$(MAKE) -C extension clean

DOCSTRAP_LOC:= node_modules/ink-docstrap
docs: $(JS_SRC_FILES) jsdocs/docstrap-template/compiled/site.vanadium.css | node_modules
	# Copy our compiled style template
	cp -f 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 ./jsdocs/favicon.ico $@

# docs-template
#
# Builds the custom Vanadium jsdocs template and rebuilds the docs with it.
# It does so by copying the LESS files we have in jsdocs/styles to docstrap
# and rebuilding the compiled style file by following the "Customization"
# steps: https://github.com/terryweiss/docstrap#customizing-docstrap
# After the build is done, it copies back the compiled style file to our
# folder so it can be checked in and used later.
docs-template: node_modules node_modules/ink-docstrap/node_modules/grunt node_modules/ink-docstrap/bower_components
	# Copy our raw LESS style assets to docstrap
	cp -f jsdocs/docstrap-template/styles/*.* ${DOCSTRAP_LOC}/styles
	# Rebuilt the styles
	cd ${DOCSTRAP_LOC}; ${NODE_BIN}/grunt less
	# Copy back the compiled style file from docstrap
	cp -f ${DOCSTRAP_LOC}/template/static/styles/site.cosmo.css jsdocs/docstrap-template/compiled/site.vanadium.css
	# Rebuild docs
	make docs

node_modules/ink-docstrap/node_modules/grunt:
	cd ${DOCSTRAP_LOC}; npm install

node_modules/ink-docstrap/bower_components:
	cd ${DOCSTRAP_LOC}; ${NODE_BIN}/bower install

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

.PHONY: docs-template serve-docs

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

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

node_modules: package.json  check-that-npm-is-in-path
ifndef NONPMUPDATE
	@npm prune
	@npm install --quiet || (rm -fr $(HOME)/.npm && npm install --quiet)
	@touch node_modules
endif

check-that-npm-is-in-path:
	@which npm > /dev/null || { echo "npm is not in the path. Did you remember to run 'jiri profile install nodejs'?"; exit 1; }

.PHONY: all build clean dependency-check lint test
.PHONY: test-integration test-integration-node test-integration-browser
.PHONY: test-unit test-unit-node test-unit-browser
.PHONY: check-that-npm-is-in-path
.PHONY: gen-vdl gen-vdl-test gen-vdl-test-expected gen-vdl-impl gen-vdl-test-expected-impl

# Prevent the tests from running in parallel, which causes problems because it
# starts multiple instances of the services at once, and also because it
# interleaves the test output.
.NOTPARALLEL: test-integration test-integration-browser test-integration-node
.NOTPARALLEL: test-unit test-unit-node test-unit-browser
.NOTPARALLEL: test-vdl test-vdl-node test-vdl-browser
