aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.3/libjava/scripts/jar.in
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.4.3/libjava/scripts/jar.in')
-rw-r--r--gcc-4.4.3/libjava/scripts/jar.in523
1 files changed, 0 insertions, 523 deletions
diff --git a/gcc-4.4.3/libjava/scripts/jar.in b/gcc-4.4.3/libjava/scripts/jar.in
deleted file mode 100644
index e9cb9f582..000000000
--- a/gcc-4.4.3/libjava/scripts/jar.in
+++ /dev/null
@@ -1,523 +0,0 @@
-#! @SHELL@
-# Copyright (C) 2006 Free Software Foundation
-# Written by Paolo Bonzini.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published
-# by the Free Software Foundation; either version 2 of the License,
-# or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-
-# POSIX and NLS nuisances, taken from autoconf.
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
-
-# Also make sure CDPATH is empty, and IFS is space, tab, \n in that order.
-# Be careful to avoid that editors munge IFS
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-IFS=" "" ""
-"
-
-: ${TMPDIR=/tmp}
-: ${ZIP="@ZIP@"}
-: ${UNZIP="@UNZIP@"}
-progname="$0"
-
-# Emit a usage message and exit with error status 1
-usage () {
- cat >&2 <<EOF
-Usage: $0 {ctxu}[vfm0Mi@] [jar-file] [manifest-file] {[-C dir] files} ...
-Options:
- -c create new archive
- -t list table of contents for archive
- -x extract named (or all) files from archive
- -u update existing archive
- -v generate verbose output on standard output
- -f specify archive file name
- -m include manifest information from specified manifest file
- -0 store only; use no ZIP compression
- -M do not create a manifest file for the entries
- -i generate index information for the specified jar files
- -@ instead of {[-C dir] files} ... accept one or more response files,
- each containing one command-line argument
- -C change to the specified directory and include the following file
-If any file is a directory then it is processed recursively.
-The manifest file name and the archive file name needs to be specified
-in the same order the 'm' and 'f' flags are specified.
-
-Example 1: to archive two class files into an archive called classes.jar:
- jar cvf classes.jar Foo.class Bar.class
-Example 2: use an existing manifest file 'mymanifest' and archive all the
- files in the foo/ directory into 'classes.jar':
- jar cvfm classes.jar mymanifest -C foo/ .
-
-EOF
- (exit 1); exit 1
-}
-
-# Emit an error message and exit with error status 1
-error () {
- echo "$progname: $*" >&2
- (exit 1); exit 1
-}
-
-# Usage: copy SRC DEST
-# Copy file SRC to directory DEST, which is the staging area of the jar file.
-# Fail if it is already present or if it is not a regular file.
-copy () {
- if test -f "$1"; then
- # A simple optimization. Optimistically assuming that ln will work
- # cuts 60% of the run-time!
- if ln "$1" "$2"/"$1" > /dev/null 2>&1; then
- return 0
- fi
-
- if test -f "$2"/"$1"; then
- error "$1": Duplicate entry.
- fi
- dir=`dirname "$1"`
- $mkdir_p "$2"/"$dir"
- ln "$1" "$2"/"$1" > /dev/null 2>&1 || cp "$1" "$2"/"$1"
- elif test -e "$1"; then
- error "$1": Invalid file type.
- else
- error "$1": File not found.
- fi
-}
-
-# Make a temporary directory and store its name in the JARTMP variable.
-make_tmp () {
- test -n "$JARTMP" && return
-
- {
- JARTMP=`(umask 077 && mktemp -d "$TMPDIR/jarXXXXXX") 2>/dev/null` &&
- test -n "$JARTMP" && test -d "$JARTMP"
- } || {
- JARTMP=$TMPDIR/jar$$-$RANDOM
- (umask 077 && mkdir "$JARTMP")
- } || exit $?
-
- trap 'exit_status=$?
- if test -n "$JARTMP"; then rm -rf "$JARTMP"; fi
- exit $exit_status' 0
-}
-
-# Usage: make_manifest destfile kind [source-manifest]
-# Create a manifest file and store it in destfile. KIND can be "default",
-# or "user", in which case SOURCE-MANIFEST must be specified as well.
-make_manifest () {
- dir=`dirname "$1"`
- $mkdir_p "$dir"
- case $2 in
- default)
- cat > "$1" <<\EOF
-Manifest-Version: 1.0
-Created-By: @VERSION@
-
-EOF
- ;;
- user)
- cp "$3" "$1"
- ;;
- esac
-}
-
-# Usage: set_var var [value]
-# Exit with an error if set_var was already called for the same VAR. Else
-# set the variable VAR to the value VALUE (or the empty value if no parameter
-# is given).
-set_var () {
- if eval test x\$set_$1 = xset; then
- error Incompatible or repeated options.
- else
- eval $1=\$2
- eval set_$1=set
- fi
-}
-
-# Process the arguments, including -C options, and copy the whole tree
-# to $JARTMP/files so that zip can be invoked later from there.
-make_files () {
- change=false
- if $process_response_files; then
- if test $# = 0; then
- while read arg; do
- make_files_1 "$arg"
- done
- else
- for infile
- do
- exec 5<&0
- exec 0< $infile
- while read arg; do
- make_files_1 "$arg"
- done
- exec 0<&5
- exec 5<&-
- done
- fi
- else
- for arg
- do
- make_files_1 "$arg"
- done
- fi
- cd "$old_dir"
-}
-
-# Usage: make_files_1 ARG
-# Process one argument, ARG.
-make_files_1 () {
- if $change; then
- change=false
- if cd "$1"; then
- return
- else
- (exit 1); exit 1
- fi
- fi
- case "$1" in
- -C)
- change=:
- ;;
- -C*)
- cd `expr "$1" : '-C\(.*\)' `
- return
- ;;
- *)
- if test -d "$1"; then
- $mkdir_p "$JARTMP"/files/"$1"
- find "$1" | while read file; do
- if test -d "$file"; then
- $mkdir_p "$JARTMP"/files/"$file"
- else
- copy "$file" "$JARTMP"/files
- fi
- done
- else
- copy "$1" "$JARTMP"/files
- fi
- ;;
- esac
- cd "$old_dir"
-}
-
-# Same as "jar tf $1".
-jar_list () {
- $UNZIP -l "$1" | \
- sed '1,/^ ----/d;/^ ----/,$d;s/^ *[0-9]* ..-..-.. ..:.. //'
-}
-
-# Same as "jar tvf $1".
-jar_list_verbose () {
- $UNZIP -l "$1" | \
- @AWK@ 'BEGIN { yes = 0 }
- /^ ----/ { yes = !yes; next }
- yes {
- size=$1
- split ($2, d, "-")
- split ($3, t, ":")
- d[3] += (d[3] < 80) ? 2000 : 1900
- timestamp=d[3] " " d[1] " " d[2] " " t[1] " " t[2] " 00"
- gsub (/^ *[0-9]* ..-..-.. ..:.. /, "")
- printf "%6d %s %s\n", size, strftime ("%a %b %d %H:%M:%S %Z %Y", mktime (timestamp)), $0
- }'
-}
-
-# mkdir -p emulation based on the mkinstalldirs script.
-func_mkdir_p () {
- for file
- do
- case $file in
- /*) pathcomp=/ ;;
- *) pathcomp= ;;
- esac
- oIFS=$IFS
- IFS=/
- set fnord $file
- shift
- IFS=$oIFS
-
- errstatus=0
- for d
- do
- test "x$d" = x && continue
- pathcomp=$pathcomp$d
- case $pathcomp in
- -*) pathcomp=./$pathcomp ;;
- esac
-
- if test ! -d "$pathcomp"; then
- mkdir "$pathcomp" || lasterr=$?
- test -d "$pathcomp" || errstatus=$lasterr
- fi
- pathcomp=$pathcomp/
- done
- done
- return "$errstatus"
-}
-
-# Detect mkdir -p
-# On NextStep and OpenStep, the `mkdir' command does not
-# recognize any option. It will interpret all options as
-# directories to create, and then abort because `.' already
-# exists.
-if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
- mkdir_p='mkdir -p'
-else
- mkdir_p='func_mkdir_p'
- test -d ./-p && rmdir ./-p
- test -d ./--version && rmdir ./--version
-fi
-
-# Process the first command line option.
-case "$1" in
- -*) commands=`echo X"$1" | sed 's/^X-//' ` ;;
- *) commands="$1"
-esac
-shift
-
-# Operation to perform on the JAR file
-mode=unknown
-
-# First -C option on the command line
-cur_dir=.
-
-# Base directory for -C options
-old_dir=`pwd`
-# JAR file to operate on
-jarfile=
-
-# default for no {m,M} option, user for "m" option, none for "M" option
-manifest_kind=default
-
-# "-0" if the "0" option was given
-store=
-
-# true if the "v" option was given
-verbose=false
-
-# true if the non-standard "@" option was given
-process_response_files=false
-
-# An exec command if we need to redirect the zip/unzip commands' output
-out_redirect=:
-
-while test -n "$commands"; do
- # Process a letter at a time
- command=`expr "$commands" : '\(.\)'`
- commands=`expr "$commands" : '.\(.*\)'`
- case "$command" in
- c)
- set_var mode create
- ;;
- t)
- set_var mode list
- ;;
- x)
- set_var mode extract
- ;;
- u)
- set_var mode update
- ;;
-
- f)
- test $# = 0 && usage
- # Multiple "f" options are accepted by Sun's JAR tool.
- jarfile="$1"
- test -z "$jarfile" && usage
- shift
- ;;
- m)
- test $# = 0 && usage
- # Multiple "m" options are accepted by Sun's JAR tool, but
- # M always overrides m.
- test "$manifest_kind" = default && manifest_kind=user
- manifest_file="$1"
- test -z "$manifest_file" && usage
- shift
- ;;
- 0)
- store=-0
- ;;
- v)
- verbose=:
- ;;
- i)
- # Not yet implemented, and probably never will.
- ;;
- M)
- manifest_kind=none
- ;;
- C)
- test $# = 0 && usage
- cur_dir="$1"
- shift
- ;;
- @)
- process_response_files=: ;;
- *)
- usage ;;
- esac
-done
-
-set -e
-
-case "X$jarfile" in
- X)
- # Work on stdin/stdout. Messages go to stderr, and if we need an input
- # JAR file we save it temporarily in the temporary directory.
- make_tmp
- $mkdir_p "$JARTMP"/out
- jarfile="$JARTMP"/out/tmp-stdin.jar
- out_redirect='exec >&2'
- case $mode in
- update|extract|list)
- if $process_response_files && test $# = 0; then
- error Cannot use stdin for response file.
- fi
- cat > "$JARTMP"/out/tmp-stdin.jar
- ;;
- esac
- ;;
-
- X*/*)
- # Make an absolute path.
- dir=`dirname "$jarfile"`
- jarfile=`cd $dir && pwd`/`basename "$jarfile"`
- ;;
-
- X*)
- # Make an absolute path from a filename in the current directory.
- jarfile=`pwd`/`basename "$jarfile"`
- ;;
-esac
-
-# Perform a -C option if given right away.
-cd "$cur_dir"
-
-case $mode in
- unknown)
- usage
- ;;
-
- extract)
- make_tmp
-
- # Extract the list of files in the JAR file
- jar_list "$jarfile" > "$JARTMP"/list
-
- # If there are files on the command line, expand directories and skip -C
- # command line arguments
- for arg
- do
- if $skip; then
- skip=false
- continue
- fi
- case "$arg" in
- -C) skip=: ;;
- -C*) ;;
- *)
- escaped=`echo "X$arg" | sed 's/^X//; s/[].[^$\\*]/\\\\&/g' `
- grep "^$escaped/" "$JARTMP"/list >> "$JARTMP"/chosen || :
- grep "^$escaped\$" "$JARTMP"/list >> "$JARTMP"/chosen || :
- esac
- done
- test -f "$JARTMP"/chosen || cp "$JARTMP"/list "$JARTMP"/chosen
-
- # Really execute unzip
- if $verbose; then
- sort < "$JARTMP"/chosen | uniq | xargs $UNZIP -o "$jarfile" | \
- sed -ne 's/^ creating/ created/p' -e 's/^ inflating/extracted/p'
- else
- sort < "$JARTMP"/chosen | uniq | xargs $UNZIP -o "$jarfile" > /dev/null
- fi
- ;;
-
- create)
- make_tmp
- $mkdir_p "$JARTMP"/out
- $mkdir_p "$JARTMP"/files
-
- # Do not overwrite the JAR file if something goes wrong
- tmp_jarfile="$JARTMP"/out/`basename "$jarfile"`
-
- # Prepare the files in the temporary directory. This is necessary to
- # support -C and still save relative paths in the JAR file.
- make_files ${1+"$@"}
- if test $manifest_kind != none; then
- make_manifest "$JARTMP"/files/META-INF/MANIFEST.MF $manifest_kind "$manifest_file"
- fi
-
- # Really execute zip
- if $verbose; then
- (eval $out_redirect; cd "$JARTMP"/files && $ZIP -rv "$tmp_jarfile" $store .)
- else
- (cd "$JARTMP/files" && $ZIP -r "$tmp_jarfile" $store . > /dev/null)
- fi
- test "$jarfile" = "$tmp_jarfile" || mv "$tmp_jarfile" "$jarfile"
- ;;
-
- update)
- make_tmp
- $mkdir_p "$JARTMP"/files
- make_files ${1+"$@"}
-
- # Same as above, but zip takes care of not overwriting the file
- case $manifest_kind in
- none)
- $verbose && (eval $out_redirect; echo removing manifest)
- $ZIP -d "$jarfile" META-INF/MANIFEST.MF > /dev/null 2>&1 || :
- ;;
- *)
- make_manifest "$JARTMP"/files/META-INF/MANIFEST.MF $manifest_kind "$manifest_file"
- ;;
- esac
- if $verbose; then
- (eval $out_redirect; cd "$JARTMP"/files && $ZIP -ruv "$jarfile" $store .)
- else
- (cd "$JARTMP"/files && $ZIP -ru "$jarfile" $store . > /dev/null)
- fi
- ;;
-
- list)
- # Everything's done in the functions
- if $verbose; then
- jar_list_verbose "$jarfile"
- else
- jar_list "$jarfile"
- fi ;;
-esac
-
-if test "$out_redirect" != :; then
- # Cat back to stdout if necessary
- case $mode in
- create|update) cat "$JARTMP"/out/tmp-stdin.jar ;;
- esac
-fi
-exit 0