1e1051a39Sopenharmony_ci# Note that these directories are filtered in Configure. Look for %skipdir 2e1051a39Sopenharmony_ci# there for further explanations. 3e1051a39Sopenharmony_ciSUBDIRS=objects buffer bio stack lhash rand evp asn1 pem x509 conf \ 4e1051a39Sopenharmony_ci txt_db pkcs7 pkcs12 ui kdf store property \ 5e1051a39Sopenharmony_ci md2 md4 md5 sha mdc2 hmac ripemd whrlpool poly1305 \ 6e1051a39Sopenharmony_ci siphash sm3 des aes rc2 rc4 rc5 idea aria bf cast camellia \ 7e1051a39Sopenharmony_ci seed sm4 chacha modes bn ec rsa dsa dh sm2 dso engine \ 8e1051a39Sopenharmony_ci err comp http ocsp cms ts srp cmac ct async ess crmf cmp encode_decode \ 9e1051a39Sopenharmony_ci ffc 10e1051a39Sopenharmony_ci 11e1051a39Sopenharmony_ciLIBS=../libcrypto 12e1051a39Sopenharmony_ci 13e1051a39Sopenharmony_ci$UPLINKSRC= 14e1051a39Sopenharmony_ci$UPLINKDEF= 15e1051a39Sopenharmony_ciIF[{- !$disabled{uplink} -}] 16e1051a39Sopenharmony_ci $UPLINKSRC_common=../ms/uplink.c 17e1051a39Sopenharmony_ci $UPLINKSRC_x86=$UPLINKSRC_common uplink-x86.S 18e1051a39Sopenharmony_ci $UPLINKSRC_x86_64=$UPLINKSRC_common uplink-x86_64.s 19e1051a39Sopenharmony_ci $UPLINKSRC_ia64=$UPLINKSRC_common uplink-ia64.s 20e1051a39Sopenharmony_ci 21e1051a39Sopenharmony_ci IF[$UPLINKSRC_{- $target{uplink_arch} -}] 22e1051a39Sopenharmony_ci $UPLINKSRC=$UPLINKSRC_{- $target{uplink_arch} -} 23e1051a39Sopenharmony_ci $UPLINKDEF=OPENSSL_USE_APPLINK 24e1051a39Sopenharmony_ci ENDIF 25e1051a39Sopenharmony_ciENDIF 26e1051a39Sopenharmony_ci 27e1051a39Sopenharmony_ci$CPUIDASM=mem_clr.c 28e1051a39Sopenharmony_ci$CPUIDDEF= 29e1051a39Sopenharmony_ciIF[{- !$disabled{asm} && $config{processor} ne '386' -}] 30e1051a39Sopenharmony_ci $CPUIDASM_x86=x86cpuid.S 31e1051a39Sopenharmony_ci 32e1051a39Sopenharmony_ci $CPUIDASM_x86_64=x86_64cpuid.s 33e1051a39Sopenharmony_ci 34e1051a39Sopenharmony_ci $CPUIDASM_ia64=ia64cpuid.s 35e1051a39Sopenharmony_ci 36e1051a39Sopenharmony_ci $CPUIDASM_sparcv9=sparcv9cap.c sparccpuid.S 37e1051a39Sopenharmony_ci 38e1051a39Sopenharmony_ci $CPUIDASM_alpha=alphacpuid.s 39e1051a39Sopenharmony_ci 40e1051a39Sopenharmony_ci $CPUIDASM_s390x=s390xcap.c s390xcpuid.S 41e1051a39Sopenharmony_ci 42e1051a39Sopenharmony_ci $CPUIDASM_armv4=armcap.c armv4cpuid.S 43e1051a39Sopenharmony_ci 44e1051a39Sopenharmony_ci $CPUIDASM_aarch64=armcap.c arm64cpuid.S 45e1051a39Sopenharmony_ci 46e1051a39Sopenharmony_ci $CPUIDASM_parisc11=pariscid.s 47e1051a39Sopenharmony_ci $CPUIDASM_parisc20_64=$CPUIDASM_parisc11 48e1051a39Sopenharmony_ci 49e1051a39Sopenharmony_ci $CPUIDASM_ppc32=ppccpuid.s ppccap.c 50e1051a39Sopenharmony_ci $CPUIDASM_ppc64=$CPUIDASM_ppc32 51e1051a39Sopenharmony_ci 52e1051a39Sopenharmony_ci $CPUIDASM_c64xplus=c64xpluscpuid.s 53e1051a39Sopenharmony_ci 54e1051a39Sopenharmony_ci # Now that we have defined all the arch specific variables, use the 55e1051a39Sopenharmony_ci # appropriate one, and define the appropriate macros 56e1051a39Sopenharmony_ci IF[$CPUIDASM_{- $target{asm_arch} -}] 57e1051a39Sopenharmony_ci $CPUIDASM=$CPUIDASM_{- $target{asm_arch} -} 58e1051a39Sopenharmony_ci $CPUIDDEF=OPENSSL_CPUID_OBJ 59e1051a39Sopenharmony_ci ENDIF 60e1051a39Sopenharmony_ciENDIF 61e1051a39Sopenharmony_ci 62e1051a39Sopenharmony_ci# CPUID support. We need to add that explicitly in every shared library and 63e1051a39Sopenharmony_ci# provider module that uses it. ctype.c is included here because the CPUID 64e1051a39Sopenharmony_ci# uses functions from there to parse magic environment variables. 65e1051a39Sopenharmony_ci$CPUID_COMMON=$CPUIDASM cpuid.c ctype.c 66e1051a39Sopenharmony_ciINCLUDE[cpuid.o]=.. 67e1051a39Sopenharmony_ci 68e1051a39Sopenharmony_ciSOURCE[../libcrypto]=$CPUID_COMMON 69e1051a39Sopenharmony_ciDEFINE[../libcrypto]=$CPUIDDEF 70e1051a39Sopenharmony_ciSOURCE[../providers/libfips.a]=$CPUID_COMMON 71e1051a39Sopenharmony_ciDEFINE[../providers/libfips.a]=$CPUIDDEF 72e1051a39Sopenharmony_ci# We only need to include the CPUID stuff in the legacy provider when it's a 73e1051a39Sopenharmony_ci# separate module and it's dynamically linked with libcrypto. Otherwise, it 74e1051a39Sopenharmony_ci# already gets everything that the static libcrypto.a has, and doesn't need it 75e1051a39Sopenharmony_ci# added again. 76e1051a39Sopenharmony_ciIF[{- !$disabled{module} && !$disabled{shared} -}] 77e1051a39Sopenharmony_ci SOURCE[../providers/liblegacy.a]=$CPUID_COMMON 78e1051a39Sopenharmony_ci DEFINE[../providers/liblegacy.a]=$CPUIDDEF 79e1051a39Sopenharmony_ciENDIF 80e1051a39Sopenharmony_ci 81e1051a39Sopenharmony_ci# Implementations are now spread across several libraries, so the CPUID define 82e1051a39Sopenharmony_ci# need to be applied to all affected libraries and modules. 83e1051a39Sopenharmony_ciDEFINE[../providers/libcommon.a]=$CPUIDDEF 84e1051a39Sopenharmony_ciDEFINE[../providers/libdefault.a]=$CPUIDDEF 85e1051a39Sopenharmony_ci 86e1051a39Sopenharmony_ci# The Core 87e1051a39Sopenharmony_ci$CORE_COMMON=provider_core.c provider_predefined.c \ 88e1051a39Sopenharmony_ci core_fetch.c core_algorithm.c core_namemap.c self_test_core.c 89e1051a39Sopenharmony_ci 90e1051a39Sopenharmony_ciSOURCE[../libcrypto]=$CORE_COMMON provider_conf.c 91e1051a39Sopenharmony_ciSOURCE[../providers/libfips.a]=$CORE_COMMON 92e1051a39Sopenharmony_ci 93e1051a39Sopenharmony_ci# Central utilities 94e1051a39Sopenharmony_ci$UTIL_COMMON=\ 95e1051a39Sopenharmony_ci cryptlib.c params.c params_from_text.c bsearch.c ex_data.c o_str.c \ 96e1051a39Sopenharmony_ci threads_pthread.c threads_win.c threads_none.c initthread.c \ 97e1051a39Sopenharmony_ci context.c sparse_array.c asn1_dsa.c packet.c param_build.c \ 98e1051a39Sopenharmony_ci param_build_set.c der_writer.c threads_lib.c params_dup.c 99e1051a39Sopenharmony_ci 100e1051a39Sopenharmony_ciSHARED_SOURCE[../libssl]=sparse_array.c 101e1051a39Sopenharmony_ci 102e1051a39Sopenharmony_ciSOURCE[../libcrypto]=$UTIL_COMMON \ 103e1051a39Sopenharmony_ci mem.c mem_sec.c \ 104e1051a39Sopenharmony_ci cversion.c info.c cpt_err.c ebcdic.c uid.c o_time.c o_dir.c \ 105e1051a39Sopenharmony_ci o_fopen.c getenv.c o_init.c init.c trace.c provider.c provider_child.c \ 106e1051a39Sopenharmony_ci punycode.c passphrase.c 107e1051a39Sopenharmony_ciSOURCE[../providers/libfips.a]=$UTIL_COMMON 108e1051a39Sopenharmony_ci 109e1051a39Sopenharmony_ciSOURCE[../libcrypto]=$UPLINKSRC 110e1051a39Sopenharmony_ciDEFINE[../libcrypto]=$UPLINKDEF 111e1051a39Sopenharmony_ci 112e1051a39Sopenharmony_ciDEPEND[info.o]=buildinf.h 113e1051a39Sopenharmony_ciDEPEND[cversion.o]=buildinf.h 114e1051a39Sopenharmony_ciGENERATE[buildinf.h]=../util/mkbuildinf.pl "$(CC) $(LIB_CFLAGS) $(CPPFLAGS_Q)" "$(PLATFORM)" 115e1051a39Sopenharmony_ci 116e1051a39Sopenharmony_ciGENERATE[uplink-x86.S]=../ms/uplink-x86.pl 117e1051a39Sopenharmony_ciGENERATE[uplink-x86_64.s]=../ms/uplink-x86_64.pl 118e1051a39Sopenharmony_ciGENERATE[uplink-ia64.s]=../ms/uplink-ia64.pl 119e1051a39Sopenharmony_ci 120e1051a39Sopenharmony_ciGENERATE[x86cpuid.S]=x86cpuid.pl 121e1051a39Sopenharmony_ciDEPEND[x86cpuid.s]=perlasm/x86asm.pl 122e1051a39Sopenharmony_ci 123e1051a39Sopenharmony_ciGENERATE[x86_64cpuid.s]=x86_64cpuid.pl 124e1051a39Sopenharmony_ci 125e1051a39Sopenharmony_ciGENERATE[ia64cpuid.s]=ia64cpuid.S 126e1051a39Sopenharmony_ciGENERATE[ppccpuid.s]=ppccpuid.pl 127e1051a39Sopenharmony_ciGENERATE[pariscid.s]=pariscid.pl 128e1051a39Sopenharmony_ciGENERATE[alphacpuid.s]=alphacpuid.pl 129e1051a39Sopenharmony_ciGENERATE[arm64cpuid.S]=arm64cpuid.pl 130e1051a39Sopenharmony_ciINCLUDE[arm64cpuid.o]=. 131e1051a39Sopenharmony_ciGENERATE[armv4cpuid.S]=armv4cpuid.pl 132e1051a39Sopenharmony_ciINCLUDE[armv4cpuid.o]=. 133e1051a39Sopenharmony_ciGENERATE[s390xcpuid.S]=s390xcpuid.pl 134e1051a39Sopenharmony_ciINCLUDE[s390xcpuid.o]=. 135e1051a39Sopenharmony_ci 136e1051a39Sopenharmony_ciIF[{- $config{target} =~ /^(?:Cygwin|mingw|VC-|BC-)/ -}] 137e1051a39Sopenharmony_ci SHARED_SOURCE[../libcrypto]=dllmain.c 138e1051a39Sopenharmony_ciENDIF 139