make/windows/makefiles/compile.make

Print this page


   1 #
   2 # Copyright (c) 1997, 2011, 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 #  


  37 #   /O1       Optimize for size (/Os), skips /Oi
  38 #   /O2       Optimize for speed (/Ot), adds /Oi to /O1
  39 #   /Ox       Old "all optimizations flag" for VC6 (in /O1)
  40 #   /Oy       Use frame pointer register as GP reg (in /Ox and /O1)
  41 #   /GF       Merge string constants and put in read-only memory (in /O1)
  42 #   /Gy       Func level link (in /O1, allows for link-time func ordering)
  43 #   /Gs       Inserts stack probes (in /O1)
  44 #   /GS       Inserts security stack checks in some functions (VS2005 default)
  45 #   /Oi       Use intrinsics (in /O2)
  46 #   /Od       Disable all optimizations
  47 #
  48 # NOTE: Normally following any of the above with a '-' will turn off that flag
  49 #
  50 # 6655385: For VS2003/2005 we now specify /Oy- (disable frame pointer
  51 # omission.)  This has little to no effect on performance while vastly
  52 # improving the quality of crash log stack traces involving jvm.dll.
  53 
  54 # These are always used in all compiles
  55 CXX_FLAGS=/nologo /W3 /WX
  56 
  57 # Let's add debug information always too.

  58 CXX_FLAGS=$(CXX_FLAGS) /Zi

  59 
  60 # Based on BUILDARCH we add some flags and select the default compiler name
  61 !if "$(BUILDARCH)" == "ia64"
  62 MACHINE=IA64
  63 DEFAULT_COMPILER_NAME=VS2003
  64 CXX_FLAGS=$(CXX_FLAGS) /D "CC_INTERP" /D "_LP64" /D "IA64"
  65 !endif
  66 
  67 !if "$(BUILDARCH)" == "amd64"
  68 MACHINE=AMD64
  69 DEFAULT_COMPILER_NAME=VS2005
  70 CXX_FLAGS=$(CXX_FLAGS) /D "_LP64" /D "AMD64"
  71 LP64=1
  72 !endif
  73 
  74 !if "$(BUILDARCH)" == "i486"
  75 MACHINE=I386
  76 DEFAULT_COMPILER_NAME=VS2003
  77 CXX_FLAGS=$(CXX_FLAGS) /D "IA32"
  78 !endif


 222 # Compile for space above time.
 223 !if "$(Variant)" == "kernel"
 224 PRODUCT_OPT_OPTION   = /O1 /Oy-
 225 FASTDEBUG_OPT_OPTION = /O1 /Oy-
 226 DEBUG_OPT_OPTION     = /Od
 227 !endif
 228 
 229 # If NO_OPTIMIZATIONS is defined in the environment, turn everything off
 230 !ifdef NO_OPTIMIZATIONS
 231 PRODUCT_OPT_OPTION   = $(DEBUG_OPT_OPTION)
 232 FASTDEBUG_OPT_OPTION = $(DEBUG_OPT_OPTION)
 233 !endif
 234 
 235 # Generic linker settings
 236 !if "x$(LD)" == "x"
 237 LD=link.exe
 238 !endif
 239 LD_FLAGS= $(LD_FLAGS) kernel32.lib user32.lib gdi32.lib winspool.lib \
 240  comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \
 241  uuid.lib Wsock32.lib winmm.lib /nologo /machine:$(MACHINE) /opt:REF \
 242  /opt:ICF,8 /map /debug



 243 
 244 
 245 !if $(MSC_VER) >= 1600 
 246 LD_FLAGS= $(LD_FLAGS) psapi.lib
 247 !endif
 248 
 249 # Resource compiler settings
 250 !if "x$(RC)" == "x"
 251 RC=rc.exe
 252 !endif
 253 RC_FLAGS=/D "HS_VER=$(HS_VER)" \
 254          /D "HS_DOTVER=$(HS_DOTVER)" \
 255          /D "HS_BUILD_ID=$(HS_BUILD_ID)" \
 256          /D "JDK_VER=$(JDK_VER)" \
 257          /D "JDK_DOTVER=$(JDK_DOTVER)" \
 258          /D "HS_COMPANY=$(HS_COMPANY)" \
 259          /D "HS_FILEDESC=$(HS_FILEDESC)" \
 260          /D "HS_COPYRIGHT=$(HS_COPYRIGHT)" \
 261          /D "HS_FNAME=$(HS_FNAME)" \
 262          /D "HS_INTERNAL_NAME=$(HS_INTERNAL_NAME)" \
   1 #
   2 # Copyright (c) 1997, 2012, 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 #  


  37 #   /O1       Optimize for size (/Os), skips /Oi
  38 #   /O2       Optimize for speed (/Ot), adds /Oi to /O1
  39 #   /Ox       Old "all optimizations flag" for VC6 (in /O1)
  40 #   /Oy       Use frame pointer register as GP reg (in /Ox and /O1)
  41 #   /GF       Merge string constants and put in read-only memory (in /O1)
  42 #   /Gy       Func level link (in /O1, allows for link-time func ordering)
  43 #   /Gs       Inserts stack probes (in /O1)
  44 #   /GS       Inserts security stack checks in some functions (VS2005 default)
  45 #   /Oi       Use intrinsics (in /O2)
  46 #   /Od       Disable all optimizations
  47 #
  48 # NOTE: Normally following any of the above with a '-' will turn off that flag
  49 #
  50 # 6655385: For VS2003/2005 we now specify /Oy- (disable frame pointer
  51 # omission.)  This has little to no effect on performance while vastly
  52 # improving the quality of crash log stack traces involving jvm.dll.
  53 
  54 # These are always used in all compiles
  55 CXX_FLAGS=/nologo /W3 /WX
  56 
  57 # Let's add debug information when Full Debug Symbols is enabled
  58 !if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
  59 CXX_FLAGS=$(CXX_FLAGS) /Zi
  60 !endif
  61 
  62 # Based on BUILDARCH we add some flags and select the default compiler name
  63 !if "$(BUILDARCH)" == "ia64"
  64 MACHINE=IA64
  65 DEFAULT_COMPILER_NAME=VS2003
  66 CXX_FLAGS=$(CXX_FLAGS) /D "CC_INTERP" /D "_LP64" /D "IA64"
  67 !endif
  68 
  69 !if "$(BUILDARCH)" == "amd64"
  70 MACHINE=AMD64
  71 DEFAULT_COMPILER_NAME=VS2005
  72 CXX_FLAGS=$(CXX_FLAGS) /D "_LP64" /D "AMD64"
  73 LP64=1
  74 !endif
  75 
  76 !if "$(BUILDARCH)" == "i486"
  77 MACHINE=I386
  78 DEFAULT_COMPILER_NAME=VS2003
  79 CXX_FLAGS=$(CXX_FLAGS) /D "IA32"
  80 !endif


 224 # Compile for space above time.
 225 !if "$(Variant)" == "kernel"
 226 PRODUCT_OPT_OPTION   = /O1 /Oy-
 227 FASTDEBUG_OPT_OPTION = /O1 /Oy-
 228 DEBUG_OPT_OPTION     = /Od
 229 !endif
 230 
 231 # If NO_OPTIMIZATIONS is defined in the environment, turn everything off
 232 !ifdef NO_OPTIMIZATIONS
 233 PRODUCT_OPT_OPTION   = $(DEBUG_OPT_OPTION)
 234 FASTDEBUG_OPT_OPTION = $(DEBUG_OPT_OPTION)
 235 !endif
 236 
 237 # Generic linker settings
 238 !if "x$(LD)" == "x"
 239 LD=link.exe
 240 !endif
 241 LD_FLAGS= $(LD_FLAGS) kernel32.lib user32.lib gdi32.lib winspool.lib \
 242  comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \
 243  uuid.lib Wsock32.lib winmm.lib /nologo /machine:$(MACHINE) /opt:REF \
 244  /opt:ICF,8
 245 !if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
 246 LD_FLAGS= $(LD_FLAGS) /map /debug
 247 !endif
 248 
 249 
 250 !if $(MSC_VER) >= 1600 
 251 LD_FLAGS= $(LD_FLAGS) psapi.lib
 252 !endif
 253 
 254 # Resource compiler settings
 255 !if "x$(RC)" == "x"
 256 RC=rc.exe
 257 !endif
 258 RC_FLAGS=/D "HS_VER=$(HS_VER)" \
 259          /D "HS_DOTVER=$(HS_DOTVER)" \
 260          /D "HS_BUILD_ID=$(HS_BUILD_ID)" \
 261          /D "JDK_VER=$(JDK_VER)" \
 262          /D "JDK_DOTVER=$(JDK_DOTVER)" \
 263          /D "HS_COMPANY=$(HS_COMPANY)" \
 264          /D "HS_FILEDESC=$(HS_FILEDESC)" \
 265          /D "HS_COPYRIGHT=$(HS_COPYRIGHT)" \
 266          /D "HS_FNAME=$(HS_FNAME)" \
 267          /D "HS_INTERNAL_NAME=$(HS_INTERNAL_NAME)" \