Skip to content

Instantly share code, notes, and snippets.

@y0ny0ns0n
Last active May 6, 2021 16:02
Show Gist options
  • Save y0ny0ns0n/c4e21f343ae013c9924f97c3e77452d7 to your computer and use it in GitHub Desktop.
Save y0ny0ns0n/c4e21f343ae013c9924f97c3e77452d7 to your computer and use it in GitHub Desktop.
VirtualBox 6.1.22( VirtualBox-6.1.22.tar.bz2 ) patch for windows build
diff --git a/Config.kmk b/Config.kmk
index 687c1c2..9eaf172 100644
--- a/Config.kmk
+++ b/Config.kmk
@@ -26,6 +26,12 @@ VBOX_ROOT_CONFIG_KMK_INCLUDED = 1
# kBuild stuff
#
+if defined(VBOX_SIGNING_MODE) && defined(VBOX_CROSS_CERTIFICATE_FILE)
+ VBOX_INTEGRITY_CHECK := /IntegrityCheck
+else
+ VBOX_INTEGRITY_CHECK := /IntegrityCheck:NO
+endif
+
# Build with umask 022 (requires kBuild r2556 to work, harmless on earlier).
$(set-umask 022)
@@ -3933,7 +3939,7 @@ ifndef $(1)_VBOX_RE_SIGNED_$(n)
$(call MSG_TOOL,SIGNTOOL,,$<,$@)
$(RM) -f -- "$@"
$(CP) -- "$<" "$@"
- $(VBOX_VCC_EDITBIN) /LargeAddressAware /DynamicBase /NxCompat /Release /IntegrityCheck \
+ $(VBOX_VCC_EDITBIN) /LargeAddressAware /DynamicBase /NxCompat /Release $(VBOX_INTEGRITY_CHECK) \
/Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
"$@"
$(call VBOX_SIGN_IMAGE_FN,$@)
@@ -4330,7 +4336,7 @@ ifdef VBOX_WITH_RAW_MODE
-Driver -Subsystem:NATIVE -Incremental:NO -Align:64 -MapInfo:Exports -NoD $(VBOX_VCC_LD_WERR) -Release -Debug -Opt:Ref -Opt:Icf \
-Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
-Stub:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com
- ifdef VBOX_SIGNING_MODE
+ if defined(VBOX_SIGNING_MODE) && defined(VBOX_CROSS_CERTIFICATE_FILE)
TEMPLATE_VBoxRc_LDFLAGS += -IntegrityCheck
endif
TEMPLATE_VBoxRc_LIBS = \
@@ -4475,7 +4481,7 @@ TEMPLATE_VBoxR0_LDFLAGS = -Ignore:4197 \
ifdef VBOX_WITH_DTRACE_R0
TEMPLATE_VBoxR0_LDFLAGS += -Merge:VTGPrLc.Data=VTGPrLc.Begin -Merge:VTGPrLc.End=VTGPrLc.Begin -Merge:VTGPrLc.Begin=VTGObj
endif
- ifdef VBOX_SIGNING_MODE
+ if defined(VBOX_SIGNING_MODE) && defined(VBOX_CROSS_CERTIFICATE_FILE)
TEMPLATE_VBoxR0_LDFLAGS += -IntegrityCheck
endif
TEMPLATE_VBoxR0_LIBS = \
@@ -4623,7 +4629,7 @@ ifeq ($(KBUILD_TARGET),win)
ifdef VBOX_WITH_DTRACE_R0DRV
TEMPLATE_VBOXR0DRV_LDFLAGS += -Merge:VTGPrLc.Data=VTGPrLc.Begin -Merge:VTGPrLc.End=VTGPrLc.Begin -Merge:VTGPrLc.Begin=VTGObj
endif
- ifdef VBOX_SIGNING_MODE
+ if defined(VBOX_SIGNING_MODE) && defined(VBOX_CROSS_CERTIFICATE_FILE)
TEMPLATE_VBOXR0DRV_LDFLAGS += -IntegrityCheck
endif
TEMPLATE_VBOXR0DRV_ORDERDEPS = $(VBOX_SIGN_DRIVER_ORDERDEPS)
@@ -5150,7 +5156,7 @@ ifeq ($(KBUILD_TARGET),win)
ifdef VBOX_WITH_DTRACE_R3
TEMPLATE_VBOXR3EXE_LDFLAGS += -Merge:VTGPrLc.Data=VTGPrLc.Begin -Merge:VTGPrLc.End=VTGPrLc.Begin -Merge:VTGPrLc.Begin=VTGObj
endif
- if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_HARDENING)
+ if defined(VBOX_SIGNING_MODE) && defined(VBOX_CROSS_CERTIFICATE_FILE) && defined(VBOX_WITH_HARDENING)
TEMPLATE_VBOXR3EXE_LDFLAGS += -IntegrityCheck
endif
@@ -6062,7 +6068,7 @@ ifeq ($(KBUILD_TARGET),win)
/DISALLOWLIB:libcmtd.lib \
/DISALLOWLIB:msvcrt$(VBOX_VCC_CRT_TYPE_N).lib \
/DISALLOWLIB:msvcprt$(VBOX_VCC_CRT_TYPE_N).lib
- if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_HARDENING)
+ if defined(VBOX_SIGNING_MODE) && defined(VBOX_CROSS_CERTIFICATE_FILE) && defined(VBOX_WITH_HARDENING)
TEMPLATE_VBOXMAINEXE_LDFLAGS += -IntegrityCheck
endif
ifdef VBOX_WITH_DTRACE_R3_MAIN
@@ -6654,7 +6660,7 @@ ifdef VBOX_WITH_QTGUI
/NOD /INCREMENTAL:NO /MAPINFO:EXPORTS /LargeAddressAware /DynamicBase /NxCompat /Release /Debug /Opt:Ref /Opt:Icf \
/Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
/STUB:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com
- if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_HARDENING)
+ if defined(VBOX_SIGNING_MODE) && defined(VBOX_CROSS_CERTIFICATE_FILE) && defined(VBOX_WITH_HARDENING)
TEMPLATE_VBOXQTGUIEXE_LDFLAGS += -IntegrityCheck
endif
TEMPLATE_VBOXQTGUIEXE_SDKS += $(VBOX_WINPSDK)
diff --git a/configure.vbs b/configure.vbs
index 922bae8..033e354 100644
--- a/configure.vbs
+++ b/configure.vbs
@@ -1095,7 +1095,7 @@ sub CheckForVisualCPP(strOptVC, strOptVCCommon, blnOptVCExpressEdition)
if (strPathVCCommon <> "") Then
EnvAppend "PATH", ";" & strPathVCCommon & "/IDE"
end if
- if Shell(DosSlashes(strPathVC & "/bin/cl.exe"), True) <> 0 then
+ if Shell(DosSlashes(strPathVC & "/bin/cl.exe") & " /?", True) <> 0 then
MsgError "Executing '" & strClExe & "' (which we believe to be the Visual C++ compiler driver) failed."
exit sub
end if
@@ -1986,7 +1986,6 @@ function CheckForCurlSub(strPathCurl)
CheckForCurlSub = False
LogPrint "trying: strPathCurl=" & strPathCurl
if LogFileExists(strPathCurl, "include/curl/curl.h") _
- And LogFindFile(strPathCurl, "libcurl.dll") <> "" _
And LogFindFile(strPathCurl, "libcurl.lib") <> "" _
then
CheckForCurlSub = True
@@ -2069,13 +2068,84 @@ function CheckForPython(strPathPython)
LogPrint "trying: strPathPython=" & strPathPython
if LogFileExists(strPathPython, "python.exe") then
- CfgPrint "VBOX_BLD_PYTHON := " & strPathPython & "\python.exe"
+ CfgPrint "VBOX_BLD_PYTHON := " & strPathPython & "/python.exe"
CheckForPython = True
end if
PrintResult "Python ", strPathPython
end function
+''
+' Checks for libvpx
+sub CheckForVpx(strOptVpx)
+ dim strPathVpx, str
+ strVpx = "libvpx"
+ PrintHdr strVpx
+
+ if strOptVpx = "" then
+ MsgError "Invalid path specified!"
+ exit sub
+ end if
+
+ if g_strTargetArch = "amd64" then
+ strVsBuildArch = "x64"
+ else
+ strVsBuildArch = "Win32"
+ end if
+ strLibPathVpx = "lib/" & strVsBuildArch & "/vpxmd.lib"
+
+ strPathVpx = ""
+ if LogFileExists(strOptVpx, "include/vpx/vpx_encoder.h") _
+ And LogFileExists(strOptVpx, strLibPathVpx) _
+ then
+ strPathVpx = UnixSlashes(PathAbs(strOptVpx))
+ CfgPrint "SDK_VBOX_VPX_INCS := " & strPathVpx & "/include"
+ CfgPrint "SDK_VBOX_VPX_LIBS := " & strPathVpx & "/" & strLibPathVpx
+ else
+ MsgError "Can't locate " & strVpx & ". " _
+ & "Please consult the configure.log and the build requirements."
+ exit sub
+ end if
+
+ PrintResult strVpx, strPathVpx
+end sub
+
+
+
+''
+' Checks for libopus
+sub CheckForOpus(strOptOpus)
+ dim strPathOpus, str
+ strOpus = "libopus"
+ PrintHdr strOpus
+
+ if strOptOpus = "" then
+ MsgError "Invalid path specified!"
+ exit sub
+ end if
+
+ if g_strTargetArch = "amd64" then
+ strVsBuildArch = "x64"
+ else
+ strVsBuildArch = "Win32"
+ end if
+ strLibPathOpus = "lib/" & strVsBuildArch & "/opus.lib"
+
+ strPathOpus = ""
+ if LogFileExists(strOptOpus, "include/opus.h") _
+ And LogFileExists(strOptOpus, strLibPathOpus) _
+ then
+ strPathOpus = UnixSlashes(PathAbs(strOptOpus))
+ CfgPrint "SDK_VBOX_OPUS_INCS := " & strPathOpus & "/include"
+ CfgPrint "SDK_VBOX_OPUS_LIBS := " & strPathOpus & "/" & strLibPathOpus
+ else
+ MsgError "Can't locate " & strOpus & ". " _
+ & "Please consult the configure.log and the build requirements."
+ exit sub
+ end if
+
+ PrintResult strOpus, strPathOpus
+end sub
''
' Show usage.
@@ -2111,6 +2181,8 @@ sub usage
Print " --with-libcurl=PATH "
Print " --with-libcurl32=PATH (only for 64-bit targets)"
Print " --with-python=PATH "
+ Print " --with-libvpx=PATH "
+ Print " --with-libopus=PATH "
end sub
@@ -2148,6 +2220,8 @@ Sub Main
strOptCurl = ""
strOptCurl32 = ""
strOptPython = ""
+ strOptVpx = ""
+ strOptOpus = ""
blnOptDisableCOM = False
blnOptDisableUDPTunnel = False
blnOptDisableSDL = False
@@ -2203,6 +2277,10 @@ Sub Main
strOptCurl32 = strPath
case "--with-python"
strOptPython = strPath
+ case "--with-libvpx"
+ strOptVpx = strPath
+ case "--with-libopus"
+ strOptOpus = strPath
case "--disable-com"
blnOptDisableCOM = True
case "--enable-com"
@@ -2292,6 +2370,10 @@ Sub Main
if (strOptPython <> "") then
CheckForPython strOptPython
end if
+
+ CheckForVpx strOptVpx
+ CheckForOpus strOptOpus
+
if g_blnInternalMode then
EnvPrint "call " & g_strPathDev & "/env.cmd %1 %2 %3 %4 %5 %6 %7 %8 %9"
end if
diff --git a/doc/manual/Config.kmk b/doc/manual/Config.kmk
index befee54..a0d1338 100644
--- a/doc/manual/Config.kmk
+++ b/doc/manual/Config.kmk
@@ -192,6 +192,8 @@ ifdef VBOX_XML_CATALOG
# quite correctly with file:////, doing incorrect filename transformations)
# and on Windows (where the absolute path starts with a drive letter).
VBOX_FILE_URL_MAYBE_SLASH = $(if $(eq $(KBUILD_HOST),win),/,)
+ VBOX_PATH_MANUAL_SRC_SLASHED = $(subst :/,:///,$(VBOX_PATH_MANUAL_SRC))
+ VBOX_PATH_MANUAL_OUTBASE_SLASHED = $(subst :/,:///,$(VBOX_PATH_MANUAL_OUTBASE))
#
# To avoid network I/O for fetching DTDs, we generate catalogs mapping the public
# entity IDs to local files. (Obviously, only done when we have local files.)
@@ -210,9 +212,13 @@ ifdef VBOX_XML_CATALOG
' <delegateURI uriStartString="http://www.oasis-open.org/docbook/" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
' <delegateURI uriStartString="http://docbook.org/" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
' <delegateSystem systemIdStartString="$(VBOX_PATH_MANUAL_SRC)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
+ ' <delegateSystem systemIdStartString="$(VBOX_PATH_MANUAL_SRC_SLASHED)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
' <delegateSystem systemIdStartString="$(VBOX_PATH_MANUAL_OUTBASE)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
+ ' <delegateSystem systemIdStartString="$(VBOX_PATH_MANUAL_OUTBASE_SLASHED)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
' <delegateURI uriStartString="$(VBOX_PATH_MANUAL_SRC)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
+ ' <delegateURI uriStartString="$(VBOX_PATH_MANUAL_SRC_SLASHED)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
' <delegateURI uriStartString="$(VBOX_PATH_MANUAL_OUTBASE)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
+ ' <delegateURI uriStartString="$(VBOX_PATH_MANUAL_OUTBASE_SLASHED)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
' <delegateURI uriStartString="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
' <delegateURI uriStartString="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_OUTBASE)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
'</catalog>'
@@ -264,9 +270,12 @@ ifdef VBOX_XML_CATALOG
'<?xml version="1.0"?>' \
'<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">' \
'<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">' \
- ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/common/oracle-accessibility-en.xml" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-accessibility-en.xml"/>' \
- ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/common/oracle-diversity.xml" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-diversity.xml"/>' \
- ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/common/oracle-support-en.xml" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-support-en.xml"/>' \
+ ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/common/oracle-accessibility-en.xml" uri="$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-accessibility-en.xml"/>' \
+ ' <system systemId="$(VBOX_PATH_MANUAL_SRC_SLASHED)/common/oracle-accessibility-en.xml" uri="$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-accessibility-en.xml"/>' \
+ ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/common/oracle-diversity.xml" uri="$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-diversity.xml"/>' \
+ ' <system systemId="$(VBOX_PATH_MANUAL_SRC_SLASHED)/common/oracle-diversity.xml" uri="$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-diversity.xml"/>' \
+ ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/common/oracle-support-en.xml" uri="$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-support-en.xml"/>' \
+ ' <system systemId="$(VBOX_PATH_MANUAL_SRC_SLASHED)/common/oracle-support-en.xml" uri="$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-support-en.xml"/>' \
' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/user_ChangeLogImpl.xml" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)/user_ChangeLogImpl.xml"/>' \
' <system systemId="$(VBOX_PATH_MANUAL_SRC)/titlepage-htmlhelp.xsl" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl"/>' \
$(foreach x,user_VBoxManage_CommandsOverview.xml user_isomakercmd-man.xml $(addprefix user_,$(VBOX_MANUAL_XML_REFENTRY_FILES) man_VBoxHeadless.xml man_vboximg-mount.xml)\
diff --git a/doc/manual/Makefile.kmk b/doc/manual/Makefile.kmk
index 2b154a8..e69de29 100644
--- a/doc/manual/Makefile.kmk
+++ b/doc/manual/Makefile.kmk
@@ -1,897 +0,0 @@
-# $Id: Makefile.kmk $
-## @file
-# Sub-Makefile for the VirtualBox User Manual, SDK reference and other manuals.
-#
-
-#
-# Copyright (C) 2006-2020 Oracle Corporation
-#
-# This file is part of VirtualBox Open Source Edition (OSE), as
-# available from http://www.virtualbox.org. This file is free software;
-# you can redistribute it and/or modify it under the terms of the GNU
-# General Public License (GPL) as published by the Free Software
-# Foundation, in version 2 as it comes in the "COPYING" file of the
-# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-#
-
-#
-# This slightly messy makefile transforms the DocBook XML source for the
-# user manual into presentation output. We support two targets:
-#
-# -- UserManual.pdf, generated by LaTex
-#
-# -- VirtualBox.chm
-#
-# Both files end up in PATH_STAGE_BIN.
-#
-# Both targets indirectly depend on the XML files in this directory;
-# "indirectly" because we first copy them to PATH_TARGET and hack them
-# up a bit for variable substitution and such (see below).
-# The toolchains are roughly like this:
-#
-# -- PDF file via Apache FOP: pre-process the XML files in PATH_TARGET,
-# then create a .FO file (another XML format for "formatted objects")
-# via xsltproc, then feed the .FO file to Apache FOP to create the PDF.
-#
-# -- PDF file via LaTeX: pre-process the XML files in PATH_TARGET, then
-# run our custom "dblatex" perl script on UserManual.xml, which parses
-# the XML (using the Perl SAX parsers) and dumps a matching LaTeX file
-# to UserManual.tex. This is then regularly processed by pdflatex to
-# generate PDF.
-#
-# -- CHM file: again, pre-process the XML files in PATH_TARGET, then use
-# xsltproc to create a .HHP file for the Microsoft Help Compiler, then
-# feed that file to it.
-#
-
-SUB_DEPTH = ../..
-include $(KBUILD_PATH)/subheader.kmk
-
-ifndef VBOX_DOC_MANUAL_CONFIG_KMK_INCLUDED
- include $(PATH_SUB_CURRENT)/Config.kmk
-endif
-
-
-#
-# Globals
-#
-
-# Error out if someone tries to override old globals.
-ifdef HTMLHELPOPTS
- $(error HTMLHELPOPTS was renamed to VBOX_HTMLHELP_OPTS!)
-endif
-ifdef DOCBOOKPATH
- $(error DOCBOOKPATH was renamed to VBOX_PATH_DOCBOOK!)
-endif
-ifdef DOCBOOKPATH
- $(error DOCBOOKPATH was renamed to VBOX_PATH_DOCBOOK!)
-endif
-ifdef XML_CATALOG
- $(error XML_CATALOG was renamed to VBOX_XML_CATALOG!)
-endif
-ifdef XML_CATALOG_DOCBOOK
- $(error XML_CATALOG_DOCBOOK was renamed to VBOX_XML_CATALOG_DOCBOOK!)
-endif
-ifdef VBOXMANAGEPATH
- $(error VBOXMANAGEPATH was renamed to VBOXMANAGEHELP_PATH!)
-endif
-ifdef PDFLATEX_INTERACTION
- $(error PDFLATEX_INTERACTION was renamed to VBOX_PDFLATEX_INTERACTION!)
-endif
-ifdef PDFLATEX
- $(error PDFLATEX was renamed to VBOX_PDFLATEX_CMD!)
-endif
-ifdef HHC
- $(error HHC was renamed to VBOX_HHC!)
-endif
-
-
-
-VBOXMANAGEHELP_PATH ?= $(PATH_STAGE_BIN)/VBoxManageHelp$(SUFF_EXE)
-
- # VBOX_PDFLATEX_INTERACTION = errorstopmode - Use this when you wants to figure out build failures
- # without catting the log a million times.
-VBOX_PDFLATEX_INTERACTION ?= batchmode
-ifeq ($(KBUILD_HOST),win)
- ifndef VBOX_PDFLATEX
- VBOX_PDFLATEX := $(firstword $(rsort $(wildcard $(PATH_DEVTOOLS)/win.x86/miktex-portable/*/miktex/bin/pdflatex.exe)))
- ifneq ($(VBOX_PDFLATEX),)
- VBOX_PDFLATEX_CMD = $(VBOX_PDFLATEX) -halt-on-error -interaction $(VBOX_PDFLATEX_INTERACTION)
- endif
- endif
- ifndef VBOX_PDFLATEX
- # Tell MiKTeX to automatically download packages if system wide install.
- VBOX_PDFLATEX := pdflatex
- VBOX_PDFLATEX_CMD = $(VBOX_PDFLATEX) -halt-on-error -interaction $(VBOX_PDFLATEX_INTERACTION) --enable-installer
- endif
-else
- VBOX_PDFLATEX ?= pdflatex
- VBOX_PDFLATEX_HALT = $(shell ( $(VBOX_PDFLATEX) -version | head -1 | grep 141592 > /dev/null ) && echo -halt-on-error )
- VBOX_PDFLATEX_CMD = pdflatex $(VBOX_PDFLATEX_HALT) -interaction $(VBOX_PDFLATEX_INTERACTION)
-endif
-
-# Windows HTML Help Workshop compiler (stupid thing always returns an error!)
-VBOX_HHC = -$(EXEC_X86_WIN32) $(VBOX_PATH_HTML_HELP_WORKSHOP)/hhc.exe
-
-
-# Additional xsltproc options when generating
-VBOX_HTMLHELP_OPTS ?=
-
-# SDK related globals.
-VBOX_MANUAL_APIREF_TMP = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef_apiref.xml
-VBOX_DOC_XIDL_SRC = $(PATH_ROOT)/src/VBox/Main/idl/VirtualBox.xidl
-VBOX_DOC_XIDL_SRC_TMP = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/VirtualBox.xidl.tmp
-
-
-#
-# Targets
-#
-
-BLDDIRS += $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/, $(VBOX_MANUAL_LANGUAGES))
-
-if defined(VBOX_WITH_DOCS) && (!defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_DOCS) || defined(VBOX_ONLY_SDK))
- if defined(VBOX_ONLY_SDK) || defined(VBOX_WITH_DOCS_SDKREF)
- INSTALLS += VBox-docs-sdkref
- endif
-
- ifdef VBOX_WITH_DOCS_HTML
- INSTALLS += VBox-docs-usermanual-html
- VBOX_PATH_BIN_HTML = $(PATH_STAGE_BIN)/UserManual-html.zip
- else # Do not build html.
- VBOX_PATH_BIN_HTML =
- endif
-
- ifdef VBOX_WITH_DOCS_CHM
- INSTALLS += VBox-docs-usermanual-chm
- VBOX_PATH_BIN_CHM = $(PATH_STAGE_BIN)/VirtualBox.chm
- else # Do not build chm.
- VBOX_PATH_BIN_CHM =
- endif
-
- ifndef VBOX_ONLY_SDK
- VBOX_MANUAL_PACK += \
- $(PATH_STAGE_BIN)/UserManual.pdf \
- $(VBOX_PATH_BIN_HTML) \
- $(VBOX_PATH_BIN_CHM)
- INSTALLS += VBox-docs-usermanual
-
- ifdef VBOX_WITH_DOCS_TRANSLATIONS
- INSTALLS += VBox-docs-usermanual-l10n
- VBOX_MANUAL_PACK += \
- $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_STAGE_BIN)/UserManual_$(f).pdf)
- ifdef VBOX_WITH_DOCS_CHM
- INSTALLS += VBox-docs-usermanual-l10n-chm
- VBOX_MANUAL_PACK += \
- $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_STAGE_BIN)/VirtualBox_$(f).chm)
- endif
- endif
- endif # !VBOX_ONLY_SDK
-
- ifdef VBOX_WITH_DOCS_ACCESSIBILITY
- INSTALLS += VBox-docs-accessibility
- INSTALLS += VBox-docs-accessibility-html
- endif
-
- ifdef VBOX_ONLY_DOCS
- PACKING += $(PATH_STAGE_BIN)/VBoxDocumentation.zip
- endif
-
- ifdef VBOX_WITH_DOCS_TRANSLATIONS
- VBOX_MANUAL_LANGUAGES += $(VBOX_MANUAL_ADD_LANGUAGES)
- endif
-
-$(foreach lang,$(VBOX_MANUAL_LANGUAGES), \
- $(eval VBOX_MANUAL_XML_FILES_GENERATED_$$(lang) := \
- $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/$$(lang)/user_,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \
- $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/overview_,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \
- $$(VBOX_PATH_MANUAL_OUTBASE)/user_VBoxManage_CommandsOverview.xml \
- $$(VBOX_PATH_MANUAL_OUTBASE)/$$(lang)/user_man_VBoxHeadless.xml \
- $$(VBOX_PATH_MANUAL_OUTBASE)/$$(lang)/user_man_vboximg-mount.xml \
- $$(VBOX_PATH_MANUAL_OUTBASE)/$$(lang)/user_isomakercmd-man.xml))
-
- VBOX_SDKREF_XML_FILES = \
- SDKRef.xml
-
- VBOX_ACCESSIBILITY_XML_FILES = \
- Accessibility.xml
-
- # Wildcard the images path for every supported language
- $(foreach f,$(VBOX_MANUAL_LANGUAGES), \
- $(eval VBOX_MANUAL_PNG_FILES_$$(f) := $$(patsubst $$(VBOX_PATH_MANUAL_SRC)/$$(f)/%,%,$$(wildcard $$(VBOX_PATH_MANUAL_SRC)/$$(f)/images/*.png))))
-
- VBOX_MANUAL_TEX_UNICODE_FILES = \
- $(wildcard $(VBOX_PATH_MANUAL_SRC)/texfiles/unicode/*)
-
- VBOX_MANUAL_LATEX_FILES_TARGET = \
- $(addprefix UserManual.,aux log out toc tex)
-
- VBOX_SDKREF_LATEX_FILES_TARGET = \
- $(addprefix SDKRef.,aux log out toc tex)
-
- VBOX_ACCESSIBILITY_LATEX_FILES_TARGET = \
- $(addprefix Accessibility.,aux log out toc tex)
-
- BLDDIRS += \
- $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/,\
- $(addsuffix /images, $(VBOX_MANUAL_LANGUAGES)) \
- $(addsuffix /html-single, $(VBOX_MANUAL_LANGUAGES)) \
- $(addsuffix /html-chunks, $(VBOX_MANUAL_LANGUAGES)) \
- $(addsuffix /HTMLHelp, $(VBOX_MANUAL_LANGUAGES)) \
- $(addsuffix /HTMLHelp/images, $(VBOX_MANUAL_LANGUAGES)) \
- )
-
- # Explicit cleaning has some overlap with default cleaning rules, since this
- # Makefile is using very complex conditionals for selectively creating
- # specific files, and not everyone remembers to use the same with "kmk clean".
- OTHER_CLEAN += \
- $(VBOX_XML_CATALOG) \
- $(VBOX_XML_CATALOG_DOCBOOK) \
- $(VBOX_XML_CATALOG_MANUAL) \
- $(VBOX_XML_ENTITIES) \
- $(VBOX_XML_XREF_TO_TEXT) \
- $(VBOX_XML_XREF_TO_TEXT).cat \
- $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/, \
- $(addprefix user_,$(VBOX_MANUAL_XML_REFENTRY_FILES)) \
- $(VBOX_MANUAL_XML_REFENTRY_FILES) \
- $(patsubst man_%,%.1,$(basename $(VBOX_MANUAL_XML_REFENTRY_FILES))) \
- man_VBoxHeadless.xml \
- user_man_VBoxHeadless.xml \
- man_vboximg-mount.xml \
- user_man_vboximg-mount.xml \
- isomakercmd-man.xml \
- user_isomakercmd-man.xml \
- $(VBOX_MANUAL_LATEX_FILES_TARGET) \
- $(VBOX_MANUAL_PNG_FILES_$(lang)) \
- $(notdir $(VBOX_MANUAL_TEX_UNICODE_FILES)) \
- $(addprefix HTMLHelp/,$(VBOX_MANUAL_PNG_FILES_$(lang))) \
- html-single/UserManual.html \
- $(addprefix HTMLHelp/, index.html go01.html) \
- $(addprefix html-chunks/, index.html go01.html) \
- $(foreach n,01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 \
- ,html-chunks/ch$(n).html \
- html-chunks/re$(n).html \
- HTMLHelp/ch$(n).html \
- HTMLHelp/re$(n).html \
- $(foreach d2,0 1 2 3 4 5 6 7 8 9,$(foreach d1,0 1 2 3 4 5 6 7 8 9,HTMLHelp/ch$(n)s$(d2)$(d1).html)) ) \
- $(foreach n,a b c \
- ,html-chunks/ap$(n).html \
- HTMLHelp/ap$(n).html \
- $(foreach s,01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20,HTMLHelp/ap$(n)s$(s).html) ) \
- $(foreach n,01 02 03 04 05 \
- ,html-chunks/pr$(n).html \
- HTMLHelp/pr$(n).html \
- $(foreach s,01 02 03 04 05 06 07 08,HTMLHelp/pr$(n)s$(s).html) ) \
- HTMLHelp/toc.hhc \
- HTMLHelp/htmlhelp.hhp \
- UserManual.pdf \
- VirtualBox.chm \
- ChangeLog.html \
- validatemanual.run \
- validateaccessibility.run \
- validatesdkref.run \
- )) \
- $(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl \
- $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/overview_,$(VBOX_MANUAL_XML_REFENTRY_FILES)) \
- $(VBOX_PATH_MANUAL_OUTBASE)/user_VBoxManage_CommandsOverview.xml \
- $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_STAGE_BIN)/UserManual_$(f).pdf) \
- $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_STAGE_BIN)/VirtualBox_$(f).chm) \
- $(PATH_STAGE_BIN)/UserManual.pdf \
- $(PATH_STAGE_BIN)/VirtualBox.chm \
- \
- $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/, \
- $(VBOX_SDKREF_LATEX_FILES_TARGET) \
- SDKRef.pdf \
- ) \
- $(PATH_STAGE_BIN)/sdk/docs/SDKRef.pdf \
- \
- $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/, \
- $(VBOX_ACCESSIBILITY_LATEX_FILES_TARGET) \
- html-single/Accessibility.html \
- Accessibility.pdf \
- ) \
- $(PATH_STAGE_BIN)/Accessibility.html \
- $(PATH_STAGE_BIN)/Accessibility.pdf \
- \
- $(VBOX_DOC_XIDL_SRC_TMP) \
- $(VBOX_MANUAL_APIREF_TMP)
-
-endif # if defined(VBOX_WITH_DOCS) && (!defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_DOCS) || defined(VBOX_ONLY_SDK))
-
-#
-# target for installing UserManual.pdf
-#
-VBox-docs-usermanual_INST = $(INST_BIN)
-VBox-docs-usermanual_MODE = a+r,u+w
-VBox-docs-usermanual_SOURCES = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/UserManual.pdf
-
-#
-# target for installing translated UserManual_*.pdf
-#
-VBox-docs-usermanual-l10n_INST = $(INST_BIN)
-VBox-docs-usermanual-l10n_MODE = a+r,u+w
-VBox-docs-usermanual-l10n_SOURCES = $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$(f)/UserManual.pdf=>UserManual_$(f).pdf)
-
-#
-# target for installing the chunked HTML docs
-#
-VBox-docs-usermanual-html_INST = $(INST_BIN)
-VBox-docs-usermanual-html_MODE = a+r,u+w
-VBox-docs-usermanual-html_SOURCES = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/UserManual.zip=>UserManual-html.zip
-
-#
-# target for installing VirtualBox.chm
-#
-VBox-docs-usermanual-chm_INST = $(INST_BIN)
-VBox-docs-usermanual-chm_MODE = a+r,u+w
-VBox-docs-usermanual-chm_SOURCES = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/VirtualBox.chm
-
-#
-# target for installing translated VirtualBox_*.chm
-#
-VBox-docs-usermanual-l10n-chm_INST = $(INST_BIN)
-VBox-docs-usermanual-l10n-chm_MODE = a+r,u+w
-VBox-docs-usermanual-l10n-chm_SOURCES = $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$(f)/VirtualBox.chm=>VirtualBox_$(f).chm)
-
-#
-# target for installing SDKRef.pdf
-#
-VBox-docs-sdkref_INST = $(INST_SDK)docs/
-VBox-docs-sdkref_MODE = a+r,u+w
-VBox-docs-sdkref_SOURCES = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.pdf
-
-#
-# target for installing Accessibility.pdf
-#
-VBox-docs-accessibility_INST = $(INST_BIN)
-VBox-docs-accessibility_MODE = a+r,u+w
-VBox-docs-accessibility_SOURCES = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/Accessibility.pdf
-
-#
-# target for installing Accessibility.html
-#
-VBox-docs-accessibility-html_INST = $(INST_BIN)
-VBox-docs-accessibility-html_MODE = a+r,u+w
-VBox-docs-accessibility-html_SOURCES = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/Accessibility.html
-
-
-
-if defined(VBOX_WITH_DOCS) && (!defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_DOCS) || defined(VBOX_ONLY_SDK))
-
-##
-# Morph man pages into manual sections.
-# $(evalcall2 def_vbox_refentry_to_user_sect1)
-# @param 1 Language.
-# @param 2 the refentry xml base file name.
-# @param 3 the full refentry xml file path.
-define def_vbox_refentry_to_user_sect1
-$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/user_$(2): $(3) \
- $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-sect1.xsl \
- $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \
- $$(VBOX_XML_ENTITIES) $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@)
- $$(call MSG_TOOL,xsltproc $$(notdir $$(filter %.xsl,$$^)),,$$(filter %.xml,$$^),$$@)
- $$(QUIET)$$(RM) -f "$$@"
- $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@ $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-sect1.xsl $$<
-endef
-$(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \
-man_VBoxHeadless.xml \
-man_vboximg-mount.xml \
-, $(evalcall2 def_vbox_refentry_to_user_sect1,$(lang),$(file),$(VBOX_PATH_MANUAL_SRC)/$(lang)/$(file))))
-$(foreach lang,$(VBOX_MANUAL_LANGUAGES) \
-,$(evalcall2 def_vbox_refentry_to_user_sect1,$(lang),isomakercmd-man.xml,$(PATH_ROOT)/src/VBox/Runtime/common/fs/isomakercmd-man.xml))
-
-
-# Generates the VBoxManage command overview include file (shared between
-# languages) from the refsynopsisdiv section of the man pages.
-$(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/overview_,$(VBOX_MANUAL_XML_REFENTRY_FILES)): \
- $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-overview.xsl \
- $$(patsubst overview_%,$$(VBOX_PATH_MANUAL_SRC)/en_US/%,$$(notdir $$@)) \
- $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \
- $(VBOX_XML_ENTITIES) | $$(dir $$@)
- $(call MSG_TOOL,xsltproc $(notdir $(filter %.xsl,$^)),,$(firstword $(filter %.xml,$^)),$@)
- $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) --output "$@" $< $(filter %.xml,$^)
-
-$(VBOX_PATH_MANUAL_OUTBASE)/user_VBoxManage_CommandsOverview.xml: $(VBOXMANAGEHELP_PATH) $(MAKEFILE_CURRENT) | $$(dir $$@)
- $(call MSG_GENERATE,,$@,)
- $(QUIET)$(RM) -f $@ $@.dumpopts
- $(QUIET)$(APPEND) -tn "$@" \
- '<?xml version="1.0" encoding="UTF-8"?>' \
- '<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">' \
- '<sect1> <!-- this will be skipped via xpointer in the include. --> '
- $(QUIET)$(REDIRECT) -wo $@.dumpopts -E 'VBOX_LOG_FLAGS=disabled' -E 'VBOX_LOG_DEST=nofile' \
- $(if $(eq $(KBUILD_TARGET),darwin), -E 'DYLD_FALLBACK_LIBRARY_PATH=$(dir $(LIB_RUNTIME))') \
- -- \
- $(VBOXMANAGEHELP_PATH) --dumpopts
- $(QUIET)$(SED) \
- -e ':a' \
- -e 'N' \
- -e '$(DOLLAR)!ba' \
- -e 's/</\&lt\;/g' \
- -e 's/>/\&gt\;/g' \
- -e 's/\n*$(DOLLAR)/<\/screen>/' \
- -e 's/^/<screen>/' \
- --append $@ $@.dumpopts
- $(QUIET)$(RM) -f $@.dumpopts
- $(QUIET)$(APPEND) -n "$@" \
- ' <remark role="VBoxManage-overview">' \
- $(foreach refentry, $(filter man_VBoxManage%,$(VBOX_MANUAL_XML_REFENTRY_FILES)) \
- , ' <xi:include href="overview_$(refentry)" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />') \
- ' </remark>' \
- '</sect1>'
-
-
-
-
-##########################################################################################
-#
-# Shared rules for PDF generation
-#
-##########################################################################################
-
-ifndef VBOX_OSE
-# copy ucs.sty and related files
-$(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/ucs.sty):
- $(call MSG_L1,Copying unicode support for LaTeX)
- $(QUIET)$(INSTALL_STAGING) -m0644 -- $(VBOX_MANUAL_TEX_UNICODE_FILES) "$(@D)"
-endif
-
-# copy the PNG files.
-# Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input.
-define def_vbox_cp_images_pdf
-local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)
-$(addprefix $$(out_dir)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \
- $$(out_dir)/%: $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@)
- $$(call MSG_L1,Copying temporary $$< => $$@)
- $$(QUIET)$$(INSTALL_STAGING) -m0644 -- '$$<' '$$(@D)'
-endef
-$(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_cp_images_pdf))
-
-
-##########################################################################################
-#
-# UserManual.pdf
-#
-##########################################################################################
-
-
-# Generate PDF from LaTeX
-# Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input.
-define def_vbox_usermanual_tex_to_pdf
-local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)
-$$(out_dir)/UserManual.pdf: \
- $$(out_dir)/UserManual.tex \
- $$(if $$(VBOX_OSE),,$$(out_dir)/ucs.sty) \
- $$(addprefix $$(out_dir)/,$$(VBOX_MANUAL_PNG_FILES_$(lang))) | $$$$(dir $$$$@)
-# PDF generation via Latex: generate the .tex file
- $$(call MSG_L1,pdflatex $$< (four passes) -> $$@)
- $$(QUIET)$$(REDIRECT) -w+ti /dev/null -C $$(@D) -- $$(VBOX_PDFLATEX_CMD) UserManual.tex
- $$(QUIET)$$(REDIRECT) -w+ti /dev/null -C $$(@D) -- $$(VBOX_PDFLATEX_CMD) UserManual.tex
- $$(QUIET)$$(REDIRECT) -w+ti /dev/null -C $$(@D) -- $$(VBOX_PDFLATEX_CMD) UserManual.tex
- $$(QUIET)$$(REDIRECT) -w+ti /dev/null -C $$(@D) -- $$(VBOX_PDFLATEX_CMD) UserManual.tex
- $$(QUIET)$$(SED) -ne '/Warning: Hyper reference/p' $$(basename $$<).log
- $$(QUIET)$$(SED) -n \
- -e '/Warning: There were \(undefined references\|multiply-defined labels\)/{p; q 1}' \
- $$(basename $$@).log
- $$(call MSG_L1,Fresh LaTeX-generated PDF is now at $$@)
-endef
-$(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_tex_to_pdf))
-
-# Generate LaTeX from XML
-# Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input.
-define def_vbox_usermanual_xml_to_tex
-local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)
-$$(out_dir)/UserManual.tex: \
- $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/$(lang)/,$$(VBOX_MANUAL_XML_FILES)) \
- $$(VBOX_MANUAL_XML_FILES_COMMON) \
- $$(VBOX_MANUAL_XML_FILES_GENERATED_$(lang)) \
- $$(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl \
- $$(if $$(VBOX_HAVE_XMLLINT),$$(out_dir)/validatemanual.run,) \
- $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \
- $$(VBOX_XML_ENTITIES) $$(MAKEFILE_CURRENT) | $$$$(dir $$$$@)
- $$(call MSG_TOOL,xsltproc $$(notdir $$(filter %.xsl,$$^)),,$$(firstword $$(filter %.xml,$$^)),$$@)
- $$(QUIET)$$(RM) -f $$(addprefix $$(@D)/,$$(VBOX_MANUAL_LATEX_FILES_TARGET))
-# generate TeX source from processed docbook and store it in UserManual.tex.tmp;
-# pass current language to xsltproc in TARGETLANG variable
- $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --stringparam TARGETLANG $(lang) \
- -o $$@.tmp $$(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl $$<
-# for pretty quotes, replace " with `` or '' depending on whether it's at the start of a word;
-# the \QUOTE{} was inserted by docbook2latex.xsl for all quotes _outside_ of screen sections
- $$(QUIET)$$(SED) \
- -e 's|^\\QUOTE{}|\\OQ{}|g' \
- -e 's|\(\W\)\\QUOTE{}|\1\\OQ{}|g' \
- -e 's|\(\w\)\\QUOTE{}|\1\\CQ{}|g' \
- --output $$@ $$@.tmp
- $$(QUIET)$$(RM) -f $$@.tmp
-endef
-$(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_xml_to_tex))
-
-# Useful aliases
-usermanual UserManual.pdf:: $(PATH_STAGE_BIN)/UserManual.pdf
-
-debug-usermanual:
- $(MAKE) --pretty-command-printing -j1 VBOX_PDFLATEX_INTERACTION=errorstopmode $(PATH_STAGE_BIN)/UserManual.pdf
-
-#
-# Generate rules for validating the UserManual.xml. These are invoked
-# automatically at build time, but can also be manually invoked via the
-# 'validatemanual' and 'validatemanual_<lang>' aliases.
-#
-define def_vbox_validate_xml
-validatemanual_$(lang):: $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/validatemanual.run
-$$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/validatemanual.run: \
- $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/$(lang)/,$$(VBOX_MANUAL_XML_FILES)) \
- $$(VBOX_MANUAL_XML_FILES_COMMON) \
- $$(VBOX_MANUAL_XML_FILES_GENERATED_$(lang)) \
- $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \
- $$(VBOX_XML_ENTITIES) $$(MAKEFILE_CURRENT) | $$$$(dir $$$$@)
- $$(call MSG_L1,Validating $$<)
- $$(QUIET)$$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $$<
- $$(QUIET)$$(APPEND) -t "$$@" "done"
-endef
-$(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_validate_xml))
-
-
-# Handy aliases.
-validatemanual:: $(foreach lang,$(VBOX_MANUAL_LANGUAGES),validatemanual_$(lang))
-
-
-
-#
-# SDKRef.pdf
-#
-
-# Replace <tt> tags in VirtualBox.xidl.
-$(VBOX_DOC_XIDL_SRC_TMP): $(VBOX_DOC_XIDL_SRC) $(MAKEFILE_CURRENT) | $$(dir $$@)
- $(call MSG_L1,Generating $@)
- $(QUIET)$(SED) -e 's|@a \+\(\w\+\)|<tt>\1</tt>|g' \
- -e 's|@c \+\(\w\+\)|<tt>\1</tt>|g' \
- --output $@ $<
-
-# Generate SDKRef_apiref.xml as a docbook file excerpt that will be referenced from the SDKRef.xml.
-$(VBOX_MANUAL_APIREF_TMP): $(VBOX_PATH_MANUAL_SRC)/xidl2docbook.xsl $(VBOX_DOC_XIDL_SRC_TMP)
- $(call MSG_L1,Generating $@)
- $(QUIET)$(VBOX_XSLTPROC) $(VBOX_XSLTPROC_OPTS) --xinclude --nonet -o $@ $< $(VBOX_DOC_XIDL_SRC_TMP)
-
-# Turn SDKRef.xml into LaTeX.
-$(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.tex: \
- $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_SDKREF_XML_FILES)) \
- $(VBOX_MANUAL_APIREF_TMP) \
- $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl \
- $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatesdkref.run,) \
- $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \
- $(VBOX_XML_ENTITIES) $(MAKEFILE_CURRENT) | $$(dir $$@)
- $(call MSG_TOOL,xsltproc $(notdir $(filter %.xsl,$^)),,$(firstword $(filter %.xml,$^)),$@)
- $(QUIET)$(RM) -f $(addprefix $(@D/),$(VBOX_SDKREF_LATEX_FILES_TARGET))
-# generate TeX source from processed docbook and store it in SDKRef.tex.tmp
- $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) --stringparam TARGETLANG en_US \
- -o $@.tmp $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl $<
-# for pretty quotes, replace " with `` or '' depending on whether it's at the start of a word;
-# the \QUOTE{} was inserted by docbook2latex.xsl for all quotes _outside_ of screen sections
- $(QUIET)$(SED) \
- -e 's|^\\QUOTE{}|\\OQ{}|g' \
- -e 's|\(\W\)\\QUOTE{}|\1\\OQ{}|g' \
- -e 's|\(\w\)\\QUOTE{}|\1\\CQ{}|g' \
- --output $@ $@.tmp
- $(QUIET)$(RM) -f $@.tmp
-
-# Turn SDKRef.tex into a PDF.
-$(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.pdf: \
- $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.tex \
- $(if $(VBOX_OSE),,$(VBOX_PATH_MANUAL_OUTBASE)/en_US/ucs.sty) \
- $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) | $$(dir $$@)
- $(call MSG_L1,pdflatex $< (three passes))
- $(QUIET)$(REDIRECT) -C $(<D) -- $(VBOX_PDFLATEX_CMD) SDKRef.tex
- $(QUIET)$(REDIRECT) -C $(<D) -- $(VBOX_PDFLATEX_CMD) SDKRef.tex
- $(QUIET)$(REDIRECT) -C $(<D) -- $(VBOX_PDFLATEX_CMD) SDKRef.tex
- $(QUIET)$(SED) -ne '/Warning: Hyper reference/p' $(basename $<).log
- $(QUIET)$(SED) -n \
- -e '/Warning: There were \(undefined references\|multiply-defined labels\)/{p; q 1}' \
- $(basename $<).log
- $(call MSG_L1,Fresh LaTeX-generated PDF is now at $@)
-
-# Validating SDKRef.xml. It is invoked automatically at build time,
-# but can also be manually invoked via the 'validate-sdkref' alias.
-$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatesdkref.run: \
- $(VBOX_PATH_MANUAL_SRC)/en_US/SDKRef.xml \
- $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_SDKREF_XML_FILES)) \
- $(VBOX_MANUAL_APIREF_TMP) \
- $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \
- $(VBOX_XML_ENTITIES) $(MAKEFILE_CURRENT) | $$(dir $$@)
- $(call MSG_L1,Validating $<)
- $(QUIET)$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $<
- $(QUIET)$(APPEND) -t "$@" "done"
-
-
-# Handy aliases.
-validate-sdkref:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatesdkref.run
-sdkref:: $(PATH_STAGE_BIN)/sdk/docs/SDKRef.pdf
-
-
-
-#
-# Accessibility.pdf
-#
-
-# Turn Accessibility.xml into LaTeX.
-$(VBOX_PATH_MANUAL_OUTBASE)/en_US/Accessibility.tex: \
- $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_ACCESSIBILITY_XML_FILES)) \
- $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl \
- $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validateaccessibility.run,) \
- $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \
- $(VBOX_XML_ENTITIES) $(MAKEFILE_CURRENT) | $$(dir $$@)
- $(call MSG_TOOL,xsltproc $(notdir $(filter %.xsl,$^)),,$(firstword $(filter %.xml,$^)),$@)
- $(QUIET)$(RM) -f $(addprefix $(@D/),$(VBOX_ACCESSIBILITY_LATEX_FILES_TARGET))
-# generate TeX source from processed docbook and store it in Accessibility.tex.tmp
- $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) --stringparam TARGETLANG en_US \
- -o $@.tmp $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl $<
-# for pretty quotes, replace " with `` or '' depending on whether it's at the start of a word;
-# the \QUOTE{} was inserted by docbook2latex.xsl for all quotes _outside_ of screen sections
- $(QUIET)$(SED) \
- -e 's|^\\QUOTE{}|\\OQ{}|g' \
- -e 's|\(\W\)\\QUOTE{}|\1\\OQ{}|g' \
- -e 's|\(\w\)\\QUOTE{}|\1\\CQ{}|g' \
- --output $@ $@.tmp
- $(QUIET)$(RM) -f $@.tmp
-
-# Turn Accessibility.tex into a PDF.
-$(VBOX_PATH_MANUAL_OUTBASE)/en_US/Accessibility.pdf: \
- $(VBOX_PATH_MANUAL_OUTBASE)/en_US/Accessibility.tex \
- $(if $(VBOX_OSE),,$(VBOX_PATH_MANUAL_OUTBASE)/en_US/ucs.sty) \
- $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) | $$(dir $$@)
- $(call MSG_L1,pdflatex $< (three passes))
- $(QUIET)$(REDIRECT) -C $(<D) -- $(VBOX_PDFLATEX_CMD) Accessibility.tex
- $(QUIET)$(REDIRECT) -C $(<D) -- $(VBOX_PDFLATEX_CMD) Accessibility.tex
- $(QUIET)$(REDIRECT) -C $(<D) -- $(VBOX_PDFLATEX_CMD) Accessibility.tex
- $(QUIET)$(SED) -ne '/Warning: Hyper reference/p' $(basename $<).log
- $(QUIET)$(SED) -n \
- -e '/Warning: There were \(undefined references\|multiply-defined labels\)/{p; q 1}' \
- $(basename $<).log
- $(call MSG_L1,Fresh LaTeX-generated PDF is now at $@)
-
-$(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/Accessibility.html: \
- $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_ACCESSIBILITY_XML_FILES)) \
- $(VBOX_DOCBOOK_HTML_ONE_PAGE_FORMATCFG) \
- $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \
- $(VBOX_XML_ENTITIES) | $$(dir $$@)
- $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@)
- $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) \
- --output $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/Accessibility.html \
- $(VBOX_PATH_MANUAL_SRC)/docbook-html-one-page-formatcfg.xsl \
- $<
-
-# Validating Accessibility.xml. It is invoked automatically at build time,
-# but can also be manually invoked via the 'validate-accessibility' alias.
-$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validateaccessibility.run: \
- $(VBOX_PATH_MANUAL_SRC)/en_US/Accessibility.xml \
- $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_ACCESSIBILITY_XML_FILES)) \
- $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \
- $(VBOX_XML_ENTITIES) $(MAKEFILE_CURRENT) | $$(dir $$@)
- $(call MSG_L1,Validating $<)
- $(QUIET)$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $<
- $(QUIET)$(APPEND) -t "$@" "done"
-
-
-# Handy aliases.
-validate-accessibility:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/validateaccessibility.run
-accessibility:: $(PATH_STAGE_BIN)/Accessibility.pdf
-accessibility-html:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/Accessibility.html
-
-
-
-ifdef VBOX_WITH_DOCS_CHM
- #
- # VirtualBox.chm
- #
- # We first generate a .hhp help source file from the preprocessed
- # DocBook XML files, as defined above, then feed that into the
- # Microsoft Help Compiler.
- #
- VBOX_DOCBOOK_HTMLHELP_FORMATCFG = \
- $(VBOX_PATH_MANUAL_SRC)/docbook-htmlhelp-formatcfg.xsl \
- $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl \
- $(VBOX_PATH_MANUAL_SRC)/common-html-formatcfg.xsl
-
- # Prepare the XSL file for our title page, htmlhelp variant.
- $(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl: \
- $(VBOX_PATH_MANUAL_SRC)/titlepage-htmlhelp.xml $(MAKEFILE_CURRENT) | $$(dir $$@)
- $(call MSG_L1,xsltproc $<)
- $(QUIET)$(RM) -f $@.tmp $@
- $(QUIET)$(VBOX_XSLTPROC) --xinclude --nonet -o $@.tmp $(VBOX_PATH_DOCBOOK)/template/titlepage.xsl $<
- $(QUIET)$(MV) -f $@.tmp $@
-
- # Generate CHM from HHP
- # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input.
- define def_vbox_usermanual_hhp_to_chm
- local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)
- $$(out_dir)/VirtualBox.chm: \
- $$(out_dir)/HTMLHelp/htmlhelp.hhp \
- $$(addprefix $$(out_dir)/HTMLHelp/,$$(VBOX_MANUAL_PNG_FILES_$(lang))) \
- | $$$$(dir $$$$@)
- $$(call MSG_L1,hhc $$<,=> $$@)
- $$(QUIET)$$(RM) -f $$@
- $$(QUIET)$$(VBOX_HHC) $$(subst /,\\,$$<)
- $$(call MSG_L1,Fresh CHM is now at $$@)
- endef
- $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_hhp_to_chm))
-
- # Generate HHP from XML
- # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input.
- define def_vbox_usermanual_xml_to_hhp
- local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)
- $$(out_dir)/HTMLHelp/htmlhelp.hhp: \
- $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/$(lang)/,$$(VBOX_MANUAL_XML_FILES)) \
- $$(VBOX_MANUAL_XML_FILES_COMMON) \
- $$(VBOX_MANUAL_XML_FILES_GENERATED_$(lang)) \
- $$(VBOX_DOCBOOK_HTMLHELP_FORMATCFG) \
- $$(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl \
- $$(if $$(VBOX_HAVE_XMLLINT),$$(out_dir)/validatemanual.run,) \
- $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \
- $$(VBOX_XML_ENTITIES) | $$$$(dir $$$$@)
- $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@)
- $$(QUIET)$$(RM) -f $$@
- $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$(@D)/ \
- --stringparam htmlhelp.chm \
- $$(subst /,\\,$$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/VirtualBox.chm) \
- $$(HTMLHELPOPTS) $$(VBOX_PATH_MANUAL_SRC)/docbook-htmlhelp-formatcfg.xsl \
- $$<
- endef
- $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_xml_to_hhp))
-
- # copy the PNG files.
- # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input.
- define def_vbox_cp_images_htmlhelp
- local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/HTMLHelp
- $(addprefix $$(out_dir)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \
- $$(out_dir)/%: $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@)
- $$(call MSG_L1,Copying temporary $$< => $$@)
- $$(QUIET)$$(INSTALL_STAGING) -m0644 -- '$$<' '$$(@D)'
- endef
- $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(eval $(def_vbox_cp_images_htmlhelp)))
-
-endif # VBOX_WITH_DOCS_CHM
-
-
-# Packing the docs into a zip file
-$(PATH_STAGE_BIN)/VBoxDocumentation.zip: $(VBOX_MANUAL_PACK)
- $(call MSG_L1,Packing documentation $@)
- $(QUIET)$(RM) -f $@
- $(QUIET)$(REDIRECT) -C $(PATH_STAGE_BIN) -- $(VBOX_ZIP) -9 $@ $(notdir $^)
-
-
-##########################################################################################
-#
-# UserManual.html
-#
-##########################################################################################
-VBOX_DOCBOOK_HTML_ONE_PAGE_FORMATCFG = \
- $(VBOX_PATH_MANUAL_SRC)/docbook-html-one-page-formatcfg.xsl \
- $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl \
- $(VBOX_PATH_MANUAL_SRC)/common-html-formatcfg.xsl
-
-$(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/UserManual.html: \
- $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_XML_FILES)) \
- $(VBOX_MANUAL_XML_FILES_COMMON) \
- $(VBOX_MANUAL_XML_FILES_GENERATED_en_US) \
- $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) \
- $(VBOX_DOCBOOK_HTML_ONE_PAGE_FORMATCFG) \
- $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatemanual.run,) \
- $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \
- $(VBOX_XML_ENTITIES) | $$(dir $$@)
- $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@)
- $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) \
- --output $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/UserManual.html \
- $(VBOX_PATH_MANUAL_SRC)/docbook-html-one-page-formatcfg.xsl \
- $<
-
-VBOX_DOCBOOK_HTML_CHUNKS_FORMATCFG = \
- $(VBOX_PATH_MANUAL_SRC)/docbook-html-chunks-formatcfg.xsl \
- $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl \
- $(VBOX_PATH_MANUAL_SRC)/common-html-formatcfg.xsl
-
-$(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html: \
- $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_XML_FILES)) \
- $(VBOX_MANUAL_XML_FILES_COMMON) \
- $(VBOX_MANUAL_XML_FILES_GENERATED_en_US) \
- $(VBOX_DOCBOOK_HTML_CHUNKS_FORMATCFG) \
- $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) \
- $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatemanual.run,) \
- $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \
- $(VBOX_XML_ENTITIES) | $$(dir $$@)
- $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@)
- $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) \
- --output $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html \
- --stringparam chunk.section.depth 0 \
- $(VBOX_PATH_MANUAL_SRC)/docbook-html-chunks-formatcfg.xsl \
- $<
-
-$(VBOX_PATH_MANUAL_OUTBASE)/en_US/UserManual.zip: \
- $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/UserManual.html \
- $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html \
- $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US))
- $(call MSG_L1,Packing documentation $@)
- $(QUIET)$(RM) -f $@
- $(QUIET)$(REDIRECT) -C $(VBOX_PATH_MANUAL_OUTBASE)/en_US/ -- $(VBOX_ZIP) \
- -9 -r $@ html-single html-chunks $(VBOX_MANUAL_PNG_FILES_en_US)
-
-html:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/UserManual.html
-html:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html
-html-zip:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/UserManual.zip
-
-
-#
-# ChangeLog.html
-#
-# This XSLT rule formats en_US/user_ChangeLog.xml (which includes the actual change log
-# contained in user_ChangeLogImpl.xml) as a standalone HTML file.
-#
-$(VBOX_PATH_MANUAL_OUTBASE)/en_US/ChangeLog.html: \
- $(VBOX_PATH_MANUAL_SRC)/en_US/docbook-changelog-formatcfg.xsl \
- $(VBOX_PATH_MANUAL_OUTBASE)/en_US/user_ChangeLog.xml \
- $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \
- $(VBOX_XML_ENTITIES) | $$(dir $$@)
- $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@)
- $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) --output "$@" "$<" $(filter %.xml,$^)
- $(call MSG_L1,Fresh ChangeLog.html is now at $@)
-
-cl-html:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/ChangeLog.html
-
-
-
-endif # if defined(VBOX_WITH_DOCS) && (!defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_DOCS) || defined(VBOX_ONLY_SDK))
-
-
-#
-# VBoxManage man pages (parts also required by VBoxManage built-in help).
-#
-
-##
-# Emits rules for preprocessing refentry sources (applying remarks element),
-# and for producing the actual man pages.
-# $(evalcall2 def_vbox_refentry_to_manpage)
-# @param 1 The language
-# @param 2 The file name (no path).
-define def_vbox_refentry_to_manpage
-$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(2): \
- $$(VBOX_PATH_MANUAL_SRC)/$(1)/$(2) \
- $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl \
- $$(VBOX_XML_XREF_TO_TEXT) \
- $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \
- $$(VBOX_XML_ENTITIES) $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@)
- $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@)
- $$(QUIET)$$(RM) -f "$$@"
- $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@ \
- $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl $$<
- $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@.tmp $$(VBOX_XML_XREF_TO_TEXT) $$@
- $$(QUIET)$$(MV) -f -- "$$@.tmp" "$$@"
-if defined(VBOX_HAVE_XMLLINT)
- $$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $$@
-endif
-
-$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(patsubst man_%,%.1,$(basename $(2))): \
- $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(2) \
- $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage.xsl \
- $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \
- $$(VBOX_XML_ENTITIES) $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@)
- $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@)
- $$(QUIET)$$(RM) -f "$$@"
- $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@ $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage.xsl $$<
-endef
-$(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \
-, $(evalcall2 def_vbox_refentry_to_manpage,$(lang),$(file))))
-
-
-# Handy aliases.
-validate-manpages:: $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_XML_REFENTRY_FILES))
-man-experiment:: $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \
- ,$$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/$(patsubst man_%,%.1,$(basename $(file)))))
-
-#
-# Manually updating the DHCP option list taken from VirtualBox.xidl
-#
-dhcpoptions: $(PATH_ROOT)/doc/manual/en_US/man_VBoxManage-dhcpserver-dhcpoptions.xsl \
- $(PATH_ROOT)/src/VBox/Main/idl/VirtualBox.xidl
- $(call VBOX_XSLTPROC) --output "$(PATH_ROOT)/doc/manual/en_US/man_VBoxManage-dhcpserver-dhcpoptions.xml" $+
-
-
-include $(FILE_KBUILD_SUB_FOOTER)
-
diff --git a/src/VBox/Makefile.kmk b/src/VBox/Makefile.kmk
index 80ede29..e293f9b 100644
--- a/src/VBox/Makefile.kmk
+++ b/src/VBox/Makefile.kmk
@@ -95,6 +95,11 @@ else
ifdef VBOX_WITH_ADDITIONS
include $(PATH_SUB_CURRENT)/Additions/Makefile.kmk
endif
+ ifndef VBOX_WITHOUT_ADDITIONS_ISO
+ $(VBOX_PATH_ADDITIONS_ISO)/VBoxGuestAdditions.iso:
+ $(QUIET)$(MKDIR) -p $(@D)
+ $(VBOX_RETRY) $(TOOL_CURL_FETCH) http://download.virtualbox.org/virtualbox/$(VBOX_VERSION_STRING_RAW)/VBoxGuestAdditions_$(VBOX_VERSION_STRING_RAW).iso -o $@
+ endif
ifdef VBOX_WITH_VALIDATIONKIT
include $(PATH_SUB_CURRENT)/ValidationKit/Makefile.kmk
endif
diff --git a/src/VBox/Runtime/Makefile.kmk b/src/VBox/Runtime/Makefile.kmk
index a2018d6..4fa29b6 100644
--- a/src/VBox/Runtime/Makefile.kmk
+++ b/src/VBox/Runtime/Makefile.kmk
@@ -2245,7 +2245,9 @@ endif
VBoxRT_LIBS.win = \
$(PATH_SDK_$(VBOX_WINDDK)_LIB)/vccomsup.lib \
$(PATH_SDK_$(VBOX_WINDDK)_LIB)/wbemuuid.lib \
- $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib
+ $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib \
+ $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/crypt32.lib \
+ $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/bcrypt.lib
VBoxRT_LDFLAGS.darwin = \
-framework IOKit \
-framework CoreFoundation \
@@ -2388,7 +2390,9 @@ endif
VBoxRT-x86_LIBS.win = \
$(PATH_SDK_$(VBOX_WINDDK)_LIB.x86)/vccomsup.lib \
$(PATH_SDK_$(VBOX_WINDDK)_LIB.x86)/wbemuuid.lib \
- $(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_LIB)/delayimp.lib
+ $(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_LIB)/delayimp.lib \
+ $(PATH_SDK_$(VBOX_WINPSDK)_LIB.x86)/crypt32.lib \
+ $(PATH_SDK_$(VBOX_WINPSDK)_LIB.x86)/bcrypt.lib
VBoxRT-x86_SOURCES.win = $(filter-out %.def %.rc,$(VBoxRT_SOURCES.win)) \
$(VBoxRT-x86_0_OUTDIR)/VBoxRT-x86.def
diff --git a/src/VBox/Runtime/r3/win/VBoxRT-openssl-1.1plus.def b/src/VBox/Runtime/r3/win/VBoxRT-openssl-1.1plus.def
index 5ac7c9a..c96c368 100644
--- a/src/VBox/Runtime/r3/win/VBoxRT-openssl-1.1plus.def
+++ b/src/VBox/Runtime/r3/win/VBoxRT-openssl-1.1plus.def
@@ -213,3 +213,8 @@
BN_mod_exp_simple
BN_ucmp
+
+ OpenSSL_version_num
+ DH_generate_parameters_ex
+ DH_new
+ ASN1_STRING_get0_data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment