PWD := $(shell pwd)

ifndef NOFIND
	DART_FILES := $(shell find example lib test -name "*.dart" -not -path "lib/gen/*")
	V23_GO_FILES := $(shell find $(JIRI_ROOT) -name "*.go")
endif

include ../shared/mojo.mk

# Flags for Syncbase service running as Mojo service.
V23_MOJO_FLAGS := --v=0

MOJOM_FILE := mojom/syncbase.mojom

ifdef ANDROID
	# Parse the adb devices output to obtain the correct device id.
	# sed takes out the ANDROID_PLUS_ONE'th row of the output
	# awk takes just the first bit of the line (before whitespace).
	ANDROID_PLUS_ONE := $(shell echo $(ANDROID) \+ 1 | bc)
	DEVICE_ID := $(shell adb devices | sed -n $(ANDROID_PLUS_ONE)p | awk '{ print $$1; }')
	TARGET_DEVICE_FLAG +=  --target-device $(DEVICE_ID)
	MOJO_ANDROID_FLAGS += $(TARGET_DEVICE_FLAG)

	SYNCBASE_BUILD_DIR := $(PWD)/gen/mojo/android

	# NOTE(nlacasse): Trying to write to a directory that the app does not have
	# permission to causes a crash with no stack trace.  Because of this, we
	# set logtostderr=true to prevent vlog from writing logs to directories we
	# don't have permissions on.  (Alternatively, we could set --log_dir to a
	# directory inside APP_HOME_DIR.)  We set syncbase root-dir inside
	# APP_HOME_DIR for the same reason.
	APP_HOME_DIR = /data/data/org.chromium.mojo.shell/app_home
	SYNCBASE_ROOT_DIR=$(APP_HOME_DIR)/mojo_syncbase_data
	ANDROID_CREDS_DIR := /sdcard/v23creds
	V23_MOJO_FLAGS += --logtostderr=true --root-dir=$(SYNCBASE_ROOT_DIR) --v23.credentials=$(ANDROID_CREDS_DIR)

	# For some reason we need to set the origin flag when running on Android,
	# but setting it on Linux causes errors.
	ORIGIN_FLAG := --origin $(MOJO_SERVICES)
else
	SYNCBASE_BUILD_DIR := $(PWD)/gen/mojo/linux_amd64
	SYNCBASE_ROOT_DIR := $(PWD)/tmp/syncbase_data$(SYNC_SUFFIX)
	V23_MOJO_FLAGS += --root-dir=$(SYNCBASE_ROOT_DIR) --v23.credentials=$(PWD)/creds
endif

# If this is not the first mojo shell, then you must reuse the dev servers
# to avoid a "port in use" error.
ifneq ($(shell fuser 31500/tcp),)
	REUSE_FLAG := --reuse-servers
endif

# Use BENCHMARK = the suffix of the syncbase instance (e.g., pingpong/s1)
ifdef BENCHMARK
	V23_MOJO_FLAGS += --name=/ns.dev.v.io:8101/tmp/benchmark/$(BENCHMARK)
endif

MOJO_SHELL_FLAGS := $(MOJO_SHELL_FLAGS) \
	--config-alias SYNCBASE_DIR=$(PWD) \
	--config-alias SYNCBASE_BUILD_DIR=$(SYNCBASE_BUILD_DIR) \
	"--args-for=https://mojo.v.io/syncbase_server.mojo $(V23_MOJO_FLAGS)" \
	"--args-for=mojo:dart_content_handler --enable-strict-mode" \
	$(REUSE_FLAG) \
	$(ORIGIN_FLAG)

.DELETE_ON_ERROR:

all: test

.PHONY: build
build: $(SYNCBASE_BUILD_DIR)/syncbase_server.mojo gen-mojom

# Builds mounttabled, principal, and syncbased.
bin: $(V23_GO_FILES) | mojo-env-check
	jiri go build -a -o $@/mounttabled v.io/x/ref/services/mounttable/mounttabled
	jiri go build -a -o $@/principal v.io/x/ref/cmd/principal
	jiri go build -a -o $@/syncbased v.io/x/ref/services/syncbase/syncbased
	touch $@

# Mints credentials.
creds: | bin
	./bin/principal seekblessings --v23.credentials creds
	touch $@

