2019-09-16 20:46:39 +00:00
|
|
|
#! @SHELL@
|
2018-04-29 16:38:57 +00:00
|
|
|
|
2018-07-22 12:24:36 +00:00
|
|
|
# GNU Mes --- Maxwell Equations of Software
|
2019-06-08 13:36:22 +00:00
|
|
|
# Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
2018-04-29 16:38:57 +00:00
|
|
|
#
|
2018-07-22 12:24:36 +00:00
|
|
|
# This file is part of GNU Mes.
|
2018-04-29 16:38:57 +00:00
|
|
|
#
|
2018-07-22 12:24:36 +00:00
|
|
|
# GNU Mes is free software; you can redistribute it and/or modify it
|
2018-04-29 16:38:57 +00:00
|
|
|
# under the terms of the GNU General Public License as published by
|
|
|
|
# the Free Software Foundation; either version 3 of the License, or (at
|
|
|
|
# your option) any later version.
|
|
|
|
#
|
2018-07-22 12:24:36 +00:00
|
|
|
# GNU Mes is distributed in the hope that it will be useful, but
|
2018-04-29 16:38:57 +00:00
|
|
|
# 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
|
2018-07-22 12:24:36 +00:00
|
|
|
# along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
2018-04-29 16:38:57 +00:00
|
|
|
|
2019-06-08 13:36:22 +00:00
|
|
|
if [ "$V" = 2 ]; then
|
|
|
|
set -x
|
2018-04-29 16:38:57 +00:00
|
|
|
fi
|
2019-06-08 13:36:22 +00:00
|
|
|
|
2019-11-04 22:56:15 +00:00
|
|
|
# parse arguments
|
|
|
|
while [ $# -gt 0 ]; do
|
|
|
|
case $1 in
|
|
|
|
(-h|--help)
|
|
|
|
cat <<EOF
|
|
|
|
Usage: mesar [OPTION]... COMMAND ARCHIVE-FILE FILE...
|
|
|
|
Archiver for MesCC.
|
|
|
|
|
|
|
|
Commands:
|
|
|
|
r[ab][f][u] - replace existing or insert new file(s) into the archive
|
|
|
|
[c] - do not warn if the library had to be created
|
|
|
|
[D] - use zero for timestamps and uids/gids (default)
|
|
|
|
|
|
|
|
are ignored and assumed to be "crD".
|
|
|
|
|
|
|
|
Options:
|
|
|
|
-h,--help display this help and exit
|
|
|
|
-V,--version display version information and exit
|
|
|
|
EOF
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
(-V|--version)
|
|
|
|
cat <<EOF
|
|
|
|
mesar (GNU Mes) @VERSION@
|
|
|
|
EOF
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
-*) shift
|
|
|
|
;;
|
|
|
|
*) break
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
2019-06-08 13:36:22 +00:00
|
|
|
command=$1
|
|
|
|
shift
|
2019-11-04 22:56:15 +00:00
|
|
|
if [ -z "$command" ]; then
|
|
|
|
echo "AR: Usage error: missing command." 1>&2
|
|
|
|
exit 2
|
|
|
|
fi
|
|
|
|
archive=$1
|
2019-06-08 13:36:22 +00:00
|
|
|
shift
|
2019-11-04 22:56:15 +00:00
|
|
|
if [ -z "$archive" ]; then
|
|
|
|
echo "AR: Usage error: missing archive" 1>&2
|
|
|
|
exit 2
|
|
|
|
fi
|
|
|
|
if [ $# -eq 0 ]; then
|
|
|
|
echo "AR: Usage error: missing object files" 1>&2
|
|
|
|
exit 2
|
|
|
|
fi
|
2019-06-13 12:19:59 +00:00
|
|
|
M1_archive=$(dirname "$archive")/$(basename "$archive" .a).s
|
2019-06-08 13:36:22 +00:00
|
|
|
for o in "$@"; do
|
2019-09-16 20:46:39 +00:00
|
|
|
s=$(dirname "$o")/$(basename "$o" .o).s
|
|
|
|
M1_objects="$M1_objects $s"
|
2019-06-08 13:36:22 +00:00
|
|
|
done
|
2019-07-07 10:17:03 +00:00
|
|
|
mkdir -p $(dirname "$archive")
|
2019-09-16 20:46:39 +00:00
|
|
|
cat $M1_objects > "$M1_archive"
|
2019-06-08 13:36:22 +00:00
|
|
|
cat "$@" > "$archive"
|