Skip to content

Commit 41ddefc

Browse files
committed
add/os2: watcom building hacks
svn:sync-xref-src-repo-rev: r173848
1 parent 1d74d34 commit 41ddefc

1 file changed

Lines changed: 74 additions & 36 deletions

File tree

src/VBox/Additions/os2/Config.kmk

Lines changed: 74 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# $Id: Config.kmk 112403 2026-01-11 19:29:08Z knut.osmundsen@oracle.com $
1+
# $Id: Config.kmk 114043 2026-04-29 08:33:43Z knut.osmundsen@oracle.com $
22
## @file
33
# kBuild Configuration file for the OS/2 Guest Additions.
44
#
@@ -46,43 +46,81 @@ PATH_TOOL_ALP ?= D:/Toolkit/v4.52/bin
4646
#
4747
# Template for VAC308 Gradd stuff.
4848
#
49-
TEMPLATE_VBoxOs2Vac308 = Template for VisualAge for C++ v3.08 / Gradd
50-
TEMPLATE_VBoxOs2Vac308_TOOL = VAC308
51-
TEMPLATE_VBoxOs2Vac308_ASTOOL = ALP
52-
TEMPLATE_VBoxOs2Vac308_ARTOOL = GCC3OMF
53-
TEMPLATE_VBoxOs2Vac308_INST = $(INST_ADDITIONS)
54-
TEMPLATE_VBoxOs2Vac308_DEFS = RT_OS_OS2 IN_RING3 ## @todo IN_GUEST IN_GUEST_R3 IN_RT_R3
49+
ifndef VBOX_USE_WATCOM_FOR_OS2
50+
TEMPLATE_VBoxOs2Vac308 = Template for VisualAge for C++ v3.08 / Gradd
51+
TEMPLATE_VBoxOs2Vac308_TOOL = VAC308
52+
TEMPLATE_VBoxOs2Vac308_ASTOOL = ALP
53+
TEMPLATE_VBoxOs2Vac308_ARTOOL = GCC3OMF
54+
TEMPLATE_VBoxOs2Vac308_INST = $(INST_ADDITIONS)
55+
TEMPLATE_VBoxOs2Vac308_DEFS = RT_OS_OS2 IN_RING3 ## @todo IN_GUEST IN_GUEST_R3 IN_RT_R3
5556

56-
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Gn+ # Do not generate default libraries in object.
57-
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Gr+ # Allow object code to run at ring 0.
58-
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Rn # Produce code to run with no runtime environment.
59-
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Sp1 # Pack aggregate members on 1 byte alignment.
60-
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Tm- # No debug memory management.
61-
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Q+ # Suppress the logo. (in VAC308.kmk?)
62-
TEMPLATE_VBoxOs2Vac308_CFLAGS += /C+ # Perform compile only, no link. (in VAC308.kmk?)
63-
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Ss+ # Allow the double slash (//) format to be used for comments. (C only)
64-
TEMPLATE_VBoxOs2Vac308_CFLAGS += /G5 # Generate code optimized for use on a Pentium processor.
65-
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Ti+ # Generate debugging information.
66-
TEMPLATE_VBoxOs2Vac308_CFLAGS += /O+ # Optimize generated code.
67-
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Oi+ # Turn on function inlining.
68-
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Ge- # Use the version of the runtime library that assumes a DLL is being built. (_DLL_InitTerm++)
69-
TEMPLATE_VBoxOs2Vac308_CFLAGS := $(strip $(TEMPLATE_VBoxOs2Vac308_CFLAGS))
70-
TEMPLATE_VBoxOs2Vac308_CXXFLAGS = $(VBoxGradd_CFLAGS)
57+
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Gn+ # Do not generate default libraries in object.
58+
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Gr+ # Allow object code to run at ring 0.
59+
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Rn # Produce code to run with no runtime environment.
60+
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Sp1 # Pack aggregate members on 1 byte alignment.
61+
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Tm- # No debug memory management.
62+
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Q+ # Suppress the logo. (in VAC308.kmk?)
63+
TEMPLATE_VBoxOs2Vac308_CFLAGS += /C+ # Perform compile only, no link. (in VAC308.kmk?)
64+
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Ss+ # Allow the double slash (//) format to be used for comments. (C only)
65+
TEMPLATE_VBoxOs2Vac308_CFLAGS += /G5 # Generate code optimized for use on a Pentium processor.
66+
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Ti+ # Generate debugging information.
67+
TEMPLATE_VBoxOs2Vac308_CFLAGS += /O+ # Optimize generated code.
68+
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Oi+ # Turn on function inlining.
69+
TEMPLATE_VBoxOs2Vac308_CFLAGS += /Ge- # Use the version of the runtime library that assumes a DLL is being built. (_DLL_InitTerm++)
70+
TEMPLATE_VBoxOs2Vac308_CFLAGS := $(strip $(TEMPLATE_VBoxOs2Vac308_CFLAGS))
71+
TEMPLATE_VBoxOs2Vac308_CXXFLAGS = $(VBoxGradd_CFLAGS)
7172

