VirtualBox

source: vbox/trunk/src/libs/openssl-3.0.1/crypto/Makefile.kmk@ 94113

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

libs/openssl-3.0.1: Build providers and include in libcrypto, requires pre-generating a bunch of source files with a prel script, bugref:10128

檔案大小: 5.6 KB
 
1# $Id: Makefile.kmk 127528 2018-12-17 11:52:21Z michael $
2## @file
3# Sub-Makefile for OpenSSL crypto.
4#
5
6#
7# Copyright (C) 2006-2019 Oracle Corporation
8#
9# Oracle Corporation confidential
10# All rights reserved
11#
12
13SUB_DEPTH = ../../../..
14include $(KBUILD_PATH)/subheader.kmk
15
16#
17# Include sub-makefiles.
18#
19# Note! For joining the sub libraries into a crypto lib, we do some trickery to
20# collect the sub-library names here.
21#
22VBOX_LIBRARIES_BEFORE_CRYPTO_SUBDIRS := $(LIBRARIES)
23if defined(VBOX_ONLY_VALIDATIONKIT)
24 include $(VBOX_PATH_CRYPTO)/sha/Makefile.kmk
25else
26 include $(sort $(wildcard $(VBOX_PATH_CRYPTO)/*/Makefile.kmk))
27endif
28VBOX_CRYPTO_SUBLIBS := $(filter-out $(VBOX_LIBRARIES_BEFORE_CRYPTO_SUBDIRS), $(LIBRARIES))
29VBOX_CRYPTO_SUBLIBS_X86 := $(filter %-x86, $(VBOX_CRYPTO_SUBLIBS))
30VBOX_CRYPTO_SUBLIBS := $(filter-out %-x86, $(VBOX_CRYPTO_SUBLIBS))
31if defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS)
32 $(eval LIBRARIES = $(VBOX_LIBRARIES_BEFORE_CRYPTO_SUBDIRS) crypto_sha)
33else if "$(SDK_VBOX_OPENSSL_INCS)" != "$(SDK_VBOX_OPENSSL_VBOX_DEFAULT_INCS)"
34 $(eval LIBRARIES = $(VBOX_LIBRARIES_BEFORE_CRYPTO_SUBDIRS))
35endif
36VBOX_LIBRARIES_BEFORE_CRYPTO_SUBDIRS :=
37
38
39#
40# The VBoxRT libcrypto.
41#
42LIBRARIES += VBox-libcrypto
43VBox-libcrypto_TEMPLATE = LIBCRYPTO
44VBox-libcrypto_INCS = $(VBox-libcrypto_0_OUTDIR)
45VBox-libcrypto_SOURCES = \
46 asn1_dsa.c \
47 bsearch.c \
48 context.c \
49 core_algorithm.c \
50 core_fetch.c \
51 core_namemap.c \
52 cpt_err.c \
53 cpuid.c \
54 cryptlib.c \
55 ctype.c \
56 cversion.c \
57 der_writer.c \
58 ebcdic.c \
59 ex_data.c \
60 getenv.c \
61 info.c \
62 init.c \
63 initthread.c \
64 mem.c \
65 mem_clr.c \
66 mem_sec.c \
67 o_dir.c \
68 o_fopen.c \
69 o_init.c \
70 o_str.c \
71 o_time.c \
72 packet.c \
73 param_build.c \
74 param_build_set.c \
75 params.c \
76 params_dup.c \
77 params_from_text.c \
78 passphrase.c \
79 provider.c \
80 provider_child.c \
81 provider_conf.c \
82 provider_core.c \
83 provider_predefined.c \
84 punycode.c \
85 self_test_core.c \
86 sparse_array.c \
87 threads_iprt.c \
88 trace.c \
89 uid.c
90
91ifdef VBOX_WITH_CRYPTO_ASM
92 VBox-libcrypto_DEFS.x86 += OPENSSL_CPUID_OBJ=x86cpuid.o
93 VBox-libcrypto_SOURCES.x86 += $(VBOX_PATH_CRYPTO_GENASM)/x86cpuid.S
94 VBox-libcrypto_DEFS.amd64 += OPENSSL_CPUID_OBJ=x86_64cpuid.o
95 VBox-libcrypto_SOURCES.amd64 += $(VBOX_PATH_CRYPTO_GENASM)/x86_64cpuid.S
96else
97 VBox-libcrypto_SOURCES += mem_clr.c
98endif
99
100ifdef VBOX_WITH_OPENSSL_FIPS
101 VBox-libcrypto_SOURCES += o_fips.c fips_ers.c
102endif
103
104VBox-libcrypto_SOURCES += $(PATH_STAGE_LIB)/VBox-libproviders$(VBOX_SUFF_LIB)
105
106if defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS)
107 VBox-libcrypto_SOURCES += $(crypto_sha_1_TARGET)
108else if "$(SDK_VBOX_OPENSSL_INCS)" == "$(SDK_VBOX_OPENSSL_VBOX_DEFAULT_INCS)"
109 VBox-libcrypto_SOURCES += $(foreach sublib,$(VBOX_CRYPTO_SUBLIBS), $($(sublib)_1_TARGET))
110endif
111
112VBox-libcrypto_CLEAN = $(VBox-libcrypto_0_OUTDIR)/buildinf.h
113VBox-libcrypto_INTERMEDIATES = $(VBox-libcrypto_0_OUTDIR)/buildinf.h
114
115
116ifdef VBOX_WITH_32_ON_64_MAIN_API # 32-bit edition.
117 LIBRARIES += VBox-libcrypto-x86
118 VBox-libcrypto-x86_TEMPLATE = VBoxLibCrypto-x86
119 VBox-libcrypto-x86_EXTENDS = VBox-libcrypto
120 VBox-libcrypto-x86_SOURCES = $(filter %.c %.cpp,$(VBox-libcrypto_SOURCES)) \
121 $(PATH_STAGE_LIB)/VBox-libproviders-x86$(VBOX_SUFF_LIB)
122 $(foreach sublib,$(VBOX_CRYPTO_SUBLIBS_X86), $($(sublib)_1_TARGET))
123endif
124
125
126ifdef VBOX_NEED_EXTPACK_OPENSSL
127#
128# The extension pack libcrypto.
129#
130LIBRARIES += VBoxExtPack-libcrypto
131VBoxExtPack-libcrypto = For the Oracle Extension Pack
132VBoxExtPack-libcrypto_EXTENDS = VBox-libcrypto
133VBoxExtPack-libcrypto_DEFS = $(VBox-libcrypto_DEFS) VBOX_IN_EXTPACK
134VBoxExtPack-libcrypto_SOURCES = \
135 $(filter %.c %.cpp,$(VBox-libcrypto_SOURCES)) \
136 $(foreach sublib,$(VBOX_CRYPTO_SUBLIBS), $(VBoxExtPack-$(sublib)_1_TARGET))
137define def_VBoxExtPack_libcrypto_inherit
138 LIBRARIES += VBoxExtPack-$(sublib)
139 VBoxExtPack-$(sublib) = Oracle Extension Pack version of $(sublib)
140 VBoxExtPack-$(sublib)_EXTENDS = $(sublib)
141 VBoxExtPack-$(sublib)_EXTENDS_BY = appending
142 VBoxExtPack-$(sublib)_DEFS = VBOX_IN_EXTPACK
143 VBoxExtPack-$(sublib)_DEFPATH = $($(sublib)_DEFPATH)
144 ## @todo kBuild: DEFPATH isn't inherited! FIXME!
145endef
146$(foreach sublib,$(VBOX_CRYPTO_SUBLIBS), $(eval $(def_VBoxExtPack_libcrypto_inherit)))
147
148endif # VBOX_NEED_EXTPACK_OPENSSL
149
150
151#
152# ...
153#
154recreate-openssl-asm: $(VBOX_PATH_CRYPTO)/perlasm/x86asm.pl \
155 $(VBOX_PATH_CRYPTO)/x86cpuid.pl \
156 $(VBOX_PATH_CRYPTO)/x86_64cpuid.pl \
157 recreate-aes-asm \
158 recreate-bn-asm \
159 recreate-chacha-asm \
160 recreate-ec-asm \
161 recreate-md5-asm \
162 recreate-modes-asm \
163 recreate-rc4-asm \
164 recreate-sha-asm
165 perl $(VBOX_PATH_CRYPTO)/x86cpuid.pl elf -fPIC $(VBOX_PATH_CRYPTO)/genasm-elf/x86cpuid.S
166 perl $(VBOX_PATH_CRYPTO)/x86_64cpuid.pl elf $(VBOX_PATH_CRYPTO)/genasm-elf/x86_64cpuid.S
167 perl $(VBOX_PATH_CRYPTO)/x86cpuid.pl macosx $(VBOX_PATH_CRYPTO)/genasm-macosx/x86cpuid.S
168 perl $(VBOX_PATH_CRYPTO)/x86_64cpuid.pl macosx $(VBOX_PATH_CRYPTO)/genasm-macosx/x86_64cpuid.S
169 perl $(VBOX_PATH_CRYPTO)/x86cpuid.pl win32n $(VBOX_PATH_CRYPTO)/genasm-nasm/x86cpuid.S
170 perl $(VBOX_PATH_CRYPTO)/x86_64cpuid.pl nasm $(VBOX_PATH_CRYPTO)/genasm-nasm/x86_64cpuid.S
171
172
173include $(FILE_KBUILD_SUB_FOOTER)
174
175
176#
177# Generate
178#
179$(VBox-libcrypto_0_OUTDIR)/buildinf.h: $(VBOX_PATH_CRYPTO)/Makefile.kmk | $$(dir $$@)
180 $(call MSG_GENERATE,,$@)
181 $(QUIET)$(RM) -f $@
182 $(QUIET)$(APPEND) $@ '/* auto-generated by crypto/Makefile.kmk for crypto/cversion.c */'
183 $(QUIET)$(APPEND) $@ '#ifndef MK1MF_BUILD'
184 $(QUIET)$(APPEND) $@ '# define PLATFORM "$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)"'
185 $(QUIET)$(APPEND) $@ '# define DATE "$(date-utc )"'
186 $(QUIET)$(APPEND) $@ 'static const char compiler_flags[] ='
187 $(QUIET)$(APPEND) $@ ' "$(VBox-libcrypto_CFLAGS)";'
188 $(QUIET)$(APPEND) $@ '#endif'
189
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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