Admin/java/build
changeset 64938 1b584fab241a
parent 64928 18a6b96f8b00
parent 64937 9c94853f03b3
child 64939 c8626f7fae06
equal deleted inserted replaced
64928:18a6b96f8b00 64938:1b584fab241a
     1 #!/usr/bin/env bash
       
     2 
       
     3 THIS="$(cd "$(dirname "$0")"; pwd)"
       
     4 
       
     5 
       
     6 ## diagnostics
       
     7 
       
     8 function fail()
       
     9 {
       
    10   echo "$1" >&2
       
    11   exit 2
       
    12 }
       
    13 
       
    14 
       
    15 ## parameters
       
    16 
       
    17 VERSION="8u112"
       
    18 FULL_VERSION="1.8.0_112"
       
    19 
       
    20 ARCHIVE_LINUX32="jdk-${VERSION}-linux-i586.tar.gz"
       
    21 ARCHIVE_LINUX64="jdk-${VERSION}-linux-x64.tar.gz"
       
    22 ARCHIVE_WINDOWS32="jdk${FULL_VERSION}-w32.tar.gz"
       
    23 ARCHIVE_WINDOWS64="jdk${FULL_VERSION}-w64.tar.gz"
       
    24 ARCHIVE_DARWIN="jdk${FULL_VERSION}.jdk.tar.gz"
       
    25 
       
    26 
       
    27 ## main
       
    28 
       
    29 DIR="jdk-${VERSION}"
       
    30 mkdir "$DIR" || fail "Cannot create fresh directory: \"$DIR\""
       
    31 
       
    32 
       
    33 # README
       
    34 
       
    35 cat >> "$DIR/README" << EOF
       
    36 This is JDK/JRE $FULL_VERSION as required for Isabelle.
       
    37 
       
    38 See http://www.oracle.com/technetwork/java/javase/downloads/index.html
       
    39 for the original downloads, which are covered by the Oracle Binary
       
    40 Code License Agreement for Java SE.
       
    41 
       
    42 Linux, Windows, Mac OS X all work uniformly, depending on certain
       
    43 platform-specific subdirectories.
       
    44 EOF
       
    45 
       
    46 
       
    47 # settings
       
    48 
       
    49 mkdir "$DIR/etc"
       
    50 cp "$THIS/settings" "$DIR/etc/settings"
       
    51 
       
    52 
       
    53 # content
       
    54 
       
    55 #GNU tar (notably on Mac OS X)
       
    56 type -p gnutar >/dev/null && function tar() { gnutar "$@"; }
       
    57 
       
    58 mkdir "$DIR/x86-linux" "$DIR/x86_64-linux" "$DIR/x86-windows" "$DIR/x86_64-windows" "$DIR/x86_64-darwin"
       
    59 
       
    60 tar -C "$DIR/x86-linux" -xf "$ARCHIVE_LINUX32"
       
    61 tar -C "$DIR/x86_64-linux" -xf "$ARCHIVE_LINUX64"
       
    62 tar -C "$DIR/x86-windows" -xf "$ARCHIVE_WINDOWS32"
       
    63 tar -C "$DIR/x86_64-windows" -xf "$ARCHIVE_WINDOWS64"
       
    64 tar -C "$DIR/x86_64-darwin" -xf "$ARCHIVE_DARWIN"
       
    65 
       
    66 (
       
    67   cd "$DIR"
       
    68   for PLATFORM in x86-linux x86_64-linux x86-windows x86_64-windows
       
    69   do
       
    70     mv "$PLATFORM/jdk${FULL_VERSION}"/* "$PLATFORM"/.
       
    71     rmdir "$PLATFORM/jdk${FULL_VERSION}"
       
    72   done
       
    73   PLATFORM=x86_64-darwin
       
    74   mv "$PLATFORM/jdk${FULL_VERSION}.jdk"/* "$PLATFORM"/.
       
    75   rmdir "$PLATFORM/jdk${FULL_VERSION}.jdk"
       
    76 )
       
    77 
       
    78 chgrp -R isabelle "$DIR"
       
    79 chmod -R a+r "$DIR"
       
    80 chmod -R a+X "$DIR"
       
    81 
       
    82 find "$DIR/x86_64-darwin" -name "._*" -exec rm -f {} ";"
       
    83 
       
    84 echo "Sharing ..."
       
    85 (
       
    86   cd "$DIR/x86-linux"
       
    87   for FILE in $(find . -type f)
       
    88   do
       
    89     for OTHER in \
       
    90       "../x86_64-linux/$FILE" \
       
    91       "../x86-windows/$FILE" \
       
    92       "../x86_64-windows/$FILE" \
       
    93       "../x86_64-darwin/Contents/Home/$FILE"
       
    94     do
       
    95       if cmp -s "$FILE" "$OTHER"
       
    96       then
       
    97         echo -n "*"
       
    98         ln -f "$FILE" "$OTHER"
       
    99       fi
       
   100     done
       
   101   done
       
   102 )
       
   103 echo
       
   104 
       
   105 
       
   106 # create archive
       
   107 
       
   108 echo "Archiving ..."
       
   109 tar -c -z -f "${DIR}.tar.gz" "$DIR" && echo "${DIR}.tar.gz"