Short: Language-independent identifier database tool Author: Greg McGary , Amiga port by Olaf Barthel Uploader: Olaf Barthel Type: dev/misc Version: 3.2; Amiga port version 1.2 Architecture: m68k-amigaos; ppc-amigaos 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 , 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 . 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.