https://github.com/project-everest/hacl-star
Raw File
Tip revision: 1507044f15fcebe7e2df6afdec45e0c30c6ab539 authored by Jay Bosamiya on 21 October 2019, 16:23:43 UTC
Make sure to use heaplet locations
Tip revision: 1507044
Makefile.include
# This Makefile can be included by client projects; it exports the set of
# include directories relative to HACL_HOME and exports the set of needed
# kremlin flags to successfully extract Vale. This Makefile honors
# EVERCRYPT_CONFIG.

VALE_BUNDLES=\
  -bundle 'Vale.Stdcalls.*,Vale.Interop,Vale.Interop.*,Vale.Wrapper.X64.*[rename=Vale]' \
  -bundle 'Vale.Inline.X64.*[rename=Vale_Inline]' \
  -bundle Vale.*[rename=Unused2]

# Other configs are possible, e.g. everest or hacl-vale, by exporting
# EVERCRYPT_CONFIG manually.
ifneq (,$(EVEREST_WINDOWS))
  # hacl, vale, bcrypt
  EVERCRYPT_CONFIG = noopenssl
else ifneq (,$(KAIZALA))
  # hacl, openssl
  EVERCRYPT_CONFIG = kaizala
else
  # everything
  EVERCRYPT_CONFIG ?= default
endif

# TODO: no more separate variable definitions?
LIB_DIR		= $(HACL_HOME)/lib
SPECS_DIR 	= $(HACL_HOME)/specs $(HACL_HOME)/specs/lemmas $(HACL_HOME)/specs/tests
CODE_DIRS	= $(addprefix $(HACL_HOME)/code/,hash hmac sha3 poly1305 chacha20 chacha20poly1305 curve25519 tests ed25519 salsa20 nacl-box meta)
EVERCRYPT_DIRS  = $(addprefix $(HACL_HOME)/providers/,evercrypt evercrypt/fst test test/vectors evercrypt/config/$(EVERCRYPT_CONFIG))
MERKLE_DIRS	= $(HACL_HOME)/secure_api/merkle_tree
# Vale dirs also include directories that only contain .vaf files
# (for a in $(find vale -iname '*.fst' -or -iname '*.fsti' -or -iname '*.vaf'); do dirname $a; done) | sort | uniq
VALE_DIRS	= \
  $(HACL_HOME)/vale/code/arch \
  $(HACL_HOME)/vale/code/arch/x64 \
  $(HACL_HOME)/vale/code/arch/x64/interop \
  $(HACL_HOME)/vale/code/crypto/aes \
  $(HACL_HOME)/vale/code/crypto/aes/x64 \
  $(HACL_HOME)/vale/code/crypto/bignum \
  $(HACL_HOME)/vale/code/crypto/ecc/curve25519 \
  $(HACL_HOME)/vale/code/crypto/poly1305 \
  $(HACL_HOME)/vale/code/crypto/poly1305/x64 \
  $(HACL_HOME)/vale/code/crypto/sha \
  $(HACL_HOME)/vale/code/lib/collections \
  $(HACL_HOME)/vale/code/lib/math \
  $(HACL_HOME)/vale/code/lib/util \
  $(HACL_HOME)/vale/code/lib/util/x64 \
  $(HACL_HOME)/vale/code/lib/util/x64/stdcalls \
  $(HACL_HOME)/vale/code/lib/transformers \
  $(HACL_HOME)/vale/code/test \
  $(HACL_HOME)/vale/code/thirdPartyPorts/Intel/aes/x64 \
  $(HACL_HOME)/vale/code/thirdPartyPorts/OpenSSL/aes \
  $(HACL_HOME)/vale/code/thirdPartyPorts/OpenSSL/poly1305/x64 \
  $(HACL_HOME)/vale/code/thirdPartyPorts/OpenSSL/sha \
  $(HACL_HOME)/vale/code/thirdPartyPorts/rfc7748/curve25519/x64 \
  $(HACL_HOME)/vale/code/thirdPartyPorts/SymCrypt/bignum \
  $(HACL_HOME)/vale/specs/crypto \
  $(HACL_HOME)/vale/specs/defs \
  $(HACL_HOME)/vale/specs/hardware \
  $(HACL_HOME)/vale/specs/interop \
  $(HACL_HOME)/vale/specs/math

ALL_HACL_SOURCE_DIRS = \
  $(LIB_DIR) $(SPECS_DIR) $(CODE_DIRS) $(VALE_DIRS) \
  $(EVERCRYPT_DIRS) $(MERKLE_DIRS) \
  $(KREMLIN_HOME)/runtime

ALL_HACL_DIRS	= $(ALL_HACL_SOURCE_DIRS) $(HACL_HOME)/obj
back to top