Admin/java/build
author wenzelm
Wed, 20 Jan 2016 14:43:21 +0100
changeset 62211 cc1557643ab1
parent 61510 9f7453fb022f
child 63214 7e8ef9ac3159
permissions -rwxr-xr-x
updated jdk;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47970
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
     1
#!/usr/bin/env bash
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
     2
60995
5176de8f90db updated to jdk-8u60, with support for x86_64-windows;
wenzelm
parents: 60760
diff changeset
     3
THIS="$(cd "$(dirname "$0")"; pwd)"
5176de8f90db updated to jdk-8u60, with support for x86_64-windows;
wenzelm
parents: 60760
diff changeset
     4
5176de8f90db updated to jdk-8u60, with support for x86_64-windows;
wenzelm
parents: 60760
diff changeset
     5
47970
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
     6
## diagnostics
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
     7
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
     8
function fail()
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
     9
{
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    10
  echo "$1" >&2
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    11
  exit 2
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    12
}
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    13
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    14
48825
3a9721d4ccae support for jdk-7u6 component;
wenzelm
parents: 47970
diff changeset
    15
## parameters
47970
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    16
62211
cc1557643ab1 updated jdk;
wenzelm
parents: 61510
diff changeset
    17
VERSION="8u72"
cc1557643ab1 updated jdk;
wenzelm
parents: 61510
diff changeset
    18
FULL_VERSION="1.8.0_72"
47970
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    19
50890
097e38daa03a updated to jdk-7u11;
wenzelm
parents: 50863
diff changeset
    20
ARCHIVE_LINUX32="jdk-${VERSION}-linux-i586.tar.gz"
097e38daa03a updated to jdk-7u11;
wenzelm
parents: 50863
diff changeset
    21
ARCHIVE_LINUX64="jdk-${VERSION}-linux-x64.tar.gz"
60995
5176de8f90db updated to jdk-8u60, with support for x86_64-windows;
wenzelm
parents: 60760
diff changeset
    22
ARCHIVE_WINDOWS32="jdk${FULL_VERSION}-w32.tar.gz"
5176de8f90db updated to jdk-8u60, with support for x86_64-windows;
wenzelm
parents: 60760
diff changeset
    23
ARCHIVE_WINDOWS64="jdk${FULL_VERSION}-w64.tar.gz"
50890
097e38daa03a updated to jdk-7u11;
wenzelm
parents: 50863
diff changeset
    24
ARCHIVE_DARWIN="jdk${FULL_VERSION}.jdk.tar.gz"
47970
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    25
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    26
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    27
## main
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    28
48825
3a9721d4ccae support for jdk-7u6 component;
wenzelm
parents: 47970
diff changeset
    29
DIR="jdk-${VERSION}"
47970
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    30
mkdir "$DIR" || fail "Cannot create fresh directory: \"$DIR\""
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    31
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    32
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    33
# README
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    34
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    35
cat >> "$DIR/README" << EOF
58794
e1a6a71b741d updated to jdk-7u72;
wenzelm
parents: 58790
diff changeset
    36
This is JDK/JRE $FULL_VERSION as required for Isabelle.
47970
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    37
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    38
See http://www.oracle.com/technetwork/java/javase/downloads/index.html
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    39
for the original downloads, which are covered by the Oracle Binary
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    40
Code License Agreement for Java SE.
48825
3a9721d4ccae support for jdk-7u6 component;
wenzelm
parents: 47970
diff changeset
    41
60995
5176de8f90db updated to jdk-8u60, with support for x86_64-windows;
wenzelm
parents: 60760
diff changeset
    42
Linux, Windows, Mac OS X all work uniformly, depending on certain
50294
dceb1daa185c updated to jdk-7u9;
wenzelm
parents: 48825
diff changeset
    43
platform-specific subdirectories.
47970
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    44
EOF
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    45
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    46
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    47
# settings
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    48
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    49
mkdir "$DIR/etc"
60995
5176de8f90db updated to jdk-8u60, with support for x86_64-windows;
wenzelm
parents: 60760
diff changeset
    50