# TODO(nlacasse): These target-specific variables will affect this task and all
# pre-requisite tasks.  Luckily none of the prerequisites require that these
# variables have their original value, so everything works.  Once we have a
# prereq that requires the original value, we will need to re-work these
# variables.
$(SYNCBASE_BUILD_DIR)/syncbase_server.mojo: $(V23_GO_FILES) gen/go/src/mojom/syncbase/syncbase.mojom.go | mojo-env-check
	$(call MOGO_BUILD,v.io/x/ref/services/syncbase/syncbased,$@)

# Formats dart files to follow dart style conventions.
.PHONY: dartfmt
dartfmt: packages
	dartfmt --overwrite $(DART_FILES)

# Lints src and test files with dartanalyzer. This takes a few seconds.
.PHONY: dartanalyzer
dartanalyzer: packages gen-mojom
# TODO(nlacasse): Fix dart mojom binding generator so it does not produce files
# that violate dartanalyzer. For now, we use "grep -v" to hide all hints and
# warnings from *.mojom.dart files.
	dartanalyzer benchmark/**/*.dart example/*.dart lib/*.dart test/**/*.dart | grep -v "\.mojom\.dart, line"

# Installs dart dependencies.
packages: pubspec.yaml
	pub upgrade

.PHONY: gen-mojom
gen-mojom: lib/gen/dart-gen/mojom/lib/mojo/syncbase.mojom.dart gen/go/src/mojom/syncbase/syncbase.mojom.go

# TODO(aghassemi): The mojom compiler is in flux, and updates to it are
# typically not backwards-compatible, so for now we mark this rule as .PHONY in
# order to force recompilation of mojom files with every build. Once the mojom
# compiler stabilizes, we can remove the .PHONY label and avoid recompiling our
# mojom files unnecessarily.
#.PHONY: gen/go/src/mojom/syncbase/syncbase.mojom.go
gen/go/src/mojom/syncbase/syncbase.mojom.go: | mojo-env-check
	$(call MOJOM_GEN,$(MOJOM_FILE),.,gen,go)
	gofmt -w $@

#.PHONY: lib/gen/dart-gen/mojom/lib/mojo/syncbase.mojom.dart
lib/gen/dart-gen/mojom/lib/mojo/syncbase.mojom.dart: | mojo-env-check
	$(call MOJOM_GEN,$(MOJOM_FILE),.,lib/gen,dart)
# TODO(nlacasse): mojom_bindings_generator creates bad symlinks on dart files,
# so we delete them. Stop doing this once the generator is fixed. See
# https://github.com/domokit/mojo/issues/386
	rm -f lib/gen/mojom/$(notdir $@)

# TODO(sadovsky): Wipe any existing Syncbase data, as done in test-integration.
.PHONY: run-syncbase-example
run-syncbase-example: $(SYNCBASE_BUILD_DIR)/syncbase_server.mojo packages lib/gen/dart-gen/mojom/lib/mojo/syncbase.mojom.dart | mojo-env-check creds
ifdef ANDROID
	adb -s $(DEVICE_ID) push -p $(PWD)/creds $(ANDROID_CREDS_DIR)
endif
	$(call MOJO_RUN,"https://mojo.v.io/syncbase_example.dart")

# The pingpong benchmark is meant to run on N devices.
# Pass testID peerID numPeers pattern numTimes as $(ARGS) to this call.
#
# For example, for a 2 Android ping pong benchmark:
# ANDROID=1 BENCHMARK=pingpong/s0 make ARGS="MyTest 0 2 PingPong 100" benchmark-pingpong
# ANDROID=2 BENCHMARK=pingpong/s1 make ARGS="MyTest 1 2 PingPong 100" benchmark-pingpong
#
# You can also run this on Linux, but be sure to use different HOME dirs.
# Note: The first one shouldn't set a HOME dir.
# BENCHMARK=pingpong/s0 SYNC_SUFFIX=s0 make ARGS="MyTest 0 3 Cycle 200" benchmark-pingpong
# HOME=/tmp/test/s1 BENCHMARK=pingpong/s1 SYNC_SUFFIX=s1 make ARGS="MyTest 1 3 Cycle 200" benchmark-pingpong
# HOME=/tmp/test/s2 BENCHMARK=pingpong/s2 SYNC_SUFFIX=s2 make ARGS="MyTest 2 3 Cycle 200" benchmark-pingpong
#
# TODO(alexfandrianto): I think it would be easier if we had a script call the benchmark.
# Note: The Syncbase Creator (peer 0) should be created first; it may even take a minute to be ready.
.PHONY: benchmark-pingpong
benchmark-pingpong: packages $(SYNCBASE_BUILD_DIR)/syncbase_server.mojo gen-mojom test-preparation | mojo-env-check creds
ifdef ANDROID
	adb -s $(DEVICE_ID) push -p $(PWD)/creds $(ANDROID_CREDS_DIR)
