include ../shared/mojo.mk

ifdef ANDROID
	BUILD_DIR := $(CURDIR)/gen/mojo/arm_android
	TEST_BUILD_DIR := $(CURDIR)/gen/mojo_test/arm_android
else
	BUILD_DIR := $(CURDIR)/gen/mojo/amd64_linux
	TEST_BUILD_DIR := $(CURDIR)/gen/mojo_test/amd64_linux
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 netstat -ntl | fgrep 31840 | wc -l),0)
	REUSE_FLAG := --reuse-servers
endif

MOJO_SHELL_FLAGS := $(MOJO_SHELL_FLAGS) \
	--config-alias DISCOVERY_DIR=$(CURDIR) \
	--config-alias BUILD_DIR=$(BUILD_DIR) \
	--config-alias TEST_BUILD_DIR=$(TEST_BUILD_DIR) \
	--origin $(MOJO_SERVICES) \
	$(REUSE_FLAG)

V23_GO_FILES := $(shell find $(JIRI_ROOT) -name "*.go")

all: build

# Installs dart dependencies.
.PHONY: packages
packages:
	pub upgrade

# Build mojo app.
.PHONY: build
build: packages gen-mojom $(BUILD_DIR)/discovery.mojo

MOJOM_FILE := mojom/v.io/discovery.mojom
MOJOM_FILE_GO := gen/go/src/mojom/v.io/discovery/discovery.mojom.go
MOJOM_FILE_JAVA := gen/mojom/v.io/discovery.mojom.srcjar
MOJOM_FILE_DART := lib/gen/dart-gen/mojom/lib/discovery/discovery.mojom.dart

.PHONY: gen-mojom
gen-mojom: $(MOJOM_FILE_GO) $(MOJOM_FILE_JAVA) $(MOJOM_FILE_DART)

COMMA := ,
$(MOJOM_FILE_GO) $(MOJOM_FILE_JAVA): $(MOJOM_FILE) | mojo-env-check
	$(call MOJOM_GEN,$<,.,gen,go$(COMMA)java)

$(MOJOM_FILE_DART): $(MOJOM_FILE) | mojo-env-check
	$(call MOJOM_GEN,$<,.,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 $@)

ifdef ANDROID
$(BUILD_DIR)/discovery.mojo: $(MOJOM_FILE_JAVA) gradle-build

.PHONY: gradle-build
gradle-build:
	cd java && MOJO_SDK=$(MOJO_SDK) OUT_DIR=$(BUILD_DIR) ./gradlew buildMojo
else
$(BUILD_DIR)/discovery.mojo: $(MOJOM_FILE_GO) $(V23_GO_FILES) $(MOJO_SHARED_LIB) | mojo-env-check
	$(call MOGO_BUILD,v.io/mojo/discovery,$@)
endif

# Tests
.PHONY: test
test: unittest apptest

.PHONY: unittest
unittest: $(MOJOM_FILE_GO) $(V23_GO_FILES) $(MOJO_SHARED_LIB) | mojo-env-check
	$(call MOGO_TEST,-v v.io/mojo/discovery/...)

.PHONY: apptest
apptest: build $(TEST_BUILD_DIR)/discovery_apptests.mojo mojoapptests | mojo-env-check
	$(call MOJO_APPTEST,"mojoapptests")

$(TEST_BUILD_DIR)/discovery_apptests.mojo: $(MOJOM_FILE_GO) $(V23_GO_FILES) $(MOJO_SHARED_LIB) | mojo-env-check
	$(call MOGO_BUILD,v.io/mojo/discovery/apptest/main,$@)

# Publish
.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.
publish: clean packages
	$(MAKE) test  # Test
	$(MAKE) build  # Build for 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)

local-publish: clean packages
	$(MAKE) build  # Build for Linux.
	ANDROID=1 $(MAKE) build  # Cross-compile for Android.
	mkdir -p $(PACKAGE_MOJO_BIN_DIR)
	cp -r gen/mojo/* $(PACKAGE_MOJO_BIN_DIR)

# Cleanup
clean:
	rm -rf gen
	rm -rf lib/gen/dart-pkg
	rm -rf lib/gen/mojom
	rm -rf $(PACKAGE_MOJO_BIN_DIR)
	cd java && ./gradlew clean

# Examples
run-advertiser: $(TEST_BUILD_DIR)/advertiser.mojo $(BUILD_DIR)/discovery.mojo
	$(call MOJO_RUN,"https://test.v.io/advertiser.mojo")

run-scanner: $(TEST_BUILD_DIR)/scanner.mojo $(BUILD_DIR)/discovery.mojo
	$(call MOJO_RUN,"https://test.v.io/scanner.mojo")

$(TEST_BUILD_DIR)/advertiser.mojo: $(MOJOM_FILE_GO) $(V23_GO_FILES) $(MOJO_SHARED_LIB) | mojo-env-check
	$(call MOGO_BUILD,examples/advertiser,$@)

$(TEST_BUILD_DIR)/scanner.mojo: $(MOJOM_FILE_GO) $(V23_GO_FILES) $(MOJO_SHARED_LIB) | mojo-env-check
	$(call MOGO_BUILD,examples/scanner,$@)
