Platform.gmk revision 4632
5415N/A# Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 0N/A# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 0N/A# This code is free software; you can redistribute it and/or modify it 0N/A# under the terms of the GNU General Public License version 2 only, as 0N/A# published by the Free Software Foundation. Oracle designates this 0N/A# particular file as subject to the "Classpath" exception as provided 0N/A# by Oracle in the LICENSE file that accompanied this code. 0N/A# This code is distributed in the hope that it will be useful, but WITHOUT 0N/A# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0N/A# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 0N/A# version 2 for more details (a copy is included in the LICENSE file that 0N/A# accompanied this code). 0N/A# You should have received a copy of the GNU General Public License version 0N/A# 2 along with this work; if not, write to the Free Software Foundation, 2362N/A# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2362N/A# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 0N/A# Shared platform (OS/ARCH) variable settings for the JDK builds. 0N/A# Includes basic system requirements, versions of utilities required, 0N/A# suffixes on files, and basic defaults attributed to the build platform. 0N/A# Assumes some basic unix system utilities (e.g. uname) are in the search path 0N/A# in order to figure out the system. 0N/A# Possible Input variables: 0N/A# ARCH_DATA_MODEL 32 or 64, default to 32 0N/A# USER, LOGNAME user name (runs logname, or id if not set) 0N/A# PROCESSOR_IDENTIFIER windows only: needed in environment 0N/A# (Also gets input by running the utilities uname, logname, isainfo, or id.) 4638N/A# Variables set by this file: 0N/A# SYSTEM_UNAME what 'uname' says this system is 0N/A# USER login name of user (minus blanks) 0N/A# PLATFORM windows, solaris, or linux 0N/A# VARIANT OPT or DBG, OPT is the default 0N/A# TEMP_DISK /tmp or C:/temp 1486N/A# ARCH sparc, sparcv9, i586, amd64, or ia64 1486N/A# LIBARCH sparc, sparcv9, i386, amd64, or ia64 0N/A# CLASSPATH_SEPARATOR separator in classpath, ; or : 0N/A# LIB_PREFIX dynamic or static library prefix, lib or empty 0N/A# LIB_SUFFIX static library file suffix, .lib or .a? 0N/A# LIBRARY_SUFFIX dynamic library file suffix, .dll or .so 0N/A# OBJECT_SUFFIX object file suffix, .o or .obj 0N/A# EXE_SUFFIX executable file suffix, .exe or empty 0N/A# BUNDLE_FILE_SUFFIX suffix for bundles: .tar or .tar.gz 0N/A# ISA_DIR solaris only: /sparcv9 or /amd64 0N/A# LIBARCH32 solaris only: sparc or i386 0N/A# LIBARCH64 solaris only: sparcv9 or amd64 0N/A# USING_CYGWIN windows only: true or false 0N/A# ISHIELD_TEMP_MIN windows only: minimum disk space in temp area 0N/A# Only run uname once in this make session. # Prune out all known SCM (Source Code Management) directories # so they will not be included when copying directory trees # or packaging up .jar files, etc. This applies to all workspaces. # When changing SCM_DIRs also change SCM_DIRS_rexp and SCM_DIRS_prune: SCM_DIRS_rexp =
".hg|.svn|CVS|RCS|SCCS|Codemgr_wsdata|deleted_files|.hgignore|.hgtags" # Don't define this unless it's not defined # Platform settings specific to Solaris # Solaris sparc build can be either 32-bit or 64-bit. # Default to 32, but allow explicit setting to 32 or 64. # ISA_DIR is used to locate 64-bit specific libraries which are generally # in the same general place as other libraries under the ./$(ARCH) directory # Need to maintain the jre/lib/i386 location for 32-bit Intel # Suffix for file bundles used in previous release # How much RAM does this machine have: # Platform settings specific to Linux # Linux builds may be 32-bit or 64-bit data model. # Linux sparc build can be either 32-bit or 64-bit. # Default to 32, but allow explicit setting to 32 or 64. # Need to maintain the jre/lib/i386 location for 32-bit Intel # Suffix for file bundles used in previous release # How much RAM does this machine have: # Platform settings specific to BSD/Mac OS X # Darwin x86 builds are i386/amd64 universal by default. # Allow arch to be set from the environment to avoid this. # MMM: revisit when hotspot producinging universal libs # i586, sparc, and ppc are 32 bit, amd64 and sparc64 are 64 # ARCH_DATA_MODEL does not exactly mean anything in universal # but it has to be one or the other, so pick 32 # Need to maintain the jre/lib/i386 location for 32-bit Intel # Suffix for file bundles used in previous release # Minimum disk space needed as determined by running 'du -sk' on # a fully built workspace. # How much RAM does this machine have: # Windows with and without CYGWIN will be slightly different # Only run "cygpath /" once in this make session. # Platform settings specific to Windows # Windows builds default to the appropriate for the underlaying # GNU Make or MKS overrides $(PROCESSOR_ARCHITECTURE) to always # return "x86". Use the first word of $(PROCESSOR_IDENTIFIER) instead. # And sometimes PROCESSOR_IDENTIFIER is not defined at all # (in some restricted shells), so we use uname if we have to. # Only run uname -m once in this make session. # Cover all the possibilities, MKS uname, CYGWIN uname, PROCESSOR_IDENTIFIER # If the user wants to perform a cross compile build then they must # - set ARCH_DATA_MODEL=64 and either # + set ARCH to ia64 or amd64, or # LIBARCH is used to preserve the jre/lib/i386 directory name for 32-bit intel # Where is unwanted output to be delivered? # MKS uses the special file "NUL", cygwin uses the customary unix file. # The suffix used for object file (.o for unix .obj for windows) # The suffix applied to executables (.exe for windows, nothing for solaris) # The prefix applied to library files (lib for solaris, nothing for windows) # User name determination (set _USER) # Suffix for file bundles used in previous release # ISHIELD_TEMP_MIN is the difference of an empty C:\TEMP vs. one after a # bundles build on windows. # How much RAM does this machine have: # CYGWIN has the 'free' utility # Windows 2000 has the mem utility, but two memory areas # extended memory is what is beyond 1024M grep 'total contiguous extended memory' | awk '{print $$1;}') grep 'total conventional memory' | awk '{print $$1;}') # Windows 2003 has the systeminfo utility use it if mem doesn't work grep 'Total Physical Memory:' | \ awk '{print $$4;}' | sed -e 's@,@@') # Unix type settings (same for all unix platforms) # Where is unwanted output to be delivered? # Character used between entries in classpath # suffix used for object file (.o for unix .obj for windows) # The suffix applied to runtime libraries # The suffix applied to link libraries # The suffix applied to executables (.exe for windows, nothing for solaris) # The prefix applied to library files (lib for solaris, nothing for windows) # User name determination (set _USER) # Darwin-specific Overrides # The suffix applied to runtime libraries # The suffix applied to link libraries # Machines with 512Mb or less of real memory are considered low memory # build machines and adjustments will be made to prevent excessing # system swapping during the build. # If blanks in the username, use the first 4 words and pack them together _USER2:=$(subst ", ,$(_USER1)) USER:=$(word 1,$(_USER2))$(word 2,$(_USER2))$(word 3,$(_USER2))$(word 4,$(_USER2))