cp "$THIS/settings" "$DIR/etc/settings"
47970
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    51
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    52
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    53
# content
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    54
53913
5ff12177a067 prefer GNU tar for Isabelle to avoid odd extended header keywords produced by Apple's bsdtar (see also 8f6046b7f850);
wenzelm
parents: 53631
diff changeset
    55
#GNU tar (notably on Mac OS X)
5ff12177a067 prefer GNU tar for Isabelle to avoid odd extended header keywords produced by Apple's bsdtar (see also 8f6046b7f850);
wenzelm
parents: 53631
diff changeset
    56
if [ -x /usr/bin/gnutar ]; then
5ff12177a067 prefer GNU tar for Isabelle to avoid odd extended header keywords produced by Apple's bsdtar (see also 8f6046b7f850);
wenzelm
parents: 53631
diff changeset
    57
  function tar() { /usr/bin/gnutar "$@"; }
5ff12177a067 prefer GNU tar for Isabelle to avoid odd extended header keywords produced by Apple's bsdtar (see also 8f6046b7f850);
wenzelm
parents: 53631
diff changeset
    58
fi
50863
8f6046b7f850 some attempts to avoid "._" files on Mac OS X;
wenzelm
parents: 50294
diff changeset
    59
60995
5176de8f90db updated to jdk-8u60, with support for x86_64-windows;
wenzelm
parents: 60760
diff changeset
    60
mkdir "$DIR/x86-linux" "$DIR/x86_64-linux" "$DIR/x86-windows" "$DIR/x86_64-windows" "$DIR/x86_64-darwin"
47970
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    61
48825
3a9721d4ccae support for jdk-7u6 component;
wenzelm
parents: 47970
diff changeset
    62
tar -C "$DIR/x86-linux" -xf "$ARCHIVE_LINUX32"
3a9721d4ccae support for jdk-7u6 component;
wenzelm
parents: 47970
diff changeset
    63
tar -C "$DIR/x86_64-linux" -xf "$ARCHIVE_LINUX64"
60995
5176de8f90db updated to jdk-8u60, with support for x86_64-windows;
wenzelm
parents: 60760
diff changeset
    64
tar -C "$DIR/x86-windows" -xf "$ARCHIVE_WINDOWS32"
5176de8f90db updated to jdk-8u60, with support for x86_64-windows;
wenzelm
parents: 60760
diff changeset
    65
tar -C "$DIR/x86_64-windows" -xf "$ARCHIVE_WINDOWS64"
48825
3a9721d4ccae support for jdk-7u6 component;
wenzelm
parents: 47970
diff changeset
    66
tar -C "$DIR/x86_64-darwin" -xf "$ARCHIVE_DARWIN"
3a9721d4ccae support for jdk-7u6 component;
wenzelm
parents: 47970
diff changeset
    67
53417
32ec957e5c3e updated to jdk-7u25;
wenzelm
parents: 51776
diff changeset
    68
