# Copyright 2017 Google Inc. All Rights Reserved.
{
  'variables': {
    'asm_target_arch%': '<(target_arch)',
    'boringssl_root%': '<(DEPTH)/third_party/boringssl/src',
  },

  'target_defaults': {
    # Turn off bad-function-cast warning, as BoringSSL violates this sometimes.
    'defines': [
      'PURIFY',
      'TERMIO',
      '_REENTRANT',
      # We do not use TLS over UDP on Chromium so far.
      'OPENSSL_NO_DTLS1',
    ],
    'cflags': [
      '-g',
      '-fPIC',
      '-fvisibility=hidden',
      '-Wno-bad-function-cast',
    ],
    'cflags!': [
      '-Wbad-function-cast',
    ],
    'cflags_c': [
      '-std=gnu99',
    ],
    'cflags_c!': [
      '-Wbad-function-cast',
    ],

    'ldflags': [
      '-fPIC',
    ],

    'type': '<(library)',

    'conditions': [
      ['OS=="starboard"', {
        'variables': {
          'openssl_config_path': '<(boringssl_root)/config/starboard',
        },
        'dependencies': [
          '<(DEPTH)/starboard/client_porting/eztime/eztime.gyp:eztime',
          '<(DEPTH)/starboard/starboard_headers_only.gyp:starboard_headers_only',
        ],
        'sources': [
          '<(boringssl_root)/crypto/rand_extra/starboard.c',
        ],
        'sources!': [
          '<(boringssl_root)/crypto/rand_extra/deterministic.c',
          '<(boringssl_root)/crypto/rand_extra/fuchsia.c',
          '<(boringssl_root)/crypto/rand_extra/windows.c',
        ],
      }],
      ['OS=="lb_shell"', {
        'variables': {
          'openssl_config_path': 'config/lbshell',
        },
      }],
      ['OS=="lb_shell" or OS=="starboard"', {
        'defines': [
          'GETPID_IS_MEANINGLESS',
          'NO_SYS_PARAM_H',
          'NO_SYS_UN_H',
          'NO_SYSLOG',
          'NO_WINDOWS_BRAINDEATH',
          'OPENSSL_NO_BF',
          'OPENSSL_NO_BUF_FREELISTS',
          'OPENSSL_NO_CAMELLIA',
          'OPENSSL_NO_CAPIENG',
          'OPENSSL_NO_CAST',
          'OPENSSL_NO_CMS',
          'OPENSSL_NO_COMP',
          'OPENSSL_NO_DGRAM',  # Added by cobalt to remove unused UDP code.
          'OPENSSL_NO_DYNAMIC_ENGINE',
          'OPENSSL_NO_EC2M',
          'OPENSSL_NO_EC_NISTP_64_GCC_128',
          'OPENSSL_NO_ENGINE',
          'OPENSSL_NO_GMP',
          'OPENSSL_NO_GOST',
          'OPENSSL_NO_HEARTBEATS', # Workaround for CVE-2014-0160.
          'OPENSSL_NO_HW',
          'OPENSSL_NO_IDEA',
          'OPENSSL_NO_JPAKE',
          'OPENSSL_NO_KRB5',
          'OPENSSL_NO_MD2',
          'OPENSSL_NO_MD4',
          'OPENSSL_NO_MDC2',
          'OPENSSL_NO_OCB',
          'OPENSSL_NO_OCSP',
          'OPENSSL_NO_RC2',
          'OPENSSL_NO_RC4',
          'OPENSSL_NO_RC5',
          'OPENSSL_NO_RFC3779',
          'OPENSSL_NO_RIPEMD',
          'OPENSSL_NO_RMD160',
          'OPENSSL_NO_SCTP',
          'OPENSSL_NO_SEED',
          'OPENSSL_NO_SRP',
          'OPENSSL_NO_SSL2',
          'OPENSSL_NO_SSL3', # Address CVE-2014-3566
          'OPENSSL_NO_STATIC_ENGINE',
          'OPENSSL_NO_STORE',
          'OPENSSL_NO_SOCK',  # Added by Cobalt to remove unused socket code.
          'OPENSSL_NO_THREADS',  # Added by Cobalt to reduce overall threads count.
          'OPENSSL_NO_UI',  # Added by Cobalt to remove unused "UI" code.
          'OPENSSL_NO_UNIT_TEST',
          'OPENSSL_NO_WHIRLPOOL',
          'OPENSSL_USE_IPV6=0',
          'B_ENDIAN',
          'OPENSSL_NO_POSIX_IO',
        ],
        'sources!': [
          '<(boringssl_root)/crypto/bf/bf_cfb64.c',
          '<(boringssl_root)/crypto/bf/bf_ecb.c',
          '<(boringssl_root)/crypto/bf/bf_enc.c',
          '<(boringssl_root)/crypto/bf/bf_ofb64.c',
          '<(boringssl_root)/crypto/bf/bf_skey.c',
          '<(boringssl_root)/crypto/engine/eng_all.c',
          '<(boringssl_root)/crypto/engine/eng_cnf.c',
          '<(boringssl_root)/crypto/engine/eng_ctrl.c',
          '<(boringssl_root)/crypto/engine/eng_dyn.c',
          '<(boringssl_root)/crypto/engine/eng_err.c',
          '<(boringssl_root)/crypto/engine/eng_fat.c',
          '<(boringssl_root)/crypto/engine/eng_init.c',
          '<(boringssl_root)/crypto/engine/eng_lib.c',
          '<(boringssl_root)/crypto/engine/eng_list.c',
          '<(boringssl_root)/crypto/engine/eng_pkey.c',
          '<(boringssl_root)/crypto/engine/eng_table.c',
          '<(boringssl_root)/crypto/engine/tb_asnmth.c',
          '<(boringssl_root)/crypto/engine/tb_cipher.c',
          '<(boringssl_root)/crypto/engine/tb_dh.c',
          '<(boringssl_root)/crypto/engine/tb_digest.c',
          '<(boringssl_root)/crypto/engine/tb_dsa.c',
          '<(boringssl_root)/crypto/engine/tb_ecdh.c',
          '<(boringssl_root)/crypto/engine/tb_ecdsa.c',
          '<(boringssl_root)/crypto/engine/tb_pkmeth.c',
          '<(boringssl_root)/crypto/engine/tb_rand.c',
          '<(boringssl_root)/crypto/engine/tb_rsa.c',
          '<(boringssl_root)/crypto/engine/tb_store.c',
          '<(boringssl_root)/crypto/rc2/rc2_cbc.c',
          '<(boringssl_root)/crypto/rc2/rc2_ecb.c',
          '<(boringssl_root)/crypto/rc2/rc2_skey.c',
          '<(boringssl_root)/crypto/rc2/rc2cfb64.c',
          '<(boringssl_root)/crypto/rc2/rc2ofb64.c',
          '<(boringssl_root)/crypto/rc4/rc4_enc.c',
          '<(boringssl_root)/crypto/rc4/rc4_skey.c',
          '<(boringssl_root)/crypto/rc4/rc4_utl.c',
          '<(boringssl_root)/crypto/ripemd/rmd_dgst.c',
          '<(boringssl_root)/crypto/ripemd/rmd_one.c',
          # Removed during Starboard port, found or made to be unneeded at
          # link time.
          '<(boringssl_root)/crypto/bio/b_sock.c',
          '<(boringssl_root)/crypto/bio/bss_acpt.c',
          '<(boringssl_root)/crypto/bio/bss_conn.c',
          '<(boringssl_root)/crypto/bio/bss_dgram.c',
          '<(boringssl_root)/crypto/bio/bss_fd.c',
          '<(boringssl_root)/crypto/bio/bss_log.c',
          '<(boringssl_root)/crypto/bio/bss_sock.c',
          '<(boringssl_root)/crypto/comp/c_rle.c',
          '<(boringssl_root)/crypto/comp/c_zlib.c',
          '<(boringssl_root)/crypto/comp/comp_err.c',
          '<(boringssl_root)/crypto/comp/comp_lib.c',
          '<(boringssl_root)/crypto/des/read2pwd.c',
          '<(boringssl_root)/crypto/dso/dso_dl.c',
          '<(boringssl_root)/crypto/dso/dso_dlfcn.c',
          '<(boringssl_root)/crypto/dso/dso_err.c',
          '<(boringssl_root)/crypto/dso/dso_lib.c',
          '<(boringssl_root)/crypto/dso/dso_null.c',
          '<(boringssl_root)/crypto/dso/dso_openssl.c',
          '<(boringssl_root)/crypto/ebcdic.c',
          '<(boringssl_root)/crypto/evp/e_bf.c',
          '<(boringssl_root)/crypto/evp/e_old.c',
          '<(boringssl_root)/crypto/evp/e_rc2.c',
          '<(boringssl_root)/crypto/evp/e_rc4.c',
          '<(boringssl_root)/crypto/evp/e_rc4_hmac_md5.c',
          '<(boringssl_root)/crypto/evp/e_rc5.c',
          '<(boringssl_root)/crypto/evp/e_rc5.c',
          '<(boringssl_root)/crypto/evp/m_md4.c',
          '<(boringssl_root)/crypto/evp/m_mdc2.c',
          '<(boringssl_root)/crypto/evp/m_ripemd.c',
          '<(boringssl_root)/crypto/evp/m_wp.c',
          '<(boringssl_root)/crypto/krb5/krb5_asn.c',
          '<(boringssl_root)/crypto/md4/md4_dgst.c',
          '<(boringssl_root)/crypto/md4/md4_one.c',
          '<(boringssl_root)/crypto/o_str.c',
          '<(boringssl_root)/crypto/pqueue/pqueue.c',
          '<(boringssl_root)/crypto/rand/rand_egd.c',
          '<(boringssl_root)/crypto/rand/randfile.c',
          '<(boringssl_root)/crypto/srp/srp_lib.c',
          '<(boringssl_root)/crypto/srp/srp_vfy.c',
          '<(boringssl_root)/crypto/ui/ui_compat.c',
          '<(boringssl_root)/crypto/ui/ui_err.c',
          '<(boringssl_root)/crypto/ui/ui_lib.c',
          '<(boringssl_root)/crypto/ui/ui_openssl.c',
          '<(boringssl_root)/crypto/ui/ui_util.c',
          '<(boringssl_root)/ssl/d1_both.c',
          '<(boringssl_root)/ssl/d1_clnt.c',
          '<(boringssl_root)/ssl/d1_enc.c',
          '<(boringssl_root)/ssl/d1_lib.c',
          '<(boringssl_root)/ssl/d1_meth.c',
          '<(boringssl_root)/ssl/d1_pkt.c',
          '<(boringssl_root)/ssl/kssl.c',
          '<(boringssl_root)/ssl/d1_srvr.c',
        ],
      }],  # OS == "lb_shell" or OS == "starboard"
    ],
    'include_dirs': [
      '.',
      '<@(openssl_config_path)',
    ],
    'all_dependent_settings': {
      'include_dirs': [
        '<@(openssl_config_path)',
      ],
    },
  },
  'targets': [
    {
      'target_name': 'crypto',

      # Include the source file list generated by BoringSSL
      'includes': ['boringssl.gypi',],

      'sources': [
        '<@(boringssl_crypto_files)',
        '<@(boringssl_ssl_files)',
      ],
      'include_dirs': [
        '<(boringssl_root)/include',
      ],
      'all_dependent_settings': {
        'include_dirs': [
          '<(boringssl_root)/include',
        ],
      },

      'conditions': [
        # This massive, nested conditional block will select the correct batch
        # of assembly language files for the current OS and CPU architecture, or
        # it will turn off assembly language files entirely if the
        # |asm_target_arch| has been set to "none".
        ['target_os not in ["linux", "android", "tvos"] or asm_target_arch not in ["x86", "x64", "arm", "arm64"]', {
          # please read comments for |target_os=="win"| condition below
          'defines': [
            'OPENSSL_NO_ASM',
          ],
        }, {  # target_os in ["linux", "android", "tvos"] and asm_target_arch in ["none", "mips", "ia32"]
          'conditions': [
            ['target_os=="linux" or target_os=="android"', {
              'conditions': [
                ['asm_target_arch=="x86"', {
                  'sources': [
                    '<@(boringssl_linux_x86_files)',
                  ],
                }],
                ['asm_target_arch=="x64"', {
                  'sources': [
                    '<@(boringssl_linux_x86_64_files)',
                  ],
                }],
                ['asm_target_arch=="arm"', {
                  'sources': [
                    '<@(boringssl_linux_arm_files)',
                  ],
                }],
                ['asm_target_arch=="arm64"', {
                  'sources': [
                    '<@(boringssl_linux_aarch64_files)',
                  ],
                }],
              ],
            }],
            ['target_os=="win"', {

            # For |target_os=="win"| an ASM rule uses ml.exe (aka MS Macro Assembler)
            # which we can't use with GNU format. As soon as ASM rule will be fixed
            # for using GNU Assembler, to accelerate "crypto" with assembler 
            # implementations just remove target_os=="win" from abowe condition 
            # |'asm_target_arch=="none" or target_os=="win"'| which currently
            # sets OPENSSL_NO_ASM for "win" too

              'conditions': [
                ['asm_target_arch=="x86"', {
                  'sources': [
                    '<@(boringssl_win_x86_files)',
                  ],
                }],
                ['asm_target_arch=="x64"', {
                  'sources': [
                    '<@(boringssl_win_x86_64_files)',
                  ],
                }],
              ],
            }],
            ['target_os=="tvos"', {
              'conditions': [
                ['asm_target_arch=="arm64"', {
                  'sources': [
                    '<@(boringssl_ios_aarch64_files)',
                  ],
                }],
                # Simulator
                ['asm_target_arch=="x64"', {
                  'defines': [
                    'OPENSSL_NO_ASM',
                  ],
                }],
              ],
            }]
          ],
        }],
      ],
    },
  ],
}
