createWindowsDevkit.sh revision 2281:4353c659dfde
1178825Sdfr#!/bin/bash 2233294Sstas# 3178825Sdfr# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. 4178825Sdfr# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5178825Sdfr# 6178825Sdfr# This code is free software; you can redistribute it and/or modify it 7178825Sdfr# under the terms of the GNU General Public License version 2 only, as 8178825Sdfr# published by the Free Software Foundation. Oracle designates this 9178825Sdfr# particular file as subject to the "Classpath" exception as provided 10178825Sdfr# by Oracle in the LICENSE file that accompanied this code. 11178825Sdfr# 12178825Sdfr# This code is distributed in the hope that it will be useful, but WITHOUT 13178825Sdfr# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 14178825Sdfr# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15178825Sdfr# version 2 for more details (a copy is included in the LICENSE file that 16178825Sdfr# accompanied this code). 17178825Sdfr# 18178825Sdfr# You should have received a copy of the GNU General Public License version 19178825Sdfr# 2 along with this work; if not, write to the Free Software Foundation, 20178825Sdfr# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 21178825Sdfr# 22178825Sdfr# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 23178825Sdfr# or visit www.oracle.com if you need additional information or have any 24178825Sdfr# questions. 25178825Sdfr# 26178825Sdfr 27178825Sdfr# This script copies parts of a Visual Studio 2013 installation into a devkit 28178825Sdfr# suitable for building OpenJDK and OracleJDK. Needs to run in Cygwin. 29178825Sdfr# erik.joelsson@oracle.com 30178825Sdfr 31178825SdfrVS_VERSION="2013" 32178825SdfrVS_VERSION_NUM="12.0" 33178825SdfrVS_VERSION_NUM_NODOT="120" 34178825SdfrSDK_VERSION="8.1" 35178825SdfrVS_VERSION_SP="SP4" 36178825Sdfr 37178825SdfrSCRIPT_DIR="$(cd "$(dirname $0)" > /dev/null && pwd)" 38178825SdfrBUILD_DIR="${SCRIPT_DIR}/../../build/devkit" 39178825SdfrDEVKIT_ROOT="${BUILD_DIR}/VS${VS_VERSION}${VS_VERSION_SP}-devkit" 40178825SdfrDEVKIT_BUNDLE="${DEVKIT_ROOT}.tar.gz" 41178825Sdfr 42178825Sdfrecho "Creating devkit in $DEVKIT_ROOT" 43178825Sdfr 44178825SdfrMSVCR_DLL=Microsoft.VC${VS_VERSION_NUM_NODOT}.CRT/msvcr${VS_VERSION_NUM_NODOT}.dll 45178825SdfrMSVCP_DLL=Microsoft.VC${VS_VERSION_NUM_NODOT}.CRT/msvcp${VS_VERSION_NUM_NODOT}.dll 46178825Sdfr 47178825Sdfr################################################################################ 48178825Sdfr# Copy Visual Studio files 49178825Sdfr 50178825Sdfreval VSNNNCOMNTOOLS="\"\${VS${VS_VERSION_NUM_NODOT}COMNTOOLS}\"" 51178825SdfrVS_INSTALL_DIR="$(cygpath "$VSNNNCOMNTOOLS/../..")" 52178825Sdfrecho "VS_INSTALL_DIR: $VS_INSTALL_DIR" 53178825Sdfr 54178825Sdfrif [ ! -d $DEVKIT_ROOT/VC ]; then 55178825Sdfr echo "Copying VC..." 56178825Sdfr mkdir -p $DEVKIT_ROOT/VC/bin 57178825Sdfr cp -r "$VS_INSTALL_DIR/VC/bin/amd64" $DEVKIT_ROOT/VC/bin/ 58178825Sdfr cp "$VS_INSTALL_DIR/VC/bin/"*.* $DEVKIT_ROOT/VC/bin/ 59178825Sdfr cp -r "$VS_INSTALL_DIR/VC/bin/1033/" $DEVKIT_ROOT/VC/bin/ 60178825Sdfr mkdir -p $DEVKIT_ROOT/VC/lib 61178825Sdfr cp -r "$VS_INSTALL_DIR/VC/lib/amd64" $DEVKIT_ROOT/VC/lib/ 62178825Sdfr cp "$VS_INSTALL_DIR/VC/lib/"*.* $DEVKIT_ROOT/VC/lib/ 63178825Sdfr cp -r "$VS_INSTALL_DIR/VC/include" $DEVKIT_ROOT/VC/ 64178825Sdfr mkdir -p $DEVKIT_ROOT/VC/atlmfc/lib 65178825Sdfr cp -r "$VS_INSTALL_DIR/VC/atlmfc/include" $DEVKIT_ROOT/VC/atlmfc/ 66178825Sdfr cp -r "$VS_INSTALL_DIR/VC/atlmfc/lib/amd64" $DEVKIT_ROOT/VC/atlmfc/lib/ 67178825Sdfr cp "$VS_INSTALL_DIR/VC/atlmfc/lib/"*.* $DEVKIT_ROOT/VC/atlmfc/lib/ 68178825Sdfr mkdir -p $DEVKIT_ROOT/VC/redist 69178825Sdfr cp -r "$VS_INSTALL_DIR/VC/redist/x64" $DEVKIT_ROOT/VC/redist/ 70178825Sdfr cp -r "$VS_INSTALL_DIR/VC/redist/x86" $DEVKIT_ROOT/VC/redist/ 71178825Sdfr # The redist runtime libs are needed to run the compiler but may not be 72178825Sdfr # installed on the machine where the devkit will be used. 73178825Sdfr cp $DEVKIT_ROOT/VC/redist/x86/$MSVCR_DLL $DEVKIT_ROOT/VC/bin/ 74178825Sdfr cp $DEVKIT_ROOT/VC/redist/x86/$MSVCP_DLL $DEVKIT_ROOT/VC/bin/ 75178825Sdfr cp $DEVKIT_ROOT/VC/redist/x64/$MSVCR_DLL $DEVKIT_ROOT/VC/bin/amd64/ 76178825Sdfr cp $DEVKIT_ROOT/VC/redist/x64/$MSVCP_DLL $DEVKIT_ROOT/VC/bin/amd64/ 77178825Sdfr # The msvcdis dll is needed to run some of the tools in VC/bin but is not 78178825Sdfr # shipped in that directory. Copy it from the common dir. 79178825Sdfr cp "$VS_INSTALL_DIR/Common7/IDE/msvcdis${VS_VERSION_NUM_NODOT}.dll" \ 80178825Sdfr $DEVKIT_ROOT/VC/bin/ 81178825Sdfrfi 82178825Sdfr 83178825Sdfr################################################################################ 84178825Sdfr# Copy SDK files 85178825Sdfr 86178825SdfrPROGRAMFILES_X86="`env | sed -n 's/^ProgramFiles(x86)=//p'`" 87178825SdfrSDK_INSTALL_DIR="$(cygpath "$PROGRAMFILES_X86/Windows Kits/$SDK_VERSION")" 88178825Sdfrecho "SDK_INSTALL_DIR: $SDK_INSTALL_DIR" 89178825Sdfr 90178825Sdfrif [ ! -d $DEVKIT_ROOT/$SDK_VERSION ]; then 91178825Sdfr echo "Copying SDK..." 92178825Sdfr mkdir -p $DEVKIT_ROOT/$SDK_VERSION/bin 93178825Sdfr cp -r "$SDK_INSTALL_DIR/bin/x64" $DEVKIT_ROOT/$SDK_VERSION/bin/ 94178825Sdfr cp -r "$SDK_INSTALL_DIR/bin/x86" $DEVKIT_ROOT/$SDK_VERSION/bin/ 95178825Sdfr mkdir -p $DEVKIT_ROOT/$SDK_VERSION/lib 96178825Sdfr cp -r "$SDK_INSTALL_DIR/lib/"winv*/um/x64 $DEVKIT_ROOT/$SDK_VERSION/lib/ 97178825Sdfr cp -r "$SDK_INSTALL_DIR/lib/"winv*/um/x86 $DEVKIT_ROOT/$SDK_VERSION/lib/ 98178825Sdfr cp -r "$SDK_INSTALL_DIR/include" $DEVKIT_ROOT/$SDK_VERSION/ 99178825Sdfrfi 100178825Sdfr 101178825Sdfr################################################################################ 102178825Sdfr# Generate devkit.info 103178825Sdfr 104178825Sdfrecho-info() { 105178825Sdfr echo "$1" >> $DEVKIT_ROOT/devkit.info 106178825Sdfr} 107178825Sdfr 108178825Sdfrecho "Generating devkit.info..." 109178825Sdfrrm -f $DEVKIT_ROOT/devkit.info 110178825Sdfrecho-info "# This file describes to configure how to interpret the contents of this devkit" 111178825Sdfrecho-info "DEVKIT_NAME=\"Microsoft Visual Studio $VS_VERSION $VS_VERSION_SP (devkit)\"" 112178825Sdfrecho-info "DEVKIT_VS_VERSION=\"$VS_VERSION\"" 113178825Sdfrecho-info "" 114178825Sdfrecho-info "DEVKIT_TOOLCHAIN_PATH_x86=\"\$DEVKIT_ROOT/VC/bin:\$DEVKIT_ROOT/$SDK_VERSION/bin/x86\"" 115178825Sdfrecho-info "DEVKIT_VS_INCLUDE_x86=\"\$DEVKIT_ROOT/VC/include;\$DEVKIT_ROOT/VC/atlmfc/include;\$DEVKIT_ROOT/$SDK_VERSION/include/shared;\$DEVKIT_ROOT/$SDK_VERSION/include/um;\$DEVKIT_ROOT/$SDK_VERSION/include/winrt\"" 116178825Sdfrecho-info "DEVKIT_VS_LIB_x86=\"\$DEVKIT_ROOT/VC/lib;\$DEVKIT_ROOT/VC/atlmfc/lib;\$DEVKIT_ROOT/$SDK_VERSION/lib/x86\"" 117178825Sdfrecho-info "DEVKIT_MSVCR_DLL_x86=\"\$DEVKIT_ROOT/VC/redist/x86/$MSVCR_DLL\"" 118178825Sdfrecho-info "DEVKIT_MSVCP_DLL_x86=\"\$DEVKIT_ROOT/VC/redist/x86/$MSVCP_DLL\"" 119178825Sdfrecho-info "" 120178825Sdfrecho-info "DEVKIT_TOOLCHAIN_PATH_x86_64=\"\$DEVKIT_ROOT/VC/bin/amd64:\$DEVKIT_ROOT/$SDK_VERSION/bin/x64:\$DEVKIT_ROOT/$SDK_VERSION/bin/x86\"" 121178825Sdfrecho-info "DEVKIT_VS_INCLUDE_x86_64=\"\$DEVKIT_ROOT/VC/include;\$DEVKIT_ROOT/VC/atlmfc/include;\$DEVKIT_ROOT/$SDK_VERSION/include/shared;\$DEVKIT_ROOT/$SDK_VERSION/include/um;\$DEVKIT_ROOT/$SDK_VERSION/include/winrt\"" 122178825Sdfrecho-info "DEVKIT_VS_LIB_x86_64=\"\$DEVKIT_ROOT/VC/lib/amd64;\$DEVKIT_ROOT/VC/atlmfc/lib/amd64;\$DEVKIT_ROOT/$SDK_VERSION/lib/x64\"" 123178825Sdfrecho-info "DEVKIT_MSVCR_DLL_x86_64=\"\$DEVKIT_ROOT/VC/redist/x64/$MSVCR_DLL\"" 124178825Sdfrecho-info "DEVKIT_MSVCP_DLL_x86_64=\"\$DEVKIT_ROOT/VC/redist/x64/$MSVCP_DLL\"" 125178825Sdfr 126178825Sdfr################################################################################ 127178825Sdfr# Copy this script 128178825Sdfr 129178825Sdfrecho "Copying this script..." 130178825Sdfrcp $0 $DEVKIT_ROOT/ 131178825Sdfr 132178825Sdfr################################################################################ 133178825Sdfr# Create bundle 134178825Sdfr 135178825Sdfrecho "Creating bundle: $DEVKIT_BUNDLE" 136178825Sdfr(cd "$DEVKIT_ROOT" && tar zcf "$DEVKIT_BUNDLE" .) 137178825Sdfr