If you work on a UNIX system, a good deal of your most useful software comes from other people -- your vendor is not the source. This means, all too often, that the software you want was written for a slightly different system and that it has to be ported. Despite the best efforts of standards committees and the admirable people who write the software (often giving it away for free), something is likely to go wrong when you try to compile their source code. But help is now here!
Problems can crop up at any stage in porting. Special configuration is often required before you compile. The source code could call functions that you've never heard of. Some programs make assumptions about the hardware they're running on or the terminals they interact with. And you may even have trouble with the documentation, if it's in a format you're not used to.
This book deals with the whole life cycle of porting, from setting up a source tree on your system to correcting platform differences and even testing the executable after it's built. The book exhaustively discusses the differences between versions of UNIX and the areas where porters tend to have problems.
The assumption made in this book is that you just want to get a package working on your system; you don't want to become an expert in the details of your hardware or operating system (much less an expert in the system used by the person who wrote the package!). Many problems can be solved without a knowledge of C or UNIX, while the ones that force you to deal directly with source code are explained as simply and concretely as possible.
Topics covered in this book include:
Unpacking the software
Common configuration tasks
Incompatibilities in makefiles and compilers
Variations in system calls, file systems, terminal handling, and other kernel features