Amiga port of GNU id-utils 3.2
==============================
1. Introduction
This is a modest port of the GNU id-utils for AmigaOS 2.x/3.x/4.x using GCC
and the clib2 'C' runtime library. Its purpose is to maintain and access a
database of identifiers which can be created with the "mkid" command and
accessed with the "lid" command, etc.
This is a very useful package if you are about to maintain an unfamiliar source
code package. With "lid" you can quickly look up where a variable, function or
data structure is being used. I have been using the original "mkid" package
which was later overhauled and turned into GNU id-utils for years in my own
projects. If you haven't used it yet, you're missing something!
2. Installation
Copy the "fid", "fnid", "lid", "mkid" and "xtokid" commands from the "bin"
directory to wherever you like them best (the "bin.68k" directory contains
the AmigaOS 2.x/3.x compatible version and the "bin.os4" directory contains
the AmigaOS 4.x compatible version). There is a configuration file by the
name of "id-lang.map" in the "id-utils" directory. Copy this to a directory of
your own choice and bind assignment to it, e.g.:
copy id-utils S:id-utils all
assign id-utils: S:id-utils
Alternatively, you can do without the assignment and use the following
instead:
copy id-utils S:id-utils all
setenv save ID-LANG.MAP S:id-utils/id-lang.map
You might want to add the following to your S:Shell-Startup as shortcuts for
various features; the original "mkid" package used to implement this in
separate shell commands, but you can also take care of this via aliases:
alias aid lid -ils []
alias eid lid -R edit "[]"
alias gid lid -R grep "[]"
But you can use links instead, too, e.g.:
copy bin/(fid|fnid|lid|mkid|xtokid) c:
cd c:
makelink link=aid to=lid
makelink link=eid to=lid
makelink link=gid to=lid
3. Changes for the Amiga
I have modified the commands for the Amiga. Some of the specific changes
include:
- You can configure a default stack size used by the commands through an
environment variable, like this:
setenv save IDUTILS_STACK_SIZE 1000000
All commands should be happy around a maximum of 50K of default
stack space, which is what they were built with.
- You can use AmigaDOS wildcard patterns to select the files to scan.
For example, the following will scan all 'C' source files:
mkid #?.c
- AmigaDOS path names syntax is used when printing file and path names.
- AmigaDOS wildcard patterns are used when printing file lists.
- All commands bear the Amiga-typical version information, i.e. you
can query their release version numbers with the "Version" shell
command.
- You can use links or make copies of the "lid" command to yield
working "aid", "eid" and "gid" shell commands. The "lid" command
keys off the name the command is started with and then sets up
its default options.
- The "id-utils.info" documentation has been converted into an
AmigaGuide format "id-utils.guide" file.
4. Source code
This Amiga port is based upon GNU id-utils 3.2. The modified source code files
are included in the "source" directory. Just download the original source
code from, for example <http://ftp.gnu.org/gnu/id-utils/id-utils-3.2.tar.gz>,
unpack it and then copy the contents of the "source" directory on top of it.
To build it you will need a GCC installation and the clib2 'C' runtime library
which you can find at <http://sf.net/projects/clib2>. Enter "make -f
GNUmakefile.68k" for the AmigaOS 2.x/3.x build and "make -f GNUmakefile.os4"
for the AmigaOS 4.x build.
5. Contact
This Amiga port was created by Olaf Barthel. Here is my postal address:
Olaf Barthel
Gneisenaustr. 43
D-31275 Lehrte
Federal Republic of Germany
But you can also reach me via e-mail:
olsen()sourcery.han.de
6. History
Amiga port 1.2 (2005-11-28)
- Greatly reduced stack size usage by switching over the use of the
built-in GCC alloca() function to the clib2-supplied version. While
this alloca() implementation will require a lot less stack space, it
will still need as much main memory as the 1.1 port used to when it
was still allocating that memory from the stack.
Amiga port 1.1 (2005-11-25)
- Initial port using clib2.
| |