# Copyright (c) 2020-2023 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

# List of available components
COMPONENTS =

COMPONENTS += libs
COMPONENTS += agent
COMPONENTS += dragonball
COMPONENTS += runtime
COMPONENTS += runtime-rs

# List of available tools
TOOLS =

TOOLS += agent-ctl
TOOLS += kata-ctl
TOOLS += log-parser
TOOLS += trace-forwarder

STANDARD_TARGETS = build check clean install static-checks-build test

# Variables for the build-and-publish-kata-debug target
KATA_DEBUG_REGISTRY ?= ""
KATA_DEBUG_TAG ?= ""

default: all

include utils.mk
include ./tools/packaging/kata-deploy/local-build/Makefile

# Create the rules
$(eval $(call create_all_rules,$(COMPONENTS),$(TOOLS),$(STANDARD_TARGETS)))

# Non-standard rules

generate-protocols:
	make -C src/agent generate-protocols

# Some static checks rely on generated source files of components.
static-checks: static-checks-build
	bash tests/static-checks.sh

docs-url-alive-check:
	bash ci/docs-url-alive-check.sh

build-and-publish-kata-debug:
	bash tools/packaging/kata-debug/kata-debug-build-and-upload-payload.sh ${KATA_DEBUG_REGISTRY} ${KATA_DEBUG_TAG}

docs-build:
	docker build -t kata-docs:latest -f ./docs/Dockerfile ./docs

docs-serve: docs-build
	docker run --rm -p 8000:8000 -v ${PWD}:/docs:ro kata-docs:latest serve --config-file /docs/mkdocs.yaml -a 0.0.0.0:8000

.PHONY: \
	all \
	kata-tarball \
	install-tarball \
	default \
	static-checks \
	docs-url-alive-check \
	docs-build \
	docs-serve
