| author | wenzelm | 
| Tue, 08 Mar 2016 11:18:21 +0100 | |
| changeset 62555 | fd6e64133684 | 
| parent 62211 | cc1557643ab1 | 
| child 63214 | 7e8ef9ac3159 | 
| permissions | -rwxr-xr-x | 
| 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: 
60760diff
changeset | 3 | THIS="$(cd "$(dirname "$0")"; pwd)" | 
| 
5176de8f90db
updated to jdk-8u60, with support for x86_64-windows;
 wenzelm parents: 
60760diff
changeset | 4 | |
| 
5176de8f90db
updated to jdk-8u60, with support for x86_64-windows;
 wenzelm parents: 
60760diff
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 | 15 | ## parameters | 
| 47970 
257fc09aa8a1
build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
 wenzelm parents: diff
changeset | 16 | |
| 62211 | 17 | VERSION="8u72" | 
| 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 | 20 | ARCHIVE_LINUX32="jdk-${VERSION}-linux-i586.tar.gz"
 | 
| 21 | ARCHIVE_LINUX64="jdk-${VERSION}-linux-x64.tar.gz"
 | |
| 60995 
5176de8f90db
updated to jdk-8u60, with support for x86_64-windows;
 wenzelm parents: 
60760diff
changeset | 22 | ARCHIVE_WINDOWS32="jdk${FULL_VERSION}-w32.tar.gz"
 | 
| 
5176de8f90db
updated to jdk-8u60, with support for x86_64-windows;
 wenzelm parents: 
60760diff
changeset | 23 | ARCHIVE_WINDOWS64="jdk${FULL_VERSION}-w64.tar.gz"
 | 
| 50890 | 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 | 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 | 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 | 41 | |
| 60995 
5176de8f90db
updated to jdk-8u60, with support for x86_64-windows;
 wenzelm parents: 
60760diff
changeset | 42 | Linux, Windows, Mac OS X all work uniformly, depending on certain | 
| 50294 | 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: 
60760diff
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: 
53631diff
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: 
53631diff
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: 
53631diff
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: 
53631diff
changeset | 58 | fi | 
| 50863 | 59 | |
| 60995 
5176de8f90db
updated to jdk-8u60, with support for x86_64-windows;
 wenzelm parents: 
60760diff
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 | 62 | tar -C "$DIR/x86-linux" -xf "$ARCHIVE_LINUX32" | 
| 63 | tar -C "$DIR/x86_64-linux" -xf "$ARCHIVE_LINUX64" | |
| 60995 
5176de8f90db
updated to jdk-8u60, with support for x86_64-windows;
 wenzelm parents: 
60760diff
changeset | 64 | tar -C "$DIR/x86-windows" -xf "$ARCHIVE_WINDOWS32" | 
| 
5176de8f90db
updated to jdk-8u60, with support for x86_64-windows;
 wenzelm parents: 
60760diff
changeset | 65 | tar -C "$DIR/x86_64-windows" -xf "$ARCHIVE_WINDOWS64" | 
| 48825 | 66 | tar -C "$DIR/x86_64-darwin" -xf "$ARCHIVE_DARWIN" | 
| 67 | ||
| 53417 | 68 | ( | 
| 69 | cd "$DIR" | |
| 60995 
5176de8f90db
updated to jdk-8u60, with support for x86_64-windows;
 wenzelm parents: 
60760diff
changeset | 70 | for PLATFORM in x86-linux x86_64-linux x86-windows x86_64-windows | 
| 53417 | 71 | do | 
| 72 |     mv "$PLATFORM/jdk${FULL_VERSION}"/* "$PLATFORM"/.
 | |
| 73 |     rmdir "$PLATFORM/jdk${FULL_VERSION}"
 | |
| 74 | done | |
| 75 | PLATFORM=x86_64-darwin | |
| 76 |   mv "$PLATFORM/jdk${FULL_VERSION}.jdk"/* "$PLATFORM"/.
 | |
| 77 |   rmdir "$PLATFORM/jdk${FULL_VERSION}.jdk"
 | |
| 78 | ) | |
| 79 | ||
| 48825 | 80 | chgrp -R isabelle "$DIR" | 
| 81 | chmod -R a+r "$DIR" | |
| 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 | 84 | find "$DIR/x86_64-darwin" -name "._*" -exec rm -f {} ";"
 | 
| 85 | ||
| 50890 | 86 | echo "Sharing ..." | 
| 47970 
257fc09aa8a1
build hybrid Isabelle component for JDK on x86-linux/x86_64-linux;
 wenzelm parents: diff
changeset | 87 | ( | 
| 53417 | 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 | 91 | for OTHER in \ | 
| 53631 
e68732cd842e
proper sharing after change of directory structure (cf. 32ec957e5c3e);
 wenzelm parents: 
53625diff
changeset | 92 | "../x86_64-linux/$FILE" \ | 
| 60995 
5176de8f90db
updated to jdk-8u60, with support for x86_64-windows;
 wenzelm parents: 
60760diff
changeset | 93 | "../x86-windows/$FILE" \ | 
| 
5176de8f90db
updated to jdk-8u60, with support for x86_64-windows;
 wenzelm parents: 
60760diff
changeset | 94 | "../x86_64-windows/$FILE" \ | 
| 
5176de8f90db
updated to jdk-8u60, with support for x86_64-windows;
 wenzelm parents: 
60760diff
changeset | 95 | "../x86_64-darwin/Contents/Home/$FILE" | 
| 48825 | 96 | do | 
| 97 | if cmp -s "$FILE" "$OTHER" | |
| 98 | then | |
| 57587 | 99 | echo -n "*" | 
| 48825 | 100 | ln -f "$FILE" "$OTHER" | 
| 101 | fi | |
| 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: 
53625diff
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 | 110 | echo "Archiving ..." | 
| 111 | tar -c -z -f "${DIR}.tar.gz" "$DIR" && echo "${DIR}.tar.gz"
 |