(
32ec957e5c3e updated to jdk-7u25;
wenzelm
parents: 51776
diff changeset
    69
  cd "$DIR"
60995
5176de8f90db updated to jdk-8u60, with support for x86_64-windows;
wenzelm
parents: 60760
diff changeset
    70
  for PLATFORM in x86-linux x86_64-linux x86-windows x86_64-windows
53417
32ec957e5c3e updated to jdk-7u25;
wenzelm
parents: 51776
diff changeset
    71
  do
32ec957e5c3e updated to jdk-7u25;
wenzelm
parents: 51776
diff changeset
    72
    mv "$PLATFORM/jdk${FULL_VERSION}"/* "$PLATFORM"/.
32ec957e5c3e updated to jdk-7u25;
wenzelm
parents: 51776
diff changeset
    73
    rmdir "$PLATFORM/jdk${FULL_VERSION}"
32ec957e5c3e updated to jdk-7u25;
wenzelm
parents: 51776
diff changeset
    74
  done
32ec957e5c3e updated to jdk-7u25;
wenzelm
parents: 51776
diff changeset
    75
  PLATFORM=x86_64-darwin
32ec957e5c3e updated to jdk-7u25;
wenzelm
parents: 51776
diff changeset
    76
  mv "$PLATFORM/jdk${FULL_VERSION}.jdk"/* "$PLATFORM"/.
32ec957e5c3e updated to jdk-7u25;
wenzelm
parents: 51776
diff changeset
    77
  rmdir "$PLATFORM/jdk${FULL_VERSION}.jdk"
32ec957e5c3e updated to jdk-7u25;
wenzelm
parents: 51776
diff changeset
    78
)
32ec957e5c3e updated to jdk-7u25;
wenzelm
parents: 51776
diff changeset
    79
48825
3a9721d4ccae support for jdk-7u6 component;
wenzelm
parents: 47970
diff changeset
    80
chgrp -R isabelle "$DIR"
3a9721d4ccae support for jdk-7u6 component;
wenzelm
parents: 47970
diff changeset
    81
chmod -R a+r "$DIR"
3a9721d4ccae support for jdk-7u6 component;
wenzelm
parents: 47970
diff changeset
    82
chmod -R a+X "$DIR"
47970
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    83
50294
dceb1daa185c updated to jdk-7u9;
wenzelm
parents: 48825
diff changeset
    84
find "$DIR/x86_64-darwin" -name "._*" -exec rm -f {} ";"
dceb1daa185c updated to jdk-7u9;
wenzelm
parents: 48825
diff changeset
    85
50890
097e38daa03a updated to jdk-7u11;
wenzelm
parents: 50863
diff changeset
    86
echo "Sharing ..."
47970
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    87
(
53417
32ec957e5c3e updated to jdk-7u25;
wenzelm
parents: 51776
diff changeset
    88
  cd "$DIR/x86-linux"
47970
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    89
  for FILE in $(find . -type f)
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
    90
  do
48825
3a9721d4ccae support for jdk-7u6 component;
wenzelm
parents: 47970
diff changeset
    91
    for OTHER in \
53631
e68732cd842e proper sharing after change of directory structure (cf. 32ec957e5c3e);
wenzelm
parents: 53625
diff changeset
    92
      "../x86_64-linux/$FILE" \
60995
5176de8f90db updated to jdk-8u60, with support for x86_64-windows;
wenzelm
parents: 60760
diff changeset
    93
      "../x86-windows/$FILE" \
5176de8f90db updated to jdk-8u60, with support for x86_64-windows;
wenzelm
parents: 60760
diff changeset
    94
      "../x86_64-windows/$FILE" \
5176de8f90db updated to jdk-8u60, with support for x86_64-windows;
wenzelm
parents: 60760
diff changeset
    95
      "../x86_64-darwin/Contents/Home/$FILE"
48825
3a9721d4ccae support for jdk-7u6 component;
wenzelm
parents: 47970
diff changeset
    96
    do
3a9721d4ccae support for jdk-7u6 component;
wenzelm
parents: 47970
diff changeset
    97
      if cmp -s "$FILE" "$OTHER"
3a9721d4ccae support for jdk-7u6 component;
wenzelm
parents: 47970
diff changeset
    98
      then
57587
af074bd6222e updated to jdk-7u65;
wenzelm
parents: 57583
diff changeset
    99
        echo -n "*"
48825
3a9721d4ccae support for jdk-7u6 component;
wenzelm
parents: 47970
diff changeset
   100
        ln -f "$FILE" "$OTHER"
3a9721d4ccae support for jdk-7u6 component;
wenzelm
parents: 47970
diff changeset
   101
      fi
3a9721d4ccae support for jdk-7u6 component;
wenzelm
parents: 47970
diff changeset
   102
    done
47970
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
   103
  done
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
   104
)
53631
e68732cd842e proper sharing after change of directory structure (cf. 32ec957e5c3e);
wenzelm
parents: 53625
diff changeset
   105
echo
47970
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
   106
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
   107
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
   108
# create archive
257fc09aa8a1 build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
wenzelm
parents:
diff changeset
   109
50890
097e38daa03a updated to jdk-7u11;
wenzelm
parents: 50863
diff changeset
   110
echo "Archiving ..."
097e38daa03a updated to jdk-7u11;
wenzelm
parents: 50863
diff changeset
   111
tar -c -z -f "${DIR}.tar.gz" "$DIR" && echo "${DIR}.tar.gz"