endif
	#$(MOJO_DEVTOOLS)/mojo_run --config-file $(PWD)/mojoconfig --shell-path $(MOJO_SHELL) \
	#  $(MOJO_SHELL_FLAGS) $(MOJO_ANDROID_FLAGS) "https://benchmark.mojo.v.io/pingpong/pingpong.dart $(ARGS)"
	$(call MOJO_RUN,"https://benchmark.mojo.v.io/pingpong/pingpong.dart $(ARGS)")

.PHONY: test-preparation
test-preparation:
ifdef MOUNTTABLE_ADDR
	$(error please unset MOUNTTABLE_ADDR before running the tests)
endif
# Make sure Syncbase starts from a clean slate.
ifdef ANDROID
	adb -s $(DEVICE_ID) shell run-as org.chromium.mojo.shell rm -rf $(SYNCBASE_ROOT_DIR)
else
	rm -rf $(SYNCBASE_ROOT_DIR)
endif

# Note: If "make test" fails with "Connection error to the shell" messages, it
# could be that the Dart VM has crashed (e.g. due to a missing import). In this
# case, "make dartanalyzer" often reveals the problem.
.PHONY: test
test: test-unit test-integration

.PHONY: test-unit
test-unit: packages
	pub run test test/unit/*.dart

.PHONY: test-integration
test-integration: packages $(SYNCBASE_BUILD_DIR)/syncbase_server.mojo gen-mojom test-preparation | mojo-env-check
# Delete the 'creds' dir to make sure we are running with in-memory credentials.
# Otherwise tests time out.
# TODO(nlacasse): Figure out why tests time out with dev.v.io credentials. Maybe
# caveat validation?
	rm -rf $(PWD)/creds
# NOTE(nlacasse): The "tests" argument must come before the "MOJO_SHELL_FLAGS"
# flags, otherwise mojo_test's argument parser gets confused and exits with an
# error.
	$(MOJO_DEVTOOLS)/mojo_test tests --config-file $(PWD)/mojoconfig --shell-path $(MOJO_SHELL) $(MOJO_ANDROID_FLAGS) $(MOJO_SHELL_FLAGS)

.PHONY: publish
# NOTE(aghassemi): This must be inside lib in order to be accessible.
PACKAGE_MOJO_BIN_DIR := lib/mojo_services
ifdef DRYRUN
	PUBLISH_FLAGS := --dry-run
endif
# NOTE(aghassemi): Publishing will fail unless you increment the version number
# in pubspec.yaml. See https://www.dartlang.org/tools/pub/versioning.html for
# guidelines.
# TODO(nlacasse): Generate a MOJO_VERSION file and publish that as part of the
# package.
publish: veryclean packages
	$(MAKE) test  # Build and test on Linux.
	ANDROID=1 $(MAKE) build  # Cross-compile for Android.
	mkdir -p $(PACKAGE_MOJO_BIN_DIR)
	cp -r gen/mojo/* $(PACKAGE_MOJO_BIN_DIR)
# Note: The '-' at the beginning of the following command tells make to ignore
# failures and always continue to the next command.
	-pub publish $(PUBLISH_FLAGS)
	rm -rf $(PACKAGE_MOJO_BIN_DIR)

# Prepares a local version of the syncbase package that can be accessed via a
# pubspec path. For example, if this is release/projects/croupier, its
# pubspec.yaml will include a syncbase path dependency pointing at
# ../../mojo/syncbase.
# This is helpful when testing local changes to syncbase or a version that has
# not been published on pub yet.
.PHONY: local-publish
local-publish: veryclean packages
	$(MAKE) build  # Build on Linux.
	ANDROID=1 $(MAKE) build  # Cross-compile for Android.
	mkdir -p $(PACKAGE_MOJO_BIN_DIR)
	cp -r gen/mojo/* $(PACKAGE_MOJO_BIN_DIR)

# TODO(aghassemi): Why does mojo generate dart-pkg and mojom dirs?
.PHONY: clean
clean:
	rm -rf bin creds gen tmp
	rm -rf lib/gen/dart-pkg
	rm -rf lib/gen/mojom
	rm -rf $(PACKAGE_MOJO_BIN_DIR)

.PHONY: veryclean
veryclean: clean
	rm -rf {.packages,pubspec.lock,packages}
	jiri goext distclean
