Admin/java/build
changeset 48825 3a9721d4ccae
parent 47970 257fc09aa8a1
child 50294 dceb1daa185c
equal deleted inserted replaced
48824:45d0e40b07af 48825:3a9721d4ccae
       
     1 #!/usr/bin/env bash
       
     2 
       
     3 ## diagnostics
       
     4 
       
     5 function fail()
       
     6 {
       
     7   echo "$1" >&2
       
     8   exit 2
       
     9 }
       
    10 
       
    11 
       
    12 ## parameters
       
    13 
       
    14 ARCHIVE_LINUX32="jdk-7u6-linux-i586.tar.gz"
       
    15 ARCHIVE_LINUX64="jdk-7u6-linux-x64.tar.gz"
       
    16 ARCHIVE_DARWIN="jdk1.7.0_06.jdk.tar.gz"
       
    17 ARCHIVE_WINDOWS="jdk1.7.0_06.tar.gz"
       
    18 
       
    19 VERSION="7u6"
       
    20 
       
    21 
       
    22 ## variations on version
       
    23 
       
    24 case "$VERSION" in
       
    25   *u?)
       
    26     MAJOR="$(echo "$VERSION" | cut -du -f1)"
       
    27     MINOR="0$(echo "$VERSION" | cut -du -f2)"
       
    28     ;;
       
    29   *u??)
       
    30     MAJOR="$(echo "$VERSION" | cut -du -f1)"
       
    31     MINOR="$(echo "$VERSION" | cut -du -f2)"
       
    32     ;;
       
    33   *)
       
    34     fail "Bad version identifier: \"$VERSION\""
       
    35     ;;
       
    36 esac
       
    37 
       
    38 FULL_VERSION="1.${MAJOR}.0_${MINOR}"
       
    39 
       
    40 
       
    41 ## main
       
    42 
       
    43 DIR="jdk-${VERSION}"
       
    44 mkdir "$DIR" || fail "Cannot create fresh directory: \"$DIR\""
       
    45 
       
    46 
       
    47 # README
       
    48 
       
    49 cat >> "$DIR/README" << EOF
       
    50 This is JDK $FULL_VERSION for Linux, Mac OS X, Windows.
       
    51 
       
    52 See http://www.oracle.com/technetwork/java/javase/downloads/index.html
       
    53 for the original downloads, which are covered by the Oracle Binary
       
    54 Code License Agreement for Java SE.
       
    55 
       
    56 Note that Java 1.7 requires 64bit hardware on Mac OS X.
       
    57 EOF
       
    58 
       
    59 
       
    60 # settings
       
    61 
       
    62 mkdir "$DIR/etc"
       
    63 cat >> "$DIR/etc/settings" << EOF
       
    64 # -*- shell-script -*- :mode=shellscript:
       
    65 
       
    66 case "\${ISABELLE_PLATFORM64:-\$ISABELLE_PLATFORM32}" in
       
    67   x86-darwin)
       
    68     echo "### Java 1.7 unavailable on 32bit Macintosh!" >&2
       
    69     ;;
       
    70   x86_64-darwin)
       
    71     ISABELLE_JDK_HOME="\$COMPONENT/\$ISABELLE_PLATFORM64/jdk${FULL_VERSION}.jdk/Contents/Home"
       
    72     ;;
       
    73   *)
       
    74     ISABELLE_JDK_HOME="\$COMPONENT/\${ISABELLE_PLATFORM64:-\$ISABELLE_PLATFORM32}/jdk${FULL_VERSION}"
       
    75     ;;
       
    76 esac
       
    77 
       
    78 if [ -n "\$ISABELLE_JDK_HOME" ]; then
       
    79   ISABELLE_JAVA_EXT="\${ISABELLE_JDK_HOME}/jre/lib/ext"
       
    80 fi
       
    81 EOF
       
    82 
       
    83 
       
    84 # content
       
    85 
       
    86 mkdir "$DIR/x86-linux" "$DIR/x86_64-linux" "$DIR/x86_64-darwin" "$DIR/x86-cygwin"
       
    87 
       
    88 tar -C "$DIR/x86-linux" -xf "$ARCHIVE_LINUX32"
       
    89 tar -C "$DIR/x86_64-linux" -xf "$ARCHIVE_LINUX64"
       
    90 tar -C "$DIR/x86_64-darwin" -xf "$ARCHIVE_DARWIN"
       
    91 tar -C "$DIR/x86-cygwin" -xf "$ARCHIVE_WINDOWS"
       
    92 
       
    93 chgrp -R isabelle "$DIR"
       
    94 chmod -R a+r "$DIR"
       
    95 chmod -R a+X "$DIR"
       
    96 
       
    97 (
       
    98   cd "$DIR/x86-linux/jdk${FULL_VERSION}"
       
    99   for FILE in $(find . -type f)
       
   100   do
       
   101     for OTHER in \
       
   102       "../../x86_64-linux/jdk${FULL_VERSION}/$FILE" \
       
   103       "../../x86_64-darwin/jdk${FULL_VERSION}.jdk/Contents/Home/$FILE" \
       
   104       "../../x86-cygwin/jdk${FULL_VERSION}/$FILE"
       
   105     do
       
   106       if cmp -s "$FILE" "$OTHER"
       
   107       then
       
   108         ln -f "$FILE" "$OTHER"
       
   109       fi
       
   110     done
       
   111   done
       
   112 )
       
   113 
       
   114 
       
   115 # create archive
       
   116 
       
   117 tar -cz -f "${DIR}.tar.gz" "$DIR"