summaryrefslogtreecommitdiff
path: root/crypto/build.info
blob: 5c45cd703bf6e52dc8fff6368f70c66f95594d31 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# Note that these directories are filtered in Configure.  Look for %skipdir
# there for further explanations.
SUBDIRS=objects buffer bio stack lhash rand evp asn1 pem x509 conf \
        txt_db pkcs7 pkcs12 ui kdf store property \
        md2 md4 md5 sha mdc2 hmac ripemd whrlpool poly1305 \
        siphash sm3 des aes rc2 rc4 rc5 idea aria bf cast camellia \
        seed sm4 chacha modes bn ec rsa dsa dh sm2 dso engine \
        err comp http ocsp cms ts srp cmac ct async ess crmf cmp encode_decode \
        ffc hpke thread

LIBS=../libcrypto

$UPLINKSRC=
$UPLINKDEF=
IF[{- !$disabled{uplink} -}]
  $UPLINKSRC_common=../ms/uplink.c
  $UPLINKSRC_x86=$UPLINKSRC_common uplink-x86.S
  $UPLINKSRC_x86_64=$UPLINKSRC_common uplink-x86_64.s
  $UPLINKSRC_ia64=$UPLINKSRC_common uplink-ia64.s

  IF[$UPLINKSRC_{- $target{uplink_arch} -}]
    $UPLINKSRC=$UPLINKSRC_{- $target{uplink_arch} -}
    $UPLINKDEF=OPENSSL_USE_APPLINK
  ENDIF
ENDIF

$CPUIDASM=mem_clr.c
$CPUIDDEF=
IF[{- !$disabled{asm} && $config{processor} ne '386' -}]
  $CPUIDASM_x86=x86cpuid.S

  $CPUIDASM_x86_64=x86_64cpuid.s

  $CPUIDASM_ia64=ia64cpuid.s

  $CPUIDASM_sparcv9=sparcv9cap.c sparccpuid.S

  $CPUIDASM_alpha=alphacpuid.s

  $CPUIDASM_s390x=s390xcap.c s390xcpuid.S

  $CPUIDASM_armv4=armcap.c armv4cpuid.S

  $CPUIDASM_aarch64=armcap.c arm64cpuid.S

  $CPUIDASM_parisc11=pariscid.s
  $CPUIDASM_parisc20_64=$CPUIDASM_parisc11

  $CPUIDASM_ppc32=ppccpuid.s ppccap.c
  $CPUIDASM_ppc64=$CPUIDASM_ppc32

  $CPUIDASM_c64xplus=c64xpluscpuid.s

  $CPUIDASM_riscv64=riscvcap.c riscv64cpuid.s
  $CPUIDASM_riscv32=riscvcap.c riscv32cpuid.s

  $CPUIDASM_loongarch64=loongarchcap.c loongarch64cpuid.s
  # Now that we have defined all the arch specific variables, use the
  # appropriate one, and define the appropriate macros
  IF[$CPUIDASM_{- $target{asm_arch} -}]
    $CPUIDASM=$CPUIDASM_{- $target{asm_arch} -}
    $CPUIDDEF=OPENSSL_CPUID_OBJ
  ENDIF
ENDIF

# CPUID support.  We need to add that explicitly in every shared library and
# provider module that uses it.  ctype.c is included here because the CPUID
# uses functions from there to parse magic environment variables.
$CPUID_COMMON=$CPUIDASM cpuid.c ctype.c
INCLUDE[cpuid.o]=..

SOURCE[../libcrypto]=$CPUID_COMMON
DEFINE[../libcrypto]=$CPUIDDEF
SOURCE[../providers/libfips.a]=$CPUID_COMMON
DEFINE[../providers/libfips.a]=$CPUIDDEF
# We only need to include the CPUID stuff in the legacy provider when it's a
# separate module and it's dynamically linked with libcrypto.  Otherwise, it
# already gets everything that the static libcrypto.a has, and doesn't need it
# added again.
IF[{- !$disabled{module} && !$disabled{shared} -}]
  SOURCE[../providers/legacy]=$CPUID_COMMON
  DEFINE[../providers/legacy]=$CPUIDDEF
ENDIF

# Implementations are now spread across several libraries, so the CPUID define
# need to be applied to all affected libraries and modules.
DEFINE[../providers/libcommon.a]=$CPUIDDEF
DEFINE[../providers/libdefault.a]=$CPUIDDEF

# The Core
$CORE_COMMON=provider_core.c provider_predefined.c \
        core_fetch.c core_algorithm.c core_namemap.c self_test_core.c

SOURCE[../libcrypto]=$CORE_COMMON provider_conf.c
SOURCE[../providers/libfips.a]=$CORE_COMMON

# Central utilities
$UTIL_COMMON=\
        cryptlib.c params.c params_from_text.c bsearch.c ex_data.c o_str.c \
        threads_pthread.c threads_win.c threads_none.c initthread.c \
        context.c sparse_array.c asn1_dsa.c packet.c param_build.c \
        param_build_set.c der_writer.c threads_lib.c params_dup.c

SHARED_SOURCE[../libssl]=sparse_array.c

SOURCE[../libcrypto]=$UTIL_COMMON \
        mem.c mem_sec.c \
        cversion.c info.c cpt_err.c ebcdic.c uid.c o_time.c o_dir.c \
        o_fopen.c getenv.c o_init.c init.c trace.c provider.c provider_child.c \
        punycode.c passphrase.c sleep.c deterministic_nonce.c quic_vlint.c \
        time.c
SOURCE[../providers/libfips.a]=$UTIL_COMMON

SOURCE[../libcrypto]=$UPLINKSRC
DEFINE[../libcrypto]=$UPLINKDEF

DEPEND[info.o]=buildinf.h
DEPEND[cversion.o]=buildinf.h
GENERATE[buildinf.h]=../util/mkbuildinf.pl "$(CC) $(LIB_CFLAGS) $(CPPFLAGS_Q)" "$(PLATFORM)"

GENERATE[uplink-x86.S]=../ms/uplink-x86.pl
GENERATE[uplink-x86_64.s]=../ms/uplink-x86_64.pl
GENERATE[uplink-ia64.s]=../ms/uplink-ia64.pl

GENERATE[x86cpuid.S]=x86cpuid.pl
DEPEND[x86cpuid.s]=perlasm/x86asm.pl

GENERATE[x86_64cpuid.s]=x86_64cpuid.pl

GENERATE[ia64cpuid.s]=ia64cpuid.S
GENERATE[ppccpuid.s]=ppccpuid.pl
GENERATE[pariscid.s]=pariscid.pl
GENERATE[alphacpuid.s]=alphacpuid.pl
GENERATE[arm64cpuid.S]=arm64cpuid.pl
INCLUDE[arm64cpuid.o]=.
GENERATE[armv4cpuid.S]=armv4cpuid.pl
INCLUDE[armv4cpuid.o]=.
GENERATE[s390xcpuid.S]=s390xcpuid.pl
INCLUDE[s390xcpuid.o]=.
GENERATE[riscv64cpuid.s]=riscv64cpuid.pl
GENERATE[riscv32cpuid.s]=riscv32cpuid.pl

GENERATE[loongarch64cpuid.s]=loongarch64cpuid.pl
IF[{- $config{target} =~ /^(?:Cygwin|mingw|VC-|BC-)/ -}]
  SHARED_SOURCE[../libcrypto]=dllmain.c
ENDIF