Admin/java/build
author wenzelm
Thu Feb 28 14:29:54 2013 +0100 (2013-02-28)
changeset 51311 337cfc42c9c8
parent 51074 f95817852bdd
child 51776 8ea64fb16bae
permissions -rwxr-xr-x
eliminated legacy 'axioms';
     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 VERSION="7u13"
    15 FULL_VERSION="1.7.0_13"
    16 
    17 ARCHIVE_LINUX32="jdk-${VERSION}-linux-i586.tar.gz"
    18 ARCHIVE_LINUX64="jdk-${VERSION}-linux-x64.tar.gz"
    19 ARCHIVE_DARWIN="jdk${FULL_VERSION}.jdk.tar.gz"
    20 ARCHIVE_WINDOWS="jdk${FULL_VERSION}.tar.gz"
    21 
    22 
    23 ## main
    24 
    25 DIR="jdk-${VERSION}"
    26 mkdir "$DIR" || fail "Cannot create fresh directory: \"$DIR\""
    27 
    28 
    29 # README
    30 
    31 cat >> "$DIR/README" << EOF
    32 This is JDK $FULL_VERSION as required for Isabelle.
    33 
    34 See http://www.oracle.com/technetwork/java/javase/downloads/index.html
    35 for the original downloads, which are covered by the Oracle Binary
    36 Code License Agreement for Java SE.
    37 
    38 Linux, Mac OS X, Windows work uniformly, depending on certain
    39 platform-specific subdirectories.
    40 
    41 Note that Java 1.7 on Mac OS X requires 64bit hardware!
    42 EOF
    43 
    44 
    45 # settings
    46 
    47 mkdir "$DIR/etc"
    48 cat >> "$DIR/etc/settings" << EOF
    49 # -*- shell-script -*- :mode=shellscript:
    50 
    51 case "\${ISABELLE_PLATFORM64:-\$ISABELLE_PLATFORM32}" in
    52   x86-darwin)
    53     echo "### Java 1.7 unavailable on 32bit Macintosh!" >&2
    54     ;;
    55   x86_64-darwin)
    56     ISABELLE_JDK_HOME="\$COMPONENT/\$ISABELLE_PLATFORM64/jdk${FULL_VERSION}.jdk/Contents/Home"
    57     ;;
    58   *)
    59     ISABELLE_JDK_HOME="\$COMPONENT/\${ISABELLE_PLATFORM64:-\$ISABELLE_PLATFORM32}/jdk${FULL_VERSION}"
    60     ;;
    61 esac
    62 
    63 if [ -n "\$ISABELLE_JDK_HOME" ]; then
    64   if [ -d "\$ISABELLE_JDK_HOME" ]; then
    65     ISABELLE_JAVA_EXT="\${ISABELLE_JDK_HOME}/jre/lib/ext"
    66   else
    67     echo "### Missing Java 1.7 platform directory: \"\$ISABELLE_JDK_HOME\"" >&2
    68     unset ISABELLE_JDK_HOME
    69   fi
    70 fi
    71 EOF
    72 
    73 
    74 # content
    75 
    76 export COPYFILE_DISABLE=true
    77 
    78 mkdir "$DIR/x86-linux" "$DIR/x86_64-linux" "$DIR/x86_64-darwin" "$DIR/x86-cygwin"
    79 
    80 tar -C "$DIR/x86-linux" -xf "$ARCHIVE_LINUX32"
    81 tar -C "$DIR/x86_64-linux" -xf "$ARCHIVE_LINUX64"
    82 tar -C "$DIR/x86_64-darwin" -xf "$ARCHIVE_DARWIN"
    83 tar -C "$DIR/x86-cygwin" -xf "$ARCHIVE_WINDOWS"
    84 
    85 chgrp -R isabelle "$DIR"
    86 chmod -R a+r "$DIR"
    87 chmod -R a+X "$DIR"
    88 
    89 find "$DIR/x86_64-darwin" -name "._*" -exec rm -f {} ";"
    90 
    91 echo "Sharing ..."
    92 (
    93   cd "$DIR/x86-linux/jdk${FULL_VERSION}"
    94   for FILE in $(find . -type f)
    95   do
    96     for OTHER in \
    97       "../../x86_64-linux/jdk${FULL_VERSION}/$FILE" \
    98       "../../x86_64-darwin/jdk${FULL_VERSION}.jdk/Contents/Home/$FILE" \
    99       "../../x86-cygwin/jdk${FULL_VERSION}/$FILE"
   100     do
   101       if cmp -s "$FILE" "$OTHER"
   102       then
   103         ln -f "$FILE" "$OTHER"
   104       fi
   105     done
   106   done
   107 )
   108 
   109 
   110 # create archive
   111 
   112 echo "Archiving ..."
   113 tar -c -z -f "${DIR}.tar.gz" "$DIR" && echo "${DIR}.tar.gz"