make/sanity-rules.gmk

Mon, 22 Jun 2009 10:13:20 -0700

author
xdono
date
Mon, 22 Jun 2009 10:13:20 -0700
changeset 105
8ca3d95b1ea3
parent 80
a942ea653d97
child 111
c4523c6f8204
permissions
-rw-r--r--

6853596: Update Build README-build.html with new info regarding update for Solaris 10u2 and BOOTDIR update
Reviewed-by: tbell, ohair

     1 #
     2 # Copyright 2001-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 #
    26 ################################################################
    27 # SANITY
    28 ################################################################
    30 sanity:: pre-sanity settings insane environment
    32 ifeq ($(BUILD_HOTSPOT), true)
    33   sanity:: hotspot-sanity
    34 endif
    36 ifeq ($(BUILD_DEPLOY), true)
    37   sanity:: deploy-sanity
    38 endif
    40 ifeq ($(BUILD_JDK), true)
    41   sanity:: jdk-sanity 
    42 endif
    44 # Only need these sanity rules when not doing a debug build
    45 ifeq ($(DEBUG_NAME),)
    47   ifeq ($(BUILD_INSTALL), true)
    48     sanity:: install-sanity
    49   endif
    51   ifeq ($(BUILD_SPONSORS), true)
    52     sanity:: sponsors-sanity
    53   endif
    55 endif
    57 sanity:: post-sanity
    59 source-sanity : pre-sanity alt_bootdir bootdir post-sanity
    61 $(ERROR_FILE) $(WARNING_FILE) $(MESSAGE_FILE):
    62 	@$(prep-target)
    64 purge-sanity: $(ERROR_FILE) $(WARNING_FILE) $(MESSAGE_FILE)
    65 	-@$(RM) $(ERROR_FILE) $(WARNING_FILE) $(MESSAGE_FILE)
    67 pre-sanity: purge-sanity 
    69 # this should be the last rule in any target's sanity rule.
    70 post-sanity post-sanity-hotspot post-sanity-jdk post-sanity-install post-sanity-deploy:
    71 	@if [ -r $(MESSAGE_FILE) ]; then \
    72 	  $(ECHO) "" ; \
    73 	  $(CAT) $(MESSAGE_FILE) ; \
    74 	fi
    75 	@if [ -r $(WARNING_FILE) ]; then \
    76 	  $(CAT) $(WARNING_FILE) ; \
    77 	fi
    78 	@if [ "x$(INSANE)" != x ]; then \
    79 	  $(ECHO) "INSANE mode requested. \n" \
    80 	    "Sanity will not force a build termination, even with errors.\n" \
    81 	    "" >> $(ERROR_FILE); \
    82 	fi
    83 	@if [ -r $(ERROR_FILE) ]; then \
    84 	  if [ "x$(INSANE)" = x ]; then \
    85 	    $(ECHO) "Exiting because of the above error(s). \n" \
    86 	      "">> $(ERROR_FILE); \
    87 	  fi ; \
    88 	  $(CAT) $(ERROR_FILE) ; \
    89 	  if [ "x$(INSANE)" = x ]; then \
    90 	    exit 1 ; \
    91 	  fi ; \
    92 	fi
    93 ifdef PEDANTIC
    94 	@if [ -r $(WARNING_FILE) ]; then \
    95 	  $(ECHO) "PEDANTIC mode requested. \n" \
    96 	    "Exiting because of the above warning(s). \n" \
    97 	    "" >> $(ERROR_FILE); \
    98 	  $(CAT) $(ERROR_FILE) ; \
    99 	  exit 1 ; \
   100 	fi
   101 endif
   102 	@if [ ! -r $(ERROR_FILE) ]; then \
   103 	  $(ECHO) "Sanity check passed." ; \
   104 	fi
   106 insane:
   107 ifdef INSANE
   108 	@$(ECHO) "WARNING: You are building in 'INSANE' mode. You \n" \
   109 	   "        should not use this mode, and in fact, \n" \
   110 	   "        it may be removed at any time. If you \n" \
   111 	   "        have build problems as a result of using \n" \
   112 	   "        INSANE mode, then you should not expect \n" \
   113 	   "        assistance from anyone with the problems \n" \
   114 	   "        or consequences you experience. \n" \
   115 	   "" >> $(WARNING_FILE)
   116 endif
   118 # Get list of environment variables set that we do not want set
   119 ifdef ALT_HOTSPOT_SERVER_PATH
   120   DO_NOT_SET_LIST += ALT_HOTSPOT_SERVER_PATH
   121 endif
   122 ifdef ALT_HOTSPOT_CLIENT_PATH
   123   DO_NOT_SET_LIST += ALT_HOTSPOT_CLIENT_PATH
   124 endif
   125 ifdef ALT_HOTSPOT_LIB_PATH
   126   DO_NOT_SET_LIST += ALT_HOTSPOT_LIB_PATH
   127 endif
   129 # Error message for environment variable set that should not be
   130 %.do_not_set:
   131 	@$(ECHO) "ERROR: Your build environment has the variable\n" \
   132 	   "        $* defined. Please unset it and restart your build. \n" \
   133 	   "" >> $(ERROR_FILE)
   135 # Check the environment variables	
   136 environment: $(DO_NOT_SET_LIST:%=%.do_not_set)
   137 ifeq ($(LANGTOOLS_SRC_AVAILABLE), true)
   138   ifneq ($(BUILD_LANGTOOLS), true)
   139 	@$(ECHO) "WARNING: You are not building the LANGTOOLS sources.\n" \
   140            "        Lang tools (javac) will be obtained from \n" \
   141            "        the location set in ALT_JDK_IMPORT_PATH. \n" \
   142            "" >> $(WARNING_FILE)
   143   endif
   144 endif
   145 ifeq ($(JAXP_SRC_AVAILABLE), true)
   146   ifneq ($(BUILD_JAXP), true)
   147 	@$(ECHO) "WARNING: You are not building the JAXP sources.\n" \
   148            "        The jaxp files will be obtained from \n" \
   149            "        the location set in ALT_JDK_IMPORT_PATH. \n" \
   150            "" >> $(WARNING_FILE)
   151   endif
   152 endif
   153 ifeq ($(JAXWS_SRC_AVAILABLE), true)
   154   ifneq ($(BUILD_JAXWS), true)
   155 	@$(ECHO) "WARNING: You are not building the JAXWS sources.\n" \
   156            "        The jaxws files will be obtained from \n" \
   157            "        the location set in ALT_JDK_IMPORT_PATH. \n" \
   158            "" >> $(WARNING_FILE)
   159   endif
   160 endif
   161 ifeq ($(CORBA_SRC_AVAILABLE), true)
   162   ifneq ($(BUILD_CORBA), true)
   163 	@$(ECHO) "WARNING: You are not building the CORBA sources.\n" \
   164            "        The corba files will be obtained from \n" \
   165            "        the location set in ALT_JDK_IMPORT_PATH. \n" \
   166            "" >> $(WARNING_FILE)
   167   endif
   168 endif
   169 ifeq ($(HOTSPOT_SRC_AVAILABLE), true)
   170   ifneq ($(BUILD_HOTSPOT), true)
   171 	@$(ECHO) "WARNING: You are not building the HOTSPOT sources.\n" \
   172            "        Hotspot libs will be obtained from \n" \
   173            "        the location set in ALT_HOTSPOT_IMPORT_PATH. \n" \
   174            "" >> $(WARNING_FILE)
   175   endif
   176 endif
   177 ifeq ($(JDK_SRC_AVAILABLE), true)
   178   ifneq ($(BUILD_JDK), true)
   179 	@$(ECHO) "WARNING: You are not building the JDK sources.\n" \
   180 	   "        This will result in a development-only\n" \
   181 	   "        build of the JDK , lacking the jdk binaries.\n" \
   182 	   "" >> $(WARNING_FILE)
   183   endif
   184 endif
   185 ifeq ($(DEPLOY_SRC_AVAILABLE), true)
   186   ifneq ($(BUILD_DEPLOY), true)
   187 	@$(ECHO) "WARNING: You are not building the DEPLOY sources.\n" \
   188 	   "        This will result in a development-only\n" \
   189 	   "        build of the JDK, lacking the plugin and javaws binaries.\n" \
   190 	   "" >> $(WARNING_FILE)
   191   endif
   192 endif
   193 ifeq ($(INSTALL_SRC_AVAILABLE), true)
   194   ifneq ($(BUILD_INSTALL), true)
   195 	@$(ECHO) "WARNING: You are not building the INSTALL sources.\n" \
   196 	   "        This will result in a development-only\n" \
   197 	   "        build of the JDK, lacking the installation bundles\n" \
   198 	   "" >> $(WARNING_FILE)
   199   endif
   200 endif
   201 ifeq ($(SPONSORS_SRC_AVAILABLE), true)
   202   ifneq ($(BUILD_SPONSORS), true)
   203 	@$(ECHO) "WARNING: You are not building the SPONSORS sources.\n" \
   204 	   "" >> $(WARNING_FILE)
   205   endif
   206 endif
   207 ifndef OPENJDK
   208   ifdef NO_DOCS
   209 	@$(ECHO) "WARNING: Your build environment has the variable NO_DOCS\n" \
   210 	   "        defined. This will result in a development-only\n" \
   211 	   "        build of the JDK, lacking the documentation.\n" \
   212 	   "" >> $(WARNING_FILE)
   213   endif
   214 endif
   215 ifdef NO_IMAGES
   216 	@$(ECHO) "WARNING: Your build environment has the variable NO_IMAGES\n" \
   217 	   "        defined. This will result in a development-only\n" \
   218 	   "        build of the JDK, lacking the install images\n" \
   219 	   "        and bundles.\n" \
   220 	   "" >> $(WARNING_FILE)
   221 endif
   222 ifdef DEV_ONLY
   223 	@$(ECHO) "WARNING: Your build environment has the variable DEV_ONLY\n" \
   224 	   "        defined. This will result in a development-only\n" \
   225 	   "        build of the JDK, lacking the documentation\n" \
   226 	   "        build and installation bundles.\n" \
   227 	   "" >> $(WARNING_FILE)
   228 endif
   230 ######################################################
   231 # if specified, ALT_BOOTDIR must point to non-relative path if set
   232 ######################################################
   233 alt_bootdir:
   234 ifdef ALT_BOOTDIR
   235 	@if [ `$(ECHO) $(subst \,/,$(ALT_BOOTDIR)) | $(EGREP) -ci '^([a-z]:)?/'` -ne 1 ]; then \
   236 	  $(ECHO) "ERROR: ALT_BOOTDIR must be an Absolute Path Name, \n" \
   237 	    "      not a Relative Path Name. \n" \
   238 	    "      The current value of ALT_BOOTDIR is \n" \
   239 	    "          $(ALT_BOOTDIR) \n" \
   240 	    "      Please fix this and continue your build. \n" \
   241 	    "" >> $(ERROR_FILE) ; \
   242 	fi
   243 endif
   245 ######################################################
   246 # BOOTDIR must point to a valid JDK.
   247 ######################################################
   248 JAVA_VERSION := $(shell $(BOOTDIR)/bin/java$(EXE_SUFFIX) -version 2>&1  | $(NAWK) -F'"' '{ print $$2 }')
   249 JAVA_VERSION_OK := $(shell $(ECHO) $(JAVA_VERSION) | $(EGREP) -c '^1.[5-6].[0-9]')
   250 bootdir:
   251 	@if [ -x $(BOOTDIR)/bin/java$(EXE_SUFFIX) ]; then \
   252 	  if [ $(JAVA_VERSION_OK) -ne 1 ]; then \
   253 	    $(ECHO) "ERROR: Your BOOTDIR environment variable does not point \n" \
   254 	      "      to a valid JDK for bootstrapping this build. \n" \
   255 	      "      A JDK $(JDK_MKTG_VERSION) source generation process must be \n" \
   256 	      "      bootstrapped using JDK $(PREVIOUS_JDK_VERSION) fcs (or later). \n" \
   257 	      "      Apparently, your bootstrap JDK is version $(JAVA_VERSION) \n" \
   258 	      "      Please update your ALT_BOOTDIR setting and start your build again. \n" \
   259 	      "" >> $(ERROR_FILE) ; \
   260 	  fi \
   261 	else \
   262 	  $(ECHO) "ERROR: BOOTDIR does not point to a valid Java 2 SDK \n" \
   263 	    "      Check that you have access to \n" \
   264 	    "          $(BOOTDIR)/bin/java$(EXE_SUFFIX) \n" \
   265 	    "      and/or check your value of ALT_BOOTDIR. \n" \
   266 	    "" >> $(ERROR_FILE) ; \
   267 	fi
   269 ######################################################
   270 # dump out the variable settings...
   271 ######################################################
   272 ifneq ($(PLATFORM), windows)
   273   ifndef HOSTNAME
   274     HOSTNAME := $(shell hostname)
   275   endif
   276 endif
   277 settings:: 
   278 	@$(ECHO) "Build Machine Information:" >> $(MESSAGE_FILE)
   279 ifeq ($(PLATFORM), windows)
   280 	@$(ECHO) "   build machine = $(COMPUTERNAME)"  >> $(MESSAGE_FILE)
   281 else
   282 	@$(ECHO) "   build machine = $(HOSTNAME)"  >> $(MESSAGE_FILE)
   283 endif
   284 	@$(ECHO) "" >> $(MESSAGE_FILE)
   285 	@$(ECHO) "Build Directory Structure:" >> $(MESSAGE_FILE)
   286 	@$(ECHO) "   CWD = `$(PWD)`" >> $(MESSAGE_FILE)
   287 	@$(ECHO) "   TOPDIR = $(TOPDIR)"  >> $(MESSAGE_FILE)
   288 	@$(ECHO) "   CONTROL_TOPDIR = $(CONTROL_TOPDIR)"  >> $(MESSAGE_FILE)
   289 ifeq ($(LANGTOOLS_SRC_AVAILABLE), true)
   290 	@$(ECHO) "   LANGTOOLS_TOPDIR = $(LANGTOOLS_TOPDIR)"  >> $(MESSAGE_FILE)
   291 endif
   292 ifeq ($(JAXP_SRC_AVAILABLE), true)
   293 	@$(ECHO) "   JAXP_TOPDIR = $(JAXP_TOPDIR)"  >> $(MESSAGE_FILE)
   294 endif
   295 ifeq ($(JAXWS_SRC_AVAILABLE), true)
   296 	@$(ECHO) "   JAXWS_TOPDIR = $(JAXWS_TOPDIR)"  >> $(MESSAGE_FILE)
   297 endif
   298 ifeq ($(CORBA_SRC_AVAILABLE), true)
   299 	@$(ECHO) "   CORBA_TOPDIR = $(CORBA_TOPDIR)"  >> $(MESSAGE_FILE)
   300 endif
   301 ifeq ($(HOTSPOT_SRC_AVAILABLE), true)
   302 	@$(ECHO) "   HOTSPOT_TOPDIR = $(HOTSPOT_TOPDIR)"  >> $(MESSAGE_FILE)
   303 endif
   304 ifeq ($(JDK_SRC_AVAILABLE), true)
   305 	@$(ECHO) "   JDK_TOPDIR = $(JDK_TOPDIR)"  >> $(MESSAGE_FILE)
   306 endif
   307 ifeq ($(DEPLOY_SRC_AVAILABLE), true)
   308 	@$(ECHO) "   DEPLOY_TOPDIR = $(DEPLOY_TOPDIR)"  >> $(MESSAGE_FILE)
   309 endif
   310 ifeq ($(INSTALL_SRC_AVAILABLE), true)
   311 	@$(ECHO) "   INSTALL_TOPDIR = $(INSTALL_TOPDIR)"  >> $(MESSAGE_FILE)
   312 endif
   313 ifeq ($(SPONSORS_SRC_AVAILABLE), true)
   314 	@$(ECHO) "   SPONSORS_TOPDIR = $(SPONSORS_TOPDIR)"  >> $(MESSAGE_FILE)
   315 endif
   316 	@$(ECHO) "" >> $(MESSAGE_FILE)
   317 ifneq ($(SKIP_COMPARE_IMAGES), true)
   318 	@$(ECHO) "External File/Binary Locations:" >> $(MESSAGE_FILE)
   319 	@$(ECHO) "   PREVIOUS_JRE_BUNDLE = $(PREVIOUS_JRE_BUNDLE) " >> $(MESSAGE_FILE)
   320 	@$(ECHO) "   PREVIOUS_JDK_BUNDLE = $(PREVIOUS_JDK_BUNDLE) " >> $(MESSAGE_FILE)
   321 	@$(ECHO) "" >> $(MESSAGE_FILE)
   322 endif
   323 	@$(ECHO) "Build Directives:" >> $(MESSAGE_FILE)
   324 ifeq ($(LANGTOOLS_SRC_AVAILABLE), true)
   325 	@$(ECHO) "   BUILD_LANGTOOLS = $(BUILD_LANGTOOLS) " >> $(MESSAGE_FILE)
   326 endif
   327 ifeq ($(JAXP_SRC_AVAILABLE), true)
   328 	@$(ECHO) "   BUILD_JAXP = $(BUILD_JAXP) " >> $(MESSAGE_FILE)
   329 endif
   330 ifeq ($(JAXWS_SRC_AVAILABLE), true)
   331 	@$(ECHO) "   BUILD_JAXWS = $(BUILD_JAXWS) " >> $(MESSAGE_FILE)
   332 endif
   333 ifeq ($(CORBA_SRC_AVAILABLE), true)
   334 	@$(ECHO) "   BUILD_CORBA = $(BUILD_CORBA) " >> $(MESSAGE_FILE)
   335 endif
   336 ifeq ($(HOTSPOT_SRC_AVAILABLE), true)
   337 	@$(ECHO) "   BUILD_HOTSPOT = $(BUILD_HOTSPOT) " >> $(MESSAGE_FILE)
   338 endif
   339 ifeq ($(JDK_SRC_AVAILABLE), true)
   340 	@$(ECHO) "   BUILD_JDK    = $(BUILD_JDK) " >> $(MESSAGE_FILE)
   341 endif
   342 ifeq ($(DEPLOY_SRC_AVAILABLE), true)
   343 	@$(ECHO) "   BUILD_DEPLOY  = $(BUILD_DEPLOY) " >> $(MESSAGE_FILE)
   344 endif
   345 ifeq ($(INSTALL_SRC_AVAILABLE), true)
   346 	@$(ECHO) "   BUILD_INSTALL = $(BUILD_INSTALL) " >> $(MESSAGE_FILE)
   347 endif
   348 ifeq ($(SPONSORS_SRC_AVAILABLE), true)
   349 	@$(ECHO) "   BUILD_SPONSORS = $(BUILD_SPONSORS) " >> $(MESSAGE_FILE)
   350 endif
   351 	@$(ECHO) "   DEBUG_CLASSFILES = $(DEBUG_CLASSFILES) " >> $(MESSAGE_FILE)
   352 	@$(ECHO) "   DEBUG_BINARIES = $(DEBUG_BINARIES) " >> $(MESSAGE_FILE)
   353 	@$(ECHO) "" >> $(MESSAGE_FILE)
   355 .PHONY: sanity settings pre-sanity insane \
   356 	post-sanity post-sanity-hotspot post-sanity-jdk \
   357 	post-sanity-install post-sanity-deploy \
   358 	alt_bootdir bootdir

mercurial