1 # 2 # Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 # 5 # This code is free software; you can redistribute it and/or modify it 6 # under the terms of the GNU General Public License version 2 only, as 7 # published by the Free Software Foundation. 8 # 9 # This code is distributed in the hope that it will be useful, but WITHOUT 10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 # version 2 for more details (a copy is included in the LICENSE file that 13 # accompanied this code). 14 # 15 # You should have received a copy of the GNU General Public License version 16 # 2 along with this work; if not, write to the Free Software Foundation, 17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 # 19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 # or visit www.oracle.com if you need additional information or have any 21 # questions. 22 # 23 # 24 25 # Resource file containing VERSIONINFO 26 Res_Files=.\version.res 27 28 !include ..\generated\objfiles.make 29 30 COMMONSRC=$(WorkSpace)\src 31 ALTSRC=$(WorkSpace)\src\closed 32 33 !ifdef RELEASE 34 CXX_FLAGS=$(CXX_FLAGS) /D "PRODUCT" 35 !else 36 CXX_FLAGS=$(CXX_FLAGS) /D "ASSERT" 37 !if "$(BUILDARCH)" == "amd64" 38 CXX_FLAGS=$(CXX_FLAGS) /homeparams 39 !endif 40 !endif 41 42 !if "$(Variant)" == "compiler1" 43 CXX_FLAGS=$(CXX_FLAGS) /D "COMPILER1" 44 !endif 45 46 !if "$(Variant)" == "compiler2" 47 CXX_FLAGS=$(CXX_FLAGS) /D "COMPILER2" 48 !endif 49 50 !if "$(Variant)" == "tiered" 51 CXX_FLAGS=$(CXX_FLAGS) /D "COMPILER1" /D "COMPILER2" 52 !endif 53 54 !if "$(BUILDARCH)" == "i486" 55 HOTSPOT_LIB_ARCH=i386 56 !else 57 HOTSPOT_LIB_ARCH=$(BUILDARCH) 58 !endif 59 60 # The following variables are defined in the generated local.make file. 61 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_RELEASE_VERSION=\"$(HS_BUILD_VER)\"" 62 CXX_FLAGS=$(CXX_FLAGS) /D "JDK_MAJOR_VERSION=\"$(JDK_MAJOR_VERSION)\"" 63 CXX_FLAGS=$(CXX_FLAGS) /D "JDK_MINOR_VERSION=\"$(JDK_MINOR_VERSION)\"" 64 CXX_FLAGS=$(CXX_FLAGS) /D "JDK_MICRO_VERSION=\"$(JDK_MICRO_VERSION)\"" 65 CXX_FLAGS=$(CXX_FLAGS) /D "JDK_BUILD_NUMBER=\"$(JDK_BUILD_NUMBER)\"" 66 CXX_FLAGS=$(CXX_FLAGS) /D "JRE_RELEASE_VERSION=\"$(JRE_RELEASE_VER)\"" 67 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_LIB_ARCH=\"$(HOTSPOT_LIB_ARCH)\"" 68 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_BUILD_TARGET=\"$(BUILD_FLAVOR)\"" 69 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_BUILD_USER=\"$(BuildUser)\"" 70 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_VM_DISTRO=\"$(HOTSPOT_VM_DISTRO)\"" 71 72 CXX_FLAGS=$(CXX_FLAGS) $(CXX_INCLUDE_DIRS) 73 74 # Define that so jni.h is on correct side 75 CXX_FLAGS=$(CXX_FLAGS) /D "_JNI_IMPLEMENTATION_" 76 77 !if "$(BUILDARCH)" == "ia64" 78 STACK_SIZE="/STACK:1048576,262144" 79 !else 80 STACK_SIZE= 81 !endif 82 83 !if "$(BUILDARCH)" == "ia64" 84 # AsyncGetCallTrace is not supported on IA64 yet 85 AGCT_EXPORT= 86 !else 87 AGCT_EXPORT=/export:AsyncGetCallTrace 88 !endif 89 90 # If you modify exports below please do the corresponding changes in 91 # src/share/tools/ProjectCreator/WinGammaPlatformVC7.java 92 !if "$(BUILDARCH)" == "amd64" 93 EXPORT_LIST= 94 !else 95 EXPORT_LIST=/export:JNI_GetDefaultJavaVMInitArgs \ 96 /export:JNI_CreateJavaVM \ 97 /export:JVM_FindClassFromBootLoader \ 98 /export:JNI_GetCreatedJavaVMs \ 99 /export:jio_snprintf \ 100 /export:jio_printf \ 101 /export:jio_fprintf \ 102 /export:jio_vfprintf \ 103 /export:jio_vsnprintf \ 104 $(AGCT_EXPORT) \ 105 /export:JVM_GetVersionInfo \ 106 /export:JVM_InitAgentProperties 107 !endif 108 109 LD_FLAGS=$(LD_FLAGS) $(STACK_SIZE) /subsystem:windows /dll /base:0x8000000 $(EXPORT_LIST) 110 111 CXX_INCLUDE_DIRS=/I "..\generated" 112 113 !if exists($(ALTSRC)\share\vm) 114 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\share\vm" 115 !endif 116 117 !if exists($(ALTSRC)\os\windows\vm) 118 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\os\windows\vm" 119 !endif 120 121 !if exists($(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm) 122 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm" 123 !endif 124 125 !if exists($(ALTSRC)\cpu\$(Platform_arch)\vm) 126 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\cpu\$(Platform_arch)\vm" 127 !endif 128 129 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) \ 130 /I "$(COMMONSRC)\share\vm" \ 131 /I "$(COMMONSRC)\share\vm\precompiled" \ 132 /I "$(COMMONSRC)\share\vm\prims" \ 133 /I "$(COMMONSRC)\os\windows\vm" \ 134 /I "$(COMMONSRC)\os_cpu\windows_$(Platform_arch)\vm" \ 135 /I "$(COMMONSRC)\cpu\$(Platform_arch)\vm" 136 137 CXX_DONT_USE_PCH=/D DONT_USE_PRECOMPILED_HEADER 138 139 !if "$(USE_PRECOMPILED_HEADER)" != "0" 140 CXX_USE_PCH=/Fp"vm.pch" /Yu"precompiled.hpp" 141 !if "$(MSC_VER)" > "1600" 142 # VS2012 requires this object file to be listed: 143 LD_FLAGS=$(LD_FLAGS) _build_pch_file.obj 144 !endif 145 !else 146 CXX_USE_PCH=$(CXX_DONT_USE_PCH) 147 !endif 148 149 # Where to find the source code for the virtual machine (is this used?) 150 VM_PATH=../generated 151 VM_PATH=$(VM_PATH);../generated/adfiles 152 VM_PATH=$(VM_PATH);../generated/jvmtifiles 153 VM_PATH=$(VM_PATH);../generated/tracefiles 154 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/c1 155 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/compiler 156 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/code 157 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/interpreter 158 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/ci 159 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/classfile 160 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc/parallel 161 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc/shared 162 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc/serial 163 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc/cms 164 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc/g1 165 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/asm 166 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/memory 167 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/oops 168 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/prims 169 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/prims/wbtestmethods 170 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/runtime 171 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/services 172 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/trace 173 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/utilities 174 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/libadt 175 VM_PATH=$(VM_PATH);$(WorkSpace)/src/os/windows/vm 176 VM_PATH=$(VM_PATH);$(WorkSpace)/src/os_cpu/windows_$(Platform_arch)/vm 177 VM_PATH=$(VM_PATH);$(WorkSpace)/src/cpu/$(Platform_arch)/vm 178 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/opto 179 180 !if exists($(ALTSRC)\share\vm\jfr) 181 VM_PATH=$(VM_PATH);$(ALTSRC)/share/vm/jfr 182 VM_PATH=$(VM_PATH);$(ALTSRC)/share/vm/jfr/buffers 183 !endif 184 185 VM_PATH={$(VM_PATH)} 186 187 # Special case files not using precompiled header files. 188 189 c1_RInfo_$(Platform_arch).obj: $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp 190 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp 191 192 os_windows.obj: $(WorkSpace)\src\os\windows\vm\os_windows.cpp 193 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\os_windows.cpp 194 195 os_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp 196 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp 197 198 osThread_windows.obj: $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp 199 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp 200 201 conditionVar_windows.obj: $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp 202 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp 203 204 getThread_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp 205 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp 206 207 opcodes.obj: $(WorkSpace)\src\share\vm\opto\opcodes.cpp 208 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\share\vm\opto\opcodes.cpp 209 210 bytecodeInterpreter.obj: $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp 211 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp 212 213 bytecodeInterpreterWithChecks.obj: ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp 214 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp 215 216 # Default rules for the Virtual Machine 217 {$(COMMONSRC)\share\vm\c1}.cpp.obj:: 218 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 219 220 {$(COMMONSRC)\share\vm\compiler}.cpp.obj:: 221 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 222 223 {$(COMMONSRC)\share\vm\code}.cpp.obj:: 224 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 225 226 {$(COMMONSRC)\share\vm\interpreter}.cpp.obj:: 227 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 228 229 {$(COMMONSRC)\share\vm\ci}.cpp.obj:: 230 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 231 232 {$(COMMONSRC)\share\vm\classfile}.cpp.obj:: 233 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 234 235 {$(COMMONSRC)\share\vm\gc\parallel}.cpp.obj:: 236 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 237 238 {$(COMMONSRC)\share\vm\gc\shared}.cpp.obj:: 239 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 240 241 {$(COMMONSRC)\share\vm\gc\serial}.cpp.obj:: 242 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 243 244 {$(COMMONSRC)\share\vm\gc\cms}.cpp.obj:: 245 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 246 247 {$(COMMONSRC)\share\vm\gc\g1}.cpp.obj:: 248 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 249 250 {$(COMMONSRC)\share\vm\asm}.cpp.obj:: 251 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 252 253 {$(COMMONSRC)\share\vm\memory}.cpp.obj:: 254 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 255 256 {$(COMMONSRC)\share\vm\oops}.cpp.obj:: 257 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 258 259 {$(COMMONSRC)\share\vm\prims}.cpp.obj:: 260 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 261 262 {$(COMMONSRC)\share\vm\prims\wbtestmethods}.cpp.obj:: 263 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 264 265 {$(COMMONSRC)\share\vm\runtime}.cpp.obj:: 266 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 267 268 {$(COMMONSRC)\share\vm\services}.cpp.obj:: 269 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 270 271 {$(COMMONSRC)\share\vm\trace}.cpp.obj:: 272 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 273 274 {$(COMMONSRC)\share\vm\utilities}.cpp.obj:: 275 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 276 277 {$(COMMONSRC)\share\vm\libadt}.cpp.obj:: 278 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 279 280 {$(COMMONSRC)\share\vm\opto}.cpp.obj:: 281 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 282 283 {$(COMMONSRC)\os\windows\vm}.cpp.obj:: 284 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 285 286 # This guy should remain a single colon rule because 287 # otherwise we can't specify the output filename. 288 {$(COMMONSRC)\os\windows\vm}.rc.res: 289 @$(RC) $(RC_FLAGS) /fo"$@" $< 290 291 {$(COMMONSRC)\cpu\$(Platform_arch)\vm}.cpp.obj:: 292 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 293 294 {$(COMMONSRC)\os_cpu\windows_$(Platform_arch)\vm}.cpp.obj:: 295 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 296 297 {$(ALTSRC)\share\vm\c1}.cpp.obj:: 298 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 299 300 {$(ALTSRC)\share\vm\compiler}.cpp.obj:: 301 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 302 303 {$(ALTSRC)\share\vm\code}.cpp.obj:: 304 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 305 306 {$(ALTSRC)\share\vm\interpreter}.cpp.obj:: 307 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 308 309 {$(ALTSRC)\share\vm\ci}.cpp.obj:: 310 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 311 312 {$(ALTSRC)\share\vm\classfile}.cpp.obj:: 313 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 314 315 {$(ALTSRC)\share\vm\gc\parallel}.cpp.obj:: 316 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 317 318 {$(ALTSRC)\share\vm\gc\shared}.cpp.obj:: 319 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 320 321 {$(ALTSRC)\share\vm\gc\serial}.cpp.obj:: 322 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 323 324 {$(ALTSRC)\share\vm\gc\cms}.cpp.obj:: 325 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 326 327 {$(ALTSRC)\share\vm\gc\g1}.cpp.obj:: 328 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 329 330 {$(ALTSRC)\share\vm\asm}.cpp.obj:: 331 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 332 333 {$(ALTSRC)\share\vm\memory}.cpp.obj:: 334 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 335 336 {$(ALTSRC)\share\vm\oops}.cpp.obj:: 337 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 338 339 {$(ALTSRC)\share\vm\prims}.cpp.obj:: 340 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 341 342 {$(ALTSRC)\share\vm\prims\wbtestmethods}.cpp.obj:: 343 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 344 345 {$(ALTSRC)\share\vm\runtime}.cpp.obj:: 346 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 347 348 {$(ALTSRC)\share\vm\services}.cpp.obj:: 349 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 350 351 {$(ALTSRC)\share\vm\trace}.cpp.obj:: 352 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 353 354 {$(ALTSRC)\share\vm\utilities}.cpp.obj:: 355 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 356 357 {$(ALTSRC)\share\vm\libadt}.cpp.obj:: 358 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 359 360 {$(ALTSRC)\share\vm\opto}.cpp.obj:: 361 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 362 363 {$(ALTSRC)\os\windows\vm}.cpp.obj:: 364 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 365 366 # otherwise we can't specify the output filename. 367 {$(ALTSRC)\os\windows\vm}.rc.res: 368 @$(RC) $(RC_FLAGS) /fo"$@" $< 369 370 {$(ALTSRC)\cpu\$(Platform_arch)\vm}.cpp.obj:: 371 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 372 373 {$(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm}.cpp.obj:: 374 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 375 376 {..\generated\incls}.cpp.obj:: 377 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 378 379 {..\generated\adfiles}.cpp.obj:: 380 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 381 382 {..\generated\jvmtifiles}.cpp.obj:: 383 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 384 385 {..\generated\tracefiles}.cpp.obj:: 386 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 387 388 {$(ALTSRC)\share\vm\jfr}.cpp.obj:: 389 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 390 391 {$(ALTSRC)\share\vm\jfr\buffers}.cpp.obj:: 392 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 393 394 default:: 395 396 _build_pch_file.obj: 397 @echo #include "precompiled.hpp" > ../generated/_build_pch_file.cpp 398 $(CXX) $(CXX_FLAGS) /Fp"vm.pch" /Yc"precompiled.hpp" /c ../generated/_build_pch_file.cpp 399 400 !if "$(BUILD_WIN_SA)" != "1" 401 BUILD_VM_DEF_FLAG=-nosa 402 !endif 403 404 vm.def: $(Obj_Files) 405 sh $(WorkSpace)/make/windows/build_vm_def.sh $(BUILD_VM_DEF_FLAG) 406