diff options
Diffstat (limited to 'scripts/armerge')
| -rwxr-xr-x | scripts/armerge | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/scripts/armerge b/scripts/armerge new file mode 100755 index 0000000000..cda9d711cc --- /dev/null +++ b/scripts/armerge @@ -0,0 +1,67 @@ +#!/bin/sh +# +# +----------------------------------------------------------------------+ +# | PHP HTML Embedded Scripting Language Version 4.0 | +# +----------------------------------------------------------------------+ +# | Copyright (c) 1997-1999 PHP Development Team (See Credits file) | +# +----------------------------------------------------------------------+ +# | This program is free software; you can redistribute it and/or modify | +# | it under the terms of one of the following licenses: | +# | | +# | A) 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. | +# | | +# | B) the PHP License as published by the PHP Development Team and | +# | included in the distribution in the file: LICENSE | +# | | +# | 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 both licenses referred to here. | +# | If you did not, or have any questions about PHP licensing, please | +# | contact core@php.net. | +# +----------------------------------------------------------------------+ +# | Authors: Stig Sæther Bakken <ssb@fast.no> | +# +----------------------------------------------------------------------+ +# +# Archive merger. Usage: armerge libout.a dir1/libin1.a dir2/libin2.a ... +# Creates the archive libout.a from the files in the rest of the +# parameter list. If the input archives are in separate directories, +# the names of the files inside them are prefixed before they are +# merged into the output archive. The prefix used is the same as the +# directory name with "/" replaced by "_" and a "_" at the end. +# +# $Id$ +# + +if test "$#" -lt "2"; then + echo "Usage: "`basename $0`" <out-archive> <in-archives...>" + exit 1 +fi + +out_archive=$1; shift +in_archives=$@ + +rm -f $out_archive + +for archive in $in_archives; do + files=`ar t $archive` + ar x $archive + dir=`dirname $archive` + if test "$dir" = "."; then + ext_files=$files + else + prefix=`echo $dir | sed -e 's#/#_#g'`_ + prefix=`echo $prefix | sed -e 's#^\.\._##g'` + ext_files="" + for file in $files; do + mv "$file" "$prefix$file" + ext_files="$ext_files $prefix$file" + done + fi + ar vr $out_archive $ext_files + rm -f $ext_files +done |
