make/common/shared/Defs.gmk

Mon, 15 Nov 2010 10:47:48 -0800

author
robm
date
Mon, 15 Nov 2010 10:47:48 -0800
changeset 215
cff5a173ec1e
parent 194
0f60cf26c5b5
child 240
f90b3e014e83
permissions
-rw-r--r--

6763340: memory leak in com.sun.corba.se.* classes
6873605: Missing finishedDispatch() call in ORBImpl causes test failures after 5u20 b04
Summary: Reviewed by Ken Cavanaugh
Reviewed-by: coffeys

     1 #
     2 # Copyright (c) 2005, 2009, 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.  Oracle designates this
     8 # particular file as subject to the "Classpath" exception as provided
     9 # by Oracle in the LICENSE file that accompanied this code.
    10 #
    11 # This code is distributed in the hope that it will be useful, but WITHOUT
    12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    14 # version 2 for more details (a copy is included in the LICENSE file that
    15 # accompanied this code).
    16 #
    17 # You should have received a copy of the GNU General Public License version
    18 # 2 along with this work; if not, write to the Free Software Foundation,
    19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20 #
    21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22 # or visit www.oracle.com if you need additional information or have any
    23 # questions.
    24 #
    26 #
    27 # Defnitions for all platforms.
    28 #
    29 # Normally the convention is that these alternate definitions of
    30 #   primary make variables are never defined inside the Makefiles anywhere
    31 #   but are defined via environment variables or set on the make command
    32 #   line. So you should never see an ALT_* variable defined in any
    33 #   makefiles, just used. This is the convention and there are some
    34 #   exceptions, either mistakes or unusual circumstances.
    35 #
    36 # The naming convention for the default value of one of these variables
    37 #   that has an ALT_* override capability is to name the default value with a
    38 #   leading underscore (_). So for XXX you would have:
    39 #      _XXX      default value
    40 #      ALT_XXX   any override the user is providing if any
    41 #      XXX       the final value, either the default _XXX or the ALT_XXX value.
    42 #
    44 # On Directory names. In very rare cases should the Windows directory
    45 #    names use the backslash, please use the C:/ style of windows paths.
    46 #    Avoid duplicating the // characters in paths, this has known to cause
    47 #    strange problems with jar and other utilities, e.g. /a//b/ != /a/b/.
    48 #    Some of these variables have an explicit trailing / character, but in
    49 #    general, they should NOT have the trailing / character.
    51 # Get shared system utilities macros defined
    52 include $(BUILDDIR)/common/shared/Defs-utils.gmk
    54 # Assumes ARCH, PLATFORM, etc. have been defined.
    56 # Simple pwd path
    57 define PwdPath
    58 $(shell cd $1 2> $(DEV_NULL) && pwd)
    59 endef
    61 # Checks an ALT value for spaces (should be one word), 
    62 #       warns and returns Check_ALT_$1 if spaces
    63 define AltCheckSpaces
    64 $(if $(word 2,$($1)),$(warning "WARNING: Value of $1 contains a space: '$($1)', check or set ALT_$1")Check_ALT_$1,$($1))
    65 endef
    67 # Checks an ALT value for empty, warns and returns Check_ALT_$1 if empty
    68 define AltCheckValue
    69 $(if $($1),$($1),$(warning "WARNING: Value of $1 cannot be empty, check or set ALT_$1")Check_ALT_$1)
    70 endef
    72 # Checks any value for empty, warns and returns $2 if empty
    73 define CheckValue
    74 $(if $($1),$($1),$(warning "WARNING: Value of $1 cannot be empty, will use '$2'")$2)
    75 endef
    77 # Prefix for a utility prefix path, if empty leave alone, otherwise end with a /
    78 define PrefixPath
    79 $(if $1,$(subst //,/,$1/),)
    80 endef
    82 # Select a directory if it exists, or the alternate 2 or the alternate 3
    83 define DirExists
    84 $(shell \
    85   if [ -d "$1" ]; then  \
    86     echo "$1"; \
    87   elif [ -d "$2" ]; then \
    88     echo "$2"; \
    89   else \
    90     echo "$3"; \
    91   fi)
    92 endef
    94 # Select a writable directory if it exists and is writable, or the alternate
    95 define WriteDirExists
    96 $(shell \
    97   if [ -d "$1" -a -w "$1" ]; then  \
    98     echo "$1"; \
    99   else \
   100     echo "$2"; \
   101   fi)
   102 endef
   104 # Select a file if it exists, or the alternate 1, or the alternate 2
   105 define FileExists
   106 $(shell \
   107   if [ -r "$1" ]; then \
   108     echo "$1"; \
   109   elif [ -r "$2" ]; then \
   110     echo "$2"; \
   111   else \
   112     echo "NO_FILE_EXISTS"; \
   113   fi)
   114 endef
   116 # Given a line of text, get the major.minor version number from it
   117 define GetVersion
   118 $(shell echo $1 | sed -e 's@[^1-9]*\([1-9][0-9]*\.[0-9][0-9]*\).*@\1@' )
   119 endef
   121 # Given a major.minor.micro version, return the major, minor, or micro number
   122 define MajorVersion
   123 $(if $(word 1, $(subst ., ,$1)),$(word 1, $(subst ., ,$1)),0)
   124 endef
   125 define MinorVersion
   126 $(if $(word 2, $(subst ., ,$1)),$(word 2, $(subst ., ,$1)),0)
   127 endef
   128 define MicroVersion
   129 $(if $(word 3, $(subst ., ,$1)),$(word 3, $(subst ., ,$1)),0)
   130 endef
   132 # Macro that returns missing, same, newer, or older $1=version $2=required
   133 #  (currently does not check the micro number)
   134 define CheckVersions
   135 $(shell \
   136   if [ "$1" = "" -o "$2" = "" ]; then \
   137     echo missing; \
   138   else \
   139     if [ "$1" = "$2" ]; then \
   140       echo same; \
   141     else \
   142       if [ $(call MajorVersion,$1) -lt $(call MajorVersion,$2) ] ; then \
   143         echo older; \
   144       else \
   145 	if [ $(call MajorVersion,$1) -eq $(call MajorVersion,$2) -a \
   146 	     $(call MinorVersion,$1) -lt $(call MinorVersion,$2) ]; then \
   147           echo older; \
   148         else \
   149           echo newer; \
   150         fi; \
   151       fi; \
   152     fi; \
   153   fi)
   154 endef
   156 # Make sure certain variables are non-empty at this point
   157 _check_values:=\
   158 $(call CheckValue,ARCH,),\
   159 $(call CheckValue,ARCH_DATA_MODEL,),\
   160 $(call CheckValue,VARIANT,),\
   161 $(call CheckValue,PLATFORM,)
   163 # Misc common settings for all workspaces
   164 #   This determines the version of the product, and the previous version or boot
   165 ifndef JDK_MAJOR_VERSION
   166   JDK_MAJOR_VERSION      = 1
   167   PREVIOUS_MAJOR_VERSION = 1
   168 endif
   170 ifndef JDK_MINOR_VERSION
   171   JDK_MINOR_VERSION      = 7
   172   PREVIOUS_MINOR_VERSION = 6
   173 endif
   175 ifndef JDK_MICRO_VERSION
   176   JDK_MICRO_VERSION      = 0
   177   PREVIOUS_MICRO_VERSION = 0
   178 endif
   180 ifndef MILESTONE
   181   MILESTONE = internal
   182 endif
   184 ifndef BUILD_NUMBER
   185   JDK_BUILD_NUMBER = b00
   186 else
   187   ifndef JDK_BUILD_NUMBER
   188     JDK_BUILD_NUMBER = $(BUILD_NUMBER)
   189   endif
   190 endif
   192 # Default variant is the optimized version of everything
   193 #    can be OPT or DBG,  default is OPT
   194 #    Determine the extra pattern to add to the release name for debug/fastdebug.
   195 #    Determine the JDK_IMPORT_VARIANT, so we get the right VM files copied over.
   196 #
   197 ifeq ($(VARIANT), DBG)
   198   BUILD_VARIANT_RELEASE=-debug
   199 else
   200   BUILD_VARIANT_RELEASE=
   201 endif
   202 ifeq ($(FASTDEBUG), true)
   203   VARIANT=DBG
   204   BUILD_VARIANT_RELEASE=-fastdebug
   205   _JDK_IMPORT_VARIANT=/fastdebug
   206 endif
   208 # Depending on the flavor of the build, add a -debug or -fastdebug to the name
   209 ifdef DEBUG_NAME
   210   BUILD_VARIANT_RELEASE=-$(DEBUG_NAME)
   211 endif
   213 JDK_VERSION  = $(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION)
   214 JDK_UNDERSCORE_VERSION =  $(subst .,_,$(JDK_VERSION))
   216 # RELEASE is JDK_VERSION and -MILESTONE if MILESTONE is set
   217 ifneq ($(MILESTONE),fcs)
   218   RELEASE      = $(JDK_VERSION)-$(MILESTONE)$(BUILD_VARIANT_RELEASE)
   219 else
   220   RELEASE      = $(JDK_VERSION)$(BUILD_VARIANT_RELEASE)
   221 endif
   223 # FULL_VERSION is RELEASE and -BUILD_NUMBER if BUILD_NUMBER is set
   224 ifndef FULL_VERSION
   225   ifdef BUILD_NUMBER
   226     FULL_VERSION = $(RELEASE)-$(BUILD_NUMBER)
   227   else
   228     BUILD_NUMBER = b00
   229     USER_RELEASE_SUFFIX := $(shell echo $(USER)_`date '+%d_%b_%Y_%H_%M' | tr "A-Z" "a-z"`)
   230     FULL_VERSION = $(RELEASE)-$(USER_RELEASE_SUFFIX)-$(BUILD_NUMBER)
   231   endif
   232   export FULL_VERSION
   233 endif
   235 # Promoted build location
   236 PROMOTED_RE_AREA = $(SLASH_JAVA)/re/jdk/$(JDK_VERSION)/promoted
   237 PROMOTED_BUILD_LATEST = latest
   238 PROMOTED_BUILD_BASEDIR = $(PROMOTED_RE_AREA)/$(PROMOTED_BUILD_LATEST)
   239 PROMOTED_BUILD_BINARIES = $(PROMOTED_BUILD_BASEDIR)/binaries
   241 # OPT: Changes what the optimizations settings (in _OPT)
   242 POPT = $(_OPT$(ALT_OPT))$(ALT_OPT)
   244 # PARALLEL_COMPILE_JOBS: is the number of compiles done in parallel.
   245 #  If the user sets ALT_PARALLEL_COMPILE_JOBS, then COMPILE_APPROACH is set
   246 #  to parallel.
   247 #
   248 #  Recommended setting: 2 seems to be ideal for single cpu machines,
   249 #                       2 times the number of CPU's is a basic formula, 
   250 #                       but probably not more than 4 if the machine is 
   251 #                       being shared by others, or the machine is limited 
   252 #                       in RAM or swap.
   253 #
   254 ifdef ALT_PARALLEL_COMPILE_JOBS
   255   PARALLEL_COMPILE_JOBS=$(ALT_PARALLEL_COMPILE_JOBS)
   256 else
   257   PARALLEL_COMPILE_JOBS=2
   258 endif
   260 # Previous JDK release (version of BOOTDIR version)
   261 ifdef ALT_PREVIOUS_JDK_VERSION
   262   PREVIOUS_JDK_VERSION = $(ALT_PREVIOUS_JDK_VERSION)
   263 else
   264   PREVIOUS_JDK_VERSION  = $(PREVIOUS_MAJOR_VERSION).$(PREVIOUS_MINOR_VERSION).$(PREVIOUS_MICRO_VERSION)
   265 endif
   266 export PREVIOUS_JDK_VERSION
   267 PREVIOUS_JDK_VERSION:=$(call AltCheckSpaces,PREVIOUS_JDK_VERSION)
   268 PREVIOUS_JDK_VERSION:=$(call AltCheckValue,PREVIOUS_JDK_VERSION)
   270 # Version with _ instead of . in number
   271 ifeq ($(PREVIOUS_MINOR_VERSION),5)
   272   PREVIOUS_JDK_UNDERSCORE_VERSION =  $(subst .,_,$(PREVIOUS_JDK_VERSION))
   273 else
   274   PREVIOUS_JDK_UNDERSCORE_VERSION = $(PREVIOUS_MINOR_VERSION)
   275 endif
   277 # Get platform specific settings
   278 include $(BUILDDIR)/common/shared/Defs-$(PLATFORM).gmk
   280 # Components
   281 ifdef ALT_LANGTOOLS_DIST
   282   LANGTOOLS_DIST :=$(call FullPath,$(ALT_LANGTOOLS_DIST))
   283 else
   284   LANGTOOLS_DIST =
   285 endif
   287 # These are the same on all platforms but require the above platform include 1st
   289 # BOOTDIR: Bootstrap JDK, previous released JDK.
   290 #   _BOOTDIR1 and _BOOTDIR2 picked by platform
   291 ifdef ALT_BOOTDIR
   292   BOOTDIR =$(ALT_BOOTDIR)
   293 else
   294   BOOTDIR  :=$(call DirExists,$(_BOOTDIR1),$(_BOOTDIR2),/NO_BOOTDIR)
   295 endif
   296 export BOOTDIR
   297 BOOTDIR:=$(call AltCheckSpaces,BOOTDIR)
   298 BOOTDIR:=$(call AltCheckValue,BOOTDIR)
   300 # OUTPUTDIR: Location of all output for the build
   301 _BACKUP_OUTPUTDIR = $(TEMP_DISK)/$(USER)/jdk-outputdir
   302 ifdef ALT_OUTPUTDIR
   303   _POSSIBLE_OUTPUTDIR =$(subst \,/,$(ALT_OUTPUTDIR))
   304 else
   305   ifndef _OUTPUTDIR
   306     _OUTPUTDIR = $(_BACKUP_OUTPUTDIR)
   307   endif
   308   _POSSIBLE_OUTPUTDIR =$(_OUTPUTDIR)
   309 endif
   310 _create_outputdir1:=$(shell mkdir -p $(_POSSIBLE_OUTPUTDIR) > $(DEV_NULL) 2>&1)
   311 OUTPUTDIR:=$(call WriteDirExists,$(_POSSIBLE_OUTPUTDIR),$(_BACKUP_OUTPUTDIR))
   312 _create_outputdir2:=$(shell mkdir -p $(OUTPUTDIR) > $(DEV_NULL) 2>&1)
   313 ifeq "$(OUTPUTDIR)" "$(_BACKUP_OUTPUTDIR)"
   314   _outputdir_warning:=$(warning "WARNING: OUTPUTDIR '$(_POSSIBLE_OUTPUTDIR)' not writable, will use '$(_BACKUP_OUTPUTDIR)'")
   315 endif
   316 OUTPUTDIR:=$(call AltCheckSpaces,OUTPUTDIR)
   317 OUTPUTDIR:=$(call AltCheckValue,OUTPUTDIR)
   319 # Bin directory
   320 #   NOTE: ISA_DIR is usually empty, on Solaris it might be /sparcv9 or /amd64
   321 BINDIR      = $(OUTPUTDIR)/bin$(ISA_DIR)
   323 # Absolute path to output directory
   324 ABS_OUTPUTDIR:=$(call FullPath,$(OUTPUTDIR))

mercurial