123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432 |
- Building and installing GNU Texinfo with DJGPP v2.x
- ===================================================
- This directory holds files required for building Texinfo with DJGPP
- tools for MS-DOS and MS-Windows. If you got this file with a binary
- distribution, look for the "Installation" section below.
- 1. Building Texinfo
- ----------------
- a. To compile Texinfo, you will need the following tools:
- - basic DJGPP development environment: GCC, Binutils and djdev;
- - a DJGPP port of GNU Make version 3.78 or later;
- - a DJGPP port of Bash 2.04 or later;
- - a port of GNU Sed 3.02 or later;
- - DJGPP ports of Fileutils, Textutils, Sh-utils, Diffutils,
- Gawk and Grep;
- - etags (from the Emacs distribution) and mkid (from ID-utils)
- if you need the TAGS and ID targets of the Makefile's.
- All of the above are available from the DJGPP ftp sites on
- SimTel.NET mirrors, in the v2gnu directory.
- b. From the root of your DJGPP installation, unzip the source package:
- - if you are unpacking the official GNU source distribution:
- tar -xvzf texinfo-X.YZ.tar.gz
- or
- djtar -x texinfo-X.YZ.tar.gz
- where X.YZ is the version number. (Users of MS-DOS and
- MS-Windows 3.X, which don't support long file names, will need
- to rename the archive to something like texi-XYZ.tgz.)
- - if you are unpacking a source distribution from a DJGPP ftp
- site:
- unzip txiXYZs
- or
- pkunzip -d txiXYZs
- If you build Texinfo on Windows 9X, Windows ME, Windows 2000 or
- Windows XP, you are advised to use a version of Unzip which
- supports long filenames, so that the original long filenames of
- the source files will be preserved. Otherwise, the build
- procedure will most probably fail.
- Do NOT use an unzip program which supports long file names on
- Windows NT 4, as DJGPP doesn't support long names there.
- The program unzip32.exe, available from the SimTel.NET site,
- will deal correctly with long file names on any platform, so it
- is the recommended way of unzipping txiXYZs.zip archives.
- c. If the source distribution comes with a ready Makefile (this is
- usually the case with archives downloaded from the DJGPP sites),
- and all you need is to build Texinfo, you may skip the configure
- step below and go directly to step e.
- d. To build the official GNU distribution, or to configure Texinfo
- for any environment but stock DJGPP v2.x, run djgpp\config.bat
- first, like this:
- SRCDIR\djgpp\config SRCDIR
- Here SRCDIR is the directory where you unpacked the sources. If
- you are configuring from the source directory itself, you may
- omit the argument to the config.bat file. If you do supply the
- argument, you MUST use forward slashes in it, or else the batch
- file might fail.
- config.bat sets some environment variables, then invokes the
- configure script. The script will run for a few minutes and
- create Makefile's in all the directories, and the config.h file.
- e. Run `Make'. This builds the programs and the Info files.
- 2. Installation
- ------------
- a. If you are installing the binary distribution, then go to your
- main DJGPP directory and unzip the files. For instance, if your
- DJGPP installation is rooted on C:\DJGPP, then type this (XYZ is
- the version number):
- cd c:\djgpp
- unzip txiXYZb
- or, if you prefer `pkunzip':
- pkunzip -d txiXYZb
- b. If you downloaded and built Texinfo from sources, install by
- invoking Make:
- make install
- This requires a port of Unix-like program `install.exe'. It is
- available from the DJGPP port of GNU Fileutils on SimTel.NET.
- c. Info needs a file named DIR with the top-level menu of all the
- Info files installed on your system. If you installed the DJGPP
- development environment (djdevNN.zip), then you already have
- this file in the info/ subdirectory of your DJGPP installation.
- Otherwise, you will need to create it. A minimal DIR file is
- available in this distribution under the name `dir-example',
- which you can use as a starting point. Copy it to the directory
- where you install the Info files from this distribution.
- Even if you already have a DIR file, you should review it to
- make sure it is consistent with the names of the Info file you
- are installing. Here's how your Texinfo-related entries in DIR
- should look like:
- * Info: (info).
- Documentation browsing system. This topic teaches you about
- how to use the online help information.
- * Info-Standalone: (info-stnd).
- This topic helps you use the standalone Info-Program (info.exe)
- * infokey: (info-stnd)Invoking infokey.
- Compile Info key customizations.
- * Makeinfo: (texinfo)Invoking makeinfo.
- Convert a .texinfo file (.txi) to an info file suitable for the
- info reader or Emacs, into plain ASCII, into HTML, into XML,
- or into DocBook.
- * Texinfo: (texinfo).
- With one source file, make either a printed manual (through TeX)
- or an on-line manual (through makeinfo). This topic includes
- a full description of the Texinfo language and related
- facilities, including Emacs commands to work with Texinfo files.
- * install-info: (texinfo)Invoking install-info.
- How to update info/dir entries when installing GNU packages.
- * texi2dvi: (texinfo)Format with texi2dvi.
- Printing Texinfo documentation with TeX.
- * texindex: (texinfo)Format with tex/texindex.
- Sorting Texinfo index files automatically.
- Note that the asterisk `*' should be flushed all the way to the
- left, it is indented here just to make reading more convenient.
- If your DIR file entries differ from these, I suggest to edit them
- so they are as shown above. Otherwise, Info might not be able to
- find some of the files. You HAVE been warned!
- d. Optionally, set up environment variables for Info. These are:
- * INFO_LINES -- screen size for Info.
- * INFO_COLORS -- screen colors for Info.
- (If you have DJGPP installed on your system, the file djgpp.env
- which comes with it already has entries for Info, see the [info]
- section there.)
- INFO_LINES can be one of 25 (the default), 28, 35, 40, 43, or 50
- (that's if you have a VGA; EGAs only support 25, 35 and 43 lines).
- I recommend 40 if your monitor is 17" or larger, and at least 28
- lines for smaller monitors (I work with 40 lines even on 14"
- monitors).
- INFO_COLORS should have the following syntax:
- set INFO_COLORS=XX.YY
- where XX is the text attribute for text displayed in the text
- windows and the echo area, and YY is the text attribute for the
- modeline (aka the status line). Each attribute is a numeric
- value of a byte which describes the desired combination of
- foreground and background colors. The individual bits in the
- attribute byte are defined as follows:
- bBBBFFFF
- where `b' is the blink bit, `BBB' are the 3 bits for background
- color and `FFFF' are the 4 bits for the foreground color. This is
- the usual PC text attribute byte structure, and is further explained
- in any standard reference on text-mode programming for the PC.
- My favorite setting for INFO_COLORS is `0x1e.0x31'. This makes
- Info use yellow foreground on blue background for the text and
- blue foreground on cyan background for the modelines.
- After you've played with these variables and have chosen the values
- you like, it's a good idea to put them on the DJGPP.ENV file, in the
- [info] section.
- e. Beginning with version 3.6, GNU Info can read Unix man pages. If
- you have a `man' clone on your system and would like to be able to
- read man pages with Info, read the chapter ``Reading Man Pages''
- below. One such clone is available as v2apps/manXYb.zip from
- the DJGPP sites (XY is the version number).
- f. This port supports compressed Info files, like what Info under Unix
- gives you. For this to work, you will need to install a DOS port of
- GNU `Gzip' package and to observe certain rules of file naming, so
- that Info will find the compressed files working around the DOS 8.3
- filename restriction. The chapter ``Compressed Info Files'' below
- explains the details of this.
- g. If you need to use the `print-node' command, read the chapter
- ``Printing Nodes'' below.
- h. That's it! You are now ready to use Info, Makeinfo, and Texindex.
- To learn about them, type `Info' and press [Enter]. You will be
- presented with the top-level menu of GNU/DJGPP hypertext
- documentation. If you are unfamiliar with Info, press `?' to see
- the available commands. Pressing `h' will cause Info to take you on
- a guided tour through its features (recommended for first-time
- users).
- i. If you are used to Info ports of versions before 3.6, you should
- know that the command bindings to PC-specific keys has changed: the
- numeric keypad keys invoke the same commands as their extended
- namesakes. That is, e.g., the key `PgUp' on the numeric keypad
- invokes the same command as the grey `PgUp' key on the extended
- keypad. This was done at DJ's request, because laptop machines
- don't have extended keys. Commands to move between nodes
- (previously bound to numeric keypad) are now bound to Ctrl-
- varieties of numeric keypad keys (e.g., `next-node' is on
- `Ctrl-PgDn', `prev-node' is on `Ctrl-PgUp', etc.). You can use
- the `Alt-x describe-key' command to see which command is invoked
- by a particular key.
- j. There are several MSDOS-specific changes in Texinfo, relative to
- previous Texinfo ports (for other changes, see the file NEWS):
- * Full support for both forward and backslashes in all file
- names. Previously, Info was sensitive to the style of
- slashes in directories mentioned in the INFOPATH environment
- variable.
- * The default operation of the `print-node' command has been
- changed so that it automatically prints to the local printer
- device connected to the PRN port. (If your printer is
- connected to another port, set the INFO_PRINT_COMMAND
- environment variable like this:
- set INFO_PRINT_COMMAND=>LPT2
- In other words, if the value of INFO_PRINT_COMMAND begins
- wih a `>' character, Info will write to the file or device
- whose name follows the `>' character. (Don't leave any
- blanks between `>' and the device name!).
- Note that some old versions of stock DOS shell won't let you
- use the `>' character in environment variables set from the
- DOS prompt or batch files, but you can set it in the [info]
- section of your DJGPP.ENV file.
- * The `set-screen-height' command now actually changes the
- screen dimensions from within Info if you specify one of the
- sizes supported by your video hardware.
- * If you don't have a `man' clone installed, and you invoke
- Info with a name of a document which Info cannot find, it
- will no longer wait for 15 seconds.
- * Several bugs in handling of man pages were corrected.
- * Info opens the dribble and input files in BINARY mode. This
- allows to record keystrokes and restore them in another Info
- session, thus using dribble files as a startup or init file
- which changes default behavior, binds keys, etc.
- * Info recognizes a new DOS-specific command-line option `-b'
- or `--speech-friendly'. This option causes Info to use DOS
- I/O functions (`printf', `puts', etc.) instead of direct
- screen writes, which is required to enable speech
- synthesizer software (used by visually-impaired people) to
- grab the output. When this option is given, the screen
- colors defined by the `INFO_COLORS' environment variable and
- the visible-bell feature will be disabled, because stdio
- functions don't support neither color text nor inverting
- screen colors. This improvement was suggested and
- originally implemented by Hans-Bernhard Broeker
- <Broeker@physik.rwth-aachen.de>.
- * Makeinfo now generates full .info-NN filenames when long
- filenames are supported (e.g. on Win9x) and short .iNN
- filenames otherwise. When the Texinfo source or the
- command-line parameter -o specify an output file with no
- extension (like `texinfo'), and long filenames aren't
- supported, Makeinfo will make sure the generated names will
- be unique (it will create e.g. `texinf-1', `texin-10' etc.).
- * The texi2dvi script is now fully compatible with
- MS-DOS/MS-Windows and with the DJGPP port of TeX.
- 3. Reading Man Pages
- -----------------
- Yes, Info can now read man pages! This port supports that feature,
- but for it to work, you will have to make sure your `man' clone is
- set up correctly:
- a. You should have an executable file named `man.exe', `man.com'
- etc. somewhere on your PATH.
- b. When invoked with redirected stdout, that executable should
- print the contents of the file it gets as its argument to stdout
- and exit. If your man command calls some pager, that pager
- should have this behavior (various ports of Unix command `more'
- and the DJGPP port of GNU Less behave that way).
- One `man' clone is available as v2apps/manNNb.zip from the DJGPP
- sites on SimTel.NET.
- 4. Compressed Info Files
- ---------------------
- Info allows you to hold your Info files in compressed form, to save
- disk space. When a file Info wants cannot be found, it will
- automatically try to find that file in compressed form. Info does
- this by trying to find the original file with specific extensions.
- Each extension tells Info which program should be called to
- decompress the file.
- This port supports compression by the GNU Gzip program. When Info
- cannot find a file `foo', it will first try to find `foo.z' or
- `foo.gz'. If this fails, and the file has an extension, the last
- one or two characters of the extension are replaced by `z' and `gz'
- respectively, and Info tries again. If it finds any of these, it
- will call the `GUnzip' program to decompress the file, catch its
- output and display it. (The original compressed file stays
- intact.)
- So, to use this feature, compress your files with Gzip and call the
- compressed files using the following as guidelines:
- foo --> foo.gz
- foo.inf --> foo.igz
- foo.i5 --> foo.i5z
- foo.25 --> foo.25z
- If you have a package whose Info docs are split into more than 9
- sub-files and you need to compress those files, you will have to
- rename the sub-files from `foo.iNN' to `foo.NN' so that there will
- be place for the trailing `z' in the compressed names. Don't
- forget to edit the indirect file table in the main Info file and
- change the sub-file filenames there too!
- An alternative for those packages which have more than 99 Info
- sub-files is to generate them from the Texinfo sources and force
- Makeinfo to produce files without the .iNN extensions, like this:
- makeinfo -o foo foo.txi
- This causes Makeinfo to generate file names like foo-1, foo-2,
- etc., which leave more place for the numeric index. If necessary,
- Makeinfo will automatically remove characters from the end of the
- argument to `-o'. For example, "-o texinfo" produces files
- texinf-1, ..., texin-10, ..., texi-100, etc. on platforms which
- only support 8+3 file names.
- Saying "@setfilename foo" near the beginning of the Texinfo source
- file is another way of forcing Makeinfo to produce files without
- the .iNN extensions.
- Using Makeinfo to produce files whose names are "compression-ready"
- is more convenient, since you don't need to edit the the indirect
- file table to reflect the changes in file names.
- On platforms which support long filenames, the usual Info behavior
- of appending `.gz' or `.Z' to the original filename also works;
- this is done *before* Info checks the above butchered names.
- Special considerations apply if you are installing Info on dual
- DOS/Windows 9X/ME/2K/XP system, where you'd like Info to work with
- the same files both in plain DOS and from the Windows DOS box. In
- this case, you should make sure your compressed Info files follow
- the 8+3 DOS naming conventions outlined above, even though Info
- supports long file names on Windows 9X. Also, you need to turn off
- the generation of numeric tails in short 8+3 aliases Windows
- creates for long names (if you don't know how, the DJGPP FAQ list
- explains it).
- Please note: for the automatic decompression to work, Info must be
- able to find the file it looks for with an extension which
- indicates that the file is compressed. Do NOT call the compressed
- files as the original uncompressed files were called, or Info
- won't be able to find them! File names like bison-1, gcc.i10 or
- make.info-3 have nothing in them to suggest that they are
- compressed, so don't expect Info to uncompress them.
- 5. Printing Nodes
- --------------
-
- Info has a `print-node' command. It works by piping the contents of
- the current node through a program which is named by the environment
- variable INFO_PRINT_COMMAND. That command should read its standard
- input and write it to your printer. Find any such program, put its
- name into the above environment variable, and you can print nodes from
- within Info.
- If the value of INFO_PRINT_COMMAND begins with a redirection
- character `>', Info will write the contents of the node to the file
- whose name follows the `>' character.
- If INFO_PRINT_COMMAND is not defined, the DJGPP port will use
- ">PRN" as the default, which causes it to print to the local printer
- device, PRN.
- 6. Bug Reports
- -----------
- If you see any bugs which seem specific to this DOS port, please tell
- me about them.
- Enjoy,
- Eli Zaretskii <eliz@is.elta.co.il>
|