make/Defs-internal.gmk

Tue, 06 Mar 2012 20:25:18 +0000

author
michaelm
date
Tue, 06 Mar 2012 20:25:18 +0000
changeset 414
84ece503953e
parent 330
7e13dbf7e8af
child 423
4d45c7117e23
permissions
-rw-r--r--

7113349: Initial changeset for Macosx port to jdk
Reviewed-by: jjh, alanb, dholmes, anthony, ohrstrom, ksrini, jrose, weijun, smarks
Contributed-by: Alan Bateman <alan.bateman@oracle.com>, Alexander Potochkin <alexander.potochkin@oracle.com>, Alexander Zuev <alexander.zuev@oracle.com>, Andrew Brygin <andrew.brygin@oracle.com>, Artem Ananiev <artem.ananiev@oracle.com>, Alex Strange <astrange@apple.com>, Bino George <bino@apple.com>, Christine Lu <christine.lu@oracle.com>, David Katleman <david.katleman@oracle.com>, David Durrence <david_durrence@apple.com>, Dmitry Cherepanov <dmitry.cherepanov@oracle.com>, Greg Lewis <glewis@eyesbeyond.com>, Kevin Miller <kevin_m_miller@apple.com>, Kurt Miller <kurt@intricatesoftware.com>, Landon Fuller <landonf@plausiblelabs.com>, Leonid Romanov <leonid.romanov@oracle.com>, Loefty Walkowiak <loefty@apple.com>, Mark Reinhold <mark.reinhold@oracle.com>, Naoto Sato <naoto.sato@oracle.com>, Philip Race <philip.race@oracle.com>, Roger Hoover <rhoover@apple.com>, Scott Kovatch <scott.kovatch@oracle.com>, Sergey ByloKhov <sergey.bylokhov@oracle.com>, Mike Swingler <swingler@apple.com>, Tomas Hurka <tomas.hurka@oracle.com>

     1 #
     2 # Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
     3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4 #
     5 # This code is free software; you can redistribute it and/or modify it
     6 # under the terms of the GNU General Public License version 2 only, as
     7 # published by the Free Software Foundation.  Oracle designates this
     8 # particular file as subject to the "Classpath" exception as provided
     9 # by Oracle in the LICENSE file that accompanied this code.
    10 #
    11 # This code is distributed in the hope that it will be useful, but WITHOUT
    12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    14 # version 2 for more details (a copy is included in the LICENSE file that
    15 # accompanied this code).
    16 #
    17 # You should have received a copy of the GNU General Public License version
    18 # 2 along with this work; if not, write to the Free Software Foundation,
    19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20 #
    21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22 # or visit www.oracle.com if you need additional information or have any
    23 # questions.
    24 #
    26 #
    27 # Common variables used by all the Java makefiles.  This file should
    28 # not contain rules.
    29 #
    31 # The build times report is turned off by setting REPORT_BUILD_TIMES to nothing.
    32 # This is necessary for the target clobber/clean which will erase the
    33 # directories where the buildtimes are stored.
    34 REPORT_BUILD_TIMES=1
    35 # Store the build times in this directory.
    36 BUILDTIMESDIR=$(ABS_OUTPUTDIR)/tmp/buildtimes
    38 # Record starting time for build of a sub repository.
    39 define RecordStartTime
    40 $(MKDIR) -p $(BUILDTIMESDIR)
    41 $(DATE) '+%Y %m %d %H %M %S' | $(NAWK) '{ print $$1,$$2,$$3,$$4,$$5,$$6,($$4*3600+$$5*60+$$6) }' > $(BUILDTIMESDIR)/build_time_start_$1
    42 $(DATE) '+%Y-%m-%d %H:%M:%S' > $(BUILDTIMESDIR)/build_time_start_$1_human_readable
    43 endef
    45 # Indicate that we started to build a sub repository and record starting time. 
    46 define MakeStart
    47 $(call RecordStartTime,$1)
    48 $(PRINTF) "\n\n%s\n%s\n##### %-60.60s #####\n%s\n\n" \
    49 "########################################################################" \
    50 "########################################################################" \
    51 "Entering $1 for target(s) $2" \
    52 "########################################################################"
    53 endef
    55 # Record ending time and calculate the difference and store it in a
    56 # easy to read format. Handles builds that cross midnight. Expects
    57 # that a build will never take 24 hours or more. 
    58 define RecordEndTime
    59 $(DATE) '+%Y %m %d %H %M %S' | $(NAWK) '{ print $$1,$$2,$$3,$$4,$$5,$$6,($$4*3600+$$5*60+$$6) }' > $(BUILDTIMESDIR)/build_time_end_$1
    60 $(DATE) '+%Y-%m-%d %H:%M:%S' > $(BUILDTIMESDIR)/build_time_end_$1_human_readable
    61 $(ECHO) `$(CAT) $(BUILDTIMESDIR)/build_time_start_$1` `$(CAT) $(BUILDTIMESDIR)/build_time_end_$1` $1 | \
    62   $(NAWK) '{ F=$$7; T=$$14; if (F > T) { T+=3600*24 }; D=T-F; H=int(D/3600); \
    63              M=int((D-H*3600)/60); S=D-H*3600-M*60; printf("%02d:%02d:%02d %s\n",H,M,S,$$15); }' \
    64   > $(BUILDTIMESDIR)/build_time_diff_$1
    65 endef
    67 # Indicate that we are done.
    68 # Record ending time and print out the total time it took to build.
    69 define MakeFinish 
    70 $(if $(REPORT_BUILD_TIMES),$(call RecordEndTime,$1),) 
    71 $(PRINTF) "%s\n##### %-60.60s #####\n%s\n##### %-60.60s #####\n%s\n\n" \
    72 "########################################################################" \
    73 "Leaving $1 for target(s) $2" \
    74 "########################################################################" \
    75 $(if $(REPORT_BUILD_TIMES),"Build time `$(CAT) $(BUILDTIMESDIR)/build_time_diff_$1` for target(s) $2","") \
    76 "########################################################################" 
    77 endef
    79 # Find all build_time_* files and print their contents in a list sorted
    80 # on the name of the sub repository.
    81 define ReportBuildTimes
    82 $(PRINTF) -- "-- Build times ----------\nTarget %s\nStart %s\nEnd   %s\n%s\n%s\n-------------------------\n" \
    83 $1 \
    84 "`$(CAT) $(BUILDTIMESDIR)/build_time_start_TOTAL_human_readable`" \
    85 "`$(CAT) $(BUILDTIMESDIR)/build_time_end_TOTAL_human_readable`" \
    86 "`$(LS) $(BUILDTIMESDIR)/build_time_diff_* | $(GREP) -v _TOTAL | $(XARGS) $(CAT) | $(SORT) -k 2`" \
    87 "`$(CAT) $(BUILDTIMESDIR)/build_time_diff_TOTAL`"
    88 endef
    90 ifdef OPENJDK
    91   ifneq ($(OPENJDK),true)
    92     x:=$(error "OPENJDK (if defined) can only be set to true")
    93   endif
    94 endif
    96 # Define absolute paths to TOPDIRs
    97 ABS_LANGTOOLS_TOPDIR:=$(call OptFullPath,"$(LANGTOOLS_TOPDIR)")
    98 ABS_CORBA_TOPDIR:=$(call OptFullPath,"$(CORBA_TOPDIR)")
    99 ABS_JAXP_TOPDIR:=$(call OptFullPath,"$(JAXP_TOPDIR)")
   100 ABS_JAXWS_TOPDIR:=$(call OptFullPath,"$(JAXWS_TOPDIR)")
   101 ABS_JDK_TOPDIR:=$(call OptFullPath,"$(JDK_TOPDIR)")
   102 ABS_HOTSPOT_TOPDIR:=$(call OptFullPath,"$(HOTSPOT_TOPDIR)")
   103 ABS_INSTALL_TOPDIR:=$(call OptFullPath,"$(INSTALL_TOPDIR)")
   104 ABS_SPONSORS_TOPDIR:=$(call OptFullPath,"$(SPONSORS_TOPDIR)")
   105 ABS_DEPLOY_TOPDIR:=$(call OptFullPath,"$(DEPLOY_TOPDIR)")
   107 # Macro to return true or false if a file exists and is readable
   108 define MkExists
   109 $(shell if [ -r $1 ]; then $(ECHO) true; else $(ECHO) false; fi)
   110 endef
   112 HOTSPOT_SRC_AVAILABLE := $(call MkExists,$(HOTSPOT_TOPDIR)/make/Makefile)
   113 ifndef BUILD_HOTSPOT
   114   ifdef ALT_HOTSPOT_IMPORT_PATH
   115     BUILD_HOTSPOT := false
   116   else
   117     BUILD_HOTSPOT := $(HOTSPOT_SRC_AVAILABLE)
   118   endif
   119 endif
   121 LANGTOOLS_SRC_AVAILABLE := $(call MkExists,$(LANGTOOLS_TOPDIR)/make/Makefile)
   122 ifndef BUILD_LANGTOOLS
   123   ifdef ALT_LANGTOOLS_DIST
   124     BUILD_LANGTOOLS := false
   125   else
   126     BUILD_LANGTOOLS := $(LANGTOOLS_SRC_AVAILABLE)
   127   endif
   128 endif
   130 CORBA_SRC_AVAILABLE := $(call MkExists,$(CORBA_TOPDIR)/make/Makefile)
   131 ifndef BUILD_CORBA
   132   ifdef ALT_CORBA_DIST
   133     BUILD_CORBA := false
   134   else
   135     BUILD_CORBA := $(CORBA_SRC_AVAILABLE)
   136   endif
   137 endif
   139 JAXP_SRC_AVAILABLE := $(call MkExists,$(JAXP_TOPDIR)/make/Makefile)
   140 ifndef BUILD_JAXP
   141   ifdef ALT_JAXP_DIST
   142     BUILD_JAXP := false
   143   else
   144     BUILD_JAXP := $(JAXP_SRC_AVAILABLE)
   145   endif
   146 endif
   148 JAXWS_SRC_AVAILABLE := $(call MkExists,$(JAXWS_TOPDIR)/make/Makefile)
   149 ifndef BUILD_JAXWS
   150   ifdef ALT_JAXWS_DIST
   151     BUILD_JAXWS := false
   152   else
   153     BUILD_JAXWS := $(JAXWS_SRC_AVAILABLE)
   154   endif
   155 endif
   157 JDK_SRC_AVAILABLE := $(call MkExists,$(JDK_TOPDIR)/make/Makefile)
   158 ifndef BUILD_JDK
   159   BUILD_JDK := $(JDK_SRC_AVAILABLE)
   160 endif
   161 ifeq ($(JDK_SRC_AVAILABLE),true)
   162   JDK_CLOSED_SRC_AVAILABLE := $(call MkExists,$(JDK_TOPDIR)/src/closed)
   163   ifeq ($(JDK_CLOSED_SRC_AVAILABLE),false)
   164     OPENJDK = true
   165   endif
   166 endif
   168 DEPLOY_SRC_AVAILABLE := $(call MkExists,$(DEPLOY_TOPDIR)/make/Makefile)
   169 ifndef BUILD_DEPLOY
   170   BUILD_DEPLOY := $(DEPLOY_SRC_AVAILABLE)
   171 endif
   173 INSTALL_SRC_AVAILABLE := $(call MkExists,$(INSTALL_TOPDIR)/make/Makefile)
   174 ifndef BUILD_INSTALL
   175   ifdef DEV_ONLY
   176     BUILD_INSTALL := false
   177   else
   178     BUILD_INSTALL := $(INSTALL_SRC_AVAILABLE)
   179   endif
   180 endif
   182 SPONSORS_SRC_AVAILABLE := $(call MkExists,$(SPONSORS_TOPDIR)/make/Makefile)
   183 ifndef BUILD_SPONSORS
   184   ifdef DEV_ONLY
   185     BUILD_SPONSORS := false
   186   else
   187     BUILD_SPONSORS := $(SPONSORS_SRC_AVAILABLE)
   188   endif
   189 endif
   192 # Do we build the source bundles?
   193 BUNDLE_RULES = $(JDK_TOPDIR)/make/closed/bundles.gmk
   194 ifeq ($(SKIP_BUNDLES_BUILD), true)
   195   BUNDLE_RULES_AVAILABLE := false
   196 else 
   197   BUNDLE_RULES_AVAILABLE := $(call MkExists,$(BUNDLE_RULES))
   198 endif
   200 # Current things we do NOT build for OPENJDK
   201 ifdef OPENJDK
   202   BUILD_DEPLOY = false
   203   BUILD_INSTALL = false
   204   BUILD_SPONSORS = false
   205   BUNDLE_RULES_AVAILABLE := false
   206   # These could be over-ridden on the command line or in environment
   207   ifndef SKIP_FASTDEBUG_BUILD
   208     SKIP_FASTDEBUG_BUILD = true
   209   endif
   210   ifndef SKIP_DEBUG_BUILD
   211     SKIP_DEBUG_BUILD = true
   212   endif
   213   ifndef SKIP_COMPARE_IMAGES
   214     SKIP_COMPARE_IMAGES = true
   215   endif
   216 else
   218   # Various non-OPENJDK reasons to NOT build the deploy repository
   219   ifeq ($(ARCH), ia64)
   220     BUILD_DEPLOY=false
   221   endif
   222   ifeq ($(ARCH), sparcv9)
   223     BUILD_DEPLOY=false
   224   endif
   225   ifeq ($(ARCH), amd64)
   226     ifeq ($(PLATFORM), solaris)
   227       BUILD_DEPLOY=false
   228     endif
   229   endif
   231 endif
   232 ifndef SKIP_PRODUCT_BUILD
   233   SKIP_PRODUCT_BUILD = false
   234 endif
   236 # Many reasons why we would want to skip the comparison to previous jdk
   237 ifndef SKIP_COMPARE_IMAGES
   238   ifeq ($(BUILD_JDK), false)
   239     SKIP_COMPARE_IMAGES = true
   240   endif
   241   ifeq ($(BUILD_DEPLOY), false)
   242     SKIP_COMPARE_IMAGES = true
   243   endif
   244   ifeq ($(BUILD_INSTALL), false)
   245     SKIP_COMPARE_IMAGES = true
   246   endif
   247   ifdef DEV_ONLY
   248     SKIP_COMPARE_IMAGES = true
   249   endif
   250 endif
   252 # Select defaults if these are not set to true or false
   253 ifndef SKIP_DEBUG_BUILD
   254   SKIP_DEBUG_BUILD=true
   255 endif
   256 ifndef SKIP_FASTDEBUG_BUILD
   257   SKIP_FASTDEBUG_BUILD=true
   258 endif
   260 # Select javadoc setting GENERATE_DOCS
   261 ifndef NO_DOCS
   262   # Default value (we want javadoc run)
   263   GENERATE_DOCS=true
   264   # No DOCS build when JDK_UPDATE_VERSION set on non-OPENJDK builds
   265   ifndef OPENJDK
   266     ifdef JDK_UPDATE_VERSION
   267       GENERATE_DOCS=false
   268     endif
   269   endif
   270   # If langtools, corba, jaxp, and jaxws are not being built, 
   271   #   a full jdk javadoc is not possible
   272   ifneq ($(BUILD_LANGTOOLS), true)
   273     GENERATE_DOCS=false
   274   endif
   275   ifneq ($(BUILD_CORBA), true)
   276     GENERATE_DOCS=false
   277   endif
   278   ifneq ($(BUILD_JAXP), true)
   279     GENERATE_DOCS=false
   280   endif
   281   ifneq ($(BUILD_JAXWS), true)
   282     GENERATE_DOCS=false
   283   endif
   284   ifeq ($(GENERATE_DOCS),false)
   285     NO_DOCS=true
   286   endif
   287 else
   288   GENERATE_DOCS=false
   289 endif
   291 # Output directory for hotspot build
   292 HOTSPOT_DIR = $(ABS_OUTPUTDIR)/hotspot
   294 # If we are building components
   295 ifndef ALT_LANGTOOLS_DIST
   296   LANGTOOLS_OUTPUTDIR = $(ABS_OUTPUTDIR)/langtools
   297   ABS_LANGTOOLS_DIST = $(LANGTOOLS_OUTPUTDIR)/dist
   298 endif
   299 ifndef ALT_CORBA_DIST
   300   CORBA_OUTPUTDIR = $(ABS_OUTPUTDIR)/corba
   301   ABS_CORBA_DIST = $(CORBA_OUTPUTDIR)/dist
   302 endif
   303 ifndef ALT_JAXP_DIST
   304   JAXP_OUTPUTDIR = $(ABS_OUTPUTDIR)/jaxp
   305   ABS_JAXP_DIST = $(JAXP_OUTPUTDIR)/dist
   306 endif
   307 ifndef ALT_JAXWS_DIST
   308   JAXWS_OUTPUTDIR = $(ABS_OUTPUTDIR)/jaxws
   309   ABS_JAXWS_DIST = $(JAXWS_OUTPUTDIR)/dist
   310 endif
   312 # Common make arguments (supplied to all component builds)
   313 COMMON_BUILD_ARGUMENTS = \
   314     JDK_TOPDIR=$(ABS_JDK_TOPDIR) \
   315     JDK_MAKE_SHARED_DIR=$(ABS_JDK_TOPDIR)/make/common/shared \
   316     EXTERNALSANITYCONTROL=true \
   317     SOURCE_LANGUAGE_VERSION=$(SOURCE_LANGUAGE_VERSION) \
   318     TARGET_CLASS_VERSION=$(TARGET_CLASS_VERSION) \
   319     MILESTONE=$(MILESTONE) \
   320     BUILD_NUMBER=$(BUILD_NUMBER) \
   321     JDK_BUILD_NUMBER=$(JDK_BUILD_NUMBER) \
   322     FULL_VERSION=$(FULL_VERSION) \
   323     PREVIOUS_JDK_VERSION=$(PREVIOUS_JDK_VERSION) \
   324     JDK_VERSION=$(JDK_VERSION) \
   325     JDK_MKTG_VERSION=$(JDK_MKTG_VERSION) \
   326     JDK_MAJOR_VERSION=$(JDK_MAJOR_VERSION) \
   327     JDK_MINOR_VERSION=$(JDK_MINOR_VERSION) \
   328     JDK_MICRO_VERSION=$(JDK_MICRO_VERSION) \
   329     PREVIOUS_MAJOR_VERSION=$(PREVIOUS_MAJOR_VERSION) \
   330     PREVIOUS_MINOR_VERSION=$(PREVIOUS_MINOR_VERSION) \
   331     PREVIOUS_MICRO_VERSION=$(PREVIOUS_MICRO_VERSION)
   333 ifdef ARCH_DATA_MODEL
   334   COMMON_BUILD_ARGUMENTS += ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)
   335 endif
   337 ifeq ($(DEBUG_NAME), debug)
   338   COMMON_BUILD_ARGUMENTS += VARIANT=DBG DEBUG_CLASSFILES=true
   339 endif
   341 ifeq ($(DEBUG_NAME), fastdebug)
   342   COMMON_BUILD_ARGUMENTS += VARIANT=DBG FASTDEBUG=true DEBUG_CLASSFILES=true
   343 endif
   345 ifdef COOKED_JDK_UPDATE_VERSION
   346   COMMON_BUILD_ARGUMENTS += COOKED_JDK_UPDATE_VERSION=$(COOKED_JDK_UPDATE_VERSION)
   347 endif
   349 ifdef COOKED_BUILD_NUMBER
   350   COMMON_BUILD_ARGUMENTS += COOKED_BUILD_NUMBER=$(COOKED_BUILD_NUMBER)
   351 endif
   353 ifdef ANT_HOME
   354   COMMON_BUILD_ARGUMENTS += ANT_HOME="$(ANT_HOME)"
   355 endif

mercurial