Mail Archives: djgpp-workers/1997/01/30/04:21:24
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 <eliz AT is DOT elta DOT co DOT il>
- Raw text -