Synopses & Reviews
imake is a utility that works with imake to enable code to be compiled and installed on different UNIX machines. imake makes possible the wide portability of the X Window System code and is widely considered an X tool, but it's also useful for any software project that needs to be ported to many UNIX systems. imake also runs under Windows NT.This handbook is ideal for X and UNIX programmers who want their software to be portable. The book is divided into two sections. The first section is a general explanation of imake, X configuration files, and how to write and debug an Imakefile. The second section describes how to write configuration files and presents a configuration file architecture that allows development of coexisting sets of configuration files. Several sample sets of configuration files are described and are available free over the Net.New in the second edition:
- Updated to cover the version X11R6.1 of the X Window System
- Discusses using imake for non-UNIX systems such as Windows NT
- Covers some of the quirks about using imake under OpenWindows/Solaris
Synopsis
This handbook is ideal for X and UNIX programmers who want their softwareto be portable. "imake, a utility that works with "make to enablecode to be compiled and installed on different UNIX machines, makes wideportability of the X Window System code possible.Although considered anX tool, "imake is useful for any software project that needs to beported to many UNIX systems -- and runs under Windows NT as well.This second edition covers version X11R6.1 of the X Window System, using "imake for non-UNIX systems such as Windows NT, and someof the quirks about using "imake under OpenWindows/Solaris. The book opens with a general explanation of "imake, Xconfiguration files, and how to write and debug an "Imakefile. It then discusses how to write configuration filesand presents a configuration file architecture that allows development ofcoexisting sets of configuration files.Also describes sample sets ofconfiguration files that are available free over the Net.
Synopsis
Ideal for X and UNIX programmers who want their software to be portable, this edition covers the current version of the X Windows System (X11R6.1), using Imake for non-UNIX systems such as Windows NT, and some of the quirks about using Imake under Open Windows/Solaris. Several sample sets of configuration files are described and are available free over the Net.
Synopsis
imake, a UNIX utility that works with make, enables you to port software, usually (but not exclusively) X Window System code, to multiple UNIX platforms. imake also runs under Windows NT. imake stores the differences between the operating systems in configuration files. It then generates a different Makefile for each system for use with make, the UNIX software development utility. Software Portability with imake, Second Edition, tells you everything you need to know about imake and its associated utilities, such as makedepend and mkdirhier. It is the only book published on the subject. The second edition has been updated to cover the current version of the X Window System (X11R6.1). It gets you started using imake for non-UNIX systems such as Microsoft Windows, NT, and covers some of the quirks inherent in using imake under OpenWindows/Solaris.
About the Author
Paul DuBois was one of the first contributors to the online MySQL Reference Manual, a renowned documentation project that supported MySQL administrators and database developers in the first few years of MySQL's existence in the late 1990's. Paul went on to write more than six books on MySQL, including the first edition of "MySQL Cookbook". He is also the author of "Using csh & tcsh" and "Software Portability with imake", both by O'Reilly.
Table of Contents
Table of Contents
Preface
Chapter 1. Introduction
The Nature of Nonportability
The Nature of Configurability
How Does imake Work?
What Can imake Do for You?
Slaying the Beast
The Essential imake Toolkit
Chapter 2. A Tour of imake
The Exercises
What Have You Learned?
Common Problems
Chapter 3. Understanding Configuration Files
Basic Principles
Use Machine-Independent Description Files
Organizing imake Input
Parameterizing Variation
Selecting Parameters by System Type
Assigning Values Conditionally
Allowing for Local Convention
Final Architecture
Chapter 4. Writing Comments
Types of Comments
Comment Problems
Obsolete Commenting Conventions
Chapter 5. The X11 Configuration Files
The X11 Template
Default Configuration Information
Machine-Specific Configuration Information
What To Build
Miscellaneous Topics
Chapter 6. Writing Imakefiles
General Strategy
Building One Program
Specifying Libraries
Multiple Programs
Organizing File Lists
Building Libraries
Building Other Types of Targets
Installing Files
Managing Multiple-Directory Projects
Other Useful make Variables
Questions
Chapter 7. Imakefile Troubleshooting
Diagnosing Errors
Disaster Recovery
Whitespace Errors
Misspelled Rules and Macros
Incorrect Library Dependency Specifications
Continuation Line Problems
Incorrect Value Assignments
Errors of Omission
Chapter 8. A Closer Look at Makefile Generation
What imake Needs To Know
Running imake from a Makefile
Makefile Generation in X11
Chapter 9. A Configuration Starter Project
Creating the Starter Project
Testing the Starter Project
Using the Starter Project
An X11R5 Starter Project
Chapter 10. Coordinating Sets of Configuration Files
Designing a General-Purpose Bootstrapper
Implementing imboot
Cooperating with imboot
Extending imboot's Reach
Using imboot in Makefiles
Chapter 11. Introduction to Configuration File Writing
Setting Up
Deleting Information
Retaining Information
Adding Information
Chapter 12. Writing Rule Macros
Rule Syntax
Building the Basic Rule
Making the Rule Work Harder
Refining the Scope of a Target
Documenting Rules
Building Libraries
Installation Rules
Chapter 13. Configuration Problems and Solutions
Describing Project Layout
Specifying Library Names
Handling Newly Discovered Nonportabilities
Conditionals in Imakefiles
Configuring Source Files
Using make Suffix Rules
Shell Programming in Rules
Writing a World Target
Chapter 14. Troubleshooting Configuration Files
Rule Syntax Errors
Malformed Conditionals
Missing Default Values
Incorrect Version Number Tests
Missing Template
Nonportable cpp or make Constructs
Errors of Omission
Chapter 15. Designing Extensible Configuration Files
Reusing Configuration Files
Are the X11 Configuration Files Reusable?
Methods of Reusing Configuration Files
Implementing Extensible Configuration Files
Does This Architecture Really Work?
Chapter 16. Creating Extensible Configuration Files
Preliminaries
Setting Up
Modifying the Architecture
Making the Files Self-Aware
Generalizing File Contents
Installing the Files
Chapter 17. Using Extensible Configuration Files
Starting Your Project
Override and Extension Principles
Project Layout
Installation Directories
Project-Specific Rules
Libraries
System Characteristics
The Site-Specific File
Experimenting with Configuration Files
Distributing Software Configured with Extensible Files
Creating a New Set of Extensible Files
Chapter 18. Using imake on Non-UNIX Systems
Primary Tools
Secondary Tools
Imakefiles
Configuration Files
Epilogue
Appendix A. Obtaining Configuration Software
Appendix B. Installing Configuration Software
Appendix C. Configuration Programs: A Quick Reference
Appendix D. Generating Makefiles: A Quick Reference
Appendix E. Writing Imakefiles: A Quick Reference
Appendix F. Writing Configuration Files: A Quick Reference
Appendix G. Basics of make and cpp
Appendix H. A Little History
Appendix I. Other Sources of Information
Appendix J. Using imake with OpenWindows
Index