VirtualBox

source: vbox/trunk/src/VBox/Runtime/tools/Makefile.kmk

最後變更 在這個檔案是 108216,由 vboxsync 提交於 4 週 前

Runtime: Introduce bldRTIasl, a RTIasl variant which can be used during the build process, bugref:10733

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 10.2 KB
 
1# $Id: Makefile.kmk 108216 2025-02-13 18:25:20Z vboxsync $
2## @file
3# Sub-Makefile for the IPRT tools.
4#
5
6#
7# Copyright (C) 2006-2024 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# The contents of this file may alternatively be used under the terms
26# of the Common Development and Distribution License Version 1.0
27# (CDDL), a copy of it is provided in the "COPYING.CDDL" file included
28# in the VirtualBox distribution, in which case the provisions of the
29# CDDL are applicable instead of those of the GPL.
30#
31# You may elect to license modified versions of this file under the
32# terms and conditions of either the GPL or the CDDL or both.
33#
34# SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0
35#
36
37SUB_DEPTH = ../../../..
38include $(KBUILD_PATH)/subheader.kmk
39
40
41if !defined(VBOX_ONLY_EXTPACKS) && !defined(VBOX_ONLY_DOCS)
42 # RTIsoMaker - ISO image maker - build version.
43 ifeq ($(KBUILD_TARGET),win) # Needed for repacking guest additions.
44 PROGRAMS += bldRTIsoMaker
45 bldRTIsoMaker_INSTTYPE = stage
46 else
47 BLDPROGS += bldRTIsoMaker
48 endif
49 bldRTIsoMaker_TEMPLATE = VBoxAdvBldProg
50 bldRTIsoMaker_SOURCES = \
51 RTIsoMaker.cpp \
52 ../common/misc/buildconfig.cpp
53 bldRTIsoMaker_DEFS = \
54 IPRT_BLDCFG_SCM_REV=$(if $(VBOX_SVN_REV_FALLBACK),$(VBOX_SVN_REV_FALLBACK),$(VBOX_SVN_REV)) \
55 IPRT_BLDCFG_VERSION_MAJOR=$(VBOX_VERSION_MAJOR) \
56 IPRT_BLDCFG_VERSION_MINOR=$(VBOX_VERSION_MINOR) \
57 IPRT_BLDCFG_VERSION_BUILD=$(VBOX_VERSION_BUILD)
58 ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING
59 bldRTIsoMaker_DEFS += \
60 IPRT_BLDCFG_VERSION_STRING="$(VBOX_VERSION_STRING)" \
61 IPRT_BLDCFG_TARGET="$(KBUILD_TARGET)" \
62 IPRT_BLDCFG_TARGET_ARCH="$(KBUILD_TARGET_ARCH)" \
63 IPRT_BLDCFG_TYPE="$(KBUILD_TYPE)"
64 else
65 bldRTIsoMaker_DEFS += \
66 IPRT_BLDCFG_VERSION_STRING=\"$(VBOX_VERSION_STRING)\" \
67 IPRT_BLDCFG_TARGET=\"$(KBUILD_TARGET)\" \
68 IPRT_BLDCFG_TARGET_ARCH=\"$(KBUILD_TARGET_ARCH)\" \
69 IPRT_BLDCFG_TYPE=\"$(KBUILD_TYPE)\"
70 endif
71 bldRTIsoMaker_INCS = ../include
72endif
73
74
75if !defined(VBOX_ONLY_DOCS)
76
77 # RTManifest is a tool for creating and verifying manifest files - build version.
78 BLDPROGS += bldRTManifest
79 bldRTManifest_TEMPLATE = VBoxAdvBldProg
80 bldRTManifest_SOURCES = RTManifest.cpp
81
82 # RTIasl - ACPI source language compiler/decompiler. - build version.
83 BLDPROGS += bldRTIasl
84 bldRTIasl_TEMPLATE := VBoxAdvBldProg
85 bldRTIasl_INCS := ../include
86 bldRTIasl_DEFS := IPRT_IN_BUILD_TOOL
87 bldRTIasl_SOURCES := \
88 RTIasl.cpp \
89 ../common/acpi/acpi.cpp \
90 ../common/acpi/acpi-ast.cpp \
91 ../common/acpi/acpi-compiler.cpp \
92 ../common/acpi/acpi-decompiler.cpp \
93 ../common/acpi/acpi-ns.cpp \
94 ../common/script/scriptlex.cpp
95
96 if !defined(VBOX_ONLY_EXTPACKS) || "$(KBUILD_TARGET)" == "win" || "$(KBUILD_TARGET)" == "darwin"
97 # RTSignTool - Signing utility - build version. Signed on windows so we can get the certificate from it.
98 BLDPROGS += bldRTSignTool
99 bldRTSignTool_TEMPLATE := VBoxAdvBldProg
100 bldRTSignTool_INCS := ../include
101 bldRTSignTool_SOURCES := RTSignTool.cpp
102 bldRTSignTool_DEFS := IPRT_IN_BUILD_TOOL
103 bldRTSignTool_LDFLAGS.darwin := \
104 -framework CoreFoundation \
105 -framework Security
106 bldRTSignTool_LIBS.win := Crypt32.lib NCrypt.lib
107 ifndef VBOX_WITH_BLD_RTSIGNTOOL_SIGNING
108 bldRTSignTool_DEFS += IPRT_SIGNTOOL_NO_SIGNING
109 else # RuntimeBldProg is missing a lot and is built w/o IPRT_WITH_OPENSSL. So, include missing and rebuilt openssl deps.
110 bldRTSignTool_SDKS += VBoxOpenSslBldProg
111 bldRTSignTool_DEFS += IPRT_WITH_OPENSSL
112 bldRTSignTool_SOURCES += \
113 ../common/crypto/pkix-signature-builtin.cpp \
114 ../common/crypto/pkix-signature-ossl.cpp \
115 ../common/crypto/store.cpp \
116 ../common/crypto/digest-builtin.cpp \
117 ../common/crypto/iprt-openssl.cpp \
118 ../common/crypto/key.cpp \
119 ../common/crypto/key-file.cpp \
120 ../common/crypto/key-openssl.cpp \
121 ../common/crypto/pkcs7-sign.cpp \
122 ../common/crypto/RTCrRandBytes-openssl.cpp
123 if1of ($(KBUILD_HOST), darwin win)
124 bldRTSignTool_SOURCES += ../r3/$(KBUILD_HOST)/RTCrStoreCreateSnapshotById-$(KBUILD_HOST).cpp
125 else
126 bldRTSignTool_SOURCES += ../generic/RTCrStoreCreateSnapshotById-generic.cpp
127 endif
128 endif
129 endif
130
131 if !defined(VBOX_ONLY_EXTPACKS)
132 # RTLdrCheckImports - import checker.
133 PROGRAMS += bldRTLdrCheckImports
134 bldRTLdrCheckImports_TEMPLATE = VBoxAdvBldProg
135 bldRTLdrCheckImports_DEFS = IPRT_IN_BUILD_TOOL
136 bldRTLdrCheckImports_SOURCES = RTLdrCheckImports.cpp
137 endif
138endif
139
140if !defined(VBOX_ONLY_BUILD)
141
142 # RTCat is a tool for displaying files.
143 PROGRAMS += RTCat
144 RTCat_TEMPLATE = VBoxR3Tool
145 RTCat_SOURCES = RTCat.cpp
146 RTCat_SOURCES += ../VBox/LoadVBoxDDU.cpp
147
148 # RTChMod - our chmod clone.
149 PROGRAMS += RTChMod
150 RTChMod_TEMPLATE = VBoxR3Tool
151 RTChMod_SOURCES = RTChMod.cpp
152
153 # RTCp - our cp clone.
154 PROGRAMS += RTCp
155 RTCp_TEMPLATE = VBoxR3Tool
156 RTCp_SOURCES = RTCp.cpp
157 RTCp_SOURCES += ../VBox/LoadVBoxDDU.cpp
158
159 # RTIsoMaker - ISO image maker - build version.
160 PROGRAMS += RTIsoMaker
161 RTIsoMaker_TEMPLATE = VBoxR3Tool
162 RTIsoMaker_SOURCES = RTIsoMaker.cpp
163 RTIsoMaker_SOURCES += ../VBox/LoadVBoxDDU.cpp
164
165 # RTLs is a tool for listing file information.
166 PROGRAMS += RTLs
167 RTLs_TEMPLATE = VBoxR3Tool
168 RTLs_SOURCES = RTLs.cpp
169 RTLs_SOURCES += ../VBox/LoadVBoxDDU.cpp
170
171 # RTRm is a tool for removing files and directories.
172 PROGRAMS += RTRm
173 RTRm_TEMPLATE = VBoxR3Tool
174 RTRm_SOURCES = RTRm.cpp
175 RTRm_SOURCES += ../VBox/LoadVBoxDDU.cpp
176
177 # RTManifest is a tool for creating and verifying manifest files.
178 PROGRAMS += RTManifest
179 RTManifest_TEMPLATE = VBoxR3Tool
180 RTManifest_SOURCES = RTManifest.cpp
181 RTManifest_SOURCES += ../VBox/LoadVBoxDDU.cpp
182
183 # RTLdrFlt is similar to c++filt, except that it's for VMMR0.r0 stacks.
184 PROGRAMS += RTLdrFlt
185 RTLdrFlt_TEMPLATE = VBoxR3Tool
186 RTLdrFlt_SOURCES = RTLdrFlt.cpp
187
188 # RTFtpServer implements a simple FTP server.
189 PROGRAMS += RTFtpServer
190 RTFtpServer_TEMPLATE = VBoxR3Tool
191 RTFtpServer_SOURCES = RTFtpServer.cpp
192
193 # RTGzip - our gzip clone (for testing the gzip/gunzip streaming code)
194 PROGRAMS += RTGzip
195 RTGzip_TEMPLATE = VBoxR3Tool
196 RTGzip_SOURCES = RTGzip.cpp
197 RTGzip_SOURCES += ../VBox/LoadVBoxDDU.cpp
198
199 ifdef VBOX_WITH_LIBCURL
200 # RTHttp - our http/https fetcher (for testing the http client API).
201 PROGRAMS += RTHttp
202 RTHttp_TEMPLATE = VBoxR3Tool
203 RTHttp_SOURCES = RTHttp.cpp
204 endif
205
206 # RTHttpServer implements a simple HTTP server.
207 PROGRAMS += RTHttpServer
208 RTHttpServer_TEMPLATE = VBoxR3Tool
209 RTHttpServer_SOURCES = RTHttpServer.cpp
210 ifdef IPRT_HTTP_WITH_WEBDAV
211 RTHttpServer_DEFS += IPRT_HTTP_WITH_WEBDAV
212 endif
213
214 # RTLdrCheckImports - import checker.
215 PROGRAMS += RTLdrCheckImports
216 RTLdrCheckImports_TEMPLATE = VBoxR3Tool
217 RTLdrCheckImports_SOURCES = RTLdrCheckImports.cpp
218 RTLdrCheckImports_SOURCES += ../VBox/LoadVBoxDDU.cpp
219
220 # RTMkDir - our mkdir clone.
221 PROGRAMS += RTMkDir
222 RTMkDir_TEMPLATE = VBoxR3Tool
223 RTMkDir_SOURCES = RTMkDir.cpp
224
225 # RTMkPasswd - our mkpasswd clone.
226 PROGRAMS += RTMkPasswd
227 RTMkPasswd_TEMPLATE = VBoxR3Tool
228 RTMkPasswd_SOURCES = RTMkPasswd.cpp
229
230 # RTRmDir - our mkdir clone.
231 PROGRAMS += RTRmDir
232 RTRmDir_TEMPLATE = VBoxR3Tool
233 RTRmDir_SOURCES = RTRmDir.cpp
234
235 # RTShutdown - similar (but not identical) to a typical unix shutdown command.
236 PROGRAMS += RTShutdown
237 RTShutdown_TEMPLATE = VBoxR3Tool
238 RTShutdown_SOURCES = RTShutdown.cpp
239
240 # RTTar - our tar clone (for testing the tar/gzip/gunzip streaming code)
241 PROGRAMS += RTTar
242 RTTar_TEMPLATE = VBoxR3Tool
243 RTTar_SOURCES = RTTar.cpp
244 RTTar_SOURCES += ../VBox/LoadVBoxDDU.cpp
245
246 # RTUnzip - our unzip clone (for testing the unzip streaming code)
247 PROGRAMS += RTUnzip
248 RTUnzip_TEMPLATE = VBoxR3Tool
249 RTUnzip_SOURCES = RTUnzip.cpp
250 RTUnzip_SOURCES += ../VBox/LoadVBoxDDU.cpp
251
252 # RTNtDbgHelp - our tar clone (for testing the tar/gzip/gunzip streaming code)
253 PROGRAMS.win += RTNtDbgHelp
254 RTNtDbgHelp_TEMPLATE = VBoxR3Tool
255 RTNtDbgHelp_SOURCES = RTNtDbgHelp.cpp
256
257 # RTDbgSymCache - Symbol cache manager.
258 PROGRAMS += RTDbgSymCache
259 RTDbgSymCache_TEMPLATE = VBoxR3Tool
260 RTDbgSymCache_SOURCES = RTDbgSymCache.cpp
261
262 ifdef VBOX_WITH_LIBCURL
263 # RTDbgSymSrv - Symbol cache proxy.
264 PROGRAMS += RTDbgSymSrv
265 RTDbgSymSrv_TEMPLATE = VBoxR3Tool
266 RTDbgSymSrv_SOURCES = RTDbgSymSrv.cpp
267 endif
268
269 # RTSignTool - Signing utility.
270 PROGRAMS += RTSignTool
271 RTSignTool_TEMPLATE := VBoxR3Tool
272 RTSignTool_INCS := ../include
273 RTSignTool_SOURCES := RTSignTool.cpp
274 RTSignTool_LIBS = $(PATH_STAGE_LIB)/SUPR3$(VBOX_SUFF_LIB)
275 RTSignTool_LIBS.win = Crypt32.lib NCrypt.lib
276
277 # RTTraceLogTool - Trace log collection and dissection tool.
278 PROGRAMS += RTTraceLogTool
279 RTTraceLogTool_TEMPLATE = VBoxR3Tool
280 RTTraceLogTool_SOURCES = RTTraceLogTool.cpp
281
282 # RTFuzzMaster - Fuzzing master tool.
283 PROGRAMS += RTFuzzMaster
284 RTFuzzMaster_TEMPLATE = VBoxR3Tool
285 RTFuzzMaster_SOURCES = RTFuzzMaster.cpp
286
287 # RTFuzzClient - Fuzzing client tool.
288 PROGRAMS += RTFuzzClient
289 RTFuzzClient_TEMPLATE = VBoxR3Tool
290 RTFuzzClient_SOURCES = RTFuzzClient.cpp
291
292 # RTEfiFatExtract - Extracting single files from a fat EFI binary.
293 PROGRAMS += RTEfiFatExtract
294 RTEfiFatExtract_TEMPLATE = VBoxR3Tool
295 RTEfiFatExtract_SOURCES = RTEfiFatExtract.cpp
296
297 # RTEfiSigDb - EFI signature database management tool.
298 PROGRAMS += RTEfiSigDb
299 RTEfiSigDb_TEMPLATE = VBoxR3Tool
300 RTEfiSigDb_SOURCES = RTEfiSigDb.cpp
301
302 if1of ($(KBUILD_TARGET), darwin linux solaris win)
303 # RTKrnlModInfo - our lsmod/kextstat clone (for testing the RTKrnlMod code).
304 PROGRAMS += RTKrnlModInfo
305 RTKrnlModInfo_TEMPLATE = VBoxR3Tool
306 RTKrnlModInfo_SOURCES = RTKrnlModInfo.cpp
307 endif
308
309 # RTDtc - Devicetree compiler tool.
310 PROGRAMS += RTDtc
311 RTDtc_TEMPLATE = VBoxR3Tool
312 RTDtc_SOURCES = RTDtc.cpp
313
314 # RTIasl - ACPI source language compiler/decompiler.
315 PROGRAMS += RTIasl
316 RTIasl_TEMPLATE = VBoxR3Tool
317 RTIasl_SOURCES = RTIasl.cpp
318
319endif # !VBOX_ONLY_BUILD
320
321include $(FILE_KBUILD_SUB_FOOTER)
322
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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