1 #
   2 # Copyright (c) 2005, 2007, 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 #
  25 
  26 #
  27 # Definitions 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 #
  43 
  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.
  50 
  51 # Get shared system utilities macros defined
  52 include $(JDK_MAKE_SHARED_DIR)/Defs-utils.gmk
  53 
  54 # Assumes ARCH, PLATFORM, ARCH_VM_SUBDIR, JDK_TOPDIR, etc. have been defined.
  55 
  56 # Simple pwd path
  57 define PwdPath
  58 $(shell cd $1 2> $(DEV_NULL) && pwd)
  59 endef
  60 
  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
  66 
  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
  71 
  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
  76 
  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
  81 
  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
  93 
  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
 103 
 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
 115 
 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
 120 
 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
 131 
 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
 155 
 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,ARCH_VM_SUBDIR,),\
 161 $(call CheckValue,JDK_TOPDIR,),\
 162 $(call CheckValue,JDK_MAKE_SHARED_DIR,),\
 163 $(call CheckValue,VARIANT,),\
 164 $(call CheckValue,PLATFORM,)
 165 
 166 # Misc common settings for all workspaces
 167 #   This determines the version of the product, and the previous version or boot
 168 ifndef JDK_MAJOR_VERSION
 169   JDK_MAJOR_VERSION      = 1
 170 endif
 171 ifndef JDK_MINOR_VERSION
 172   JDK_MINOR_VERSION      = 6
 173 endif
 174 ifndef JDK_MICRO_VERSION
 175   JDK_MICRO_VERSION      = 0
 176 endif
 177 
 178 ifndef PREVIOUS_MAJOR_VERSION
 179   PREVIOUS_MAJOR_VERSION = 1
 180 endif
 181 ifndef PREVIOUS_MINOR_VERSION
 182   PREVIOUS_MINOR_VERSION = 6
 183 endif
 184 ifndef PREVIOUS_MICRO_VERSION
 185   PREVIOUS_MICRO_VERSION = 0
 186 endif
 187 #ifndef PREVIOUS_UPDATE_VERSION
 188   #PREVIOUS_UPDATE_VERSION=_12
 189 #endif
 190 
 191 ifndef MILESTONE
 192   MILESTONE = internal
 193 endif
 194 
 195 # Default names
 196 ifdef OPENJDK
 197   LAUNCHER_NAME = openjdk
 198   PRODUCT_NAME = OpenJDK
 199   PRODUCT_SUFFIX = Runtime Environment
 200   JDK_RC_PLATFORM_NAME = Platform
 201   COMPANY_NAME = N/A
 202 else
 203   LAUNCHER_NAME = java
 204   PRODUCT_NAME = Java(TM)
 205   PRODUCT_SUFFIX = SE Runtime Environment
 206   JDK_RC_PLATFORM_NAME = Platform SE
 207   COMPANY_NAME = Oracle
 208 endif
 209 
 210 RUNTIME_NAME = $(PRODUCT_NAME) $(PRODUCT_SUFFIX)
 211 
 212 ifndef BUILD_NUMBER
 213   JDK_BUILD_NUMBER = b00
 214 else
 215   ifndef JDK_BUILD_NUMBER
 216     JDK_BUILD_NUMBER = $(BUILD_NUMBER)
 217   endif
 218 endif
 219 
 220 # Default variant is the optimized version of everything
 221 #    can be OPT or DBG,  default is OPT
 222 #    Determine the extra pattern to add to the release name for debug/fastdebug.
 223 #    Determine the JDK_IMPORT_VARIANT, so we get the right VM files copied over.
 224 #    Determine suffix for obj directory or OBJDIR, for .o files.
 225 #    (by keeping .o files separate, just .o files, they don't clobber each
 226 #     other, however, the library files will clobber each other).
 227 #
 228 ifeq ($(VARIANT), DBG)
 229   BUILD_VARIANT_RELEASE=-debug
 230   OBJDIRNAME_SUFFIX=_g
 231 else
 232   BUILD_VARIANT_RELEASE=
 233   OBJDIRNAME_SUFFIX=
 234 endif
 235 ifeq ($(FASTDEBUG), true)
 236   VARIANT=DBG
 237   BUILD_VARIANT_RELEASE=-fastdebug
 238   OBJDIRNAME_SUFFIX=_gO
 239   _JDK_IMPORT_VARIANT=/fastdebug
 240 endif
 241 
 242 # Depending on the flavor of the build, add a -debug or -fastdebug to the name
 243 ifdef DEBUG_NAME
 244   BUILD_VARIANT_RELEASE=-$(DEBUG_NAME)
 245 endif
 246 
 247 # These default values are redefined during a release build.
 248 #    CTE can set JDK_UPDATE_VERSION during the update release
 249 ifdef JDK_UPDATE_VERSION
 250   JDK_VERSION  = $(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION)_$(JDK_UPDATE_VERSION)
 251   MARKETING_NUMBER := $(shell \
 252         $(ECHO) $(JDK_UPDATE_VERSION) | $(NAWK) '{if (substr($$0,1,1)=="0") print substr($$0, 2); else print $$0;}')
 253   MARKET_NAME= $(shell $(ECHO) " Update $(MARKETING_NUMBER)")
 254   JDK_MKTG_VERSION  = $(JDK_MINOR_VERSION)u$(MARKETING_NUMBER)
 255 else
 256   JDK_VERSION  = $(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION)
 257   JDK_MKTG_VERSION  = $(JDK_MINOR_VERSION)
 258   MARKET_NAME=
 259 endif
 260 JDK_UNDERSCORE_VERSION =  $(subst .,_,$(JDK_VERSION))
 261 JDK_MKTG_UNDERSCORE_VERSION =  $(subst .,_,$(JDK_MKTG_VERSION))
 262 
 263 # RELEASE is JDK_VERSION and -MILESTONE if MILESTONE is set
 264 ifneq ($(MILESTONE),fcs)
 265   RELEASE      = $(JDK_VERSION)-$(MILESTONE)$(BUILD_VARIANT_RELEASE)
 266 else
 267   RELEASE      = $(JDK_VERSION)$(BUILD_VARIANT_RELEASE)
 268 endif
 269 
 270 # FULL_VERSION is RELEASE and -BUILD_NUMBER if BUILD_NUMBER is set
 271 ifdef BUILD_NUMBER
 272   FULL_VERSION = $(RELEASE)-$(BUILD_NUMBER)
 273 else
 274   BUILD_NUMBER = b00
 275   USER_RELEASE_SUFFIX := $(shell echo $(USER)_`date '+%d_%b_%Y_%H_%M' | tr "A-Z" "a-z"`)
 276   FULL_VERSION = $(RELEASE)-$(USER_RELEASE_SUFFIX)-$(BUILD_NUMBER)
 277 endif
 278 
 279 # Promoted build location
 280 PROMOTED_RE_AREA = $(SLASH_JAVA)/re/openjdk/$(JDK_MINOR_VERSION)/promoted
 281 PROMOTED_BUILD_LATEST = latest
 282 PROMOTED_BUILD_BASEDIR = $(PROMOTED_RE_AREA)/$(PROMOTED_BUILD_LATEST)
 283 PROMOTED_BUILD_BINARIES = $(PROMOTED_BUILD_BASEDIR)/binaries
 284 
 285 # OPT: Changes what the optimizations settings (in _OPT)
 286 POPT = $(_OPT$(ALT_OPT))$(ALT_OPT)
 287 
 288 # PARALLEL_COMPILE_JOBS: is the number of compiles done in parallel.
 289 #  If the user sets ALT_PARALLEL_COMPILE_JOBS, then COMPILE_APPROACH is set
 290 #  to parallel.
 291 #
 292 #  Recommended setting: 2 seems to be ideal for single cpu machines,
 293 #                       2 times the number of CPU's is a basic formula, 
 294 #                       but probably not more than 4 if the machine is 
 295 #                       being shared by others, or the machine is limited 
 296 #                       in RAM or swap.
 297 #
 298 ifdef ALT_PARALLEL_COMPILE_JOBS
 299   PARALLEL_COMPILE_JOBS=$(ALT_PARALLEL_COMPILE_JOBS)
 300 else
 301   PARALLEL_COMPILE_JOBS=2
 302 endif
 303 
 304 # Previous JDK release (version of BOOTDIR version)
 305 ifdef ALT_PREVIOUS_JDK_VERSION
 306   PREVIOUS_JDK_VERSION = $(ALT_PREVIOUS_JDK_VERSION)
 307 else
 308   PREVIOUS_JDK_VERSION  = $(PREVIOUS_MAJOR_VERSION).$(PREVIOUS_MINOR_VERSION).$(PREVIOUS_MICRO_VERSION)$(PREVIOUS_UPDATE_VERSION)
 309 endif
 310 export PREVIOUS_JDK_VERSION
 311 PREVIOUS_JDK_VERSION:=$(call AltCheckSpaces,PREVIOUS_JDK_VERSION)
 312 PREVIOUS_JDK_VERSION:=$(call AltCheckValue,PREVIOUS_JDK_VERSION)
 313 
 314 # Version with _ instead of . in number
 315 ifeq ($(PREVIOUS_MINOR_VERSION),5)
 316   PREVIOUS_JDK_UNDERSCORE_VERSION =  $(subst .,_,$(PREVIOUS_JDK_VERSION))
 317 else
 318   PREVIOUS_JDK_UNDERSCORE_VERSION = $(PREVIOUS_MINOR_VERSION)
 319 endif
 320 
 321 # Include any private definitions for this set of workspaces
 322 _PRIVATE_DEFS_FILE=$(JDK_MAKE_SHARED_DIR)/PrivateDefs.gmk
 323 USING_PRIVATE_DEFS:=$(shell if [ -f $(_PRIVATE_DEFS_FILE) ]; then echo true; else echo false; fi)
 324 ifeq ($(USING_PRIVATE_DEFS),true)
 325 dummy:=$(warning "WARNING: Using definitions from $(_PRIVATE_DEFS_FILE)")
 326 include $(_PRIVATE_DEFS_FILE)
 327 endif
 328 
 329 # Get platform specific settings
 330 include $(JDK_MAKE_SHARED_DIR)/Defs-$(PLATFORM).gmk
 331 
 332 # Components
 333 ifdef ALT_LANGTOOLS_DIST
 334   LANGTOOLS_DIST :=$(call FullPath,$(ALT_LANGTOOLS_DIST))
 335 else
 336   LANGTOOLS_DIST =
 337 endif
 338 ifdef ALT_CORBA_DIST
 339   CORBA_DIST :=$(call FullPath,$(ALT_CORBA_DIST))
 340 else
 341   CORBA_DIST =
 342 endif
 343 ifdef ALT_JAXP_DIST
 344   JAXP_DIST :=$(call FullPath,$(ALT_JAXP_DIST))
 345 else
 346   JAXP_DIST =
 347 endif
 348 ifdef ALT_JAXWS_DIST
 349   JAXWS_DIST :=$(call FullPath,$(ALT_JAXWS_DIST))
 350 else
 351   JAXWS_DIST =
 352 endif
 353 
 354 # HOTSPOT_DOCS_IMPORT_PATH: Path to hotspot docs files to import into the docs generation
 355 ifdef ALT_HOTSPOT_DOCS_IMPORT_PATH
 356   HOTSPOT_DOCS_IMPORT_PATH :=$(call FullPath,$(ALT_HOTSPOT_DOCS_IMPORT_PATH))
 357 else
 358   HOTSPOT_DOCS_IMPORT_PATH :=$(call DirExists,$(HOTSPOT_IMPORT_PATH)/docs,$(PROMOTED_BUILD_BASEDIR)/docs,/NO_DOCS_DIR)
 359 endif
 360 
 361 # PREVIOUS_JDK_FILE: filename of install bundle for previous JDK
 362 ifdef ALT_PREVIOUS_JDK_FILE
 363   PREVIOUS_JDK_FILE  =$(ALT_PREVIOUS_JDK_FILE)
 364 else
 365   PREVIOUS_JDK_FILE = jdk-$(PREVIOUS_JDK_UNDERSCORE_VERSION)-$(PLATFORM)-$(ARCH)$(BUNDLE_FILE_SUFFIX)
 366 endif
 367 export PREVIOUS_JDK_FILE
 368 PREVIOUS_JDK_FILE:=$(call AltCheckSpaces,PREVIOUS_JDK_FILE)
 369 PREVIOUS_JDK_FILE:=$(call AltCheckValue,PREVIOUS_JDK_FILE)
 370 
 371 # PREVIOUS_JRE_FILE: filename of install bundle for previous JRE
 372 ifdef ALT_PREVIOUS_JRE_FILE
 373   PREVIOUS_JRE_FILE  =$(ALT_PREVIOUS_JRE_FILE)
 374 else
 375   PREVIOUS_JRE_FILE = jre-$(PREVIOUS_JDK_UNDERSCORE_VERSION)-$(PLATFORM)-$(ARCH)$(BUNDLE_FILE_SUFFIX)
 376 endif
 377 export PREVIOUS_JRE_FILE
 378 PREVIOUS_JRE_FILE:=$(call AltCheckSpaces,PREVIOUS_JRE_FILE)
 379 PREVIOUS_JRE_FILE:=$(call AltCheckValue,PREVIOUS_JRE_FILE)
 380 
 381 # Set here as shared variables
 382 PREVIOUS_JRE_BUNDLE = $(PREVIOUS_RELEASE_PATH)/$(PREVIOUS_JRE_FILE)
 383 PREVIOUS_JDK_BUNDLE = $(PREVIOUS_RELEASE_PATH)/$(PREVIOUS_JDK_FILE)
 384 
 385 # These are the same on all platforms but require the above platform include 1st
 386 
 387 # BOOTDIR: Bootstrap JDK, previous released JDK.
 388 #   _BOOTDIR1 and _BOOTDIR2 picked by platform
 389 ifdef ALT_BOOTDIR
 390   BOOTDIR =$(ALT_BOOTDIR)
 391 else
 392   BOOTDIR  :=$(call DirExists,$(_BOOTDIR1),$(_BOOTDIR2),/NO_BOOTDIR)
 393 endif
 394 export BOOTDIR
 395 BOOTDIR:=$(call AltCheckSpaces,BOOTDIR)
 396 BOOTDIR:=$(call AltCheckValue,BOOTDIR)
 397 
 398 # PREVIOUS_RELEASE_PATH: path to where previous release bundles are
 399 ifdef ALT_PREVIOUS_RELEASE_PATH
 400   PREVIOUS_RELEASE_PATH :=$(call OptFullPath,$(ALT_PREVIOUS_RELEASE_PATH))
 401 else
 402   PREVIOUS_RELEASE_PATH =$(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs/bundles/$(PLATFORM)-$(ARCH)
 403 endif
 404 export PREVIOUS_RELEASE_PATH
 405 PREVIOUS_RELEASE_PATH:=$(call AltCheckSpaces,PREVIOUS_RELEASE_PATH)
 406 PREVIOUS_RELEASE_PATH:=$(call AltCheckValue,PREVIOUS_RELEASE_PATH)
 407 
 408 # PREVIOUS_RELEASE_IMAGE: Previous install image to compare against
 409 ifdef ALT_PREVIOUS_RELEASE_IMAGE
 410   PREVIOUS_RELEASE_IMAGE :=$(call FullPath,$(ALT_PREVIOUS_RELEASE_IMAGE))
 411 endif
 412 
 413 # CACERTS_FILE: if OPENJDK is false and the internal version of the file 
 414 #               (that is, non-empty) is available, use it, otherwise use an 
 415 #               empty keystore.
 416 #
 417 # We put this variable here for sanity checks and in case another
 418 # components will need to know which cacerts file is being used.
 419 #
 420 ifdef ALT_CACERTS_FILE
 421   CACERTS_FILE = $(ALT_CACERTS_FILE)
 422 else
 423   CACERTS_EXT   = $(SHARE_SRC)/lib/security/cacerts
 424   ifdef OPENJDK
 425     CACERTS_FILE  :=$(CACERTS_EXT)
 426   else # (!OPENJDK)
 427     CACERTS_INT   = $(CLOSED_SHARE_SRC)/lib/security/cacerts.internal
 428     CACERTS_FILE  :=$(call FileExists,$(CACERTS_INT),$(CACERTS_EXT))
 429   endif # (OPENJDK)
 430 endif
 431 CACERTS_FILE:=$(call AltCheckSpaces,CACERTS_FILE)
 432 CACERTS_FILE:=$(call AltCheckValue,CACERTS_FILE)
 433 
 434 # OUTPUTDIR: Location of all output for the build
 435 _BACKUP_OUTPUTDIR = $(TEMP_DISK)/$(USER)/jdk-outputdir
 436 ifdef ALT_OUTPUTDIR
 437   _POSSIBLE_OUTPUTDIR =$(subst \,/,$(ALT_OUTPUTDIR))
 438 else
 439   ifndef _OUTPUTDIR
 440     _OUTPUTDIR = $(_BACKUP_OUTPUTDIR)
 441   endif
 442   _POSSIBLE_OUTPUTDIR =$(_OUTPUTDIR)
 443 endif
 444 
 445 #
 446 # When signing the JCE framework and provider, we could be using built
 447 # bits on a read-only filesystem.  If so, this test will fail and crash
 448 # the build.
 449 #
 450 ifndef IGNORE_WRITABLE_OUTPUTDIR_TEST
 451 _create_outputdir1:=$(shell mkdir -p $(_POSSIBLE_OUTPUTDIR) > $(DEV_NULL) 2>&1)
 452 OUTPUTDIR:=$(call WriteDirExists,$(_POSSIBLE_OUTPUTDIR),$(_BACKUP_OUTPUTDIR))
 453 _create_outputdir2:=$(shell mkdir -p $(OUTPUTDIR) > $(DEV_NULL) 2>&1)
 454 ifeq "$(OUTPUTDIR)" "$(_BACKUP_OUTPUTDIR)"
 455   _outputdir_warning:=$(warning "WARNING: OUTPUTDIR '$(_POSSIBLE_OUTPUTDIR)' not writable, will use '$(_BACKUP_OUTPUTDIR)'")
 456 endif
 457 else
 458 OUTPUTDIR:=$(_POSSIBLE_OUTPUTDIR)
 459 endif
 460 
 461 OUTPUTDIR:=$(call AltCheckSpaces,OUTPUTDIR)
 462 OUTPUTDIR:=$(call AltCheckValue,OUTPUTDIR)
 463 
 464 # Bin directory
 465 #   NOTE: ISA_DIR is usually empty, on Solaris it might be /sparcv9 or /amd64
 466 BINDIR      = $(OUTPUTDIR)/bin$(ISA_DIR)
 467   
 468 # MOZILLA_HEADERS_PATH: path to mozilla header files for plugin
 469 ifdef ALT_MOZILLA_HEADERS_PATH
 470   MOZILLA_HEADERS_PATH :=$(call FullPath,$(ALT_MOZILLA_HEADERS_PATH))
 471 else
 472   MOZILLA_HEADERS_PATH  =$(JDK_DEVTOOLS_DIR)/share/plugin
 473 endif
 474 MOZILLA_HEADERS_PATH:=$(call AltCheckSpaces,MOZILLA_HEADERS_PATH)
 475 MOZILLA_HEADERS_PATH:=$(call AltCheckValue,MOZILLA_HEADERS_PATH)
 476 
 477 # CUPS_HEADERS_PATH: path to Cups headers files for Unix printing
 478 ifneq ($(PLATFORM), windows)
 479 JDK_CUPS_HEADERS_PATH=$(JDK_DEVTOOLS_DIR)/share/cups/include
 480   ifdef ALT_CUPS_HEADERS_PATH
 481      CUPS_HEADERS_PATH:=$(call FullPath,$(ALT_CUPS_HEADERS_PATH))
 482      CUPS_HEADERS_PATH:=$(call AltCheckValue,CUPS_HEADERS_PATH)
 483   else 
 484     CUPS_HEADERS_PATH:= \
 485       $(shell if [ -d "$(JDK_CUPS_HEADERS_PATH)" ]; then \
 486         echo "$(JDK_CUPS_HEADERS_PATH)"; \
 487       else \
 488          echo "$(_CUPS_HEADERS_PATH)";\
 489       fi)
 490   endif
 491 endif
 492 
 493 ifdef ALT_COPYRIGHT_YEAR
 494   COPYRIGHT_YEAR = $(ALT_COPYRIGHT_YEAR)
 495 else
 496   COPYRIGHT_YEAR = $(shell $(DATE) '+%Y')
 497 endif
 498 
 499 # Absolute path to output directory
 500 ABS_OUTPUTDIR:=$(call FullPath,$(OUTPUTDIR))
 501 
 502 # Get shared compiler settings
 503 include $(JDK_MAKE_SHARED_DIR)/Compiler.gmk
 504