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_VERSION_STRING=\"$(HOTSPOT_VERSION_STRING)\"" 62 CXX_FLAGS=$(CXX_FLAGS) /D "VERSION_MAJOR=$(VERSION_MAJOR)" 63 CXX_FLAGS=$(CXX_FLAGS) /D "VERSION_MINOR=$(VERSION_MINOR)" 64 CXX_FLAGS=$(CXX_FLAGS) /D "VERSION_SECURITY=$(VERSION_SECURITY)" 65 CXX_FLAGS=$(CXX_FLAGS) /D "VERSION_PATCH=$(VERSION_PATCH)" 66 CXX_FLAGS=$(CXX_FLAGS) /D "VERSION_BUILD=$(VERSION_BUILD)" 67 CXX_FLAGS=$(CXX_FLAGS) /D "VERSION_STRING=\"$(VERSION_STRING)\"" 68 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_LIB_ARCH=\"$(HOTSPOT_LIB_ARCH)\"" 69 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_BUILD_TARGET=\"$(BUILD_FLAVOR)\"" 70 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_BUILD_USER=\"$(BuildUser)\"" 71 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_VM_DISTRO=\"$(HOTSPOT_VM_DISTRO)\"" 72 73 CXX_FLAGS=$(CXX_FLAGS) $(CXX_INCLUDE_DIRS) 74 75 # Define that so jni.h is on correct side 76 CXX_FLAGS=$(CXX_FLAGS) /D "_JNI_IMPLEMENTATION_" 77 78 !if "$(BUILDARCH)" == "ia64" 79 STACK_SIZE="/STACK:1048576,262144" 80 !else 81 STACK_SIZE= 82 !endif 83 84 !if "$(BUILDARCH)" == "ia64" 85 # AsyncGetCallTrace is not supported on IA64 yet 86 AGCT_EXPORT= 87 !else 88 AGCT_EXPORT=/export:AsyncGetCallTrace 89 !endif 90 91 # If you modify exports below please do the corresponding changes in 92 # src/share/tools/ProjectCreator/WinGammaPlatformVC7.java 93 !if "$(BUILDARCH)" == "amd64" 94 EXPORT_LIST= 95 !else 96 EXPORT_LIST=/export:JNI_GetDefaultJavaVMInitArgs \ 97 /export:JNI_CreateJavaVM \ 98 /export:JVM_FindClassFromBootLoader \ 99 /export:JNI_GetCreatedJavaVMs \ 100 /export:jio_snprintf \ 101 /export:jio_printf \ 102 /export:jio_fprintf \ 103 /export:jio_vfprintf \ 104 /export:jio_vsnprintf \ 105 $(AGCT_EXPORT) \ 106 /export:JVM_GetVersionInfo \ 107 /export:JVM_InitAgentProperties 108 !endif 109 110 LD_FLAGS=$(LD_FLAGS) $(STACK_SIZE) /subsystem:windows /dll /base:0x8000000 $(EXPORT_LIST) 111 112 CXX_INCLUDE_DIRS=/I "..\generated" 113 114 !if exists($(ALTSRC)\share\vm) 115 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\share\vm" 116 !endif 117 118 !if exists($(ALTSRC)\os\windows\vm) 119 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\os\windows\vm" 120 !endif 121 122 !if exists($(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm) 123 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm" 124 !endif 125 126 !if exists($(ALTSRC)\cpu\$(Platform_arch)\vm) 127 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\cpu\$(Platform_arch)\vm" 128 !endif 129 130 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) \ 131 /I "$(COMMONSRC)\share\vm" \ 132 /I "$(COMMONSRC)\share\vm\precompiled" \ 133 /I "$(COMMONSRC)\share\vm\prims" \ 134 /I "$(COMMONSRC)\os\windows\vm" \ 135 /I "$(COMMONSRC)\os_cpu\windows_$(Platform_arch)\vm" \ 136 /I "$(COMMONSRC)\cpu\$(Platform_arch)\vm" 137 138 CXX_DONT_USE_PCH=/D DONT_USE_PRECOMPILED_HEADER 139 140 !if "$(USE_PRECOMPILED_HEADER)" != "0" 141 CXX_USE_PCH=/Fp"vm.pch" /Yu"precompiled.hpp" 142 !if "$(MSC_VER)" > "1600" 143 # VS2012 requires this object file to be listed: 144 LD_FLAGS=$(LD_FLAGS) _build_pch_file.obj 145 !endif 146 !else 147 CXX_USE_PCH=$(CXX_DONT_USE_PCH) 148 !endif 149 150 # Where to find the source code for the virtual machine (is this used?) 151 VM_PATH=../generated 152 VM_PATH=$(VM_PATH);../generated/adfiles 153 VM_PATH=$(VM_PATH);../generated/jvmtifiles 154 VM_PATH=$(VM_PATH);../generated/tracefiles 155 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/c1 156 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/compiler 157 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/code 158 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/interpreter 159 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/ci 160 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/classfile 161 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc/parallel 162 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc/shared 163 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc/serial 164 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc/cms 165 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc/g1 166 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/asm 167 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/memory 168 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/oops 169 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/prims 170 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/prims/wbtestmethods 171 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/runtime 172 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/services 173 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/trace 174 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/utilities 175 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/libadt 176 VM_PATH=$(VM_PATH);$(WorkSpace)/src/os/windows/vm 177 VM_PATH=$(VM_PATH);$(WorkSpace)/src/os_cpu/windows_$(Platform_arch)/vm 178 VM_PATH=$(VM_PATH);$(WorkSpace)/src/cpu/$(Platform_arch)/vm 179 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/opto 180 181 !if exists($(ALTSRC)\share\vm\jfr) 182 VM_PATH=$(VM_PATH);$(ALTSRC)/share/vm/jfr 183 VM_PATH=$(VM_PATH);$(ALTSRC)/share/vm/jfr/buffers 184 !endif 185 186 VM_PATH={$(VM_PATH)} 187 188 # Special case files not using precompiled header files. 189 190 c1_RInfo_$(Platform_arch).obj: $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp 191 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp 192 193 os_windows.obj: $(WorkSpace)\src\os\windows\vm\os_windows.cpp 194 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\os_windows.cpp 195 196 os_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp 197 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp 198 199 osThread_windows.obj: $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp 200 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp 201 202 conditionVar_windows.obj: $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp 203 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp 204 205 getThread_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp 206 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp 207 208 opcodes.obj: $(WorkSpace)\src\share\vm\opto\opcodes.cpp 209 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\share\vm\opto\opcodes.cpp 210 211 bytecodeInterpreter.obj: $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp 212 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp 213 214 bytecodeInterpreterWithChecks.obj: ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp 215 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp 216 217 # Default rules for the Virtual Machine 218 {$(COMMONSRC)\share\vm\c1}.cpp.obj:: 219 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 220 221 {$(COMMONSRC)\share\vm\compiler}.cpp.obj:: 222 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 223 224 {$(COMMONSRC)\share\vm\code}.cpp.obj:: 225 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 226 227 {$(COMMONSRC)\share\vm\interpreter}.cpp.obj:: 228 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 229 230 {$(COMMONSRC)\share\vm\ci}.cpp.obj:: 231 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 232 233 {$(COMMONSRC)\share\vm\classfile}.cpp.obj:: 234 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 235 236 {$(COMMONSRC)\share\vm\gc\parallel}.cpp.obj:: 237 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 238 239 {$(COMMONSRC)\share\vm\gc\shared}.cpp.obj:: 240 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 241 242 {$(COMMONSRC)\share\vm\gc\serial}.cpp.obj:: 243 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 244 245 {$(COMMONSRC)\share\vm\gc\cms}.cpp.obj:: 246 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 247 248 {$(COMMONSRC)\share\vm\gc\g1}.cpp.obj:: 249 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 250 251 {$(COMMONSRC)\share\vm\asm}.cpp.obj:: 252 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 253 254 {$(COMMONSRC)\share\vm\memory}.cpp.obj:: 255 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 256 257 {$(COMMONSRC)\share\vm\oops}.cpp.obj:: 258 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 259 260 {$(COMMONSRC)\share\vm\prims}.cpp.obj:: 261 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 262 263 {$(COMMONSRC)\share\vm\prims\wbtestmethods}.cpp.obj:: 264 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 265 266 {$(COMMONSRC)\share\vm\runtime}.cpp.obj:: 267 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 268 269 {$(COMMONSRC)\share\vm\services}.cpp.obj:: 270 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 271 272 {$(COMMONSRC)\share\vm\trace}.cpp.obj:: 273 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 274 275 {$(COMMONSRC)\share\vm\utilities}.cpp.obj:: 276 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 277 278 {$(COMMONSRC)\share\vm\libadt}.cpp.obj:: 279 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 280 281 {$(COMMONSRC)\share\vm\opto}.cpp.obj:: 282 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 283 284 {$(COMMONSRC)\os\windows\vm}.cpp.obj:: 285 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 286 287 # This guy should remain a single colon rule because 288 # otherwise we can't specify the output filename. 289 {$(COMMONSRC)\os\windows\vm}.rc.res: 290 @$(RC) $(RC_FLAGS) /fo"$@" $< 291 292 {$(COMMONSRC)\cpu\$(Platform_arch)\vm}.cpp.obj:: 293 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 294 295 {$(COMMONSRC)\os_cpu\windows_$(Platform_arch)\vm}.cpp.obj:: 296 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 297 298 {$(ALTSRC)\share\vm\c1}.cpp.obj:: 299 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 300 301 {$(ALTSRC)\share\vm\compiler}.cpp.obj:: 302 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 303 304 {$(ALTSRC)\share\vm\code}.cpp.obj:: 305 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 306 307 {$(ALTSRC)\share\vm\interpreter}.cpp.obj:: 308 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 309 310 {$(ALTSRC)\share\vm\ci}.cpp.obj:: 311 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 312 313 {$(ALTSRC)\share\vm\classfile}.cpp.obj:: 314 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 315 316 {$(ALTSRC)\share\vm\gc\parallel}.cpp.obj:: 317 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 318 319 {$(ALTSRC)\share\vm\gc\shared}.cpp.obj:: 320 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 321 322 {$(ALTSRC)\share\vm\gc\serial}.cpp.obj:: 323 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 324 325 {$(ALTSRC)\share\vm\gc\cms}.cpp.obj:: 326 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 327 328 {$(ALTSRC)\share\vm\gc\g1}.cpp.obj:: 329 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 330 331 {$(ALTSRC)\share\vm\asm}.cpp.obj:: 332 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 333 334 {$(ALTSRC)\share\vm\memory}.cpp.obj:: 335 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 336 337 {$(ALTSRC)\share\vm\oops}.cpp.obj:: 338 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 339 340 {$(ALTSRC)\share\vm\prims}.cpp.obj:: 341 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 342 343 {$(ALTSRC)\share\vm\prims\wbtestmethods}.cpp.obj:: 344 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 345 346 {$(ALTSRC)\share\vm\runtime}.cpp.obj:: 347 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 348 349 {$(ALTSRC)\share\vm\services}.cpp.obj:: 350 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 351 352 {$(ALTSRC)\share\vm\trace}.cpp.obj:: 353 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 354 355 {$(ALTSRC)\share\vm\utilities}.cpp.obj:: 356 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 357 358 {$(ALTSRC)\share\vm\libadt}.cpp.obj:: 359 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 360 361 {$(ALTSRC)\share\vm\opto}.cpp.obj:: 362 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 363 364 {$(ALTSRC)\os\windows\vm}.cpp.obj:: 365 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 366 367 # otherwise we can't specify the output filename. 368 {$(ALTSRC)\os\windows\vm}.rc.res: 369 @$(RC) $(RC_FLAGS) /fo"$@" $< 370 371 {$(ALTSRC)\cpu\$(Platform_arch)\vm}.cpp.obj:: 372 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 373 374 {$(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm}.cpp.obj:: 375 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 376 377 {..\generated\incls}.cpp.obj:: 378 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 379 380 {..\generated\adfiles}.cpp.obj:: 381 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 382 383 {..\generated\jvmtifiles}.cpp.obj:: 384 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 385 386 {..\generated\tracefiles}.cpp.obj:: 387 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 388 389 {$(ALTSRC)\share\vm\jfr}.cpp.obj:: 390 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 391 392 {$(ALTSRC)\share\vm\jfr\buffers}.cpp.obj:: 393 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 394 395 default:: 396 397 _build_pch_file.obj: 398 @echo #include "precompiled.hpp" > ../generated/_build_pch_file.cpp 399 $(CXX) $(CXX_FLAGS) /Fp"vm.pch" /Yc"precompiled.hpp" /c ../generated/_build_pch_file.cpp 400 401 !if "$(BUILD_WIN_SA)" != "1" 402 BUILD_VM_DEF_FLAG=-nosa 403 !endif 404 405 vm.def: $(Obj_Files) 406 sh $(WorkSpace)/make/windows/build_vm_def.sh $(BUILD_VM_DEF_FLAG)