72-
TEMPLATE_VBoxOs2Vac308_LDFLAGS += -B"/Nologo" # Quiet! (ILINK308.kmk?)
73-
TEMPLATE_VBoxOs2Vac308_LDFLAGS += -B"/Debug" # Debug info (ILINK308.kmk?)
74-
TEMPLATE_VBoxOs2Vac308_LDFLAGS += -B"/Map" # Generate map file (ILINK308.kmk?)
75-
TEMPLATE_VBoxOs2Vac308_LDFLAGS += -B"/Linenumbers" # Map file with linenumbers.
76-
TEMPLATE_VBoxOs2Vac308_LDFLAGS += -B"/Exepack:2" # Compress the file using exepack 2.
77-
TEMPLATE_VBoxOs2Vac308_LDFLAGS += -B"/Alignment:32" # Pack LX pages on 32 byte boundaries (default is 512 bytes).
78-
TEMPLATE_VBoxOs2Vac308_LDFLAGS += -B"/NoDefaultLibrarySearch"
79-
TEMPLATE_VBoxOs2Vac308_LDFLAGS := $(strip $(TEMPLATE_VBoxOs2Vac308_LDFLAGS))
73+
TEMPLATE_VBoxOs2Vac308_LDFLAGS += -B"/Nologo" # Quiet! (ILINK308.kmk?)
74+
TEMPLATE_VBoxOs2Vac308_LDFLAGS += -B"/Debug" # Debug info (ILINK308.kmk?)
75+
TEMPLATE_VBoxOs2Vac308_LDFLAGS += -B"/Map" # Generate map file (ILINK308.kmk?)
76+
TEMPLATE_VBoxOs2Vac308_LDFLAGS += -B"/Linenumbers" # Map file with linenumbers.
77+
TEMPLATE_VBoxOs2Vac308_LDFLAGS += -B"/Exepack:2" # Compress the file using exepack 2.
78+
TEMPLATE_VBoxOs2Vac308_LDFLAGS += -B"/Alignment:32" # Pack LX pages on 32 byte boundaries (default is 512 bytes).
79+
TEMPLATE_VBoxOs2Vac308_LDFLAGS += -B"/NoDefaultLibrarySearch"
80+
TEMPLATE_VBoxOs2Vac308_LDFLAGS := $(strip $(TEMPLATE_VBoxOs2Vac308_LDFLAGS))
8081

81-
TEMPLATE_VBoxOs2Vac308_INCS = \
82-
$(PATH_DDKVIDEO)/rel/os2c/include/base/os2 \
83-
$(PATH_DDKVIDEO)/rel/os2c/include/base/os2/16bit
82+
TEMPLATE_VBoxOs2Vac308_INCS = \
83+
$(PATH_DDKVIDEO)/rel/os2c/include/base/os2 \
84+
$(PATH_DDKVIDEO)/rel/os2c/include/base/os2/16bit
8485

