# pylint:disable=I0011,W0401,W0614,C0103,E0602 ############################################################################ # Copyright 2016-2019 Intel Corporation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ############################################################################ """Build configuration for Ipp Crypto """ import os Import('*') env.PartVersion("2019.0.1") env.PartName("ippcp") ippcp_libname = '${PART_SHORT_NAME}' include_files = Pattern( src_dir='include/', includes=['*.h'], excludes=[], recursive=True) src_files = Pattern( src_dir='sources/ippcp/', includes=[ '*.c', ], excludes=[ 'pcparcfour*.c', 'pcpmain.c', '*sm2.c', 'pcpsha1ca.c', 'pcpaes*.c', 'pcpdes*.c', 'pcpdlp*.c', 'pcphmac*.c', 'pcpmd5*.c', 'pcpng*.c', 'pcpprime*.c', 'pcprij*.c', 'pcprsa*.c', 'pcpsm3*.c', 'pcpsms4*.c', 'pcptdes*.c', 'pcpmont_expbinbnu_sscm.c', 'pcpmont_expwinbnu.c', 'pcpmont_expwinbnu_sscm.c', ], recursive=False) env.Append(CPPPATH=[AbsDir('include/')]) env.ExportCPPPATH([AbsDir('include/')]) env.Append(CPPPATH=[AbsDir('sources/include/')]) env.Append(CPPPATH=[AbsDir('sources/ippcp/')]) # ipp defines if env['TARGET_ARCH'] == 'x86': env.Append(CPPDEFINES='_ARCH_IA32') else: env.Append(CPPDEFINES='_ARCH_EM64T') # env.Append(CPPDEFINES = '_IPP_BE') #only for BE targets env.Append(CPPDEFINES='_IPP_DEBUG') #enable function sanity checking env.Append(CPPDEFINES='_IPP_C99') env.Append(CPPDEFINES='_IPP_v50_') env.Append(CPPDEFINES='_PX') env.Append(CPPDEFINES='_ABL_') env.Append(CPPDEFINES=['_DISABLE_ECP_SM2_']) env.Append(CPPDEFINES=[ '_DISABLE_ALG_SHA224_', '_DISABLE_ALG_SHA512_224_', '_DISABLE_ALG_MD5_', '_DISABLE_ALG_SM3_' ]) #disable unused hash algs env.SdkInclude(include_files) if 'use_commercial_ipp' in env['MODE']: env['CCOPY_LOGIC'] = 'copy' try: IPPCRYPTOROOT = os.environ['IPPCRYPTOROOT'] except KeyError, e: env.PrintError( "Necessary environment variable not set: ", e, show_stack=False) if env['TARGET_PLATFORM']['OS'] == 'win32': libpre = '' libpost = '.lib' IPP_TH_SYMBOL = 'mt' else: libpre = 'lib' libpost = '.a' IPP_TH_SYMBOL = '' if env['TARGET_PLATFORM']['ARCH'] == 'x86': archdir = 'ia32/' else: archdir = 'intel64/' ippcp_libname = libpre + 'ippcp' + IPP_TH_SYMBOL + libpost ippcp_dir = IPPCRYPTOROOT + '/lib/' + archdir env.SdkLib(ippcp_dir + ippcp_libname) else: all_c_files = src_files.files() if 'build_ipp_shared' in env['MODE']: env.Append(CPPDEFINES=['IPP_W32DLL']) outputs = env.SharedLibrary(ippcp_libname, all_c_files) env.InstallTarget(outputs) else: outputs = env.Library(ippcp_libname, all_c_files) env.SdkLib(outputs) if 'install_lib' in env['MODE']: env.InstallLib(outputs)