VirtualBox

source: vbox/trunk/src/libs/openssl-3.3.2/crypto/Makefile.kmk@ 108358

最後變更 在這個檔案從108358是 108206,由 vboxsync 提交於 6 週 前

openssl-3.3.2: Exported all files to OSE and removed .scm-settings ​bugref:10757

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 7.8 KB
 
1# $Id: Makefile.kmk 108206 2025-02-13 16:35:33Z vboxsync $
2## @file
3# Sub-Makefile for OpenSSL crypto.
4#
5
6#
7# Copyright (C) 2006-2023 Oracle and/or its affiliates.
8#
9# This file is part of VirtualBox base platform packages, as
10# available from https://www.alldomusa.eu.org.
11#
12# This program is free software; you can redistribute it and/or
13# modify it under the terms of the GNU General Public License
14# as published by the Free Software Foundation, in version 3 of the
15# License.
16#
17# This program is distributed in the hope that it will be useful, but
18# WITHOUT ANY WARRANTY; without even the implied warranty of
19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20# General Public License for more details.
21#
22# You should have received a copy of the GNU General Public License
23# along with this program; if not, see <https://www.gnu.org/licenses>.
24#
25# SPDX-License-Identifier: GPL-3.0-only
26#
27
28SUB_DEPTH = ../../../..
29include $(KBUILD_PATH)/subheader.kmk
30
31#
32# Include sub-makefiles.
33#
34# Note! For joining the sub libraries into a crypto lib, we do some trickery to
35# collect the sub-library names here.
36#
37VBOX_LIBRARIES_BEFORE_CRYPTO_SUBDIRS := $(LIBRARIES)
38if defined(VBOX_ONLY_VALIDATIONKIT) && !defined(VBOX_WITH_VALIDATIONKIT_UNITTESTS_PACKING)
39 include $(VBOX_PATH_CRYPTO)/sha/Makefile.kmk
40else # Validation Kit unit tests need this.
41 include $(sort $(wildcard $(VBOX_PATH_CRYPTO)/*/Makefile.kmk))
42endif
43VBOX_CRYPTO_SUBLIBS := $(filter-out $(VBOX_LIBRARIES_BEFORE_CRYPTO_SUBDIRS), $(LIBRARIES))
44VBOX_CRYPTO_SUBLIBS_X86 := $(filter %-x86, $(VBOX_CRYPTO_SUBLIBS))
45VBOX_CRYPTO_SUBLIBS := $(filter-out %-x86, $(VBOX_CRYPTO_SUBLIBS))
46if defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS)
47 $(eval LIBRARIES = $(VBOX_LIBRARIES_BEFORE_CRYPTO_SUBDIRS) crypto_sha)
48else if "$(SDK_VBoxOpenSslStatic_INCS)" != "$(SDK_VBoxOpenSslStatic_VBOX_DEFAULT_INCS)"
49 $(eval LIBRARIES = $(VBOX_LIBRARIES_BEFORE_CRYPTO_SUBDIRS))
50endif
51VBOX_LIBRARIES_BEFORE_CRYPTO_SUBDIRS :=
52
53
54#
55# The VBoxRT libcrypto.
56#
57LIBRARIES += VBox-libcrypto
58VBox-libcrypto_TEMPLATE = LibCrypto
59VBox-libcrypto_INCS = $(VBox-libcrypto_0_OUTDIR)
60VBox-libcrypto_SOURCES = \
61 $(VBOX_PATH_OPENSSL)/gen-sources/crypto/params_idx.c \
62 asn1_dsa.c \
63 bsearch.c \
64 context.c \
65 core_algorithm.c \
66 core_fetch.c \
67 core_namemap.c \
68 cpt_err.c \
69 cpuid.c \
70 cryptlib.c \
71 ctype.c \
72 cversion.c \
73 der_writer.c \
74 deterministic_nonce.c \
75 ebcdic.c \
76 ex_data.c \
77 getenv.c \
78 info.c \
79 init.c \
80 initthread.c \
81 mem.c \
82 mem_sec.c \
83 o_dir.c \
84 o_fopen.c \
85 o_init.c \
86 o_str.c \
87 o_time.c \
88 packet.c \
89 param_build.c \
90 param_build_set.c \
91 params.c \
92 params_dup.c \
93 params_from_text.c \
94 passphrase.c \
95 provider.c \
96 provider_child.c \
97 provider_conf.c \
98 provider_core.c \
99 provider_predefined.c \
100 punycode.c \
101 self_test_core.c \
102 sleep.c \
103 sparse_array.c \
104 threads_iprt.c \
105 time.c \
106 trace.c \
107 uid.c
108
109ifdef VBOX_WITH_CRYPTO_ASM
110 VBox-libcrypto_DEFS.x86 += OPENSSL_CPUID_OBJ=x86cpuid.o
111 VBox-libcrypto_SOURCES.x86 += $(VBOX_PATH_CRYPTO_GENASM)/x86cpuid.S
112 VBox-libcrypto_DEFS.amd64 += OPENSSL_CPUID_OBJ=x86_64cpuid.o
113 VBox-libcrypto_SOURCES.amd64 += $(VBOX_PATH_CRYPTO_GENASM)/x86_64cpuid.S
114else
115 VBox-libcrypto_SOURCES += mem_clr.c
116endif
117
118ifdef VBOX_WITH_OPENSSL_FIPS
119 VBox-libcrypto_SOURCES += o_fips.c fips_ers.c
120endif
121
122VBox-libcrypto_SOURCES += $(PATH_STAGE_LIB)/VBox-libproviders$(VBOX_SUFF_LIB)
123
124if defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS)
125 VBox-libcrypto_SOURCES += $(crypto_sha_1_TARGET)
126else if "$(SDK_VBoxOpenSslStatic_INCS)" == "$(SDK_VBoxOpenSslStatic_VBOX_DEFAULT_INCS)"
127 VBox-libcrypto_SOURCES += $(foreach sublib,$(VBOX_CRYPTO_SUBLIBS), $($(sublib)_1_TARGET))
128endif
129
130VBox-libcrypto_CLEAN = $(VBox-libcrypto_0_OUTDIR)/buildinf.h
131VBox-libcrypto_INTERMEDIATES = $(VBox-libcrypto_0_OUTDIR)/buildinf.h
132
133
134ifdef VBOX_WITH_32_ON_64_MAIN_API # 32-bit edition.
135 LIBRARIES += VBox-libcrypto-x86
136 VBox-libcrypto-x86_TEMPLATE = VBoxLibCrypto-x86
137 VBox-libcrypto-x86_EXTENDS = VBox-libcrypto
138 VBox-libcrypto-x86_SOURCES = $(filter %.c %.cpp,$(VBox-libcrypto_SOURCES)) \
139 $(PATH_STAGE_LIB)/VBox-libproviders-x86$(VBOX_SUFF_LIB) \
140 $(foreach sublib,$(VBOX_CRYPTO_SUBLIBS_X86), $($(sublib)_1_TARGET))
141endif
142
143
144if defined(VBOX_NEED_EXTPACK_OPENSSL) && !defined(VBOX_ONLY_VALIDATIONKIT) # Not needed for Validation Kit.
145 #
146 # The extension pack libcrypto.
147 #
148 LIBRARIES += VBoxExtPack-libcrypto
149 VBoxExtPack-libcrypto = For the Oracle Extension Pack
150 VBoxExtPack-libcrypto_EXTENDS = VBox-libcrypto
151 VBoxExtPack-libcrypto_DEFS = $(VBox-libcrypto_DEFS) VBOX_IN_EXTPACK
152 VBoxExtPack-libcrypto_SOURCES = \
153 $(filter %.c %.cpp,$(VBox-libcrypto_SOURCES)) \
154 $(foreach sublib,$(VBOX_CRYPTO_SUBLIBS), $(VBoxExtPack-$(sublib)_1_TARGET))
155 define def_VBoxExtPack_libcrypto_inherit
156 LIBRARIES += VBoxExtPack-$(sublib)
157 VBoxExtPack-$(sublib) = Oracle Extension Pack version of $(sublib)
158 VBoxExtPack-$(sublib)_EXTENDS = $(sublib)
159 VBoxExtPack-$(sublib)_EXTENDS_BY = appending
160 VBoxExtPack-$(sublib)_DEFS = VBOX_IN_EXTPACK
161 VBoxExtPack-$(sublib)_DEFPATH = $($(sublib)_DEFPATH)
162 ## @todo kBuild: DEFPATH isn't inherited! FIXME!
163 endef
164 $(foreach sublib,$(VBOX_CRYPTO_SUBLIBS), $(eval $(def_VBoxExtPack_libcrypto_inherit)))
165
166endif # VBOX_NEED_EXTPACK_OPENSSL
167
168
169ifdef VBOX_WITH_BLD_RTSIGNTOOL_SIGNING
170 #
171 # The build program libcrypto version.
172 #
173 LIBRARIES += VBoxBldProg-libcrypto
174 VBoxBldProg-libcrypto = For bldRTSignTool
175 VBoxBldProg-libcrypto_EXTENDS = VBox-libcrypto
176 VBoxBldProg-libcrypto_TEMPLATE = VBoxLibCryptoBldProg
177 VBoxBldProg-libcrypto_DEFS = $(VBox-libcrypto_DEFS)
178 VBoxBldProg-libcrypto_SOURCES = \
179 $(filter %.c %.cpp,$(VBox-libcrypto_SOURCES)) \
180 $(PATH_STAGE_LIB)/VBoxBldProg-libproviders$(VBOX_SUFF_LIB) \
181 $(foreach sublib,$(VBOX_CRYPTO_SUBLIBS), $(VBoxBldProg-$(sublib)_1_TARGET))
182 define def_VBoxBldProg_libcrypto_inherit
183 LIBRARIES += VBoxBldProg-$(sublib)
184 VBoxBldProg-$(sublib) = bldRTSignTool version of $(sublib)
185 VBoxBldProg-$(sublib)_EXTENDS = $(sublib)
186 VBoxBldProg-$(sublib)_EXTENDS_BY = appending
187 VBoxBldProg-$(sublib)_TEMPLATE = VBoxSubLibCryptoBldProg
188 VBoxBldProg-$(sublib)_DEFPATH = $($(sublib)_DEFPATH)
189 ## @todo kBuild: DEFPATH isn't inherited! FIXME!
190 endef
191 $(foreach sublib,$(VBOX_CRYPTO_SUBLIBS), $(eval $(def_VBoxBldProg_libcrypto_inherit)))
192
193endif # VBOX_WITH_BLD_RTSIGNTOOL_SIGNING
194
195
196#
197# ...
198#
199recreate-openssl-asm: $(VBOX_PATH_CRYPTO)/perlasm/x86asm.pl \
200 $(VBOX_PATH_CRYPTO)/x86cpuid.pl \
201 $(VBOX_PATH_CRYPTO)/x86_64cpuid.pl \
202 recreate-aes-asm \
203 recreate-bn-asm \
204 recreate-chacha-asm \
205 recreate-ec-asm \
206 recreate-md5-asm \
207 recreate-modes-asm \
208 recreate-poly1305-asm \
209 recreate-rc4-asm \
210 recreate-sha-asm
211 perl $(VBOX_PATH_CRYPTO)/x86cpuid.pl elf -fPIC $(VBOX_PATH_CRYPTO)/genasm-elf/x86cpuid.S
212 perl $(VBOX_PATH_CRYPTO)/x86_64cpuid.pl elf $(VBOX_PATH_CRYPTO)/genasm-elf/x86_64cpuid.S
213 perl $(VBOX_PATH_CRYPTO)/x86cpuid.pl macosx $(VBOX_PATH_CRYPTO)/genasm-macosx/x86cpuid.S
214 perl $(VBOX_PATH_CRYPTO)/x86_64cpuid.pl macosx $(VBOX_PATH_CRYPTO)/genasm-macosx/x86_64cpuid.S
215 perl $(VBOX_PATH_CRYPTO)/x86cpuid.pl win32n $(VBOX_PATH_CRYPTO)/genasm-nasm/x86cpuid.S
216 perl $(VBOX_PATH_CRYPTO)/x86_64cpuid.pl nasm $(VBOX_PATH_CRYPTO)/genasm-nasm/x86_64cpuid.S
217
218recreate-crypto-sources: $(VBOX_PATH_OPENSSL)/util/dofile.pl
219 perl -I$(VBOX_PATH_OPENSSL) \
220 -Mconfigdata $(VBOX_PATH_OPENSSL)/util/dofile.pl -oMakefile \
221 $(VBOX_PATH_CRYPTO)/params_idx.c.in > $(VBOX_PATH_OPENSSL)/gen-sources/crypto/params_idx.c
222
223include $(FILE_KBUILD_SUB_FOOTER)
224
225
226#
227# Generate
228#
229$(VBox-libcrypto_0_OUTDIR)/buildinf.h: $(VBOX_PATH_CRYPTO)/Makefile.kmk | $$(dir $$@)
230 $(call MSG_GENERATE,,$@)
231 $(QUIET)$(RM) -f $@
232 $(QUIET)$(APPEND) $@ '/* auto-generated by crypto/Makefile.kmk for crypto/cversion.c */'
233 $(QUIET)$(APPEND) $@ '#ifndef MK1MF_BUILD'
234 $(QUIET)$(APPEND) $@ '# define PLATFORM "$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)"'
235 $(QUIET)$(APPEND) $@ '# define DATE "$(date-utc )"'
236 $(QUIET)$(APPEND) $@ 'static const char compiler_flags[] ='
237 $(QUIET)$(APPEND) $@ ' "$(VBox-libcrypto_CFLAGS)";'
238 $(QUIET)$(APPEND) $@ '#endif'
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette