# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

#####################################################################
#
# THIS IS A TEMPORARY SOLUTION
#
# Eventually, the software team is going to have a Meson-based flow
# for building OTBN software. When that exists, this code will go
# away.
#
#####################################################################

# A make fragment for assembling and linking the code snippets. This is
# included by ./Makefile, but can be included in other Makefiles too.
#
# The following variables must be set:
#
#    variable                      | description
#  --------------------------------+----------------------------------------
#    otbn-code-snippets-obj-dir    | Output directory for built objects
#    otbn-code-snippets-bin-dir    | Output directory for built binaries
#    otbn-code-snippets-util-dir   | Path to directory containing OTBN tooling
#
# The following variables may be set:
#
#    variable                      | description
#  --------------------------------+----------------------------------------
#    otbn-code-snippets-as         | Path to otbn-as (defaults to util dir)
#    otbn-code-snippets-ld         | Path to otbn-ld (defaults to util dir)
#
# The ugly "otbn-code-snippets-" prefix on variable names is so that this file
# can be included in other Makefiles without breaking anything.

ifndef otbn-code-snippets-obj-dir
$(error otbn-code-snippets-obj-dir not set.)
endif
ifndef otbn-code-snippets-bin-dir
$(error otbn-code-snippets-bin-dir not set.)
endif
ifndef otbn-code-snippets-util-dir
$(error otbn-code-snippets-util-dir not set.)
endif

# Default values for optional variables
otbn-code-snippets-as ?= $(otbn-code-snippets-util-dir)/otbn-as
otbn-code-snippets-ld ?= $(otbn-code-snippets-util-dir)/otbn-ld

otbn-ldflags = -gc-sections -gc-keep-exported

# Get the list of all assembly files in this directory. Strip away directory
# and extension to get basenames (used for objects and binaries).
otbn-code-snippets-path      := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
otbn-code-snippets-asm-paths := $(wildcard $(otbn-code-snippets-path)*.s)
otbn-code-snippets-asm-basenames := $(notdir $(otbn-code-snippets-asm-paths))
otbn-code-snippets-basenames     := $(otbn-code-snippets-asm-basenames:.s=)

$(sort $(otbn-code-snippets-obj-dir) $(otbn-code-snippets-bin-dir)):
	mkdir -p $@

# Calculate lists of object and ELF files
otbn-code-snippets-objects := \
  $(foreach b,$(otbn-code-snippets-basenames),\
            $(otbn-code-snippets-obj-dir)/$(b).o)
otbn-code-snippets-elfs := \
  $(foreach b,$(otbn-code-snippets-basenames),\
            $(otbn-code-snippets-bin-dir)/$(b).elf)

# Define rules for assembling the source code to make objects
$(otbn-code-snippets-objects): \
  $(otbn-code-snippets-obj-dir)/%.o: \
  $(otbn-code-snippets-path)%.s $(otbn-code-snippets-as) \
   | $(otbn-code-snippets-obj-dir)
	$(otbn-code-snippets-as) -o $@ $<

# Define rules for linking objects to make ELFs
$(otbn-code-snippets-elfs): \
  $(otbn-code-snippets-bin-dir)/%.elf: \
  $(otbn-code-snippets-obj-dir)/%.o $(otbn-code-snippets-ld) \
   | $(otbn-code-snippets-bin-dir)
	$(otbn-code-snippets-ld) -o $@ $(otbn-ldflags) $< $(otbn-libs)

#
# Define any file-specific flags or dependencies
#

# rsa_1024_dec_test depends on code defined in modexp.s
$(otbn-code-snippets-bin-dir)/rsa_1024_dec_test.elf: \
  $(otbn-code-snippets-obj-dir)/modexp.o
$(otbn-code-snippets-bin-dir)/rsa_1024_dec_test.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/modexp.o

# rsa_1024_enc_test depends on code defined in modexp.s
$(otbn-code-snippets-bin-dir)/rsa_1024_enc_test.elf: \
  $(otbn-code-snippets-obj-dir)/modexp.o
$(otbn-code-snippets-bin-dir)/rsa_1024_enc_test.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/modexp.o

# rsa_verify_test depends on code defined in rsa_verify.s
$(otbn-code-snippets-bin-dir)/rsa_verify_test.elf: \
  $(otbn-code-snippets-obj-dir)/rsa_verify.o
$(otbn-code-snippets-bin-dir)/rsa_verify_test.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/rsa_verify.o

# rsa_verify_test_exp3 depends on code defined in rsa_verify.s
$(otbn-code-snippets-bin-dir)/rsa_verify_test_exp3.elf: \
  $(otbn-code-snippets-obj-dir)/rsa_verify.o
$(otbn-code-snippets-bin-dir)/rsa_verify_test_exp3.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/rsa_verify.o

# rsa_verify_3072_test depends on code defined in rsa_verify_3072.s
$(otbn-code-snippets-bin-dir)/rsa_verify_3072_test.elf: \
  $(otbn-code-snippets-obj-dir)/rsa_verify_3072.o
$(otbn-code-snippets-bin-dir)/rsa_verify_3072_test.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/rsa_verify_3072.o

# p256 curve point test depends on p256isoncurve defined in p256.s
$(otbn-code-snippets-bin-dir)/p256_isoncurve_test.elf: \
  $(otbn-code-snippets-obj-dir)/p256.o
$(otbn-code-snippets-bin-dir)/p256_isoncurve_test.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/p256.o

