31123
+ − 1
#!/bin/bash
+ − 2
#
+ − 3
# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ − 4
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ − 5
#
+ − 6
# This code is free software; you can redistribute it and/or modify it
+ − 7
# under the terms of the GNU General Public License version 2 only, as
+ − 8
# published by the Free Software Foundation. Oracle designates this
+ − 9
# particular file as subject to the "Classpath" exception as provided
+ − 10
# by Oracle in the LICENSE file that accompanied this code.
+ − 11
#
+ − 12
# This code is distributed in the hope that it will be useful, but WITHOUT
+ − 13
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ − 14
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ − 15
# version 2 for more details (a copy is included in the LICENSE file that
+ − 16
# accompanied this code).
+ − 17
#
+ − 18
# You should have received a copy of the GNU General Public License version
+ − 19
# 2 along with this work; if not, write to the Free Software Foundation,
+ − 20
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ − 21
#
+ − 22
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ − 23
# or visit www.oracle.com if you need additional information or have any
+ − 24
# questions.
+ − 25
#
+ − 26
+ − 27
# This script copies part of an Xcode installer into a devkit suitable
+ − 28
# for building OpenJDK and OracleJDK. The installation .dmg files for Xcode
+ − 29
# and the aux tools need to be available.
+ − 30
# erik.joelsson@oracle.com
+ − 31
33439
+ − 32
USAGE="$0 <Xcode.dmg> <XQuartz.dmg> <gnu make binary> [<auxtools.dmg>]"
31123
+ − 33
+ − 34
if [ "$1" = "" ] || [ "$2" = "" ]; then
+ − 35
echo $USAGE
+ − 36
exit 1
+ − 37
fi
+ − 38
+ − 39
XCODE_DMG="$1"
+ − 40
XQUARTZ_DMG="$2"
33439
+ − 41
GNU_MAKE="$3"
+ − 42
AUXTOOLS_DMG="$4"
31123
+ − 43
+ − 44
SCRIPT_DIR="$(cd "$(dirname $0)" > /dev/null && pwd)"
+ − 45
BUILD_DIR="${SCRIPT_DIR}/../../build/devkit"
+ − 46
+ − 47
# Mount XCODE_DMG
+ − 48
if [ -e "/Volumes/Xcode" ]; then
+ − 49
hdiutil detach /Volumes/Xcode
+ − 50
fi
+ − 51
hdiutil attach $XCODE_DMG
+ − 52
+ − 53
# Find the version of Xcode
+ − 54
XCODE_VERSION="$(/Volumes/Xcode/Xcode.app/Contents/Developer/usr/bin/xcodebuild -version \
+ − 55
| awk '/Xcode/ { print $2 }' )"
33439
+ − 56
SDK_VERSION="MacOSX10.9"
+ − 57
if [ ! -e "/Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/${SDK_VERSION}.sdk" ]; then
+ − 58
echo "Expected SDK version not found: ${SDK_VERSION}"
+ − 59
exit 1
+ − 60
fi
31123
+ − 61
33439
+ − 62
DEVKIT_ROOT="${BUILD_DIR}/Xcode${XCODE_VERSION}-${SDK_VERSION}"
31123
+ − 63
DEVKIT_BUNDLE="${DEVKIT_ROOT}.tar.gz"
+ − 64
+ − 65
echo "Xcode version: $XCODE_VERSION"
+ − 66
echo "Creating devkit in $DEVKIT_ROOT"
+ − 67
+ − 68
################################################################################
+ − 69
# Copy files to root
+ − 70
mkdir -p $DEVKIT_ROOT
+ − 71
if [ ! -d $DEVKIT_ROOT/Xcode.app ]; then
+ − 72
echo "Copying Xcode.app..."
+ − 73
cp -RH "/Volumes/Xcode/Xcode.app" $DEVKIT_ROOT/
+ − 74
fi
+ − 75
# Trim out some seemingly unneeded parts to save space.
+ − 76
rm -rf $DEVKIT_ROOT/Xcode.app/Contents/Applications
+ − 77
rm -rf $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/iPhone*
+ − 78
rm -rf $DEVKIT_ROOT/Xcode.app/Contents/Developer/Documentation
+ − 79
rm -rf $DEVKIT_ROOT/Xcode.app/Contents/Developer/usr/share/man
33439
+ − 80
( cd $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs \
+ − 81
&& rm -rf `ls | grep -v ${SDK_VERSION}` )
+ − 82
rm -rf $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/${SDK_VERSION}.sdk/usr/share/man
31123
+ − 83
+ − 84
hdiutil detach /Volumes/Xcode
+ − 85
+ − 86
################################################################################
+ − 87
# Copy Freetype into sysroot
+ − 88
if [ -e "/Volumes/XQuartz-*" ]; then
+ − 89
hdiutil detach /Volumes/XQuartz-*
+ − 90
fi
+ − 91
hdiutil attach $XQUARTZ_DMG
+ − 92
+ − 93
echo "Copying freetype..."
+ − 94
rm -rf /tmp/XQuartz
+ − 95
pkgutil --expand /Volumes/XQuartz-*/XQuartz.pkg /tmp/XQuartz/
+ − 96
rm -rf /tmp/x11
+ − 97
mkdir /tmp/x11
+ − 98
cd /tmp/x11
33439
+ − 99
cat /tmp/XQuartz/x11.pkg/Payload | gunzip -dc | cpio -i
31123
+ − 100
33439
+ − 101
mkdir -p $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/X11/include/
+ − 102
mkdir -p $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/X11/lib/
31123
+ − 103
cp -RH opt/X11/include/freetype2 \
33439
+ − 104
$DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/X11/include/
31123
+ − 105
cp -RH opt/X11/include/ft2build.h \
33439
+ − 106
$DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/X11/include/
31123
+ − 107
cp -RH opt/X11/lib/libfreetype.* \
33439
+ − 108
$DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/X11/lib/
31123
+ − 109
+ − 110
cd -
+ − 111
+ − 112
hdiutil detach /Volumes/XQuartz-*
+ − 113
+ − 114
################################################################################
33439
+ − 115
# Copy gnu make
+ − 116
mkdir -p $DEVKIT_ROOT/bin
+ − 117
cp $GNU_MAKE $DEVKIT_ROOT/bin
+ − 118
+ − 119
################################################################################
31123
+ − 120
# Optionally copy PackageMaker
+ − 121
+ − 122
if [ -e "$AUXTOOLS_DMG" ]; then
+ − 123
if [ -e "/Volumes/Auxiliary Tools" ]; then
+ − 124
hdiutil detach "/Volumes/Auxiliary Tools"
+ − 125
fi
+ − 126
hdiutil attach $AUXTOOLS_DMG
+ − 127
+ − 128
echo "Copying PackageMaker.app..."
+ − 129
cp -RH "/Volumes/Auxiliary Tools/PackageMaker.app" $DEVKIT_ROOT/
+ − 130
+ − 131
hdiutil detach "/Volumes/Auxiliary Tools"
+ − 132
fi
+ − 133
+ − 134
################################################################################
+ − 135
# Generate devkit.info
+ − 136
+ − 137
echo-info() {
+ − 138
echo "$1" >> $DEVKIT_ROOT/devkit.info
+ − 139
}
+ − 140
+ − 141
echo "Generating devkit.info..."
+ − 142
rm -f $DEVKIT_ROOT/devkit.info
+ − 143
echo-info "# This file describes to configure how to interpret the contents of this devkit"
33439
+ − 144
echo-info "# The parameters used to create this devkit were:"
+ − 145
echo-info "# $*"
31123
+ − 146
echo-info "DEVKIT_NAME=\"Xcode $XCODE_VERSION (devkit)\""
+ − 147
echo-info "DEVKIT_TOOLCHAIN_PATH=\"\$DEVKIT_ROOT/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:\$DEVKIT_ROOT/Xcode.app/Contents/Developer/usr/bin\""
+ − 148
echo-info "DEVKIT_SYSROOT=\"\$DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk\""
33439
+ − 149
echo-info "DEVKIT_EXTRA_PATH=\"\$DEVKIT_ROOT/bin:\$DEVKIT_ROOT/PackageMaker.app/Contents/MacOS:\$DEVKIT_TOOLCHAIN_PATH\""
31123
+ − 150
+ − 151
################################################################################
+ − 152
# Copy this script
+ − 153
+ − 154
echo "Copying this script..."
+ − 155
cp $0 $DEVKIT_ROOT/
+ − 156
+ − 157
################################################################################
+ − 158
# Create bundle
+ − 159
+ − 160
echo "Creating bundle..."
+ − 161
(cd $DEVKIT_ROOT && tar c - . | gzip - > "$DEVKIT_BUNDLE")