ar-lib revision 03333823c75a1c1887e923828113a1b0fd12020c
103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes#! /bin/sh
203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# Wrapper for Microsoft lib.exe
303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
403333823c75a1c1887e923828113a1b0fd12020cElliott Hughesme=ar-lib
503333823c75a1c1887e923828113a1b0fd12020cElliott Hughesscriptversion=2012-03-01.08; # UTC
603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# Copyright (C) 2010-2013 Free Software Foundation, Inc.
803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# Written by Peter Rosin <peda@lysator.liu.se>.
903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes#
1003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# This program is free software; you can redistribute it and/or modify
1103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# it under the terms of the GNU General Public License as published by
1203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# the Free Software Foundation; either version 2, or (at your option)
1303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# any later version.
1403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes#
1503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# This program is distributed in the hope that it will be useful,
1603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# but WITHOUT ANY WARRANTY; without even the implied warranty of
1703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# GNU General Public License for more details.
1903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes#
2003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# You should have received a copy of the GNU General Public License
2103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# along with this program.  If not, see <http://www.gnu.org/licenses/>.
2203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
2303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# As a special exception to the GNU General Public License, if you
2403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# distribute this file as part of a program that contains a
2503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# configuration script generated by Autoconf, you may include it under
2603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# the same distribution terms that you use for the rest of that program.
2703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
2803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# This file is maintained in Automake, please report
2903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# bugs to <bug-automake@gnu.org> or send patches to
3003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# <automake-patches@gnu.org>.
3103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
3203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
3303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# func_error message
3403333823c75a1c1887e923828113a1b0fd12020cElliott Hughesfunc_error ()
3503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes{
3603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  echo "$me: $1" 1>&2
3703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  exit 1
3803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes}
3903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
4003333823c75a1c1887e923828113a1b0fd12020cElliott Hughesfile_conv=
4103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
4203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# func_file_conv build_file
4303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# Convert a $build file to $host form and store it in $file
4403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# Currently only supports Windows hosts.
4503333823c75a1c1887e923828113a1b0fd12020cElliott Hughesfunc_file_conv ()
4603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes{
4703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  file=$1
4803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  case $file in
4903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    / | /[!/]*) # absolute file, and not a UNC file
5003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      if test -z "$file_conv"; then
5103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	# lazily determine how to convert abs files
5203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	case `uname -s` in
5303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	  MINGW*)
5403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	    file_conv=mingw
5503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	    ;;
5603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	  CYGWIN*)
5703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	    file_conv=cygwin
5803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	    ;;
5903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	  *)
6003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	    file_conv=wine
6103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	    ;;
6203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	esac
6303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      fi
6403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      case $file_conv in
6503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	mingw)
6603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
6703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	  ;;
6803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	cygwin)
6903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	  file=`cygpath -m "$file" || echo "$file"`
7003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	  ;;
7103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	wine)
7203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	  file=`winepath -w "$file" || echo "$file"`
7303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	  ;;
7403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      esac
7503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      ;;
7603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  esac
7703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes}
7803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
7903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# func_at_file at_file operation archive
8003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE
8103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# for each of them.
8203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# When interpreting the content of the @FILE, do NOT use func_file_conv,
8303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# since the user would need to supply preconverted file names to
8403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# binutils ar, at least for MinGW.
8503333823c75a1c1887e923828113a1b0fd12020cElliott Hughesfunc_at_file ()
8603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes{
8703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  operation=$2
8803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  archive=$3
8903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  at_file_contents=`cat "$1"`
9003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  eval set x "$at_file_contents"
9103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  shift
9203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
9303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  for member
9403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  do
9503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    $AR -NOLOGO $operation:"$member" "$archive" || exit $?
9603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  done
9703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes}
9803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
9903333823c75a1c1887e923828113a1b0fd12020cElliott Hughescase $1 in
10003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  '')
10103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes     func_error "no command.  Try '$0 --help' for more information."
10203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes     ;;
10303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  -h | --h*)
10403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    cat <<EOF
10503333823c75a1c1887e923828113a1b0fd12020cElliott HughesUsage: $me [--help] [--version] PROGRAM ACTION ARCHIVE [MEMBER...]
10603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
10703333823c75a1c1887e923828113a1b0fd12020cElliott HughesMembers may be specified in a file named with @FILE.
10803333823c75a1c1887e923828113a1b0fd12020cElliott HughesEOF
10903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    exit $?
11003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    ;;
11103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  -v | --v*)
11203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    echo "$me, version $scriptversion"
11303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    exit $?
11403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    ;;
11503333823c75a1c1887e923828113a1b0fd12020cElliott Hughesesac
11603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
11703333823c75a1c1887e923828113a1b0fd12020cElliott Hughesif test $# -lt 3; then
11803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  func_error "you must specify a program, an action and an archive"
11903333823c75a1c1887e923828113a1b0fd12020cElliott Hughesfi
12003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
12103333823c75a1c1887e923828113a1b0fd12020cElliott HughesAR=$1
12203333823c75a1c1887e923828113a1b0fd12020cElliott Hughesshift
12303333823c75a1c1887e923828113a1b0fd12020cElliott Hugheswhile :
12403333823c75a1c1887e923828113a1b0fd12020cElliott Hughesdo
12503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  if test $# -lt 2; then
12603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    func_error "you must specify a program, an action and an archive"
12703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  fi
12803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  case $1 in
12903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    -lib | -LIB \
13003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    | -ltcg | -LTCG \
13103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    | -machine* | -MACHINE* \
13203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    | -subsystem* | -SUBSYSTEM* \
13303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    | -verbose | -VERBOSE \
13403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    | -wx* | -WX* )
13503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      AR="$AR $1"
13603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      shift
13703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      ;;
13803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    *)
13903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      action=$1
14003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      shift
14103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      break
14203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      ;;
14303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  esac
14403333823c75a1c1887e923828113a1b0fd12020cElliott Hughesdone
14503333823c75a1c1887e923828113a1b0fd12020cElliott Hughesorig_archive=$1
14603333823c75a1c1887e923828113a1b0fd12020cElliott Hughesshift
14703333823c75a1c1887e923828113a1b0fd12020cElliott Hughesfunc_file_conv "$orig_archive"
14803333823c75a1c1887e923828113a1b0fd12020cElliott Hughesarchive=$file
14903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
15003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# strip leading dash in $action
15103333823c75a1c1887e923828113a1b0fd12020cElliott Hughesaction=${action#-}
15203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
15303333823c75a1c1887e923828113a1b0fd12020cElliott Hughesdelete=
15403333823c75a1c1887e923828113a1b0fd12020cElliott Hughesextract=
15503333823c75a1c1887e923828113a1b0fd12020cElliott Hugheslist=
15603333823c75a1c1887e923828113a1b0fd12020cElliott Hughesquick=
15703333823c75a1c1887e923828113a1b0fd12020cElliott Hughesreplace=
15803333823c75a1c1887e923828113a1b0fd12020cElliott Hughesindex=
15903333823c75a1c1887e923828113a1b0fd12020cElliott Hughescreate=
16003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
16103333823c75a1c1887e923828113a1b0fd12020cElliott Hugheswhile test -n "$action"
16203333823c75a1c1887e923828113a1b0fd12020cElliott Hughesdo
16303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  case $action in
16403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    d*) delete=yes  ;;
16503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    x*) extract=yes ;;
16603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    t*) list=yes    ;;
16703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    q*) quick=yes   ;;
16803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    r*) replace=yes ;;
16903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    s*) index=yes   ;;
17003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    S*)             ;; # the index is always updated implicitly
17103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    c*) create=yes  ;;
17203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    u*)             ;; # TODO: don't ignore the update modifier
17303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    v*)             ;; # TODO: don't ignore the verbose modifier
17403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    *)
17503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      func_error "unknown action specified"
17603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      ;;
17703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  esac
17803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  action=${action#?}
17903333823c75a1c1887e923828113a1b0fd12020cElliott Hughesdone
18003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
18103333823c75a1c1887e923828113a1b0fd12020cElliott Hughescase $delete$extract$list$quick$replace,$index in
18203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  yes,* | ,yes)
18303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    ;;
18403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  yesyes*)
18503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    func_error "more than one action specified"
18603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    ;;
18703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  *)
18803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    func_error "no action specified"
18903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    ;;
19003333823c75a1c1887e923828113a1b0fd12020cElliott Hughesesac
19103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
19203333823c75a1c1887e923828113a1b0fd12020cElliott Hughesif test -n "$delete"; then
19303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  if test ! -f "$orig_archive"; then
19403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    func_error "archive not found"
19503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  fi
19603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  for member
19703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  do
19803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    case $1 in
19903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      @*)
20003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes        func_at_file "${1#@}" -REMOVE "$archive"
20103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes        ;;
20203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      *)
20303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes        func_file_conv "$1"
20403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes        $AR -NOLOGO -REMOVE:"$file" "$archive" || exit $?
20503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes        ;;
20603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    esac
20703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  done
20803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
20903333823c75a1c1887e923828113a1b0fd12020cElliott Hugheselif test -n "$extract"; then
21003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  if test ! -f "$orig_archive"; then
21103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    func_error "archive not found"
21203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  fi
21303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  if test $# -gt 0; then
21403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    for member
21503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    do
21603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      case $1 in
21703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes        @*)
21803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes          func_at_file "${1#@}" -EXTRACT "$archive"
21903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes          ;;
22003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes        *)
22103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes          func_file_conv "$1"
22203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes          $AR -NOLOGO -EXTRACT:"$file" "$archive" || exit $?
22303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes          ;;
22403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      esac
22503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    done
22603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  else
22703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    $AR -NOLOGO -LIST "$archive" | sed -e 's/\\/\\\\/g' | while read member
22803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    do
22903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $?
23003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    done
23103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  fi
23203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
23303333823c75a1c1887e923828113a1b0fd12020cElliott Hugheselif test -n "$quick$replace"; then
23403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  if test ! -f "$orig_archive"; then
23503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    if test -z "$create"; then
23603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      echo "$me: creating $orig_archive"
23703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    fi
23803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    orig_archive=
23903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  else
24003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    orig_archive=$archive
24103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  fi
24203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
24303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  for member
24403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  do
24503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    case $1 in
24603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    @*)
24703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      func_file_conv "${1#@}"
24803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      set x "$@" "@$file"
24903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      ;;
25003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    *)
25103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      func_file_conv "$1"
25203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      set x "$@" "$file"
25303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes      ;;
25403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    esac
25503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    shift
25603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    shift
25703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  done
25803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
25903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  if test -n "$orig_archive"; then
26003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    $AR -NOLOGO -OUT:"$archive" "$orig_archive" "$@" || exit $?
26103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  else
26203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    $AR -NOLOGO -OUT:"$archive" "$@" || exit $?
26303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  fi
26403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
26503333823c75a1c1887e923828113a1b0fd12020cElliott Hugheselif test -n "$list"; then
26603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  if test ! -f "$orig_archive"; then
26703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes    func_error "archive not found"
26803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  fi
26903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes  $AR -NOLOGO -LIST "$archive" || exit $?
27003333823c75a1c1887e923828113a1b0fd12020cElliott Hughesfi
271