# p256 scalar mult test depends on p256_scalar_mult defined in p256.s
$(otbn-code-snippets-bin-dir)/p256_scalar_mult_test.elf: \
  $(otbn-code-snippets-obj-dir)/p256.o
$(otbn-code-snippets-bin-dir)/p256_scalar_mult_test.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/p256.o

# p256 base mult test depends on p256_base_mult defined in p256.s
$(otbn-code-snippets-bin-dir)/p256_base_mult_test.elf: \
  $(otbn-code-snippets-obj-dir)/p256.o
$(otbn-code-snippets-bin-dir)/p256_base_mult_test.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/p256.o

# p256 ECDSA sign test depends on p256_sign defined in p256.s
$(otbn-code-snippets-bin-dir)/p256_ecdsa_sign_test.elf: \
  $(otbn-code-snippets-obj-dir)/p256.o
$(otbn-code-snippets-bin-dir)/p256_ecdsa_sign_test.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/p256.o

# p256 ECDSA verify test depends on p256_verify defined in p256.s
$(otbn-code-snippets-bin-dir)/p256_ecdsa_verify_test.elf: \
  $(otbn-code-snippets-obj-dir)/p256.o
$(otbn-code-snippets-bin-dir)/p256_ecdsa_verify_test.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/p256.o

# p256_ecdsa depends on p256_verify, p256_sign, defined in p256.s
$(otbn-code-snippets-bin-dir)/p256_ecdsa.elf: \
  $(otbn-code-snippets-obj-dir)/p256.o
$(otbn-code-snippets-bin-dir)/p256_ecdsa.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/p256.o

# p256 point addition test depends on proj_add defined in p256.s
$(otbn-code-snippets-bin-dir)/p256_proj_add_test.elf: \
  $(otbn-code-snippets-obj-dir)/p256.o
$(otbn-code-snippets-bin-dir)/p256_proj_add_test.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/p256.o

# rsa depends on code defined in modexp.s
$(otbn-code-snippets-bin-dir)/rsa.elf: \
  $(otbn-code-snippets-obj-dir)/modexp.o
$(otbn-code-snippets-bin-dir)/rsa.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/modexp.o

# p384_proj_add_test depends on p384_proj_add defined in p384.s
$(otbn-code-snippets-bin-dir)/p384_proj_add_test.elf: \
  $(otbn-code-snippets-obj-dir)/p384_base.o
$(otbn-code-snippets-bin-dir)/p384_proj_add_test.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/p384_base.o

# code in p384_sign.s depends on code defined in p384_base.s
$(otbn-code-snippets-bin-dir)/p384_sign.elf: \
  $(otbn-code-snippets-obj-dir)/p384_base.o
$(otbn-code-snippets-bin-dir)/p384_sign.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/p384_base.o

# p384_scalar_mult_test depends on scalar_mult_p384 defined in p384_sign.s
$(otbn-code-snippets-bin-dir)/p384_scalar_mult_test.elf: \
  $(otbn-code-snippets-obj-dir)/p384_sign.o \
  $(otbn-code-snippets-obj-dir)/p384_base.o
$(otbn-code-snippets-bin-dir)/p384_scalar_mult_test.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/p384_sign.o \
               $(otbn-code-snippets-obj-dir)/p384_base.o

# p384_base_mult_test depends on p384_base_mult defined in p384_sign.s
$(otbn-code-snippets-bin-dir)/p384_base_mult_test.elf: \
  $(otbn-code-snippets-obj-dir)/p384_sign.o \
  $(otbn-code-snippets-obj-dir)/p384_base.o
$(otbn-code-snippets-bin-dir)/p384_base_mult_test.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/p384_sign.o \
               $(otbn-code-snippets-obj-dir)/p384_base.o

# p384_ecdsa_sign_test depends on p384_sign defined in p384_sign.s
$(otbn-code-snippets-bin-dir)/p384_ecdsa_sign_test.elf: \
  $(otbn-code-snippets-obj-dir)/p384_sign.o \
  $(otbn-code-snippets-obj-dir)/p384_base.o
$(otbn-code-snippets-bin-dir)/p384_ecdsa_sign_test.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/p384_sign.o \
               $(otbn-code-snippets-obj-dir)/p384_base.o

# code in p384_verify.s depends on code defined in p384_base.s
$(otbn-code-snippets-bin-dir)/p384_verify.elf: \
  $(otbn-code-snippets-obj-dir)/p384_base.o
$(otbn-code-snippets-bin-dir)/p384_verify.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/p384_base.o

# p384_ecdsa_verifiy_test depends on p384_verify defined in p384_verify.s
$(otbn-code-snippets-bin-dir)/p384_ecdsa_verify_test.elf: \
  $(otbn-code-snippets-obj-dir)/p384_verify.o \
  $(otbn-code-snippets-obj-dir)/p384_base.o
$(otbn-code-snippets-bin-dir)/p384_ecdsa_verify_test.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/p384_verify.o \
               $(otbn-code-snippets-obj-dir)/p384_base.o

# p384_isoncurve_test depends on p384_isoncurve defined in p384_verify.s
$(otbn-code-snippets-bin-dir)/p384_isoncurve_test.elf: \
  $(otbn-code-snippets-obj-dir)/p384_verify.o \
  $(otbn-code-snippets-obj-dir)/p384_base.o
$(otbn-code-snippets-bin-dir)/p384_isoncurve_test.elf: \
  otbn-libs += $(otbn-code-snippets-obj-dir)/p384_verify.o \
               $(otbn-code-snippets-obj-dir)/p384_base.o
