# Copyright 2017 The Fuchsia Authors
#
# Use of this source code is governed by a MIT-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/MIT

SYSCALLS_SRC := system/public/zircon/syscalls.abigen

GEN_DIR := $(BUILDDIR)/gen

STAMPY := $(GEN_DIR)/abigen-stamp
# This gets STAMPY built (and generation complete) early in the build.
TARGET_MODDEPS += $(STAMPY)

AG_ZIRCON := $(GENERATED_INCLUDES)/zircon

AG_KERNEL_HEADER := $(AG_ZIRCON)/syscall-definitions.h
AG_KERNEL_TRACE := $(AG_ZIRCON)/syscall-ktrace-info.inc
AG_KERNEL_CATEGORY := $(AG_ZIRCON)/syscall-category.inc
AG_KERNEL_WRAPPERS := $(AG_ZIRCON)/syscall-kernel-wrappers.inc
AG_KERNEL_BRANCHES := $(AG_ZIRCON)/syscall-kernel-branches.S

AG_ULIB_VDSO_HEADER := $(AG_ZIRCON)/syscall-vdso-definitions.h
AG_ULIB_VDSO_WRAPPERS := $(AG_ZIRCON)/syscall-vdso-wrappers.inc
AG_ULIB_SYSCALL_NUMBER := $(AG_ZIRCON)/zx-syscall-numbers.h
AG_ULIB_ARM := $(AG_ZIRCON)/syscalls-arm64.S
AG_ULIB_X86 := $(AG_ZIRCON)/syscalls-x86-64.S

AG_SYSCALLS := $(AG_ZIRCON)/syscalls
AG_PUBLIC_HEADER := $(AG_SYSCALLS)/definitions.h
AG_PUBLIC_RUST := $(AG_SYSCALLS)/definitions.rs
AG_PUBLIC_JSON := $(AG_SYSCALLS)/definitions.json

AG_SYSROOT_ZIRCON := $(BUILDSYSROOT)/include/zircon
AG_SYSROOT_HEADER := $(AG_SYSROOT_ZIRCON)/syscalls/definitions.h
AG_SYSROOT_RUST := $(AG_SYSROOT_ZIRCON)/syscalls/definitions.rs

# STAMPY ultimately generates most of the files and paths here.
$(STAMPY): $(ABIGEN) $(SYSCALLS_SRC)
	$(call BUILDECHO,generating syscall files from $(SYSCALLS_SRC))
	$(NOECHO) mkdir -p $(AG_SYSCALLS)
	$(NOECHO) $(ABIGEN) \
		-trace $(AG_KERNEL_TRACE) \
		-category $(AG_KERNEL_CATEGORY) \
		-kernel-header $(AG_KERNEL_HEADER) \
		-kernel-wrappers $(AG_KERNEL_WRAPPERS) \
		-kernel-branch $(AG_KERNEL_BRANCHES) \
		-arm-asm $(AG_ULIB_ARM) \
		-x86-asm $(AG_ULIB_X86) \
		-vdso-header $(AG_ULIB_VDSO_HEADER) \
		-vdso-wrappers $(AG_ULIB_VDSO_WRAPPERS) \
		-numbers $(AG_ULIB_SYSCALL_NUMBER) \
		-user-header $(AG_PUBLIC_HEADER) \
		-rust $(AG_PUBLIC_RUST) \
		-json $(AG_PUBLIC_JSON) \
		$(SYSCALLS_SRC)
	$(NOECHO) touch $(STAMPY)

run-abigen $(AG_PUBLIC_HEADER) $(AG_PUBLIC_RUST) $(AG_PUBLIC_JSON) $(AG_SYSROOT_HEADER) $(AG_SYSROOT_RUST): $(STAMPY)

GENERATED += $(AG_KERNEL_HEADER) $(AG_KERNEL_TRACE) \
	$(AG_KERNEL_CATEGORY) $(AG_ULIB_X86) $(AG_ULIB_ARM) \
	$(AG_KERNEL_WRAPPERS) $(AG_KERNEL_BRANCHES) \
	$(AG_ULIB_SYSCALL_NUMBERS) \
	$(AG_ULIB_VDSO_HEADER) $(AG_ULIB_VDSO_WRAPPERS) \
	$(AG_PUBLIC_HEADER) $(AG_SYSROOT_HEADER) \
	$(AG_PUBLIC_RUST) $(AG_SYSROOT_RUST) \
	$(STAMPY)

$(call copy-dst-src,$(AG_SYSROOT_HEADER),$(AG_PUBLIC_HEADER))
$(call copy-dst-src,$(AG_SYSROOT_RUST),$(AG_PUBLIC_RUST))

# needed to create c.pkg (see: module-userlib.mk)
ABIGEN_BUILDDIR := $(GENERATED_INCLUDES)
ABIGEN_PUBLIC_HEADERS := $(AG_PUBLIC_HEADER) $(AG_PUBLIC_RUST)

SYSROOT_DEPS += $(AG_SYSROOT_HEADER) $(AG_SYSROOT_RUST)
