annotate extra/ar @ 446:818b096ac128

Add a fix and an improvement to gcc6809 patch Thanks to Mark R V Murray <mark@grondar.org> for a fix to gcc6809 which fixes a lingering as6809ism (= instead of equ and whitespace before the symbol). Also change the bit that is supposed to fill space with NULs to use zmb instead of a sequence of byte and word definitions.
author William Astle <lost@l-w.ca>
date Tue, 28 Nov 2017 21:29:05 -0700
parents 92cabf300986
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
72
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
1 #!/bin/sh
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
2 #
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
3 #
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
4 # Copyright 2009 by William Astle <lost@l-w.ca>
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
5 #
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
6 #This file is part of LWTOOLS.
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
7 #
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
8 #LWTOOLS is free software: you can redistribute it and/or modify it under the
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
9 #terms of the GNU General Public License as published by the Free Software
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
10 #Foundation, either version 3 of the License, or (at your option) any later
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
11 #version.
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
12 #
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
13 #This program is distributed in the hope that it will be useful, but WITHOUT
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
14 #ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
15 #FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
16 #more details.
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
17 #
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
18 #You should have received a copy of the GNU General Public License along with
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
19 #this program. If not, see <http://www.gnu.org/licenses/>.
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
20
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
21 # this was based somewhat on the "ar" script from gcc6809
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
22
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
23 # This script is a frontend to the lwar library manager, to make it
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
24 # look more like GNU ar. Not all ar features are supported here.
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
25 # It basically translates ar style options into lwar format.
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
26
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
27 # Parse and translate command-line options
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
28
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
29 # ar options cheatsheet:
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
30 # r: insert (with replace)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
31 # c: create archive
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
32 # u: only replace newer files
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
33 # v: verbose mode
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
34 # x: extract files from archive
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
35
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
36 options=$1; shift
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
37 case $options in
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
38 rc|cru|-rc|-cru)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
39 options="--replace --create"
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
40 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
41 rv)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
42 options="--replace"
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
43 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
44 x|-x)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
45 options="--extract"
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
46 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
47 -C|--cache)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
48 exit 0
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
49 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
50 *)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
51 options="--replace --create $options"
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
52 if [ "$libname" = "" ]; then
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
53 libname=$options
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
54 fi
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
55 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
56 esac
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
57
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
58 if [ "x$options" = "x" ]; then
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
59 echo "ar (m6809): no options given"
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
60 exit 1
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
61 fi
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
62
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
63 # Run the real lwar with translated options.
429
92cabf300986 Make the "ar" wrapper use the new --nopaths option
William Astle <lost@l-w.ca>
parents: 72
diff changeset
64 # --nopaths is given to get the proper standard "ar" behaviour
92cabf300986 Make the "ar" wrapper use the new --nopaths option
William Astle <lost@l-w.ca>
parents: 72
diff changeset
65 # which doesn't store path names
92cabf300986 Make the "ar" wrapper use the new --nopaths option
William Astle <lost@l-w.ca>
parents: 72
diff changeset
66 exec lwar --nopaths $options $*