jdk_generic_profile.sh revision 2659
0N/A# Copyright (c) 2007, 2008, 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). 2362N/A# You should have received a copy of the GNU General Public License version 2362N/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. 0N/A# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 0N/A############################################################################# 0N/A# Generic build profile.sh for all platforms, works in bash, sh, and ksh. 0N/A# Copy this file to your own area, and edit it to suit your needs. 0N/A# Ideally you either won't need to set the ALT_* variables because the 0N/A# build system will find what it needs through system provided paths 0N/A# or environment variables, or you have installed the component in the 0N/A# recommended default path. 0N/A# If you find yourself forced to set an ALT_* environment variable and 0N/A# suspect we could have figured it out automatically, please let us know. 0N/A# Most ALT_* directory defaults are based on being in the parent directory in 0N/A# ALT_SLASH_JAVA, so it's possible to create for example a "C:/jdk6" 0N/A# directory, assign that to ALT_SLASH_JAVA, and place all the components 0N/A# in that directory. This could also minimize the ALT_* environment 0N/A# variables you need to set. 0N/A# Assumes basic unix utilities are in the PATH already (uname, hostname, etc.). 0N/A# On Windows, assumes PROCESSOR_IDENTIFIER, VS71COMNTOOLS, 0N/A# SYSTEMROOT (or SystemRoot), COMPUTERNAME (or hostname works), and 0N/A# USERNAME is defined in the environment. 0N/A# Uses CYGWIN cygpath to make sure paths are space-free. 0N/A# The JDK Makefiles may change in the future, making some of these 0N/A# settings unnecessary or redundant. 0N/A# This is a working example, but may or may not work on all systems. 0N/A############################################################################# 0N/A# WARNING: This file will clobber the value of some environment variables. 0N/A# Sets up these environment variables for doing JDK builds: 0N/A# Attempts to set these variables for the JDK builds: 0N/A# ALT_BINARY_PLUGS_PATH 0N/A# ALT_CLOSED_JDK_IMPORT_PATH 0N/A# ALT_UNIXCOMMAND_PATH 0N/A# ALT_MSDEVTOOLS_PATH 0N/A# ALT_MSVCRT_DLL_PATH 0N/A# ALT_MSVCR71_DLL_PATH 0N/A############################################################################# 0N/A# Keep in mind that at this point, we are running in some kind of shell 1324N/A# (sh, ksh, or bash). We don't know if it's solaris, linux, or windows 1324N/A# CYGWIN. We need to figure that out. 0N/Aif [
"${USERNAME}" =
"" ] ;
then 0N/Aif [
"${USERNAME}" =
"" ] ;
then 0N/Aif [
"${COMPUTERNAME}" =
"" ] ;
then 0N/A# Uses 'uname -s', but only expect SunOS or Linux, assume Windows otherwise. 0N/A # System place where JDK installed images are stored? 0N/A # Get the Sun Studio compilers (and latest patches for them too) 0N/A if [
"${ALT_COMPILER_PATH}" =
"" ] ;
then 0N/A echo "WARNING: Cannot access ALT_COMPILER_PATH=${ALT_COMPILER_PATH}" 0N/A # Place compiler path early in PATH to avoid 'cc' conflicts. 0N/A # Make sure these are unset 0N/A # System place where JDK installed images are stored? 0N/A # Make sure these are unset 0N/A # System place where JDK installed images are stored? 0N/A # Windows: Differs on CYGWIN and the compiler available. 0N/A # Also, blanks in pathnames gives make headaches, so anything placed 0N/A # in any ALT_* variable should be the short windows DOS names. 0N/A # Check CYGWIN (should have already been done) 0N/A # Assumption here is that you are in a shell window via cygwin. 0N/A proc_arch=
`echo "${PROCESSOR_IDENTIFIER}" | expand | cut -d' ' -f1 | sed -e 's@x86@X86@g' -e 's@Intel64@X64@g' -e 's@em64t@X64@g' -e 's@EM64T@X64@g' -e 's@amd64@X64@g' -e 's@AMD64@X64@g' -e 's@ia64@IA64@g'` 0N/A if [
"${proc_arch}" =
"X64" ] ;
then 0N/A # We need to check if we are running a CYGWIN shell 0N/A # For CYGWIN, uname will have "Cygwin" in it, and /bin/cygpath should exist 0N/A # Utility to convert to short pathnames without spaces 0N/A # Make the prompt tell you CYGWIN 0N/A export PS1=
"CYGWIN:${COMPUTERNAME}:${USERNAME}[\!] " 0N/A echo "ERROR: Cannot find CYGWIN on this machine" 0N/A if [
"${ALT_UNIXCOMMAND_PATH}" !=
"" ] ;
then 0N/A # Setup path system (verify this is right) 0N/A if [
"${SystemRoot}" !=
"" ] ;
then 0N/A elif [
"${SYSTEMROOT}" !=
"" ] ;
then if [ ! -d
"${sys_root}" ] ;
then echo "WARNING: No system root found at: ${sys_root}" # Compiler setup (nasty part) # NOTE: You can use vcvars32.bat to set PATH, LIB, and INCLUDE. # NOTE: CYGWIN has a link.exe too, make sure the compilers are first if [
"${windows_arch}" =
i586 ] ;
then # 32bit Windows compiler settings # VisualStudio .NET 2003 VC++ 7.1 (VS71COMNTOOLS should be defined) # Fill in PATH, LIB, and INCLUDE (unset all others to make sure) # LIB and INCLUDE must use ; as a separator lib4sdk=
"${lib4sdk};${vc7_root}/lib" lib4sdk=
"${lib4sdk};${platform_sdk}/lib" # Search path and DLL locating path # WARNING: CYGWIN has a link.exe too, make sure compilers are first elif [
"${windows_arch}" =
amd64 ] ;
then # AMD64 64bit Windows compiler settings if [
"${ALT_DEPLOY_MSSDK}" !=
"" ] ;
then if [
"${ALT_COMPILER_PATH}" !=
"" ] ;
then if [
"${ALT_DEPLOY_MSSDK}" =
"" ] ;
then if [
"${ALT_MSDEVTOOLS_PATH}" !=
"" ] ;
then # LIB and INCLUDE must use ; as a separator # Search path and DLL locating path # WARNING: CYGWIN has a link.exe too, make sure compilers are first path4sdk=
"${platform_sdk}/bin;${path4sdk}" # Turn all \\ into /, remove duplicates and trailing / # Convert path4sdk to cygwin style # Get the previous JDK to be used to bootstrap the build if [
"${ALT_BOOTDIR}" =
"" ] ;
then echo "WARNING: Cannot access ALT_BOOTDIR=${ALT_BOOTDIR}" # Get the import JDK to be used to get hotspot VM if not built # Get the latest JDK binary plugs or build to import pre-built binaries if [
"${ALT_BINARY_PLUGS_PATH}" =
"" ] ;
then elif [
"${ALT_CLOSED_JDK_IMPORT_PATH}" =
"" -a -d ${
jdkplugs} ] ;
then if [
"${ALT_BINARY_PLUGS_PATH}" =
"" ] ;
then echo "WARNING: Missing ALT_BINARY_PLUGS_PATH: ${binplugs}" if [
"${ALT_BINARY_PLUGS_PATH}" !=
"" -a ! -d
"${ALT_BINARY_PLUGS_PATH}" ] ;
then echo "WARNING: Cannot access ALT_BINARY_PLUGS_PATH=${ALT_BINARY_PLUGS_PATH}" if [
"${ALT_CLOSED_JDK_IMPORT_PATH}" !=
"" -a ! -d
"${ALT_CLOSED_JDK_IMPORT_PATH}" ] ;
then echo "WARNING: Cannot access ALT_CLOSED_JDK_IMPORT_PATH=${ALT_CLOSED_JDK_IMPORT_PATH}" # Export variables required for Zero if [
"${SHARK_BUILD}" =
true ] ;
then if [
"${ZERO_BUILD}" =
true ] ;
then # ZERO_LIBARCH is the name of the architecture-specific # ARCH_DATA_MODEL is the number of bits in a pointer case "${ZERO_LIBARCH}" in echo "ERROR: Unable to determine ARCH_DATA_MODEL for ${ZERO_LIBARCH}" # ZERO_ENDIANNESS is the endianness of the processor case "${ZERO_LIBARCH}" in echo "ERROR: Unable to determine ZERO_ENDIANNESS for ${ZERO_LIBARCH}" # ZERO_ARCHDEF is used to enable architecture-specific code case "${ZERO_LIBARCH}" in # ZERO_ARCHFLAG tells the compiler which mode to build for case "${ZERO_LIBARCH}" in # LIBFFI_CFLAGS and LIBFFI_LIBS tell the compiler how to compile and if [ -x
"${pkgconfig}" ] ;
then if [
"${LIBFFI_CFLAGS}" =
"" ] ;
then if [
"${LIBFFI_LIBS}" =
"" ] ;
then if [
"${LIBFFI_LIBS}" =
"" ] ;
then # LLVM_CFLAGS, LLVM_LDFLAGS and LLVM_LIBS tell the compiler how to # compile and link against LLVM if [
"${SHARK_BUILD}" =
true ] ;
then if [
"${LLVM_CONFIG}" =
"" ] ;
then if [ ! -x
"${LLVM_CONFIG}" ] ;
then echo "ERROR: Unable to locate llvm-config" if echo "${flag}" |
grep -q
'^-[ID]';
then if [
"${flag}" !=
"-D_DEBUG" ] ;
then if [
"${LLVM_CFLAGS}" !=
"" ] ;
then LLVM_CFLAGS=
"${LLVM_CFLAGS} -DSHARK_LLVM_VERSION=${llvm_version}" if echo "${flag}" |
grep -q
'^-L';
then if [
"${LLVM_LDFLAGS}" !=
"" ] ;
then if echo "${flag}" |
grep -q
'^-l';
then if [
"${LLVM_LIBS}" !=
"" ] ;
then