85-
TEMPLATE_VBoxOs2Vac308_LATE_LIBS = \
86-
$(PATH_DDKVIDEO)/rel/os2c/lib/os2/os2386.lib \
87-
$(PATH_TOOL_VAC308_LIB)/cppon30.lib
86+
TEMPLATE_VBoxOs2Vac308_LATE_LIBS = \
87+
$(PATH_DDKVIDEO)/rel/os2c/lib/os2/os2386.lib \
88+
$(PATH_TOOL_VAC308_LIB)/cppon30.lib
89+
else # VBOX_USE_WATCOM_FOR_OS2
90+
TEMPLATE_VBoxOs2Vac308 = Template for OpenWatcom / Gradd
91+
TEMPLATE_VBoxOs2Vac308_BLD_TRG := os2
92+
TEMPLATE_VBoxOs2Vac308_BLD_TRG_ARCH := x86
93+
TEMPLATE_VBoxOs2Vac308_TOOL := OPENWATCOM
94+
TEMPLATE_VBoxOs2Vac308_ASTOOL := NASM
95+
TEMPLATE_VBoxOs2Vac308_ARTOOL := OPENWATCOM
96+
TEMPLATE_VBoxOs2Vac308_LDTOOL := OPENWATCOM-WL
97+
TEMPLATE_VBoxOs2Vac308_INST = $(INST_ADDITIONS)
98+
TEMPLATE_VBoxOs2Vac308_DEFS = RT_OS_OS2 IN_RING3 ## @todo IN_GUEST IN_GUEST_R3 IN_RT_R3
99+
100+
TEMPLATE_VBoxOs2Vac308_CFLAGS += -zl # Do not generate default libraries in object.
101+
#TEMPLATE_VBoxOs2Vac308_CFLAGS += /Gr+ # Allow object code to run at ring 0.
102+
#TEMPLATE_VBoxOs2Vac308_CFLAGS += /Rn # Produce code to run with no runtime environment.
103+
TEMPLATE_VBoxOs2Vac308_CFLAGS += -Zp1 # Pack aggregate members on 1 byte alignment.
104+
#TEMPLATE_VBoxOs2Vac308_CFLAGS += /Ss+ # Allow the double slash (//) format to be used for comments. (C only)
105+
#TEMPLATE_VBoxOs2Vac308_CFLAGS += /G5 # Generate code optimized for use on a Pentium processor.
106+
TEMPLATE_VBoxOs2Vac308_CFLAGS += -d2 -hc # Generate codeview debugging information.
107+
TEMPLATE_VBoxOs2Vac308_CFLAGS += -ox # Optimize generated code.
108+
TEMPLATE_VBoxOs2Vac308_CFLAGS += -of+ # always generate stack frames
109+
TEMPLATE_VBoxOs2Vac308_CFLAGS += -oie # Turn on function inlining.
110+
#TEMPLATE_VBoxOs2Vac308_CFLAGS += /Ge- # Use the version of the runtime library that assumes a DLL is being built. (_DLL_InitTerm++)
111+
TEMPLATE_VBoxOs2Vac308_CFLAGS += -w=4 # Warning level 4?
112+
TEMPLATE_VBoxOs2Vac308_CFLAGS := $(strip $(TEMPLATE_VBoxOs2Vac308_CFLAGS))
113+
TEMPLATE_VBoxOs2Vac308_CXXFLAGS = $(VBoxGradd_CFLAGS)
114+
115+
TEMPLATE_VBoxOs2Vac308_LDFLAGS = form os2 lx dll
116+
TEMPLATE_VBoxOs2Vac308_LDFLAGS += option NODefaultlibs, internalrelocs, togglerelocs
117+
TEMPLATE_VBoxOs2Vac308_LDFLAGS += debug codeview all
118+
119+
TEMPLATE_VBoxOs2Vac308_INCS = \
120+
$(PATH_DDKVIDEO)/rel/os2c/include/base/os2 \
121+
$(PATH_DDKVIDEO)/rel/os2c/include/base/os2/16bit
122+
123+
TEMPLATE_VBoxOs2Vac308_LATE_LIBS = \
124+
$(PATH_DDKVIDEO)/rel/os2c/lib/os2/os2386.lib
125+
endif
88126

0 commit comments

Comments
 (0)