createWindowsDevkit.sh revision 2281:4353c659dfde
129088Smarkm#!/bin/bash 229088Smarkm# 329088Smarkm# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. 429088Smarkm# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 529088Smarkm# 629088Smarkm# This code is free software; you can redistribute it and/or modify it 729088Smarkm# under the terms of the GNU General Public License version 2 only, as 829088Smarkm# published by the Free Software Foundation. Oracle designates this 929088Smarkm# particular file as subject to the "Classpath" exception as provided 1029088Smarkm# by Oracle in the LICENSE file that accompanied this code. 1129088Smarkm# 1229088Smarkm# This code is distributed in the hope that it will be useful, but WITHOUT 1329088Smarkm# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1429088Smarkm# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 1529088Smarkm# version 2 for more details (a copy is included in the LICENSE file that 1629088Smarkm# accompanied this code). 1729088Smarkm# 1829088Smarkm# You should have received a copy of the GNU General Public License version 1929088Smarkm# 2 along with this work; if not, write to the Free Software Foundation, 2029088Smarkm# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2129088Smarkm# 2229088Smarkm# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2329088Smarkm# or visit www.oracle.com if you need additional information or have any 2429088Smarkm# questions. 2529088Smarkm# 2629088Smarkm 2729088Smarkm# This script copies parts of a Visual Studio 2013 installation into a devkit 2829088Smarkm# suitable for building OpenJDK and OracleJDK. Needs to run in Cygwin. 2929088Smarkm# erik.joelsson@oracle.com 3029088Smarkm 3129088SmarkmVS_VERSION="2013" 3229088SmarkmVS_VERSION_NUM="12.0" 3329088SmarkmVS_VERSION_NUM_NODOT="120" 34114630SobrienSDK_VERSION="8.1" 3529088SmarkmVS_VERSION_SP="SP4" 3629181Smarkm 3787139SmarkmSCRIPT_DIR="$(cd "$(dirname $0)" > /dev/null && pwd)" 38114630SobrienBUILD_DIR="${SCRIPT_DIR}/../../build/devkit" 39114630SobrienDEVKIT_ROOT="${BUILD_DIR}/VS${VS_VERSION}${VS_VERSION_SP}-devkit" 40114630SobrienDEVKIT_BUNDLE="${DEVKIT_ROOT}.tar.gz" 4129088Smarkm 4229088Smarkmecho "Creating devkit in $DEVKIT_ROOT" 4377095Sdillon 4429088SmarkmMSVCR_DLL=Microsoft.VC${VS_VERSION_NUM_NODOT}.CRT/msvcr${VS_VERSION_NUM_NODOT}.dll 4529088SmarkmMSVCP_DLL=Microsoft.VC${VS_VERSION_NUM_NODOT}.CRT/msvcp${VS_VERSION_NUM_NODOT}.dll 4629088Smarkm 4729088Smarkm################################################################################ 4887139Smarkm# Copy Visual Studio files 4987139Smarkm 5087139Smarkmeval VSNNNCOMNTOOLS="\"\${VS${VS_VERSION_NUM_NODOT}COMNTOOLS}\"" 5129088SmarkmVS_INSTALL_DIR="$(cygpath "$VSNNNCOMNTOOLS/../..")" 5229088Smarkmecho "VS_INSTALL_DIR: $VS_INSTALL_DIR" 5387139Smarkm 5487139Smarkmif [ ! -d $DEVKIT_ROOT/VC ]; then 5587139Smarkm echo "Copying VC..." 5687139Smarkm mkdir -p $DEVKIT_ROOT/VC/bin 5729181Smarkm cp -r "$VS_INSTALL_DIR/VC/bin/amd64" $DEVKIT_ROOT/VC/bin/ 5829088Smarkm cp "$VS_INSTALL_DIR/VC/bin/"*.* $DEVKIT_ROOT/VC/bin/ 5929088Smarkm cp -r "$VS_INSTALL_DIR/VC/bin/1033/" $DEVKIT_ROOT/VC/bin/ 6081965Smarkm mkdir -p $DEVKIT_ROOT/VC/lib 6129088Smarkm cp -r "$VS_INSTALL_DIR/VC/lib/amd64" $DEVKIT_ROOT/VC/lib/ 6229088Smarkm cp "$VS_INSTALL_DIR/VC/lib/"*.* $DEVKIT_ROOT/VC/lib/ 6329088Smarkm cp -r "$VS_INSTALL_DIR/VC/include" $DEVKIT_ROOT/VC/ 6429088Smarkm mkdir -p $DEVKIT_ROOT/VC/atlmfc/lib 6529088Smarkm cp -r "$VS_INSTALL_DIR/VC/atlmfc/include" $DEVKIT_ROOT/VC/atlmfc/ 6629088Smarkm cp -r "$VS_INSTALL_DIR/VC/atlmfc/lib/amd64" $DEVKIT_ROOT/VC/atlmfc/lib/ 6729088Smarkm cp "$VS_INSTALL_DIR/VC/atlmfc/lib/"*.* $DEVKIT_ROOT/VC/atlmfc/lib/ 6829088Smarkm mkdir -p $DEVKIT_ROOT/VC/redist 6987139Smarkm cp -r "$VS_INSTALL_DIR/VC/redist/x64" $DEVKIT_ROOT/VC/redist/ 7029088Smarkm cp -r "$VS_INSTALL_DIR/VC/redist/x86" $DEVKIT_ROOT/VC/redist/ 7187139Smarkm # The redist runtime libs are needed to run the compiler but may not be 7229181Smarkm # installed on the machine where the devkit will be used. 7329181Smarkm cp $DEVKIT_ROOT/VC/redist/x86/$MSVCR_DLL $DEVKIT_ROOT/VC/bin/ 7487139Smarkm cp $DEVKIT_ROOT/VC/redist/x86/$MSVCP_DLL $DEVKIT_ROOT/VC/bin/ 7529181Smarkm cp $DEVKIT_ROOT/VC/redist/x64/$MSVCR_DLL $DEVKIT_ROOT/VC/bin/amd64/ 7629181Smarkm cp $DEVKIT_ROOT/VC/redist/x64/$MSVCP_DLL $DEVKIT_ROOT/VC/bin/amd64/ 7729181Smarkm # The msvcdis dll is needed to run some of the tools in VC/bin but is not 7829088Smarkm # shipped in that directory. Copy it from the common dir. 7929088Smarkm cp "$VS_INSTALL_DIR/Common7/IDE/msvcdis${VS_VERSION_NUM_NODOT}.dll" \ 8056668Sshin $DEVKIT_ROOT/VC/bin/ 8129088Smarkmfi 8281965Smarkm 8381965Smarkm################################################################################ 8496385Salfred# Copy SDK files 8529088Smarkm 8687139SmarkmPROGRAMFILES_X86="`env | sed -n 's/^ProgramFiles(x86)=//p'`" 8787139SmarkmSDK_INSTALL_DIR="$(cygpath "$PROGRAMFILES_X86/Windows Kits/$SDK_VERSION")" 8887139Smarkmecho "SDK_INSTALL_DIR: $SDK_INSTALL_DIR" 8987155Smarkm 9087139Smarkmif [ ! -d $DEVKIT_ROOT/$SDK_VERSION ]; then 9187139Smarkm echo "Copying SDK..." 9287155Smarkm mkdir -p $DEVKIT_ROOT/$SDK_VERSION/bin 9387155Smarkm cp -r "$SDK_INSTALL_DIR/bin/x64" $DEVKIT_ROOT/$SDK_VERSION/bin/ 9487155Smarkm cp -r "$SDK_INSTALL_DIR/bin/x86" $DEVKIT_ROOT/$SDK_VERSION/bin/ 9587155Smarkm mkdir -p $DEVKIT_ROOT/$SDK_VERSION/lib 9687139Smarkm cp -r "$SDK_INSTALL_DIR/lib/"winv*/um/x64 $DEVKIT_ROOT/$SDK_VERSION/lib/ 9729088Smarkm cp -r "$SDK_INSTALL_DIR/lib/"winv*/um/x86 $DEVKIT_ROOT/$SDK_VERSION/lib/ 9829088Smarkm cp -r "$SDK_INSTALL_DIR/include" $DEVKIT_ROOT/$SDK_VERSION/ 9929088Smarkmfi 10029088Smarkm 10129088Smarkm################################################################################ 10229088Smarkm# Generate devkit.info 10329088Smarkm 10487139Smarkmecho-info() { 10587139Smarkm echo "$1" >> $DEVKIT_ROOT/devkit.info 10687139Smarkm} 10787277Sjhay 10887139Smarkmecho "Generating devkit.info..." 10987277Sjhayrm -f $DEVKIT_ROOT/devkit.info 11087139Smarkmecho-info "# This file describes to configure how to interpret the contents of this devkit" 11187139Smarkmecho-info "DEVKIT_NAME=\"Microsoft Visual Studio $VS_VERSION $VS_VERSION_SP (devkit)\"" 11287139Smarkmecho-info "DEVKIT_VS_VERSION=\"$VS_VERSION\"" 11387139Smarkmecho-info "" 11487139Smarkmecho-info "DEVKIT_TOOLCHAIN_PATH_x86=\"\$DEVKIT_ROOT/VC/bin:\$DEVKIT_ROOT/$SDK_VERSION/bin/x86\"" 11587139Smarkmecho-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\"" 11629088Smarkmecho-info "DEVKIT_VS_LIB_x86=\"\$DEVKIT_ROOT/VC/lib;\$DEVKIT_ROOT/VC/atlmfc/lib;\$DEVKIT_ROOT/$SDK_VERSION/lib/x86\"" 11729088Smarkmecho-info "DEVKIT_MSVCR_DLL_x86=\"\$DEVKIT_ROOT/VC/redist/x86/$MSVCR_DLL\"" 11887139Smarkmecho-info "DEVKIT_MSVCP_DLL_x86=\"\$DEVKIT_ROOT/VC/redist/x86/$MSVCP_DLL\"" 11987139Smarkmecho-info "" 12087139Smarkmecho-info "DEVKIT_TOOLCHAIN_PATH_x86_64=\"\$DEVKIT_ROOT/VC/bin/amd64:\$DEVKIT_ROOT/$SDK_VERSION/bin/x64:\$DEVKIT_ROOT/$SDK_VERSION/bin/x86\"" 12129088Smarkmecho-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\"" 12229088Smarkmecho-info "DEVKIT_VS_LIB_x86_64=\"\$DEVKIT_ROOT/VC/lib/amd64;\$DEVKIT_ROOT/VC/atlmfc/lib/amd64;\$DEVKIT_ROOT/$SDK_VERSION/lib/x64\"" 12329088Smarkmecho-info "DEVKIT_MSVCR_DLL_x86_64=\"\$DEVKIT_ROOT/VC/redist/x64/$MSVCR_DLL\"" 12429088Smarkmecho-info "DEVKIT_MSVCP_DLL_x86_64=\"\$DEVKIT_ROOT/VC/redist/x64/$MSVCP_DLL\"" 12529088Smarkm 12629088Smarkm################################################################################ 12729088Smarkm# Copy this script 12829088Smarkm 12987139Smarkmecho "Copying this script..." 13029181Smarkmcp $0 $DEVKIT_ROOT/ 13181965Smarkm 13287139Smarkm################################################################################ 13387139Smarkm# Create bundle 13429181Smarkm 13529181Smarkmecho "Creating bundle: $DEVKIT_BUNDLE" 13629181Smarkm(cd "$DEVKIT_ROOT" && tar zcf "$DEVKIT_BUNDLE" .) 13729181Smarkm