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

# All JS files except build.js and third party
JS_FILES = $(shell find browser -name "*.js" -a -not -name "build.js" -a -not -path "*third-party*")
# All HTML/CSS files except index.html and third party
HTML_FILES = $(shell find browser -name "*.css" -a -not -path "*third-party*" -o  -name "*.html" -a -not -name "index.html" -a -not -path "*third-party*")

all: build

# Builds everything
build: node_modules go/bin/p2b browser/third-party browser/build.js browser/index.html

# Compile p2b cli binary
go/bin/p2b: go/src/v.io/x/p2b/main.go go/src/v.io/x/p2b/vdl/p2b.vdl
	jiri go install v.io/x/p2b/...

# Install what we need from NPM, tools such as jspm, serve, etc...
node_modules: package.json
	:;npm prune
	:;npm install
	touch node_modules

# Link a local copy of vanadium.js.
# TODO(nlacasse): Remove this and put vanadium.js in package.json once we can get
# it from npm
browser/third-party/npm/vanadium@0.0.1: node_modules
	cd $(JIRI_ROOT)/release/javascript/core && \
	:;jspm link -y npm:vanadium@0.0.1
	cd browser && \
	:;jspm install -y -l npm:vanadium@0.0.1

# Install JSPM and Bower packages as listed in browser/package.json from JSPM and browser/bower.json from bower
browser/third-party: browser/third-party/npm/vanadium@0.0.1 browser/package.json browser/bower.json node_modules
	cd browser && \
	:;jspm install -y && \
	:;bower prune && \
	:;bower install
	touch browser/third-party

browser/services/v.io/x/p2b/vdl/index.js:
	jiri run vdl generate --lang=javascript --js-out-dir=browser/services v.io/x/p2b/vdl

# Bundle whole app and third-party JavaScript into a single build.js
browser/build.js: $(JS_FILES) browser/services/v.io/x/p2b/vdl/index.js browser/third-party node_modules
	cd browser; \
	:;jspm setmode local; \
	:;jspm bundle app build.js

# Bundle all app web components and third-party web components into a single index.html
browser/index.html: $(HTML_FILES) browser/build.js node_modules
	cd browser; \
	:;vulcanize -o index.html app.html

# Serve
start: build browser/index.html
	:;serve browser/. --port 8000

shell:
	jiri go install v.io/x/ref/cmd/principal v.io/x/ref/services/agent/agentd
	./shell.sh


# Continuously watch for changes to .js, .html or .css files.
# Rebundle the appropriate file (build.js and/or index.html) when local files change
watch:
	watch -n 1 make

# TODO(nlacasse): Write real tests.  For now just make sure that everything builds.
test: browser/index.html go/bin/p2b

# Clean all build artifacts
clean:
	rm -rf browser/build.js
	rm -rf browser/index.html
	rm -rf browser/third-party
	rm -rf go/{bin,pkg}
	rm -rf node_modules
	rm -rf credentials

.PHONY: start clean watch test
