Software Portability with imake

Obtaining Configuration Software

[ This document consists of the text of the Appendix A of Software Portability with imake, by Paul DuBois. Copyright (c) 1996 O'Reilly and Associates, Inc. All rights reserved. Permission is granted to copy this document for personal use only. This copyright notice must be retained in all copies. ]

This appendix describes how to obtain the software discussed in this book. Most distributions are provided as tar files that have been compressed with gzip or compress. These are indicated by filename suffixes of .gz and .Z, respectively. The distributions are listed below.

imake configuration tools (itools.tar.gz, itools.tar.Z)

The configuration software described in this book. The distribution contains imake, xmkmf, imboot, makedepend, mkdirhier, msub, bsdinst,, imdent, the X11 configuration files, and some other miscellaneous utilities. Instructions for building and installing this distribution are given in Appendix B, Installing Configuration Software.

TOUR configuration files (TOUR.tar.gz, TOUR.tar.Z)

The examples in Chapter 2, A Tour of imake, are based on the X11 configuration files. The TOUR distribution contains an alternate set of configuration files that can be used for working through the examples. The TOUR files are similar to the X11 files, but they're simpler and easier to understand.

Starter project configuration files (SP.tar.gz, SP.tar.Z)

The starter project files described in Chapter 9, A Configuration Starter Project.

Demonstration project configuration files (DP.tar.gz, DP.tar.Z)

The demonstration project files developed in Chapter 11, Introduction to Configuration File Writing, and Chapter 12, Writing Rule Macros.

Extensible-architecture configuration files (EA.tar.gz, EA.tar.Z)

The configuration files implementing the extensible architecture described in Chapter 15, Designing Extensible Configuration Files, and Chapter 16, Creating Extensible Configuration Files.

der Mouse cpp (mouse-cpp.tar.gz, mouse-cpp.tar.Z)

A public implementation of cpp by der Mouse. You might find it useful if your C preprocessor doesn't work with imake.

DECUS cpp (DECUS-cpp.tar.gz, DECUS-cpp.tar.Z)

Another public implementation of cpp.

This handbook's configuration files (bookcf.tar.gz, bookcf.tar.Z)

The configuration files used in connection with the writing of Software Portability with imake.

Errata sheet (Errata)

Last and, I hope, least, the current list of known errors in this book.

Obtaining the Distributions

The software is available electronically via World Wide Web, FTP, or FTPMAIL. Use a Web browser or FTP if you are directly on the Internet. Use FTPMAIL if you are not on the Internet but can exchange electronic mail with Internet sites.

After you obtain a distribution, you need to unpack it. To uncompress and extract files from a distribution that has been compressed with gzip (e.g., itools.tar.gz), use this command:

   % gunzip < itools.tar.gz | tar xf -
Or, on System V systems:
   % gunzip < itools.tar.gz | tar xof -
For a distribution that has been compressed with compress (e.g., itools.tar.Z), use this command instead:
   % zcat itools.tar.Z | tar xf -
Or, on System V systems:
   % zcat itools.tar.Z | tar xof -
If zcat is not available on your system, use separate uncompress and tar commands:
   % uncompress itools.tar.Z
   % tar xf itools.tar
Or, on System V systems:
   % uncompress itools.tar.Z
   % tar xof itools.tar

World Wide Web

To use the World Wide Web, you need a machine with direct access to the Internet. The software may be obtained with a Web browser using the following URL:
This will take you to an index page containing links to the available distributions. Select the link corresponding to the distribution in which you're interested.


To use FTP, you need a machine with direct access to the Internet. The software may be obtained from any of the hosts below. The last host is likely to have the most up-to-date distributions.

Machine Directory /published/oreilly/nutshell/imake /pub/examples/nutshell/imake /pub/imake-book

A sample session is shown, with what you should type in boldface:

   % ftp
   Connected to
   220 FTP server (Version 6.21 Tue Mar 12 22:09:55 EST 1996) ready.
   Name ( anonymous
   331 Guest login OK, send domain style e-mail address as password.
   Password:			(Use your user name and host here)
   230 Guest login OK, access restrictions apply.
   ftp> cd /published/oreilly/nutshell/imake
   250 CWD command successful.
   ftp> binary			(Very important! You must specify binary transfer for compressed files.)
   200 Type set to I.
   ftp> get itools.tar.gz
   200 PORT command successful.
   150 Opening BINARY mode data connection for itools.tar.gz.
   226 Transfer complete.
   ftp> quit
   221 Goodbye.


FTPMAIL is a mail server available to anyone who can exchange electronic mail with Internet sites. This includes most workstations that have an email connection to the outside world, and CompuServe users. You do not need to be directly on the Internet. Here's how to do it.

You send mail to In the message body, give the name of the anonymous FTP host and the FTP commands you want to run. The server will run anonymous FTP for you and mail the files back to you. To get a complete help file, send a message with no subject and the single word "help" in the body. The following is an example mail session that should get you a listing of the files in the selected directory and the file itools.tar.gz. The listing is useful in case there are other files you may be interested in.

   % mail
   reply	(where you want files mailed)
   cd /published/oreilly/nutshell/imake
   uuencode	(or btoa if you have it)
   get itools.tar.gz
   .	(or CONTROL-D)
A signature at the end of the message is acceptable as long as it appears after "quit."

All retrieved files will be split into 60KB chunks and mailed to you. You then remove the mail headers and concatenate them into one file, and then uudecode or atob it.