#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
CORE_DEPTH = ../..
DEPTH      = ../..
MODULE = nss

# These sources have access to libssl internals
CSRCS = \
      libssl_internals.c \
      $(NULL)

CPPSRCS = \
      bloomfilter_unittest.cc \
      ssl_0rtt_unittest.cc \
      ssl_agent_unittest.cc \
      ssl_auth_unittest.cc \
      ssl_cert_ext_unittest.cc \
      ssl_ciphersuite_unittest.cc \
      ssl_custext_unittest.cc \
      ssl_damage_unittest.cc \
      ssl_dhe_unittest.cc \
      ssl_drop_unittest.cc \
      ssl_ecdh_unittest.cc \
      ssl_ems_unittest.cc \
      ssl_exporter_unittest.cc \
      ssl_extension_unittest.cc \
      ssl_fragment_unittest.cc \
      ssl_fuzz_unittest.cc \
      ssl_gather_unittest.cc \
      ssl_gtest.cc \
      ssl_hrr_unittest.cc \
      ssl_keylog_unittest.cc \
      ssl_keyupdate_unittest.cc \
      ssl_loopback_unittest.cc \
      ssl_misc_unittest.cc \
      ssl_record_unittest.cc \
      ssl_recordsize_unittest.cc \
      ssl_resumption_unittest.cc \
      ssl_renegotiation_unittest.cc \
      ssl_skip_unittest.cc \
      ssl_staticrsa_unittest.cc \
      ssl_tls13compat_unittest.cc \
      ssl_v2_client_hello_unittest.cc \
      ssl_version_unittest.cc \
      ssl_versionpolicy_unittest.cc \
      selfencrypt_unittest.cc \
      test_io.cc \
      tls_agent.cc \
      tls_connect.cc \
      tls_hkdf_unittest.cc \
      tls_filter.cc \
      tls_protect.cc \
      tls_esni_unittest.cc \
      $(NULL)

INCLUDES += -I$(CORE_DEPTH)/gtests/google_test/gtest/include \
            -I$(CORE_DEPTH)/gtests/common \
            -I$(CORE_DEPTH)/cpputil

REQUIRES = nspr nss libdbm gtest cpputil

PROGRAM = ssl_gtest
EXTRA_LIBS += \
      $(DIST)/lib/$(LIB_PREFIX)gtest.$(LIB_SUFFIX) \
      $(DIST)/lib/$(LIB_PREFIX)cpputil.$(LIB_SUFFIX) \
      $(NULL)

USE_STATIC_LIBS = 1
