VirtualBox

source: vbox/trunk/src/libs/openssl-3.0.3/crypto/Makefile.kmk@ 96159

最後變更 在這個檔案從96159是 95676,由 vboxsync 提交於 3 年 前

/Config.kmk,openssl,RTSignTool: Build bldRTSignTool with signing capability on windows. bugref:8691

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

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