jdk/make/common/shared/Sanity.gmk
changeset 2 90ce3da70b43
child 140 3d601b5affa3
equal deleted inserted replaced
0:fd16c54261b3 2:90ce3da70b43
       
     1 #
       
     2 # Copyright 2005-2007 Sun Microsystems, Inc.  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.  Sun designates this
       
     8 # particular file as subject to the "Classpath" exception as provided
       
     9 # by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
       
    22 # CA 95054 USA or visit www.sun.com if you need additional information or
       
    23 # have any questions.
       
    24 #
       
    25 
       
    26 #
       
    27 # WARNING: This file is shared with other workspaces.
       
    28 #
       
    29 
       
    30 #
       
    31 # Shared sanity rules for the JDK builds.
       
    32 #
       
    33 
       
    34 .SUFFIXES: .hdiffs
       
    35 
       
    36 # All files created during sanity checking
       
    37 
       
    38 SANITY_FILES =  $(ERROR_FILE) $(WARNING_FILE) $(MESSAGE_FILE)
       
    39 
       
    40 # How to say "The Release Engineering people use this"
       
    41 THE_OFFICIAL_USES=The official $(PLATFORM) builds use
       
    42 
       
    43 # How to say "You are using:"
       
    44 YOU_ARE_USING=You appear to be using
       
    45 
       
    46 # Settings and rules to validate the JDK build environment.
       
    47 
       
    48 ifeq ($(PLATFORM), solaris)
       
    49   FREE_SPACE := $(shell $(DF) -b $(OUTPUTDIR) | $(TAIL) -1 | $(NAWK) '{print $$2;}')
       
    50   TEMP_FREE_SPACE := $(shell $(DF) -b $(TEMP_DISK) | $(TAIL) -1 | $(NAWK) '{print $$2;}')
       
    51   REQ_PATCH_LIST = $(JDK_TOPDIR)/make/PatchList.solaris
       
    52   ifeq ($(ARCH_FAMILY), sparc)
       
    53     PATCH_POSITION = $$4
       
    54   else
       
    55     PATCH_POSITION = $$6
       
    56   endif
       
    57 endif
       
    58 
       
    59 ifeq ($(PLATFORM), linux)
       
    60   FREE_SPACE := $(shell $(DF) --sync -kP $(OUTPUTDIR) | $(TAIL) -1 | $(NAWK) '{print $$4;}')
       
    61   TEMP_FREE_SPACE := $(shell $(DF) --sync -kP $(TEMP_DISK) | $(TAIL) -1 | $(NAWK) '{print $$4;}')
       
    62   ifeq ($(ARCH), amd64)
       
    63     LINUX_VERSION := $(shell \
       
    64         if [ -r "$(LINUX_VERSION_INFO)" ] ; then \
       
    65           $(CAT) $(LINUX_VERSION_INFO) | $(TAIL) -1 | $(NAWK) '{ print $$3; }';\
       
    66         else \
       
    67           $(ECHO) "Unknown linux"; \
       
    68         fi )
       
    69   else
       
    70     LINUX_VERSION := $(shell \
       
    71         if [ -r "$(LINUX_VERSION_INFO)" ] ; then \
       
    72           $(NAWK) '{ print $$4" "$$5; }' $(LINUX_VERSION_INFO) ; \
       
    73         else \
       
    74           $(ECHO) "Unknown linux"; \
       
    75         fi )
       
    76   endif
       
    77   ifneq ($(ARCH), ia64)
       
    78     # dummy program that outputs ALSA's version (created in target sane-alsa-versioncheck)
       
    79     ALSA_VERSION_CHECK = $(TEMPDIR)/alsaversioncheck
       
    80     ALSA_VERSION = `if [ -f "$(ALSA_VERSION_CHECK)" ] ; then $(ALSA_VERSION_CHECK) ; fi`
       
    81   endif
       
    82 endif
       
    83 
       
    84 ifeq ($(PLATFORM), windows)
       
    85   WINVER=$(JDK_TOPDIR)/make/tools/winver/bin/winver.exe
       
    86   FREE_SPACE := $(shell $(DF) -kP $(OUTPUTDIR) | $(TAIL) -1 | $(NAWK) '{print $$4;}')
       
    87   TEMP_FREE_SPACE := $(shell $(DF) -kP $(TEMP_DISK) | $(TAIL) -1 | $(NAWK) '{print $$4;}')
       
    88   WINDOWS_VERSION := $(shell \
       
    89       if [ -x $(WINVER) ]; then \
       
    90 	$(WINVER) ; \
       
    91       else \
       
    92 	$(ECHO) "Unknown Windows Version"; \
       
    93       fi)
       
    94   DXSDK_VER := $(shell $(EGREP) DIRECTDRAW_VERSION $(DXSDK_INCLUDE_PATH)/ddraw.h 2>&1 | \
       
    95     $(EGREP) "\#define" | $(NAWK) '{print $$3}')
       
    96 endif
       
    97 
       
    98 # Get the version numbers of what we are using
       
    99 _MAKE_VER  :=$(shell $(MAKE) --version 2>&1 | $(HEAD) -n 1)
       
   100 _ZIP_VER   :=$(shell $(ZIPEXE) -help 2>&1 | $(HEAD) -n 4 | $(EGREP) '^Zip')
       
   101 _UNZIP_VER :=$(shell $(UNZIP)  -help 2>&1 | $(HEAD) -n 4 | $(EGREP) '^UnZip')
       
   102 _BOOT_VER  :=$(shell $(BOOTDIR)/bin/java -version 2>&1 | $(HEAD) -n 1)
       
   103 MAKE_VER   :=$(call GetVersion,"$(_MAKE_VER)")
       
   104 ZIP_VER    :=$(call GetVersion,"$(_ZIP_VER)")
       
   105 UNZIP_VER  :=$(call GetVersion,"$(_UNZIP_VER)")
       
   106 BOOT_VER   :=$(call GetVersion,"$(_BOOT_VER)")
       
   107 
       
   108 REQUIRED_ANT_VER      := 1.6.3
       
   109 _ANT_VER              :=$(shell $(ANT) -version 2>&1 )
       
   110 ANT_VER               :=$(call GetVersion,"$(_ANT_VER)")
       
   111 
       
   112 REQUIRED_FINDBUGS_VER := 1.1
       
   113 _FINDBUGS_VER         :=$(shell $(FINDBUGS) -version 2>&1 )
       
   114 FINDBUGS_VER          :=$(call GetVersion,"$(_FINDBUGS_VER)")
       
   115 
       
   116 ifdef ALT_BINDIR
       
   117   ALT_BINDIR_VERSION := $(shell $(ALT_BINDIR)/java$(EXE_SUFFIX) -version 2>&1  | $(NAWK) -F'"' '{ print $$2 }')
       
   118   ALT_BINDIR_OK := $(shell $(ECHO) $(ALT_BINDIR_VERSION) | $(EGREP) -c '^$(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION)')
       
   119 endif
       
   120 
       
   121 INSTALL_PATCHES_FILE = $(TEMPDIR)/installed.patches
       
   122 
       
   123 # Get ALL_SETTINGS defined
       
   124 include $(JDK_MAKE_SHARED_DIR)/Sanity-Settings.gmk
       
   125 
       
   126 .PHONY: \
       
   127 	sane-copyrightyear\
       
   128 	sane-settings \
       
   129 	sane-insane \
       
   130 	sane-build_number \
       
   131 	sane-os_version \
       
   132 	sane-memory_check \
       
   133 	sane-windows \
       
   134 	sane-locale \
       
   135 	sane-linux \
       
   136 	sane-cygwin \
       
   137 	sane-cygwin-shell \
       
   138 	sane-mks \
       
   139 	sane-arch_data_model \
       
   140 	sane-os_patch_level \
       
   141 	sane-classpath \
       
   142 	sane-java_home \
       
   143 	sane-fonts \
       
   144 	sane-binary-plugs \
       
   145 	sane-variant \
       
   146 	sane-ld_library_path \
       
   147 	sane-ld_library_path_64 \
       
   148 	sane-ld_options \
       
   149 	sane-ld_run_path \
       
   150 	sane-makeflags \
       
   151 	sane-alt_outputdir \
       
   152 	sane-outputdir \
       
   153 	sane-alt_bootdir \
       
   154 	sane-bootdir \
       
   155         sane-cups \
       
   156 	sane-devtools_path \
       
   157 	sane-compiler_path \
       
   158 	sane-unixcommand_path \
       
   159 	sane-usrbin_path \
       
   160 	sane-unixccs_path \
       
   161 	sane-docs_import \
       
   162 	sane-math_iso \
       
   163 	sane-libCrun \
       
   164 	sane-odbcdir \
       
   165 	sane-msdevtools_path \
       
   166 	sane-hotspot_binaries \
       
   167 	sane-hotspot_import \
       
   168 	sane-hotspot_import_dir \
       
   169 	sane-hotspot_import_include \
       
   170 	sane-compiler \
       
   171 	sane-link \
       
   172 	sane-cacerts \
       
   173 	sane-alsa-versioncheck \
       
   174 	sane-alsa-headers \
       
   175 	sane-ant_version \
       
   176 	sane-findbugs_version \
       
   177 	sane-zip_version \
       
   178 	sane-unzip_version \
       
   179  	sane-msvcrt_path \
       
   180         sane-freetype
       
   181 
       
   182 ######################################################
       
   183 # check for COPYRIGHT_YEAR variable
       
   184 ######################################################
       
   185 sane-copyrightyear:
       
   186 ifdef ALT_COPYRIGHT_YEAR
       
   187 	@$(ECHO) "WARNING: ALT_COPYRIGHT_YEAR but not the current year\n" \
       
   188 			 	 " will be used for copyright year.\n " \
       
   189 		"" >>$(WARNING_FILE)
       
   190 endif
       
   191 
       
   192 ######################################################
       
   193 # check for INSANE variable
       
   194 ######################################################
       
   195 sane-insane:
       
   196 ifdef INSANE
       
   197 	@$(ECHO) "WARNING: You are building in 'INSANE' mode. You \n" \
       
   198 	   "        should not use this mode, and in fact, \n" \
       
   199 	   "        it may be removed at any time. If you \n" \
       
   200 	   "        have build problems as a result of using \n" \
       
   201 	   "        INSANE mode, then you should not expect \n" \
       
   202 	   "        assistance from anyone with the problems \n" \
       
   203 	   "        or consequences you experience. \n" \
       
   204 	   "" >> $(WARNING_FILE)
       
   205 endif
       
   206 
       
   207 ######################################################
       
   208 # check for GNU Make version
       
   209 ######################################################
       
   210 MAKE_CHECK :=$(call CheckVersions,$(MAKE_VER),$(REQUIRED_MAKE_VER))
       
   211 sane-make:
       
   212 	@if [ "$(MAKE_CHECK)" != "same" -a "$(MAKE_CHECK)" != "newer" ]; then \
       
   213 	  $(ECHO) "WARNING: The version of make being used is older than \n" \
       
   214 	    "      the required version of '$(REQUIRED_MAKE_VER)'. \n" \
       
   215 	    "      The version of make found was '$(MAKE_VER)'. \n" \
       
   216 	    "" >> $(WARNING_FILE) ; \
       
   217 	fi
       
   218 
       
   219 ######################################################
       
   220 # Check the BUILD_NUMBER to make sure it contains bNN
       
   221 ######################################################
       
   222 sane-build_number: 
       
   223 	@if [ "`$(ECHO) $(BUILD_NUMBER) | $(SED) 's@.*b[0-9][0-9]*.*@bNN@'`" != "bNN" ] ; then \
       
   224 	    $(ECHO) "WARNING: The BUILD_NUMBER needs to contain b[0-9][0-9]*. Currently BUILD_NUMBER=$(BUILD_NUMBER). \n" \
       
   225 	      "        This has been known to cause build failures. \n" \
       
   226 	      "" >> $(WARNING_FILE) ; \
       
   227 	fi
       
   228 
       
   229 ######################################################
       
   230 # Check the ARCH_DATA_MODEL setting
       
   231 ######################################################
       
   232 sane-arch_data_model:
       
   233 	@if [ "$(ARCH_DATA_MODEL)" != 32 -a "$(ARCH_DATA_MODEL)" != 64 ]; then \
       
   234 	    $(ECHO) "ERROR: The setting of ARCH_DATA_MODEL must be 32 or 64.\n" \
       
   235 	      "      $(YOU_ARE_USING) ARCH_DATA_MODEL=$(ARCH_DATA_MODEL). \n" \
       
   236 	      "" >> $(ERROR_FILE) ; \
       
   237 	fi
       
   238 
       
   239 ######################################################
       
   240 # Check the OS version (windows and linus have release name checks)
       
   241 #   NOTE: OPENJDK explicitly does not check for OS release information.
       
   242 #         Unless we know for sure that it will not build somewhere, we cannot
       
   243 #         generate a fatal sanity error, and a warning about the official
       
   244 #         build platform just becomes clutter.
       
   245 ######################################################
       
   246 OS_CHECK :=$(call CheckVersions,$(OS_VERSION),$(REQUIRED_OS_VERSION))
       
   247 sane-os_version:: sane-arch_data_model sane-memory_check sane-locale sane-os_patch_level
       
   248 ifndef OPENJDK
       
   249 	@if [ "$(OS_CHECK)" = "missing" ]; then \
       
   250 	  $(ECHO) "ERROR: The $(PLATFORM) OS version is undefined (Try: uname -r). \n" \
       
   251 	    "" >> $(ERROR_FILE) ; \
       
   252 	fi
       
   253 	@if [ "$(OS_CHECK)" != "same" ]; then \
       
   254 	  $(ECHO) "WARNING: $(THE_OFFICIAL_USES) OS version $(REQUIRED_OS_VERSION). \n" \
       
   255 	    "        $(YOU_ARE_USING) OS version $(OS_VERSION). \n" \
       
   256 	    "" >> $(WARNING_FILE) ; \
       
   257 	fi
       
   258   ifeq ($(PLATFORM), windows)
       
   259 	@if [ "$(WINDOWS_VERSION)" != "$(REQUIRED_WINDOWS_VERSION)" ]; then \
       
   260 	    $(ECHO) "WARNING: $(YOU_ARE_USING) an unsupported version of $(REQUIRED_WINDOWS_NAME). \n" \
       
   261 	      "        The supported version is $(REQUIRED_WINDOWS_NAME) $(REQUIRED_WINDOWS_VERSION). \n" \
       
   262 	      "        $(YOU_ARE_USING) $(WINDOWS_VERSION) \n" \
       
   263 	      "" >> $(WARNING_FILE) ; \
       
   264 	fi
       
   265   endif # windows
       
   266   ifeq ($(PLATFORM), linux)
       
   267 	@if [ `$(ECHO) "$(LINUX_VERSION)" | $(EGREP) -c '$(REQUIRED_LINUX_VER)'` -ne 1 ]; then \
       
   268 	  $(ECHO) "WARNING: The build is being done on Linux $(LINUX_VERSION). \n" \
       
   269 	    "        $(THE_OFFICIAL_USES) Linux $(REQUIRED_LINUX_VER), \n" \
       
   270 	    "        specifically Linux $(REQUIRED_LINUX_FULLVER). \n" \
       
   271 	    "        The version found was '$(OS_VERSION)'. \n" \
       
   272 	    "" >> $(WARNING_FILE) ; \
       
   273 	fi
       
   274   endif # linux
       
   275 endif # OPENJDK
       
   276 
       
   277 ifeq ($(PLATFORM), windows)
       
   278   sane-os_version:: sane-cygwin sane-mks sane-cygwin-shell
       
   279 endif
       
   280 
       
   281 ######################################################
       
   282 # Check the memory available on this machine
       
   283 ######################################################
       
   284 sane-memory_check:
       
   285 	@if [ "$(LOW_MEMORY_MACHINE)" = "true" ]; then \
       
   286 	  $(ECHO) "WARNING: This machine appears to only have $(MB_OF_MEMORY)Mb of physical memory, \n" \
       
   287 	    "        builds on this machine could be slow. \n" \
       
   288 	    "" >> $(WARNING_FILE) ; \
       
   289         fi
       
   290 
       
   291 ######################################################
       
   292 # Check the locale (value of LC_ALL, not being empty or ==C can be a problem)
       
   293 ######################################################
       
   294 sane-locale:
       
   295 ifneq ($(PLATFORM), windows)
       
   296 	@if [ "$(LC_ALL)" != "" -a "$(LC_ALL)" != "C" ]; then \
       
   297 	  $(ECHO) "WARNING: LC_ALL has been set to $(LC_ALL), this can cause build failures. \n" \
       
   298 	    "        Try setting LC_ALL to \"C\". \n" \
       
   299 	    "" >> $(WARNING_FILE) ; \
       
   300         fi
       
   301 	@if [ "$(LANG)" != "" -a "$(LANG)" != "C" ]; then \
       
   302 	  $(ECHO) "WARNING: LANG has been set to $(LANG), this can cause build failures. \n" \
       
   303 	    "        Try setting LANG to \"C\". \n" \
       
   304 	    "" >> $(WARNING_FILE) ; \
       
   305         fi
       
   306 endif
       
   307 
       
   308 ######################################################
       
   309 # Check the Windows cygwin version
       
   310 ######################################################
       
   311 ifeq ($(PLATFORM), windows)
       
   312   CYGWIN_CHECK :=$(call CheckVersions,$(CYGWIN_VER),$(REQUIRED_CYGWIN_VER))
       
   313 sane-cygwin:
       
   314   ifdef USING_CYGWIN
       
   315 	@if [ "$(CYGWIN_CHECK)" = "missing" ]; then \
       
   316 	  $(ECHO) "ERROR: The CYGWIN version is undefined. \n" \
       
   317 	    "      $(THE_OFFICIAL_USES) CYGWIN $(REQUIRED_CYGWIN_VER). \n" \
       
   318 	    "" >> $(ERROR_FILE) ; \
       
   319 	fi
       
   320 	@if [ "$(CYGWIN_CHECK)" = "older" ]; then \
       
   321 	  $(ECHO) "ERROR: The build cannot be done on CYGWIN $(CYGWIN_VER). \n" \
       
   322 	    "      Use CYGWIN $(REQUIRED_CYGWIN_VER) or higher. \n" \
       
   323 	    "" >> $(ERROR_FILE) ; \
       
   324 	fi
       
   325   endif
       
   326 endif
       
   327 
       
   328 ######################################################
       
   329 # Check the cygwin shell is used, not cmd.exe
       
   330 ######################################################
       
   331 ifeq ($(PLATFORM), windows)
       
   332 sane-cygwin-shell:
       
   333   ifdef USING_CYGWIN
       
   334 	@if [ "$(SHLVL)" = "" -a "$(_)" = "" ]; then \
       
   335 	  $(ECHO) "ERROR: You are using an unsupported shell. \n" \
       
   336 	    "      Use either sh, bash, ksh, zsh, or tcsh. \n" \
       
   337 	    "      Using the cmd.exe utility is not supported. \n" \
       
   338 	    "      If you still want to try your current shell, \n" \
       
   339 	    "      please export SHLVL=1 when running $(MAKE).  \n" \
       
   340 	    "" >> $(ERROR_FILE) ; \
       
   341 	fi
       
   342   endif
       
   343 endif
       
   344 
       
   345 ######################################################
       
   346 # Check the Windows mks version
       
   347 ######################################################
       
   348 ifeq ($(PLATFORM), windows)
       
   349     MKS_CHECK :=$(call CheckVersions,$(MKS_VER),$(REQUIRED_MKS_VER))
       
   350 sane-mks:
       
   351   ifndef USING_CYGWIN
       
   352 	@if [ "$(MKS_CHECK)" = "missing" ]; then \
       
   353 	  $(ECHO) "ERROR: The MKS version is undefined. \n" \
       
   354 	    "      $(THE_OFFICIAL_USES) MKS $(REQUIRED_MKS_VER). \n" \
       
   355 	    "" >> $(ERROR_FILE) ; \
       
   356 	fi
       
   357 	@if [ "$(MKS_CHECK)" = "older" ]; then \
       
   358 	  $(ECHO) "ERROR: The build cannot be done on MKS $(MKS_VER). \n" \
       
   359 	    "      Use MKS $(REQUIRED_MKS_VER) or higher. \n" \
       
   360 	    "" >> $(ERROR_FILE) ; \
       
   361 	fi
       
   362   endif
       
   363 endif
       
   364 
       
   365 ######################################################
       
   366 # Get list of installed patches (this file has a particular format)
       
   367 ######################################################
       
   368 $(INSTALL_PATCHES_FILE):
       
   369 	@$(prep-target)
       
   370 ifeq ($(PLATFORM), solaris)
       
   371   ifeq ($(OS_VERSION),$(REQUIRED_OS_VERSION))
       
   372 	$(SHOWREV) -p > $@ 2>&1
       
   373   endif
       
   374 endif
       
   375 	@$(ECHO) "" >> $@
       
   376 
       
   377 ######################################################
       
   378 # Check list of Solaris patches
       
   379 ######################################################
       
   380 sane-os_patch_level: $(INSTALL_PATCHES_FILE)
       
   381 ifeq ($(PLATFORM), solaris)
       
   382   ifeq ($(OS_VERSION),$(REQUIRED_OS_VERSION))
       
   383 	@$(NAWK) 'BEGIN { \
       
   384     readingInstallPatches = 0; \
       
   385     requiredCount = 0; \
       
   386     installCount = 0; \
       
   387 } \
       
   388 { \
       
   389     if (readingInstallPatches) { \
       
   390         if ($$1=="Patch:") { \
       
   391             ns = split($$2,parts,"-");  \
       
   392             installPatchNo[installCount]=parts[1]; \
       
   393             installPatchRev[installCount]=parts[2]; \
       
   394             installCount++; \
       
   395         } \
       
   396     } \
       
   397      \
       
   398     if (!readingInstallPatches) { \
       
   399         if (index($$1,"#") != 0) continue; \
       
   400         if (match($$1,"BUILD") > 0 \
       
   401         && $$2 == $(OS_VERSION) \
       
   402         && ($$7 == "REQ" || $$7 == "req") \
       
   403         && $(PATCH_POSITION) != "none" \
       
   404         && $(PATCH_POSITION) != "NONE") { \
       
   405             ns = split($(PATCH_POSITION),parts,"-");  \
       
   406             requiredPatchNo[requiredCount]=parts[1]; \
       
   407             requiredPatchRev[requiredCount]=parts[2]; \
       
   408             requiredCount++; \
       
   409        } \
       
   410     } \
       
   411 } \
       
   412 END { \
       
   413     errorCount=0; \
       
   414     for (i=0; i<requiredCount; i++) { \
       
   415         foundMatch = 0; \
       
   416         for (j=0; j<installCount; j++) { \
       
   417             if (installPatchNo[j] == requiredPatchNo[i] \
       
   418             && installPatchRev[j] >= requiredPatchRev[i]) { \
       
   419                 foundMatch = 1; \
       
   420                 break; \
       
   421             } \
       
   422         } \
       
   423         if ( foundMatch == 0) { \
       
   424             printf("WARNING: Your solaris install is missing the required patch %s-%s\n", requiredPatchNo[i], requiredPatchRev[i] ); \
       
   425             printf("         Please update your your system patches or build on a different machine.\n\n" ); \
       
   426             errorCount++; \
       
   427         } \
       
   428     } \
       
   429 }' $(REQ_PATCH_LIST) readingInstallPatches=1 $(INSTALL_PATCHES_FILE) >> $(WARNING_FILE)
       
   430   endif
       
   431 endif # PLATFORM
       
   432 
       
   433 ######################################################
       
   434 # CLASSPATH cannot be set, unless you are insane.
       
   435 ######################################################
       
   436 sane-classpath:
       
   437 ifdef CLASSPATH
       
   438 	@$(ECHO) "ERROR: Your CLASSPATH environment variable is set.  This will \n" \
       
   439 	   "      most likely cause the build to fail.  Please unset it \n" \
       
   440 	   "      and start your build again. \n" \
       
   441 	   "" >> $(ERROR_FILE)
       
   442 endif
       
   443 
       
   444 ######################################################
       
   445 # JAVA_HOME cannot be set, unless you are insane.
       
   446 ######################################################
       
   447 sane-java_home:
       
   448 ifdef JAVA_HOME
       
   449 	@$(ECHO) "ERROR: Your JAVA_HOME environment variable is set.  This will \n" \
       
   450 	   "      most likely cause the build to fail.  Please unset it \n" \
       
   451 	   "      and start your build again. \n" \
       
   452 	   "" >> $(ERROR_FILE)
       
   453 endif
       
   454 
       
   455 ######################################################
       
   456 # Make sure the fonts are there
       
   457 # Exceptions are when explicitly building OPENJDK, or
       
   458 # when the entire CLOSED_SRC dir is excluded, so we are
       
   459 # implicitly building OPENJDK
       
   460 ######################################################
       
   461 FONT_FILE=$(CLOSED_SRC)/share/lib/fonts/LucidaTypewriterRegular.ttf
       
   462 sane-fonts:
       
   463 ifndef OPENJDK
       
   464 	@if [ -d $(CLOSED_SRC) ] ; then \
       
   465 	 if [ ! -f $(FONT_FILE) ] ; then \
       
   466 	  $(ECHO) "ERROR: Missing $(FONT_FILE). \n" \
       
   467 	   "      Verify you have downloaded and overlayed on the source area all the binary files. \n" \
       
   468 	   "" >> $(ERROR_FILE); \
       
   469 	fi \
       
   470 	fi
       
   471 endif
       
   472 
       
   473 ######################################################
       
   474 # If building OPENJDK check pre-built binaries are
       
   475 # available for binary plug source components.
       
   476 ######################################################
       
   477 ifdef OPENJDK
       
   478 sane-binary-plugs:
       
   479 	@if [ ! -d "$(BINARY_PLUGS_PATH)" ]; then \
       
   480 	  $(ECHO) "ERROR: Can't locate pre-built libraries. \n" \
       
   481 	    "      Please check your access to \n" \
       
   482 	    "          $(BINARY_PLUGS_PATH) \n" \
       
   483 	    "      and/or check your value of ALT_BINARY_PLUGS_PATH. \n" \
       
   484 	   "" >> $(ERROR_FILE); \
       
   485 	fi
       
   486 endif
       
   487 
       
   488 ######################################################
       
   489 # VARIANT must be set to DBG or OPT
       
   490 ######################################################
       
   491 sane-variant:
       
   492 	@if [ "$(VARIANT)" != DBG -a "$(VARIANT)" != OPT ] ; then \
       
   493 	  $(ECHO) "ERROR: Your VARIANT environment variable is set to $(VARIANT). \n" \
       
   494 	   "      Needs to be set to DBG or OPT \n" \
       
   495 	   "" >> $(ERROR_FILE); \
       
   496 	fi
       
   497 
       
   498 ######################################################
       
   499 # LD_LIBRARY_PATH should not be set, unless you are insane.
       
   500 ######################################################
       
   501 sane-ld_library_path:
       
   502 ifdef LD_LIBRARY_PATH
       
   503 	@$(ECHO) "ERROR: Your LD_LIBRARY_PATH environment variable is set.  This may \n" \
       
   504 	   "      produce binaries binaries incorrectly.  Please unset it \n" \
       
   505 	   "      and start your build again. \n" \
       
   506 	   "" >> $(ERROR_FILE)
       
   507 endif
       
   508 
       
   509 ######################################################
       
   510 # LD_LIBRARY_PATH_64 should not be set, unless you are insane.
       
   511 ######################################################
       
   512 sane-ld_library_path_64:
       
   513 ifdef LD_LIBRARY_PATH_64
       
   514 	@$(ECHO) "ERROR: Your LD_LIBRARY_PATH_64 environment variable is set.  This may \n" \
       
   515 	   "      produce binaries binaries incorrectly.  Please unset it \n" \
       
   516 	   "      and start your build again. \n" \
       
   517 	   "" >> $(ERROR_FILE)
       
   518 endif
       
   519 
       
   520 ######################################################
       
   521 # LD_OPTIONS should not be set, unless you are insane.
       
   522 ######################################################
       
   523 sane-ld_options:
       
   524 ifdef LD_OPTIONS
       
   525 	@$(ECHO) "ERROR: Your LD_OPTIONS environment variable is set.  This may \n" \
       
   526 	   "      produce binaries binaries incorrectly.  Please unset it \n" \
       
   527 	   "      and start your build again. \n" \
       
   528 	   "" >> $(ERROR_FILE)
       
   529 endif
       
   530 
       
   531 ######################################################
       
   532 # LD_RUN_PATH should not be set, unless you are insane.
       
   533 ######################################################
       
   534 sane-ld_run_path:
       
   535 ifdef LD_RUN_PATH
       
   536 	@$(ECHO) "ERROR: Your LD_RUN_PATH environment variable is set.  This may \n" \
       
   537 	   "      produce binaries binaries incorrectly.  Please unset it \n" \
       
   538 	   "      produce binaries binaries incorrectly.  Please unset it \n" \
       
   539 	   "      and start your build again. \n" \
       
   540 	   "" >> $(ERROR_FILE)
       
   541 endif
       
   542 
       
   543 ######################################################
       
   544 # MAKEFLAGS cannot be set, unless you are insane.
       
   545 ######################################################
       
   546 ifeq ($(PLATFORM), windows)
       
   547 ifdef USING_CYGWIN
       
   548 REAL_MAKEFLAGS:=$(subst --unix,,$(MAKEFLAGS))
       
   549 else
       
   550 REAL_MAKEFLAGS:=$(MAKEFLAGS)
       
   551 endif
       
   552 else
       
   553 REAL_MAKEFLAGS:=$(MAKEFLAGS)
       
   554 endif
       
   555 sane-makeflags:
       
   556 # ifneq ($(strip $(REAL_MAKEFLAGS)),)
       
   557 ifeq ($(origin MAKEFLAGS),environment)
       
   558 	@#
       
   559 	@# it is unacceptable to have the-e or --environment-overrides value in MAKEFLAGS
       
   560 	@#
       
   561 	@if [ `$(ECHO) $(MAKEFLAGS) | $(EGREP) -c '(^| )(e|--environment-overrides)( |$$)'` -ne 0 ]; then \
       
   562 	  $(ECHO) "ERROR: Either the build was started with the flag -e or \n" \
       
   563 	    "      --environment-overrides, or the MAKEFLAGS environment \n" \
       
   564 	    "      variable has this value set.  This will cause any \n" \
       
   565 	    "      environment variables you have defined to override \n" \
       
   566 	    "      the values defined by the makefiles. This practice is \n" \
       
   567 	    "      not recommemded by the authors of GNU Make, and \n" \
       
   568 	    "      will lead to an improper build. \n" \
       
   569 	    "      Please fix and restart the build. \n" \
       
   570 	    "" >> $(ERROR_FILE) ; \
       
   571 	fi
       
   572 	@#
       
   573 	@# it is unacceptable to havethe -i or --ignore-errors value in MAKEFLAGS
       
   574 	@#
       
   575 	@if [ `$(ECHO) $(MAKEFLAGS) | $(EGREP) -c '(^| )(i|--ignore-errors)( |$$)'` -ne 0 ]; then \
       
   576 	  $(ECHO) "ERROR: Either the build was started with the flag -i or \n" \
       
   577 	    "      --ignore-errors, or the MAKEFLAGS environment \n" \
       
   578 	    "      variable has this value set. 1111 You will be unable \n" \
       
   579 	    "      to determine if the build is broken or not. \n" \
       
   580 	    "      Please fix and restart the build. \n" \
       
   581 	    "" >> $(ERROR_FILE) ; \
       
   582 	fi
       
   583 	@#
       
   584 	@# it is unacceptable to have the -I or --include-dir value in MAKEFLAGS
       
   585 	@#
       
   586 	@if [ `$(ECHO) $(MAKEFLAGS) | $(EGREP) -c '(^| )(I|--include-dir)( |$$)'` -ne 0 ]; then \
       
   587 	  $(ECHO) "ERROR: Either the build was started with the flag -I or \n" \
       
   588 	    "      --include-dir, or the MAKEFLAGS environment \n" \
       
   589 	    "      variable has this value set.  This will render your \n" \
       
   590 	    "      build questionable as not all the rules and depenencies \n" \
       
   591 	    "      are captured by the build. \n" \
       
   592 	    "      Please fix and restart the build. \n" \
       
   593 	    "" >> $(ERROR_FILE) ; \
       
   594 	fi
       
   595 	@#
       
   596 	@# it is unacceptable to have the -k or --keep-going value in MAKEFLAGS:
       
   597 	@#
       
   598 	@if [ `$(ECHO) $(MAKEFLAGS) | $(EGREP) -c '(^| )(k|--keep-going)( |$$)'` -ne 0 ]; then \
       
   599 	  $(ECHO) "ERROR: Either the build was started with the flag -k or \n" \
       
   600 	    "      --keep-going, or the MAKEFLAGS environment \n" \
       
   601 	    "      variable has this value set. 222 You will be unable \n" \
       
   602 	    "      to determine if the build is broken or not. \n" \
       
   603 	    "      Please fix and restart the build.  \n" \
       
   604 	    "" >> $(ERROR_FILE) ; \
       
   605 	fi
       
   606 	@#
       
   607 	@# it is unacceptable to have the -o or --assume-old or --old-filevalue in MAKEFLAGS:
       
   608 	@# Note - this rule never gets invoked because it is processed out
       
   609 	@#        in GNU Make startup
       
   610 	@#
       
   611 	@if [ `$(ECHO) $(MAKEFLAGS) | $(EGREP) -c '(^| )(o|--assume-old|--old-file)( |$$)'` -ne 0 ]; then \
       
   612 	  $(ECHO) "ERROR: Either the build was started with the flag -o or \n" \
       
   613 	    "      --assume-old or --old-file, or the MAKEFLAGS environment \n" \
       
   614 	    "      variable has this value set.  This could prevent the \n" \
       
   615 	    "      build from executing rules it should, thus rendering a \n" \
       
   616 	    "      questionable result. \n" \
       
   617 	    "      Please fix and restart the build. \n" \
       
   618 	    "" >> $(ERROR_FILE) ; \
       
   619 	fi
       
   620 	@#
       
   621 	@# it is unacceptable to have the -r or --nobuiltin-rules value in MAKEFLAGS
       
   622 	@#
       
   623 	@if [ `$(ECHO) $(MAKEFLAGS) | $(EGREP) -c '(^| )(r|--no-builtin-rules)( |$$)'` -ne 0 ]; then \
       
   624 	  $(ECHO) "ERROR: Either the build was started with the flag -r or \n" \
       
   625 	    "      --no-builtin-rules, or the MAKEFLAGS environment \n" \
       
   626 	    "      variable has this value set.  This may break the build \n" \
       
   627 	    "      by not allowing builtin rules that may be required. \n" \
       
   628 	    "      Please fix and restart the build. \n" \
       
   629 	    "" >> $(ERROR_FILE) ; \
       
   630 	fi
       
   631 	@#
       
   632 	@# it is unacceptable to have the -t or --touch value in MAKEFLAGS
       
   633 	@# Note - this rule never gets invoked because it is processed out
       
   634 	@#        in GNU Make startup
       
   635 	@#
       
   636 	@if [ `$(ECHO) $(MAKEFLAGS) | $(EGREP) -c '(^| )(t|--touch)( |$$)'` -ne 0 ]; then \
       
   637 	  $(ECHO) "ERROR: Either the build was started with the flag -t or \n" \
       
   638 	    "      --touch, or the MAKEFLAGS environment \n" \
       
   639 	    "      variable has this value set.  This will leave the \n" \
       
   640 	    "      build in a unclear state and could lead to not executing \n" \
       
   641 	    "      rules which should be executed. \n" \
       
   642 	    "      Please fix and restart the build. \n" \
       
   643 	    "" >> $(ERROR_FILE) ; \
       
   644 	fi
       
   645 	@#
       
   646 	@# show what is in MAKEFLAGS so the user is aware...
       
   647 	@#
       
   648 	@$(ECHO) "WARNING: Your MAKEFLAGS environment variable is set. \n" \
       
   649 	   "        You should be very careful about the values set here. \n" \
       
   650 	   "\n" \
       
   651 	   "        MAKEFLAGS is set to =>$(MAKEFLAGS)<= \n" \
       
   652 	   "" >> $(WARNING_FILE)
       
   653 endif
       
   654 
       
   655 ######################################################
       
   656 # if specified, ALT_OUTPUTDIR must point to non-relative path if set
       
   657 ######################################################
       
   658 sane-alt_outputdir:
       
   659 ifdef ALT_OUTPUTDIR
       
   660 	@if [ `$(ECHO) $(subst \,/,$(ALT_OUTPUTDIR)) | $(EGREP) -ci '^([a-z]:)?/'` -ne 1 ]; then \
       
   661 	  $(ECHO) "ERROR: ALT_OUTPUTDIR must be an Absolute Path Name, \n" \
       
   662 	    "      not a Relative Path Name. \n" \
       
   663 	    "" >> $(ERROR_FILE) ; \
       
   664 	fi
       
   665   ifeq ($(PLATFORM), windows)
       
   666 	@if [ `$(ECHO) $(subst \,/,$(ALT_OUTPUTDIR)) | $(EGREP) -ci '^([a-z]:)'` -ne 1 ]; then \
       
   667 	  $(ECHO) "ERROR: On windows, ALT_OUTPUTDIR must contain the drive letter. \n" \
       
   668 	    "" >> $(ERROR_FILE) ; \
       
   669 	fi
       
   670   endif
       
   671 endif
       
   672 
       
   673 ######################################################
       
   674 # OUTPUTDIR tests
       
   675 ######################################################
       
   676 sane-outputdir:
       
   677 	@#
       
   678 	@# OUTPUTDIR must be a directory...
       
   679 	@#
       
   680 	@if [ ! -d "$(OUTPUTDIR)" ]; then \
       
   681 	  $(ECHO) "ERROR: OUTPUTDIR must be an existing directory. The current \n" \
       
   682 	    "      value of OUTPUTDIR is \n" \
       
   683 	    "          $(OUTPUTDIR) \n" \
       
   684 	    "      Please check your value of ALT_OUTPUTDIR. \n" \
       
   685 	    "" >> $(ERROR_FILE) ; \
       
   686 	fi
       
   687 	@#
       
   688 	@# OUTPUTDIR must be writeable by user...
       
   689 	@#
       
   690 	@if [ ! -w "$(OUTPUTDIR)" ]; then \
       
   691 	  $(ECHO) "ERROR: You must have write permissions to OUTPUTDIR. The \n" \
       
   692 	    "      current value of OUTPUTDIR is \n" \
       
   693 	    "          $(OUTPUTDIR) \n" \
       
   694 	    "      Either obtain these permissions or set ALT_OUTPUTDIR. \n" \
       
   695 	    "" >> $(ERROR_FILE) ; \
       
   696 	fi
       
   697 	@#
       
   698 	@# OUTPUTDIR must have enough free space...
       
   699 	@#
       
   700 	@if [ $(FREE_SPACE) -lt $(REQUIRED_FREE_SPACE) ]; then \
       
   701 	  $(ECHO) "WARNING: You may not have enough free space in your OUTPUTDIR. The \n" \
       
   702 	    "        current value of OUTPUTDIR is \n" \
       
   703 	    "            $(OUTPUTDIR) \n" \
       
   704 	    "        You need "$(REQUIRED_FREE_SPACE)" Kbytes free on this device to build \n" \
       
   705 	    "        and it appears that only "$(FREE_SPACE)" Kbytes are free. \n" \
       
   706 	    "        Either obtain more space or set ALT_OUTPUTDIR to a larger disk. \n" \
       
   707 	    "" >> $(WARNING_FILE) ; \
       
   708 	fi
       
   709 
       
   710 ######################################################
       
   711 # if specified, ALT_BOOTDIR must point to non-relative path if set
       
   712 ######################################################
       
   713 sane-alt_bootdir:
       
   714 ifdef ALT_BOOTDIR
       
   715 	@if [ `$(ECHO) $(subst \,/,$(ALT_BOOTDIR)) | $(EGREP) -ci '^([a-z]:)?/'` -ne 1 ]; then \
       
   716 	  $(ECHO) "ERROR: ALT_BOOTDIR must be an Absolute Path Name, \n" \
       
   717 	    "      not a Relative Path Name. \n" \
       
   718 	    "      The current value of ALT_BOOTDIR is \n" \
       
   719 	    "          $(ALT_BOOTDIR) \n" \
       
   720 	    "      Please fix this and continue your build. \n" \
       
   721 	    "" >> $(ERROR_FILE) ; \
       
   722 	fi
       
   723 endif
       
   724 
       
   725 ######################################################
       
   726 # BOOTDIR must point to a valid JDK.
       
   727 ######################################################
       
   728 BOOT_CHECK :=$(call CheckVersions,$(BOOT_VER),$(REQUIRED_BOOT_VER))
       
   729 sane-bootdir:
       
   730 	@if [ "$(BOOT_CHECK)" != "same" -a "$(BOOT_CHECK)" != "newer" ]; then \
       
   731 	  $(ECHO) "ERROR: Your BOOTDIR environment variable does not point \n" \
       
   732 	    "      to a valid JDK for bootstrapping this build. \n" \
       
   733 	    "      A JDK $(JDK_MINOR_VERSION) $(MARKET_NAME) build must be bootstrapped using  \n" \
       
   734 	    "      JDK $(PREVIOUS_JDK_VERSION) fcs (or later). \n" \
       
   735 	    "      Apparently, your bootstrap JDK is version $(BOOT_VER) \n" \
       
   736 	    "      Please update your ALT_BOOTDIR setting and start your build again. \n" \
       
   737 	    "" >> $(ERROR_FILE) ; \
       
   738 	fi
       
   739 
       
   740 ######################################################
       
   741 # CACERTS_FILE must be absoulte path and readable
       
   742 ######################################################
       
   743 sane-cacerts:
       
   744   ifdef ALT_CACERTS_FILE
       
   745 	@if [ `$(ECHO) $(subst \,/,$(ALT_CACERTS_FILE)) | $(EGREP) -ci '^([a-z]:)?/'` -ne 1 ]; then \
       
   746 	  $(ECHO) "ERROR: ALT_CACERTS_FILE must be an Absolute Path Name, \n" \
       
   747 	    "      not a Relative Path Name. \n" \
       
   748 	    "      The current value of ALT_CACERTS_FILE is \n" \
       
   749 	    "          $(ALT_CACERTS_FILE) \n" \
       
   750 	    "      Please fix this and continue your build. \n" \
       
   751 	    "" >> $(ERROR_FILE) ; \
       
   752 	fi
       
   753   endif
       
   754 	@#
       
   755 	@# CACERTS_FILE must be readable
       
   756 	@#
       
   757 	@if [ ! -r "$(subst \,/,$(CACERTS_FILE))" ]; then \
       
   758 	  $(ECHO) "ERROR: You do not have access to a valid cacerts file. \n" \
       
   759 	    "      Please check your access to \n" \
       
   760 	    "          $(subst \,/,$(CACERTS_FILE)) \n" \
       
   761 	    "      and/or check your value of ALT_CACERTS_FILE. \n" \
       
   762 	    "" >> $(ERROR_FILE) ; \
       
   763 	fi
       
   764 	@#
       
   765 	@# CACERTS_FILE must be a file
       
   766 	@#
       
   767 	@if [ -d "$(subst \,/,$(CACERTS_FILE))" ]; then \
       
   768 	  $(ECHO) "ERROR: You do not have access to a valid cacerts file.\n" \
       
   769 	    "      The value of CACERTS_FILE must point to a normal file.\n" \
       
   770 	    "      Please check your access to \n" \
       
   771 	    "          $(subst \,/,$(CACERTS_FILE)) \n" \
       
   772 	    "      and/or check your value of ALT_CACERTS_FILE. \n" \
       
   773 	    "" >> $(ERROR_FILE) ; \
       
   774 	fi
       
   775 
       
   776 
       
   777 ######################################################
       
   778 # Check for availability of FreeType (OpenJDK specific)
       
   779 ######################################################
       
   780 
       
   781 ifdef OPENJDK
       
   782 
       
   783 #name of test program that prints out "Failed" if freetype is not good enough
       
   784 FREETYPE_VERSION_CHECK_NAME = freetype_versioncheck
       
   785 FREETYPE_VERSION_CHECK = $(TEMPDIR)/$(FREETYPE_VERSION_CHECK_NAME)$(EXE_SUFFIX)
       
   786 
       
   787 sane-freetype:
       
   788 	@-($(CD) $(BUILDDIR)/tools/freetypecheck && \
       
   789 	$(MAKE) REQUIRED_FREETYPE_VERSION=$(REQUIRED_FREETYPE_VERSION) \
       
   790 	        FT_TEST=$(FREETYPE_VERSION_CHECK_NAME) \
       
   791 	        FT_HEADERS=$(FREETYPE_HEADERS_PATH) \
       
   792 	        FT_LIB=$(FREETYPE_LIB_PATH) \
       
   793 	        XARCH=$(XARCH))
       
   794 	@if [ ! -r $(FREETYPE_VERSION_CHECK) -o \
       
   795 	  "`$(FREETYPE_VERSION_CHECK) | $(GREP) Fail`" != "" ]; then \
       
   796 	  $(ECHO) "ERROR: FreeType version " $(REQUIRED_FREETYPE_VERSION) \
       
   797 	          "or higher is required. \n" >> $(ERROR_FILE) ; \
       
   798 	fi
       
   799 
       
   800 else
       
   801 #do nothing  (not OpenJDK)
       
   802 sane-freetype: 
       
   803 endif
       
   804 
       
   805 ######################################################
       
   806 # CUPS_HEADERS_PATH must be valid
       
   807 ######################################################
       
   808 sane-cups:
       
   809 ifneq ($(PLATFORM), windows)
       
   810 	@if [ ! -r $(CUPS_HEADERS_PATH)/cups/cups.h ]; then \
       
   811 	  $(ECHO) "ERROR: You do not have access to valid Cups header files. \n" \
       
   812 	    "      Please check your access to \n" \
       
   813 	    "          $(CUPS_HEADERS_PATH)/cups/cups.h \n" \
       
   814 	    "      and/or check your value of ALT_CUPS_HEADERS_PATH, \n" \
       
   815 	    "      CUPS is frequently pre-installed on many systems, \n" \
       
   816             "      or may be downloaded from http://www.cups.org \n" \
       
   817 	    "" >> $(ERROR_FILE) ; \
       
   818 	fi
       
   819 endif
       
   820 
       
   821 ######################################################
       
   822 # Check for existence of DEVTOOLS_PATH
       
   823 ######################################################
       
   824 sane-devtools_path:
       
   825 	@if [ "$(DEVTOOLS_PATH)" != "" -a ! -r "$(DEVTOOLS_PATH)" ]; then \
       
   826 	  $(ECHO) "ERROR: You do not have a valid DEVTOOLS_PATH setting. \n" \
       
   827 	    "      Please check your access to \n" \
       
   828 	    "          $(DEVTOOLS_PATH) \n" \
       
   829 	    "      and/or check your value of ALT_DEVTOOLS_PATH. \n" \
       
   830 	    "" >> $(ERROR_FILE) ; \
       
   831 	fi
       
   832 
       
   833 ######################################################
       
   834 # Check for existence of MS_RUNTIME_LIBRARIES
       
   835 ######################################################
       
   836 sane-msvcrt_path:
       
   837 ifeq ($(PLATFORM), windows)
       
   838 	@if [ ! -r "$(MSVCRT_DLL_PATH)/msvcrt.dll" ]; then \
       
   839 	  $(ECHO) "ERROR: You do not have access to msvcrt.dll. \n" \
       
   840 	    "      Please check your access to \n" \
       
   841 	    "          $(MSVCRT_DLL_PATH) \n" \
       
   842 	    "      and/or check your value of ALT_MSVCRT_DLL_PATH. \n" \
       
   843 	    "" >> $(ERROR_FILE) ; \
       
   844 	fi
       
   845   ifeq ($(ARCH_DATA_MODEL), 32)
       
   846     ifeq ($(COMPILER_VERSION), VS2003)
       
   847 	@if [ ! -r "$(MSVCR71_DLL_PATH)/msvcr71.dll" ]; then \
       
   848 	  $(ECHO) "ERROR: You do not have access to msvcr71.dll. \n" \
       
   849 	    "      Please check your access to \n" \
       
   850 	    "          $(MSVCR71_DLL_PATH) \n" \
       
   851 	    "      and/or check your value of ALT_MSVCR71_DLL_PATH. \n" \
       
   852 	    "" >> $(ERROR_FILE) ; \
       
   853 	fi
       
   854     endif
       
   855   endif
       
   856 endif
       
   857 
       
   858 ######################################################
       
   859 # Check for existence of COMPILER_PATH
       
   860 ######################################################
       
   861 sane-compiler_path:
       
   862 	@if [ "$(COMPILER_PATH)" != "" -a ! -r "$(COMPILER_PATH)" ]; then \
       
   863 	  $(ECHO) "ERROR: You do not have a valid COMPILER_PATH setting. \n" \
       
   864 	    "      Please check your access to \n" \
       
   865 	    "          $(COMPILER_PATH) \n" \
       
   866 	    "      and/or check your value of ALT_COMPILER_PATH. \n" \
       
   867 	    "" >> $(ERROR_FILE) ; \
       
   868 	fi
       
   869 
       
   870 ######################################################
       
   871 # Check for existence of UNIXCOMMAND_PATH
       
   872 ######################################################
       
   873 sane-unixcommand_path:
       
   874 	@if [ "$(UNIXCOMMAND_PATH)" != "" -a ! -r "$(UNIXCOMMAND_PATH)" ]; then \
       
   875 	  $(ECHO) "ERROR: You do not have a valid UNIXCOMMAND_PATH setting. \n" \
       
   876 	    "      Please check your access to \n" \
       
   877 	    "          $(UNIXCOMMAND_PATH) \n" \
       
   878 	    "      and/or check your value of ALT_UNIXCOMMAND_PATH. \n" \
       
   879 	    "" >> $(ERROR_FILE) ; \
       
   880 	fi
       
   881 ifeq ($(PLATFORM), windows)
       
   882 	@for utility in cpio ar file m4 ; do \
       
   883 	  if [ ! -r "`$(WHICH) $${utility}`" ]; then \
       
   884 	    $(ECHO) "WARNING: You do not have the utility $${utility} in the \n" \
       
   885 	      "      directory $(UNIXCOMMAND_PATH). \n" \
       
   886 	      "      The utilities cpio, ar, file, and m4 are required. \n" \
       
   887 	      "" >> $(WARNING_FILE) ; \
       
   888 	  fi; \
       
   889 	done
       
   890 endif
       
   891 
       
   892 ######################################################
       
   893 # Check for existence of USRBIN_PATH on linux
       
   894 ######################################################
       
   895 sane-usrbin_path:
       
   896 ifeq ($(PLATFORM), linux)
       
   897 	@if [ "$(USRBIN_PATH)" != "" -a ! -r "$(USRBIN_PATH)" ]; then \
       
   898 	    $(ECHO) "ERROR: You do not have a valid USRBIN_PATH setting. \n" \
       
   899 	      "      Please check your access to \n" \
       
   900 	      "          $(USRBIN_PATH)  \n" \
       
   901 	      "      and/or check your value of ALT_USRBIN_PATH. \n" \
       
   902 	      "" >> $(ERROR_FILE) ; \
       
   903 	  fi
       
   904 endif
       
   905 
       
   906 ######################################################
       
   907 # Check for existence of UNIXCCS_PATH on solaris
       
   908 ######################################################
       
   909 sane-unixccs_path:
       
   910 ifeq ($(PLATFORM), solaris)
       
   911 	@if [ "$(UNIXCCS_PATH)" != "" -a ! -r "$(UNIXCCS_PATH)" ]; then \
       
   912 	  $(ECHO) "ERROR: You do not have a valid UNIXCCS_PATH setting. \n" \
       
   913 	    "      Please check your access to \n" \
       
   914 	    "          $(UNIXCCS_PATH) \n" \
       
   915 	    "      and/or check your value of ALT_UNIXCCS_PATH. \n" \
       
   916 	    "" >> $(ERROR_FILE) ; \
       
   917 	  fi
       
   918 endif
       
   919 
       
   920 ######################################################
       
   921 # Verify the docs directory exists
       
   922 ######################################################
       
   923 sane-docs_import:
       
   924 	@if [ ! -d "$(HOTSPOT_DOCS_IMPORT_PATH)" ]; then \
       
   925 	    $(ECHO) "WARNING: The directory HOTSPOT_DOCS_IMPORT_PATH=$(HOTSPOT_DOCS_IMPORT_PATH) \n" \
       
   926 	      "      does not exist, check your value of ALT_HOTSPOT_DOCS_IMPORT_PATH. \n" \
       
   927 	      "" >> $(WARNING_FILE) ; \
       
   928 	fi
       
   929 
       
   930 ######################################################
       
   931 # Check for possible problem regarding __fabsf,  math_iso.h and the libm patch.
       
   932 #    Hotspot should have been changed in Mustang 6.0 Build 47 to not depend
       
   933 #    on __fabsf, this is just checking that fact now.
       
   934 ######################################################
       
   935 sane-math_iso:
       
   936 ifeq ($(PLATFORM), solaris)
       
   937 	@if [ -f $(HOTSPOT_SERVER_PATH)/$(LIB_PREFIX)jvm.$(LIBRARY_SUFFIX) ]; then \
       
   938 	  if [ "`$(NM) $(HOTSPOT_SERVER_PATH)/$(LIB_PREFIX)jvm.$(LIBRARY_SUFFIX) | $(GREP) __fabsf`" != "" ]; then \
       
   939 	    $(ECHO) "WARNING: This version of hotspot relies on __fabsf \n" \
       
   940 	      "        which is not always available on Solaris 8 and 9 machines \n" \
       
   941 	      "        unless they have the latest libm patch and the file \n" \
       
   942 	      "        /usr/include/iso/math_iso.h which can trigger this dependency.\n" \
       
   943 	      "        Hotspot should NOT be dependent on this extern, check the \n" \
       
   944 	      "        version of the hotspot library you are using. \n" \
       
   945 	      "" >> $(WARNING_FILE) ; \
       
   946 	    fi; \
       
   947 	fi
       
   948 endif
       
   949 
       
   950 ######################################################
       
   951 # Check for possible patch problem regarding /usr/lib/libCrun.so
       
   952 ######################################################
       
   953 sane-libCrun:
       
   954 ifeq ($(PLATFORM), solaris)
       
   955 	@if [ "`$(NM) /usr/lib/libCrun.so.1 | $(GREP) __1c2n6FIpv_0_`" = "" ]; then \
       
   956 	  $(ECHO) "WARNING: The file /usr/lib/libCrun.so.1 is missing the extern \n" \
       
   957 	    "        __1c2n6FIpv_0_ which indicates that the system is missing \n" \
       
   958 	    "        a required Solaris patch, or you are using a pre-FCS release \n" \
       
   959 	    "        of Solaris 10. You need the latest /usr/lib/libCrun.so.1 \n" \
       
   960 	    "        which comes with the FCS release of Solaris 10 and available \n" \
       
   961 	    "        through the latest Solaris 8 or 9 C++ runtime patches. \n" \
       
   962 	    "" >> $(WARNING_FILE) ; \
       
   963 	fi
       
   964 endif
       
   965 
       
   966 ######################################################
       
   967 # Check for existence of MSDEVTOOLS_PATH on windows
       
   968 ######################################################
       
   969 sane-msdevtools_path:
       
   970 ifeq ($(PLATFORM), windows)
       
   971 	@if [ "$(MSDEVTOOLS_PATH)" != "" -a ! -r "$(MSDEVTOOLS_PATH)" ]; then \
       
   972 	  $(ECHO) "ERROR: You do not have a valid MSDEVTOOLS_PATH setting. \n" \
       
   973 	    "      Please check your access to \n" \
       
   974 	    "          $(MSDEVTOOLS_PATH) \n" \
       
   975 	    "      and/or check your value of ALT_MSDEVTOOLS_PATH. \n" \
       
   976 	    "" >> $(ERROR_FILE) ; \
       
   977 	fi
       
   978 endif
       
   979 
       
   980 ######################################################
       
   981 # Check for existence of Hotspot binaries
       
   982 ######################################################
       
   983 sane-hotspot_binaries:
       
   984 ifeq ($(ARCH_DATA_MODEL), 32)
       
   985 	@if [ ! -r $(HOTSPOT_CLIENT_PATH)/$(LIB_PREFIX)jvm.$(LIBRARY_SUFFIX) ]; then \
       
   986 	  $(ECHO) "ERROR: HOTSPOT_CLIENT_PATH does not point to a valid HotSpot VM. \n" \
       
   987 	    "      Please check your access to \n" \
       
   988 	    "          $(HOTSPOT_CLIENT_PATH)/$(LIB_PREFIX)jvm.$(LIBRARY_SUFFIX) \n" \
       
   989 	    "      and/or check your value of ALT_HOTSPOT_CLIENT_PATH. \n" \
       
   990 	    "" >> $(ERROR_FILE) ; \
       
   991 	fi
       
   992 endif
       
   993 	@if [ ! -r $(HOTSPOT_SERVER_PATH)/$(LIB_PREFIX)jvm.$(LIBRARY_SUFFIX) ]; then \
       
   994 	  $(ECHO) "ERROR: HOTSPOT_SERVER_PATH does not point to a valid HotSpot VM. \n" \
       
   995 	    "      Please check your access to \n" \
       
   996 	    "          $(HOTSPOT_SERVER_PATH)/$(LIB_PREFIX)jvm.$(LIBRARY_SUFFIX) \n" \
       
   997 	    "      and/or check your value of ALT_HOTSPOT_SERVER_PATH. \n" \
       
   998 	    "" >> $(ERROR_FILE) ; \
       
   999 	fi
       
  1000 	@#
       
  1001 	@# Check value of HOTSPOT_LIB_PATH
       
  1002 	@#
       
  1003 ifeq ($(PLATFORM), windows)
       
  1004 	@if [ ! -r $(HOTSPOT_LIB_PATH)/jvm.lib ]; then \
       
  1005 	  $(ECHO) "ERROR: HOTSPOT_LIB_PATH does not point to a valid HotSpot library. \n" \
       
  1006 	    "      Please check your access to \n" \
       
  1007 	    "          $(HOTSPOT_LIB_PATH)/jvm.lib \n" \
       
  1008 	    "      and/or check your value of ALT_HOTSPOT_LIB_PATH. \n" \
       
  1009 	    "" >> $(ERROR_FILE) ; \
       
  1010 	fi
       
  1011 	@#
       
  1012 	@# Check for the .map files - its OK if they are not there..
       
  1013 	@#
       
  1014   ifeq ($(ARCH_DATA_MODEL), 32)
       
  1015 	@# There is no 64-bit HotSpot client VM
       
  1016 	@if [ ! -r $(HOTSPOT_CLIENT_PATH)/jvm.map ]; then \
       
  1017 	  $(ECHO) "WARNING: HOTSPOT_CLIENT_PATH does not point to valid HotSpot .map files. \n" \
       
  1018 	    "        These files are optional and aid in the debugging of the JVM. \n" \
       
  1019 	    "        Please check your access to \n" \
       
  1020 	    "          $(HOTSPOT_CLIENT_PATH)/jvm.map \n" \
       
  1021 	    "        and/or check your value of ALT_HOTSPOT_CLIENT_PATH. \n" \
       
  1022 	    "" >> $(WARNING_FILE) ; \
       
  1023 	fi
       
  1024 	@if [ ! -r $(HOTSPOT_CLIENT_PATH)/jvm.pdb ]; then \
       
  1025 	  $(ECHO) "WARNING: HOTSPOT_CLIENT_PATH does not point to valid HotSpot .pdb files. \n" \
       
  1026 	    "        These files are optional and aid in the debugging of the JVM. \n" \
       
  1027 	    "        Please check your access to \n" \
       
  1028 	    "          $(HOTSPOT_CLIENT_PATH)/jvm.pdb \n" \
       
  1029 	    "        and/or check your value of ALT_HOTSPOT_CLIENT_PATH. \n" \
       
  1030 	    "" >> $(WARNING_FILE) ; \
       
  1031 	fi
       
  1032   endif
       
  1033 	@if [ ! -r $(HOTSPOT_SERVER_PATH)/jvm.map ]; then \
       
  1034 	  $(ECHO) "WARNING: HOTSPOT_SERVER_PATH does not point to valid HotSpot .map files. \n" \
       
  1035 	    "        These files are optional and aid in the debugging of the JVM. \n" \
       
  1036 	    "        Please check your access to \n" \
       
  1037 	    "          $(HOTSPOT_SERVER_PATH)/jvm.map \n" \
       
  1038 	    "        and/or check your value of ALT_HOTSPOT_SERVER_PATH. \n" \
       
  1039 	    "" >> $(WARNING_FILE) ; \
       
  1040 	fi
       
  1041 	@if [ ! -r $(HOTSPOT_SERVER_PATH)/jvm.pdb ]; then \
       
  1042 	  $(ECHO) "WARNING: HOTSPOT_SERVER_PATH does not point to valid HotSpot .pdb files. \n" \
       
  1043 	    "        These files are optional and aid in the debugging of the JVM. \n" \
       
  1044 	    "        Please check your access to \n" \
       
  1045 	    "          $(HOTSPOT_SERVER_PATH)/jvm.pdb \n" \
       
  1046 	    "        and/or check your value of ALT_HOTSPOT_SERVER_PATH. \n" \
       
  1047 	    "" >> $(WARNING_FILE) ; \
       
  1048 	fi
       
  1049 endif	
       
  1050 
       
  1051 
       
  1052 ######################################################
       
  1053 # Check for existence of misc Hotspot imported files
       
  1054 ######################################################
       
  1055 HOTSPOT_INCLUDE_FILE_LIST  = jvmti.h
       
  1056 #HOTSPOT_INCLUDE_FILE_LIST += jni.h jni_md.h
       
  1057 #HOTSPOT_INCLUDE_FILE_LIST += jvm.h jvm_md.h
       
  1058 #HOTSPOT_INCLUDE_FILE_LIST += jmm.h
       
  1059 TMP_SDK_INCLUDE_FILE_LIST=$(HOTSPOT_INCLUDE_FILE_LIST:%.h=$(TEMPDIR)/%.h)
       
  1060 TMP_SDK_INCLUDE_FILE_DIFFS=$(HOTSPOT_INCLUDE_FILE_LIST:%.h=$(TEMPDIR)/%.hdiffs)
       
  1061 
       
  1062 # These include files must have a pattern: 'version: MAJOR.MINOR.MICRO'
       
  1063 #    where MACRO, MINOR, and MICRO are numbers, e.g. 1.0.1, 0.2.90, etc.
       
  1064 #    The critical version we are checking is MAJOR.MINOR, we print all three
       
  1065 #    when we detect an error.
       
  1066 
       
  1067 TMP_SDK_INCLUDE_FIND_VERSION= $(EGREP) 'version:'
       
  1068 TMP_SDK_INCLUDE_GET_VERSION= $(TMP_SDK_INCLUDE_FIND_VERSION) | \
       
  1069 		$(SED) -e 's@.*\([0-9][0-9]*\.[0-9][0-9]*\)\.[0-9].*@\1@'
       
  1070 TMP_SDK_INCLUDE_GET_FULL_VERSION= $(TMP_SDK_INCLUDE_FIND_VERSION) | \
       
  1071 		$(SED) -e 's@.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*@\1@'
       
  1072 
       
  1073 # Compare an interface file (Rule creates 2 temp files: %.h and %.h.IMPORT)
       
  1074 #    Files jvm.h, jvm_md.h and jmm.h are special in that they are not publicly 
       
  1075 #    exported but do represent VM interfaces used by the rest of the jdk.
       
  1076 #    So these 3 will not be found in a promoted build and can only
       
  1077 #    be checked when this represents a full control build (i.e. the
       
  1078 #    HOTSPOT_IMPORT_PATH includes these files in it's 'include' directory).
       
  1079 $(TEMPDIR)/%.h: $(SHARE_SRC)/javavm/export/%.h
       
  1080 	@$(install-file)
       
  1081 	@$(RM) $@.IMPORT
       
  1082 	@if [ -r $(HOTSPOT_IMPORT_PATH)/include/$(@F) ]; then \
       
  1083 	  $(CP) $(HOTSPOT_IMPORT_PATH)/include/$(@F) $@.IMPORT ; \
       
  1084 	elif [ "$(@F)" != "jvm.h" -a "$(@F)" != "jmm.h" ] ; then \
       
  1085 	  $(ECHO) "WARNING: HOTSPOT_IMPORT_PATH does not contain the interface file $(@F). \n" \
       
  1086 	    "        Check your value of ALT_HOTSPOT_IMPORT_PATH. \n" \
       
  1087 	    "" >> $(WARNING_FILE) ; \
       
  1088 	  $(CP) $< $@.IMPORT; \
       
  1089 	else \
       
  1090 	  $(CP) $< $@.IMPORT; \
       
  1091 	fi
       
  1092 
       
  1093 $(TEMPDIR)/%.h: $(PLATFORM_SRC)/javavm/export/%.h
       
  1094 	@$(install-file)
       
  1095 	@$(RM) $@.IMPORT
       
  1096 	@if [ -r $(HOTSPOT_IMPORT_PATH)/include/$(PLATFORM_INCLUDE_NAME)/$(@F) ]; then \
       
  1097 	  $(CP) $(HOTSPOT_IMPORT_PATH)/include/$(PLATFORM_INCLUDE_NAME)/$(@F) $@.IMPORT ; \
       
  1098 	elif [ "$(@F)" != "jvm_md.h" ] ; then \
       
  1099 	  $(ECHO) "WARNING: HOTSPOT_IMPORT_PATH does not contain the interface file $(@F). \n" \
       
  1100 	    "        Check your value of ALT_HOTSPOT_IMPORT_PATH. \n" \
       
  1101 	    "" >> $(WARNING_FILE) ; \
       
  1102 	  $(CP) $< $@.IMPORT; \
       
  1103 	else \
       
  1104 	  $(CP) $< $@.IMPORT; \
       
  1105 	fi
       
  1106 
       
  1107 # Compares the two tempfiles: %.h and %.h.IMPORT, answer in %.hdiffs
       
  1108 #   Note: Putting anything into the hdiffs file will trigger generic IMPORT
       
  1109 #         warning message in hotspot_import_include.
       
  1110 #   First checks the major.minor versions, the micro number can differ.
       
  1111 #   Second checks the full version.
       
  1112 #   Lastly does a full diff if the full version differs or it has no version
       
  1113 $(TEMPDIR)/%.hdiffs: $(TEMPDIR)/%.h
       
  1114 	@$(prep-target)
       
  1115 	@$(TOUCH) $@
       
  1116 	@if [ "`$(CAT) $<        | $(TMP_SDK_INCLUDE_GET_VERSION)`" != \
       
  1117 	      "`$(CAT) $<.IMPORT | $(TMP_SDK_INCLUDE_GET_VERSION)`" ] ; then \
       
  1118 	    $(ECHO) "WARNING: The file $(<F) is not the same interface as the VM version.\n " \
       
  1119 	      "        this workspace has $(<F) `$(CAT) $< | $(TMP_SDK_INCLUDE_GET_FULL_VERSION)` and \n " \
       
  1120 	      "        HOTSPOT_IMPORT_PATH contains $(<F) `$(CAT) $<.IMPORT | $(TMP_SDK_INCLUDE_GET_FULL_VERSION)` \n" \
       
  1121 	    "" >> $(WARNING_FILE) ; \
       
  1122 	     $(ECHO) "Version mis-match" > $@ ; \
       
  1123 	fi
       
  1124 	@if [ "`$(CAT) $<        | $(TMP_SDK_INCLUDE_GET_FULL_VERSION)`" != \
       
  1125                "`$(CAT) $<.IMPORT | $(TMP_SDK_INCLUDE_GET_FULL_VERSION)`" ] ; then \
       
  1126           $(RM) $<.filtered  $<.IMPORT.filtered; \
       
  1127           $(EGREP) -v 'VERSION' $< > $<.filtered; \
       
  1128           $(EGREP) -v 'VERSION' $<.IMPORT > $<.IMPORT.filtered; \
       
  1129           ($(DIFF) -w $<.filtered $<.IMPORT.filtered || exit 0) >> $@ ; \
       
  1130         elif [ "`$(CAT) $< | $(TMP_SDK_INCLUDE_FIND_VERSION)`" = "" ] ; then \
       
  1131           $(RM) $<.filtered  $<.IMPORT.filtered; \
       
  1132           $(EGREP) -v '@\(#\)' $< > $<.filtered; \
       
  1133           $(EGREP) -v '@\(#\)' $<.IMPORT > $<.IMPORT.filtered; \
       
  1134           ($(DIFF) -w $<.filtered $<.IMPORT.filtered || exit 0) >> $@ ; \
       
  1135 	fi
       
  1136 
       
  1137 # Verify all imported hotspot files
       
  1138 sane-hotspot_import:: sane-hotspot_import_dir sane-hotspot_import_include
       
  1139 
       
  1140 # Verify the base directory exists
       
  1141 sane-hotspot_import_dir:
       
  1142 	@$(RM) $(TMP_SDK_INCLUDE_FILE_DIFFS)
       
  1143 	@$(RM) $(TMP_SDK_INCLUDE_FILE_LIST)
       
  1144 	@if [ ! -d "$(HOTSPOT_IMPORT_PATH)" ]; then \
       
  1145 	    $(ECHO) "WARNING: The directory HOTSPOT_IMPORT_PATH=$(HOTSPOT_IMPORT_PATH) \n" \
       
  1146 	      "      does not exist, check your value of ALT_HOTSPOT_IMPORT_PATH. \n" \
       
  1147 	      "" >> $(WARNING_FILE) ; \
       
  1148 	fi
       
  1149 
       
  1150 # Verify hotspot include files
       
  1151 sane-hotspot_import_include: $(TMP_SDK_INCLUDE_FILE_LIST) $(TMP_SDK_INCLUDE_FILE_DIFFS)
       
  1152 	@if [ "`$(CAT) $(TMP_SDK_INCLUDE_FILE_DIFFS)`" != "" ] ; then \
       
  1153 	  $(ECHO) "WARNING: Possible HotSpot VM interface conflict. \n" \
       
  1154 	    "        HOTSPOT_IMPORT_PATH is used to import files from the VM build. \n" \
       
  1155 	    "        It is also used to verify that any copied files are consistent between \n" \
       
  1156 	    "        these two components. It has been detected that one or more of the \n" \
       
  1157 	    "        VM interface files inside this workspace may not match the interfaces \n" \
       
  1158 	    "        exported by the VM, or the VM versions could not be found. \n" \
       
  1159 	    "        The list of VM interface files is: \n" \
       
  1160 	    "            $(HOTSPOT_INCLUDE_FILE_LIST). \n" \
       
  1161 	    "        This workspace has copies of these files at: \n" \
       
  1162 	    "          $(SHARE_SRC)/javavm/export and $(PLATFORM_SRC)/javavm/export \n" \
       
  1163 	    "        for build purposes, and they should contain the same interfaces \n" \
       
  1164 	    "        as the VM versions imported from: \n" \
       
  1165 	    "          \$$(HOTSPOT_IMPORT_PATH)/include \n" \
       
  1166 	    "               (i.e. $(HOTSPOT_IMPORT_PATH)/include) \n" \
       
  1167 	    "        If an interface indeed doesn't match, then the use of this interface \n" \
       
  1168 	    "        at JDK runtime could cause serious errors. \n" \
       
  1169 	    "" >> $(WARNING_FILE) ; \
       
  1170 	    for i in $(TMP_SDK_INCLUDE_FILE_DIFFS); do \
       
  1171 		if [ -s $$i ] ; then \
       
  1172 		  $(ECHO) " " >> $(WARNING_FILE); \
       
  1173 		  $(ECHO) "VM Interface Differences: $$i" >> $(WARNING_FILE); \
       
  1174 		  $(CAT) $$i >> $(WARNING_FILE); \
       
  1175 		  $(ECHO) " " >> $(WARNING_FILE); \
       
  1176 		fi; \
       
  1177 	    done; \
       
  1178 	fi
       
  1179 	@$(RM) $(TMP_SDK_INCLUDE_FILE_DIFFS)
       
  1180 	@$(RM) $(TMP_SDK_INCLUDE_FILE_LIST)
       
  1181 
       
  1182 # The JDI-SA feature is not currently released on some platforms.
       
  1183 # See the Defs-<arch>.gmk files.
       
  1184 
       
  1185 ifeq ($(INCLUDE_SA), true)
       
  1186 # Verify that hotspot Serviceability Agent files are present.  To keep 
       
  1187 # it simple, we will just check for one of them.  The others have arch 
       
  1188 # dependent paths.
       
  1189 
       
  1190 sane-hotspot_import::
       
  1191 	@if [ ! -r  $(HOTSPOT_IMPORT_PATH)/lib/sa-jdi.jar ] ; then \
       
  1192 	  $(ECHO) "WARNING: File $(HOTSPOT_IMPORT_PATH)/lib/sa-jdi.jar does not exist.\n" \
       
  1193 	    "        The JDI binding for the Serviceability Agent will not be included in the build.\n" \
       
  1194 	    "        Please check your access to\n" \
       
  1195 	    "          $(HOTSPOT_IMPORT_PATH)/lib/sa-jdi.jar\n" \
       
  1196 	    "        and/or check your value of ALT_HOTSPOT_IMPORT_PATH.\n" \
       
  1197 	    "" >> $(WARNING_FILE) ; \
       
  1198 	 fi
       
  1199 endif
       
  1200 
       
  1201 ######################################################
       
  1202 # Check the ant version
       
  1203 ######################################################
       
  1204 ANT_CHECK :=$(call CheckVersions,$(ANT_VER),$(REQUIRED_ANT_VER))
       
  1205 sane-ant_version:
       
  1206 	@if [ "$(ANT_CHECK)" != "same" \
       
  1207 	      -a "$(ANT_CHECK)" != "newer" ]; then \
       
  1208 	  $(ECHO) "WARNING: The version of ant being used is older than \n" \
       
  1209 	    "      the required version of '$(REQUIRED_ANT_VER)'. \n" \
       
  1210 	    "      The version of ant found was '$(ANT_VER)'. \n" \
       
  1211 	    "" >> $(WARNING_FILE) ; \
       
  1212 	fi
       
  1213 
       
  1214 ######################################################
       
  1215 # Check the findbugs version
       
  1216 ######################################################
       
  1217 FINDBUGS_CHECK :=$(call CheckVersions,$(FINDBUGS_VER),$(REQUIRED_FINDBUGS_VER))
       
  1218 sane-findbugs_version:
       
  1219 	@if [ "$(FINDBUGS_CHECK)" != "same" \
       
  1220 	      -a "$(FINDBUGS_CHECK)" != "newer" ]; then \
       
  1221 	  $(ECHO) "WARNING: The version of findbugs being used is older than \n" \
       
  1222 	    "      the required version of '$(REQUIRED_FINDBUGS_VER)'. \n" \
       
  1223 	    "      The version of findbugs found was '$(FINDBUGS_VER)'. \n" \
       
  1224 	    "" >> $(WARNING_FILE) ; \
       
  1225 	fi
       
  1226 
       
  1227 ######################################################
       
  1228 # Check the zip file version
       
  1229 ######################################################
       
  1230 ZIP_CHECK :=$(call CheckVersions,$(ZIP_VER),$(REQUIRED_ZIP_VER))
       
  1231 sane-zip_version: sane-unzip_version
       
  1232 	@if [ "$(ZIP_CHECK)" != "same" -a "$(ZIP_CHECK)" != "newer" ]; then \
       
  1233 	  $(ECHO) "WARNING: The version of zip being used is older than \n" \
       
  1234 	    "      the required version of '$(REQUIRED_ZIP_VER)'. \n" \
       
  1235 	    "      The version of zip found was '$(ZIP_VER)'. \n" \
       
  1236 	    "" >> $(WARNING_FILE) ; \
       
  1237 	fi
       
  1238 
       
  1239 ######################################################
       
  1240 # Check the unzip file version
       
  1241 ######################################################
       
  1242 UNZIP_CHECK :=$(call CheckVersions,$(UNZIP_VER),$(REQUIRED_UNZIP_VER))
       
  1243 sane-unzip_version:
       
  1244 	@if [ "$(UNZIP_CHECK)" != "same" -a "$(UNZIP_CHECK)" != "newer" ]; then \
       
  1245 	  $(ECHO) "WARNING: The version of unzip being used is older than \n" \
       
  1246 	    "      the required version of '$(REQUIRED_UNZIP_VER)'. \n" \
       
  1247 	    "      The version of unzip found was '$(UNZIP_VER)'. \n" \
       
  1248 	    "" >> $(WARNING_FILE) ; \
       
  1249 	fi
       
  1250 
       
  1251 ######################################################
       
  1252 # Check for windows DirectX sdk directory
       
  1253 ######################################################
       
  1254 sane-dxsdk:
       
  1255 ifeq ($(PLATFORM), windows)
       
  1256 	@if [ ! -r $(DXSDK_INCLUDE_PATH)/ddraw.h  ]; then \
       
  1257 	$(ECHO) "ERROR: You do not have access to a valid DirectX SDK Include dir.\n" \
       
  1258 	  "      The value of DXSDK_INCLUDE_PATH must point a valid DX SDK dir.\n" \
       
  1259 	  "      Please check your access to \n" \
       
  1260 	  "          $(DXSDK_INCLUDE_PATH) \n" \
       
  1261 	  "      and/or check your value of ALT_DXSDK_PATH or ALT_DXSDK_INCLUDE_PATH.\n" \
       
  1262 	  "      Microsoft DirectX 9 SDK (Summer 2004 Update or newer) can be downloaded from the following location:\n" \
       
  1263 	  "          http://msdn.microsoft.com/library/default.asp?url=/downloads/list/directx.asp\n" \
       
  1264 	  "      Or  http://www.microsoft.com/directx\n" \
       
  1265 	  "" >> $(ERROR_FILE) ; \
       
  1266 	else \
       
  1267 	  if [ ! "$(DXSDK_VER)" = "$(REQUIRED_DXSDK_VER)" ]; then \
       
  1268 	  $(ECHO) "ERROR: The DirectX SDK must be version $(REQUIRED_DXSDK_VER).\n" \
       
  1269 	    "      $(YOU_ARE_USING) DirectX SDK version: $(DXSDK_VER)\n" \
       
  1270 	    "      The DirectX SDK was obtained from the following location: \n" \
       
  1271 	    "          $(DXSDK_PATH) \n" \
       
  1272 	    "      Please change your DirectX SDK. \n" \
       
  1273 	    "      Microsoft DirectX 9 SDK (Summer 2004 Update or newer) can be downloaded from the following location:\n" \
       
  1274 	    "          http://msdn.microsoft.com/library/default.asp?url=/downloads/list/directx.asp\n" \
       
  1275 	    "      Or  http://www.microsoft.com/directx\n" \
       
  1276 	    "" >> $(ERROR_FILE) ; \
       
  1277 	  else \
       
  1278 	    if [ -r $(DXSDK_INCLUDE_PATH)/basetsd.h ]; then \
       
  1279               if [ `$(EGREP) -c __int3264 $(DXSDK_INCLUDE_PATH)/basetsd.h` -ne 0 ]; then \
       
  1280 	      $(ECHO) "WARNING: The DirectX SDK Include directory contains a newer basetsd.h,\n" \
       
  1281 		"      which may indicate that you're using an incorrect version of DirectX SDK.\n" \
       
  1282 		"      This may result in a build failure.\n" \
       
  1283 		"      The DirectX SDK Include dir was obtained from the following location:\n" \
       
  1284 		" 	  $(DXSDK_INCLUDE_PATH) \n" \
       
  1285 		"      Please change your DirectX SDK to version 7 or 9 (Summer 2004 Update or newer).\n" \
       
  1286 	        "      Microsoft DirectX 9 SDK can be downloaded from the following location:\n" \
       
  1287 	        "          http://msdn.microsoft.com/library/default.asp?url=/downloads/list/directx.asp\n" \
       
  1288 		"      Or  http://www.microsoft.com/directx\n" \
       
  1289   		"" >> $(WARNING_FILE) ; \
       
  1290 	      fi \
       
  1291 	    fi \
       
  1292 	  fi \
       
  1293 	fi
       
  1294 endif
       
  1295 
       
  1296 ######################################################
       
  1297 # Check the linker version(s)
       
  1298 ######################################################
       
  1299 ifeq ($(PLATFORM), windows)
       
  1300   LINK_CHECK  :=$(call CheckVersions,$(LINK_VER),$(REQUIRED_LINK_VER))
       
  1301 endif
       
  1302 sane-link:
       
  1303 ifdef LINK_VER
       
  1304 	@if [ "$(LINK_CHECK)" = "missing" ]; then \
       
  1305 	  $(ECHO) "ERROR: The Linker version is undefined. \n" \
       
  1306 	    "" >> $(ERROR_FILE) ; \
       
  1307 	fi
       
  1308 	@if [ "$(LINK_CHECK)" != "same" ]; then \
       
  1309 	  $(ECHO) "WARNING: To build Java 2 SDK $(JDK_VERSION) you need : \n" \
       
  1310 	    "      $(COMPILER_VERSION) - link.exe version \"$(REQUIRED_LINK_VER)\" \n" \
       
  1311 	      "      Specifically the $(COMPILER_NAME) link.exe. \n " \
       
  1312 	    "      $(YOU_ARE_USING) Linker version \"$(LINK_VER)\" \n" \
       
  1313 	    "" >> $(WARNING_FILE) ; \
       
  1314 	fi
       
  1315 endif
       
  1316 
       
  1317 ######################################################
       
  1318 # Check the compiler version(s)
       
  1319 ######################################################
       
  1320 CC_CHECK  :=$(call CheckVersions,$(CC_VER),$(REQUIRED_CC_VER))
       
  1321 ifeq ($(PLATFORM), solaris)
       
  1322   ifeq ($(ARCH_DATA_MODEL), 32)
       
  1323     GCC_CHECK :=$(call CheckVersions,$(GCC_VER),$(REQUIRED_GCC_VER))
       
  1324   endif
       
  1325 endif
       
  1326 sane-compiler: sane-link
       
  1327 	@if [ "$(CC_CHECK)" = "missing" ]; then \
       
  1328 	  $(ECHO) "ERROR: The Compiler version is undefined. \n" \
       
  1329 	    "" >> $(ERROR_FILE) ; \
       
  1330 	fi
       
  1331 ifndef OPENJDK
       
  1332 	@if [ "$(CC_CHECK)" != "same" ]; then \
       
  1333 	      $(ECHO) "WARNING: The $(PLATFORM) compiler is not version $(COMPILER_VERSION) $(REQUIRED_CC_VER) \n" \
       
  1334 	      "      Specifically the $(COMPILER_NAME) $(CC_TYPE) compiler. \n " \
       
  1335 	      "      $(YOU_ARE_USING) compiler version: $(CC_VER) \n" \
       
  1336 	      "      The compiler was obtained from the following location: \n" \
       
  1337 	      "          $(COMPILER_PATH) \n" \
       
  1338 	      "" >> $(WARNING_FILE) ; \
       
  1339          fi
       
  1340   ifdef GCC_CHECK
       
  1341 	  @if [ "$(GCC_CHECK)" != "same" ]; then \
       
  1342 	      $(ECHO) "WARNING: The $(PLATFORM) GCC compiler must be version $(REQUIRED_GCC_VER) \n" \
       
  1343 	      "      $(YOU_ARE_USING) compiler version: $(GCC_VER) \n" \
       
  1344 	      "      The compiler was obtained from the following location: \n" \
       
  1345 	      "          $(GCC_COMPILER_PATH) \n" \
       
  1346 	      "      Please change your compiler. \n" \
       
  1347 	      "" >> $(WARNING_FILE) ; \
       
  1348 	  fi
       
  1349   endif
       
  1350   ifeq ($(PLATFORM), windows)
       
  1351     ifeq ($(ARCH_DATA_MODEL), 64)
       
  1352       ifneq ($(COMPILER_VERSION), VS2005)
       
  1353 	@$(ECHO) "WARNING: Should be using VS2005 compiler on 64bit platform. \n" \
       
  1354 	    "" >> $(WARNING_FILE)
       
  1355       endif
       
  1356     endif
       
  1357   endif
       
  1358 endif
       
  1359 
       
  1360 ######################################################
       
  1361 # Check that ALSA headers and libs are installed and 
       
  1362 # that the header has the right version. We only
       
  1363 # need /usr/include/alsa/*.h and /usr/lib/libasound.so
       
  1364 ######################################################
       
  1365 
       
  1366 ifdef ALSA_VERSION_CHECK
       
  1367 $(ALSA_VERSION_CHECK): $(ALSA_VERSION_CHECK).c
       
  1368 	@$(prep-target)
       
  1369 	@$(CC) -lasound -o $@ $<
       
  1370 
       
  1371 $(ALSA_VERSION_CHECK).c:
       
  1372 	@$(prep-target)
       
  1373 	@$(ECHO) "#include <alsa/asoundlib.h>\n" \
       
  1374                   "int main(char** argv, int argc) {\n" \
       
  1375                    "  printf(\"%s\", SND_LIB_VERSION_STR);\n" \
       
  1376                     "  return 0;\n" \
       
  1377                     "}\n" \
       
  1378                     > $@
       
  1379 endif
       
  1380 
       
  1381 sane-alsa-versioncheck: $(ALSA_VERSION_CHECK)
       
  1382 sane-alsa-headers: sane-alsa-versioncheck
       
  1383 ifdef ALSA_VERSION_CHECK
       
  1384 	@if [ -f "$(ALSA_VERSION_CHECK)" ]; then \
       
  1385 	  if [ `$(ALSA_VERSION_CHECK) | $(EGREP) -c '$(REQUIRED_ALSA_VERSION)'` -ne 1 ] ; then \
       
  1386 	    $(ECHO) "ERROR: The ALSA version must be 0.9.1 or higher. \n" \
       
  1387 	      "      You have the following ALSA version installed: $(ALSA_VERSION) \n" \
       
  1388 	      "      Please reinstall ALSA (drivers and lib). You can download \n" \
       
  1389 	      "      the source distribution from http://www.alsa-project.org \n" \
       
  1390 	      "      or go to http://www.freshrpms.net/docs/alsa/ for precompiled RPM packages. \n" \
       
  1391 	      "" >> $(ERROR_FILE) ; \
       
  1392 	  fi \
       
  1393 	else \
       
  1394 	  $(ECHO) "ERROR: You seem to not have installed ALSA 0.9.1 or higher. \n" \
       
  1395 	  "      Please install ALSA (drivers and lib). You can download the \n" \
       
  1396 	  "      source distribution from http://www.alsa-project.org or go to \n" \
       
  1397 	  "      http://www.freshrpms.net/docs/alsa/ for precompiled RPM packages. \n" \
       
  1398 	  "" >> $(ERROR_FILE) ; \
       
  1399 	fi
       
  1400 endif
       
  1401 
       
  1402 # If a sanity file doesn't exist, just make sure it's dir exists
       
  1403 $(SANITY_FILES):
       
  1404 	-@$(prep-target)
       
  1405 
       
  1406 ######################################################
       
  1407 # dump out the variable settings...
       
  1408 ######################################################
       
  1409 sane-settings:: sane-alsa-versioncheck
       
  1410 	@$(ECHO)  >> $(MESSAGE_FILE)
       
  1411 	@$(ECHO) $(ALL_SETTINGS)  >> $(MESSAGE_FILE)
       
  1412 	@$(ECHO)  >> $(MESSAGE_FILE)
       
  1413 
       
  1414 ######################################################
       
  1415 # Check for existence of DEPLOY_MSSDK on windows
       
  1416 ######################################################
       
  1417 sane-mssdk_path:
       
  1418 ifeq ($(PLATFORM), windows)
       
  1419 	@if [ -z "$(DEPLOY_MSSDK)" ]; then \
       
  1420 	  $(ECHO) "WARNING: Your DEPLOY_MSSDK setting is empty.\n" \
       
  1421 	    "        It is recommended to set ALT_DEPLOY_MSSDK.\n" \
       
  1422 	    "" >> $(WARNING_FILE) ; \
       
  1423 	fi
       
  1424 	@if [ ! -r "$(DEPLOY_MSSDK)" ]; then \
       
  1425 	  $(ECHO) "ERROR: You do not have a valid DEPLOY_MSSDK setting. \n" \
       
  1426 	    "      Please check your access to \n" \
       
  1427 	    "          $(DEPLOY_MSSDK) \n" \
       
  1428 	    "      and/or check your value of ALT_DEPLOY_MSSDK. \n" \
       
  1429 	    "" >> $(ERROR_FILE) ; \
       
  1430 	fi
       
  1431 endif
       
  1432 
       
  1433 ######################################################
       
  1434 # Check for existence of INSTALL_MSSDK on windows
       
  1435 ######################################################
       
  1436 sane-install-mssdk_path:
       
  1437 ifeq ($(PLATFORM), windows)
       
  1438 	@if [ -z "$(INSTALL_MSSDK)" ]; then \
       
  1439 	  $(ECHO) "WARNING: Your INSTALL_MSSDK setting is empty.\n" \
       
  1440 	    "        It is recommended to set ALT_INSTALL_MSSDK.\n" \
       
  1441 	    "" >> $(WARNING_FILE) ; \
       
  1442 	fi
       
  1443 	@if [ ! -r "$(INSTALL_MSSDK)" ]; then \
       
  1444 	  $(ECHO) "ERROR: You do not have a valid INSTALL_MSSDK setting. \n" \
       
  1445 	    "      Please check your access to \n" \
       
  1446 	    "          $(INSTALL_MSSDK) \n" \
       
  1447 	    "      and/or check your value of ALT_INSTALL_MSSDK. \n" \
       
  1448 	    "" >> $(ERROR_FILE) ; \
       
  1449 	fi
       
  1450 endif
       
  1451 
       
  1452 ######################################################
       
  1453 # Check for existence of INSTALL_MSIVAL2 on windows
       
  1454 ######################################################
       
  1455 sane-install-msival2_path:
       
  1456 ifeq ($(PLATFORM), windows)
       
  1457 	@if [ -z "$(INSTALL_MSIVAL2)" ]; then \
       
  1458 	  $(ECHO) "WARNING: Your INSTALL_MSIVAL2 setting is empty.\n" \
       
  1459 	    "        It is recommended to set ALT_INSTALL_MSIVAL2.\n" \
       
  1460 	    "" >> $(WARNING_FILE) ; \
       
  1461 	fi
       
  1462 	@if [ ! -r "$(INSTALL_MSIVAL2)" ]; then \
       
  1463 	  $(ECHO) "ERROR: You do not have a valid INSTALL_MSIVAL2 setting. \n" \
       
  1464 	    "      Please check your access to \n" \
       
  1465 	    "          $(INSTALL_MSIVAL2) \n" \
       
  1466 	    "      and/or check your value of ALT_INSTALL_MSIVAL2. \n" \
       
  1467 	    "" >> $(ERROR_FILE) ; \
       
  1468 	fi
       
  1469 endif
       
  1470 
       
  1471 ######################################################
       
  1472 # Check the Solaris GNU c++ compiler for solaris plugin
       
  1473 ######################################################
       
  1474 sane-gcc-compiler:
       
  1475 ifeq ($(PLATFORM), solaris)
       
  1476   ifndef OPENJDK
       
  1477     @if [ -r $(GCC_COMPILER_PATH) ]; then \
       
  1478 	  if [ ! "$(GCC_VER)" = 2.95.2 ]; then \
       
  1479 	    $(ECHO) "ERROR: The Solaris GCC compiler version must be 2.95.2. \n" \
       
  1480 	      "      You are using the following compiler version: $(GCC_VER) \n" \
       
  1481 	      "      The compiler was obtained from the following location: \n" \
       
  1482 	      "          $(GCC_COMPILER_PATH) \n" \
       
  1483 	      "      Please change your compiler. \n" \
       
  1484 	      "" >> $(ERROR_FILE) ; \
       
  1485     fi \
       
  1486 	else \
       
  1487 	  $(ECHO) "ERROR: You do not have a valid GCC_COMPILER_PATH setting. \n" \
       
  1488 	    "      Please check your access to \n" \
       
  1489 	    "          $(GCC_COMPILER_PATH) \n" \
       
  1490 	    "      and/or check your value of ALT_GCC_COMPILER_PATH. \n" \
       
  1491 	    "      This will affect you if you build the plugin target. \n" \
       
  1492 	    "" >> $(ERROR_FILE) ; \
       
  1493 	fi
       
  1494   endif
       
  1495 
       
  1496   ifeq ($(PLATFORM), linux)
       
  1497     ifdef ALT_GCC29_COMPILER_PATH
       
  1498 	@if [ ! -x $(ALT_GCC29_COMPILER_PATH)/bin/gcc ]; then \
       
  1499  	    $(ECHO) "ERROR: You do not have a valid ALT_GCC29_COMPILER_PATH setting. \n" \
       
  1500 	         "      Please check your access to \n" \
       
  1501 	         "      $(ALT_GCC29_COMPILER_PATH)/bin/gcc \n" \
       
  1502 	         "      This will affect you if you build the plugin target. \n" \
       
  1503 	         "" >> $(ERROR_FILE) ; \
       
  1504     fi
       
  1505     endif
       
  1506     ifdef ALT_GCC29_PLUGIN_LIB_PATH
       
  1507 	@if [ ! -r $(ALT_GCC29_PLUGIN_LIB_PATH)/libjavaplugin_oji.so ]; then \
       
  1508 	    $(ECHO) "Error: You do not have a valid ALT_GCC29_PLUGIN_LIB_PATH setting. \n" \
       
  1509 		        " Please check your access to \n" \
       
  1510 		        " $(ALT_GCC29_PLUGIN_LIB_PATH)/libjavaplugin_oji.so \n" \
       
  1511 		        " This will affect you if you build the plugin target, specifically for gcc 2.9 version of OJI plugin library. \n" \
       
  1512 		        "" >> $(ERROR_FILE) ; \
       
  1513 	fi
       
  1514     else
       
  1515 	@if [ ! -r $(GCC29_COMPILER_PATH) ]; then \
       
  1516 	    $(ECHO) "ERROR: You do not have a valid GCC29_COMPILER_PATH setting. \n" \
       
  1517 	    	    " Please check your access to \n" \
       
  1518 	    	    " $(GCC29_COMPILER_PATH) \n" \
       
  1519 	    	    " and/or check your value of ALT_GCC29_COMPILER_PATH. \n" \
       
  1520 	    	    " This will affect you if you build the plugin target. \n" \
       
  1521 	    	    "" >> $(ERROR_FILE) ; \
       
  1522 	fi
       
  1523     endif
       
  1524   endif
       
  1525 endif
       
  1526 
       
  1527 
       
  1528 ######################################################
       
  1529 # MOZILLA_HEADERS_PATH must be valid
       
  1530 ######################################################
       
  1531 sane-mozilla:
       
  1532 ifeq ($(ARCH_DATA_MODEL), 32)
       
  1533   ifdef ALT_MOZILLA_HEADERS_PATH
       
  1534 	@if [ `$(ECHO) $(subst \,/,$(ALT_MOZILLA_HEADERS_PATH)) | $(EGREP) -ci '^([a-z]:)?/'` -ne 1 ]; then \
       
  1535 	  $(ECHO) "ERROR: ALT_MOZILLA_HEADERS_PATH must be an Absolute Path Name, \n" \
       
  1536 	    "      not a Relative Path Name. \n" \
       
  1537 	    "      The current value of ALT_MOZILLA_HEADERS_PATH is \n" \
       
  1538 	    "          $(ALT_MOZILLA_HEADERS_PATH) \n" \
       
  1539 	    "      Please fix this and continue your build. \n" \
       
  1540 	    "" >> $(ERROR_FILE) ; \
       
  1541 	fi
       
  1542   endif
       
  1543 	@#
       
  1544 	@# MOZILLA_HEADERS_PATH must be valid....
       
  1545 	@#
       
  1546   ifeq ($(PLATFORM), windows)
       
  1547 	@if [ ! -r $(subst \,/,$(MOZILLA_HEADERS_PATH))/mozilla_headers_18.win32/java/bool.h ]; then \
       
  1548 	  $(ECHO) "ERROR: You do not have access to valid Mozilla header files. \n" \
       
  1549 	    "      Please check your access to \n" \
       
  1550 	    "          $(subst \,/,$(MOZILLA_HEADERS_PATH))/mozilla_headers_18.win32/java/bool.h \n" \
       
  1551 	    "      and/or check your value of ALT_JDK_DEVTOOLS_DIR, ALT_MOZILLA_HEADERS_PATH, \n" \
       
  1552 	    "	   and on Windows, ALT_JDK_JAVA_DRIVE. \n" \
       
  1553 	    "" >> $(ERROR_FILE) ; \
       
  1554 	fi
       
  1555   else
       
  1556 	@if [ ! -r $(subst \,/,$(MOZILLA_HEADERS_PATH))/mozilla_headers_18/java/bool.h ]; then \
       
  1557 	  $(ECHO) "ERROR: You do not have access to valid Mozilla header files. \n" \
       
  1558 	    "      Please check your access to \n" \
       
  1559 	    "          $(subst \,/,$(MOZILLA_HEADERS_PATH))/mozilla_headers_18/java/bool.h \n" \
       
  1560 	    "      and/or check your value of ALT_JDK_DEVTOOLS_DIR, ALT_MOZILLA_HEADERS_PATH, \n" \
       
  1561 	    "" >> $(ERROR_FILE) ; \
       
  1562 	fi
       
  1563   endif
       
  1564 endif
       
  1565 
       
  1566 
       
  1567 ######################################################
       
  1568 # SECURITY_BASELINE_142 test
       
  1569 ######################################################
       
  1570 security_baseline_142:
       
  1571 ifeq ($(PLATFORM), windows)
       
  1572 	@if [ -z "$(SECURITY_BASELINE_142)" ]; then \
       
  1573 	    $(ECHO) "WARNING: Your SECURITY_BASELINE_142 setting is empty.\n" \
       
  1574 		"        Setting it to the default value of 1.4.2_10.\n" \
       
  1575 		"        It is recommended to set SECURITY_BASELINE_142.\n" \
       
  1576 		"" >> $(WARNING_FILE) ; \
       
  1577 	fi
       
  1578 endif
       
  1579 
       
  1580 ######################################################
       
  1581 # SECURITY_BASELINE_150 test
       
  1582 ######################################################
       
  1583 security_baseline_150:
       
  1584 ifeq ($(PLATFORM), windows)
       
  1585 	@if [ -z "$(SECURITY_BASELINE_150)" ]; then \
       
  1586 	    $(ECHO) "WARNING: Your SECURITY_BASELINE_150 setting is empty.\n" \
       
  1587 		"        Setting it to the default value of 1.5.0_07.\n" \
       
  1588 		"        It is recommended to set SECURITY_BASELINE_150.\n" \
       
  1589 		"" >> $(WARNING_FILE) ; \
       
  1590 	fi
       
  1591 endif
       
  1592 
       
  1593 
       
  1594 ######################################################
       
  1595 # this should be the last rule in any target's sanity rule.
       
  1596 ######################################################
       
  1597 sane-lastrule:
       
  1598 ifndef EXTERNALSANITYCONTROL
       
  1599 	@if [ -r $(MESSAGE_FILE) ]; then \
       
  1600 	  $(CAT) $(MESSAGE_FILE) ; \
       
  1601 	fi
       
  1602 	@if [ -r $(WARNING_FILE) ]; then \
       
  1603 	  $(CAT) $(WARNING_FILE) ; \
       
  1604 	fi
       
  1605 	@if [ "x$(INSANE)" != x ]; then \
       
  1606 	  $(ECHO) "INSANE mode requested. \n" \
       
  1607 	    "Sanity will not force a build termination, even with errors.\n" \
       
  1608 	    "" >> $(ERROR_FILE); \
       
  1609 	fi
       
  1610 	@if [ -r $(ERROR_FILE) ]; then \
       
  1611 	  if [ "x$(INSANE)" = x ]; then \
       
  1612 	    $(ECHO) "Exiting because of the above error(s). \n" \
       
  1613 	      "">> $(ERROR_FILE); \
       
  1614 	  fi ; \
       
  1615 	  $(CAT) $(ERROR_FILE) ; \
       
  1616 	  if [ "x$(INSANE)" = x ]; then \
       
  1617 	    exit 1 ; \
       
  1618 	  fi ; \
       
  1619 	fi
       
  1620 ifdef PEDANTIC
       
  1621 	@if [ -r $(WARNING_FILE) ]; then \
       
  1622 	  $(ECHO) "PEDANTIC mode requested. \n" \
       
  1623 	    "Exiting because of the above warning(s). \n" \
       
  1624 	    "" >> $(ERROR_FILE); \
       
  1625 	  $(CAT) $(ERROR_FILE) ; \
       
  1626 	  exit 1 ; \
       
  1627 	fi
       
  1628 endif # PEDANTIC
       
  1629 	@if [ ! -r $(ERROR_FILE) ]; then \
       
  1630 	  $(ECHO) "Sanity check passed." ; \
       
  1631 	fi
       
  1632 endif #  EXTERNALSANITYCONTROL
       
  1633