view extra/ar @ 440:fda62f676ed4

Allow specifying exact filenames for -l in lwlink Allow prefixing a library name with a colon (":") to instruct lwlink to search for a file with exactly the specified name in the library path. There is no change for existing behaviour if there is no colon prefix. Thus: -lfoo -> looks for "libfoo.a" -l:foo -> looks for exactly "foo"
author William Astle <lost@l-w.ca>
date Mon, 27 Nov 2017 22:21:42 -0700
parents 92cabf300986
children
line wrap: on
line source

#!/bin/sh
#
#
# Copyright 2009 by William Astle <lost@l-w.ca>
#
#This file is part of LWTOOLS.
#
#LWTOOLS 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 3 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, see <http://www.gnu.org/licenses/>.

# this was based somewhat on the "ar" script from gcc6809

# This script is a frontend to the lwar library manager, to make it
# look more like GNU ar.  Not all ar features are supported here.
# It basically translates ar style options into lwar format.

# Parse and translate command-line options

# ar options cheatsheet:
# r: insert (with replace)
# c: create archive
# u: only replace newer files
# v: verbose mode
# x: extract files from archive

options=$1; shift
case $options in
	rc|cru|-rc|-cru)
		options="--replace --create"
		;;
	rv)
		options="--replace"
		;;
	x|-x)
		options="--extract"
		;;
	-C|--cache)
		exit 0
		;;
	*)
		options="--replace --create $options"
		if [ "$libname" = "" ]; then
			libname=$options
		fi
		;;
esac

if [ "x$options" = "x" ]; then
	echo "ar (m6809): no options given"
	exit 1
fi

# Run the real lwar with translated options.
# --nopaths is given to get the proper standard "ar" behaviour
# which doesn't store path names
exec lwar --nopaths $options $*