Date: Thu, 30 Jan 1997 11:14:17 +0200 (IST) From: Eli Zaretskii To: djgpp-workers AT delorie DOT com cc: DJ Delorie Subject: GNU ID Utils ported to DJGPP Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII I've uploaded the DJGPP port of GNU Id-utils to DJ's /incoming directory. After DJ puts it in a readable place, I'd appreciate if people would give it a test ride to see if there are any bugs left. The package has a test suite which the port passed, and I took every precaution to test all the code that I added while porting, but still... If no problems are reported in a week or so, I will ask DJ to upload to SimTel.NET. If you know what Id-utils are, you will probably grab them right away. If not, read the README.dos file (attached below) and grab them anyway. They make many tasks much easier. ------------------------------------------------------------------ This is the README.dos file for the DJGPP port of GNU Id-Utils 3.2. 1. Introduction ID Utilities are used to scan a directory tree, create a database that records which tokens appear in which files, and then query that database, thus making a variety of text-searching tasks much simpler and faster. A typical example of a query is ``list all files that #include a particular header file''. Another example is to search mail archives for certain keywords. While many such tasks can also be performed by using text search tools, such as the programs from the Grep package, id-utils are much faster because they don't need to scan the files. An important advantage of using id-utils is that you can query the database even if the original files aren't available; this comes in particularly handy when the files are maintained in a compressed archive. 2. Installation of the pre-built package This is simple: a) Unzip the binary archive from the root of your DJGPP hierarchy. Note that the zip file is LFN-clean, so on Windows 9x you should unzip it with an LFN-aware program. b) Edit the file info/dir and copy the directory entries for the id-utils on-line manual from the beginning of info/id-utils.inf (they are delimited by START-INFO-DIR-ENTRY...END-INFO-DIR-ENTRY strings). c) If you use Emacs, edit your `_emacs' init file and add the following line: (autoload 'gid "id-utils" "Interface to ID Utils" t) That's it! Now let's try it. Type these commands: cd c:/djgpp/include mkid This builds an ID database covering all of the DJGPP header files. Now let's see which ones mention the `FILE' typedef: lid FILE See how easy it is? If you ever need to do this from another directory, just say this: lid -f c:/djgpp/include FILE The original package comes with a few shell scripts (all described in the manual) designed to make certain frequently-used commands easier. For your convenience, the binary distribution includes both these scripts and batch files which implement the same functionality, so you can use them even if your interactive shell is COMMAND.COM. If your environment defines the EDITOR or VISUAL environment variables, note that `lid -R edit' and `eid' use that variable to invoke an editor of your choice (default: `vi'), but if that editor is not compiled with DJGPP, sometimes only part of the files will be available inside the editor, due to limitations of the DOS command-line length. Some editors, such as EDIT, only accept a single filename on the command line. 3. Rebuilding the package In addition to the standard DJGPP development tools (djdevNNN, gccNNN and bnuNNN), you will need to install DJGPP ports of the following packages: - Make 3.75 or later - bash - Fileutils - Textutils - Sh-utils - Grep - Sed - Diffutils (cmp alone is enough) All of these are available from the usual DJGPP sites, in the v2gnu directory. Note that only the DJGPP ports of these utilities are guaranteed to work; I didn't test other ports. After installing the tools, you are ready to build the package. The source distribution is already configured for DJGPP, so you only need to run Make from the top-level directory. However, if you need to re- configure the package, you should run the `configure' shell script. The batch file `runcfg.bat' makes that easy if you don't have to pass non-default options to the script. To see what options are available, invoke the script with `--help' option, like so: bash ./configure --help After `configure' finishes, run Make to compile. If it calls `emacs' to compile the Emacs interface files, it will fail on systems where Emacs isn't installed; invoking "make -k" in such cases will prevent Make from stopping prematurely. When Make exits, you can say "make -k install" to install the package, but before that you will need to rename the files INSTALL and (on non-LFN platforms) install-sh to other names, or else Make will think that the target `install' is up to date and won't do anything; or just move the package products manually to pertinent directories. The package has a test suite; if you changed something and want to be sure that it still works, say "make check" and make sure that the test procedure prints "PASSED" at the end, and that no errors are reported. The file DIFFS describes the changes I've done to the original FSF distribution, so you can see what I've broken. Enjoy. Eli Zaretskii