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
Building documentation
Variations in system calls, file systems, terminal handling, and other kernel features
Greg Lehey is an independent computer consultant specializing in UNIX. Born in Australia, he was educated in Malaysia and England before studying chemistry in Germany and chemical engineering in England. He has spent his professional career in Germany, where he worked for computer manufacturers such as Univac and Tandem, the German space research agency, nameless software houses, and a large user before deciding to work for himself. In the course of over 20 years in the industry he has performed most jobs you can think of, ranging from kernel support to product marketing, systems programming to operating, processing satellite data to programming gasoline pumps. About the only thing he hasn't done is write commercial software. He is currently engaged in the production of CD-ROMs of ported free software, and this book is one result of his experience in this area. He is available for short-term contracts and can be reached by mail at grog@lemis.de.
Our look is the result of reader comments, our own experimentation, and feedback from distribution channels. Distinctive covers complement our distinctive approach to technical topics, breathing personality and life into potentially dry subjects. The animal featured on the cover of Porting UNIX Software: From Download to Debug is a South American iguana. This fierce-looking reptile, which can grow up to seven feet in length, can be found in forested areas near rivers throughout South America. Older iguanas feed primarily on plant vegetation, but when younger they prefer to feed on small animals. Iguanas often climb tall trees to bask in their sun-drenched canopies. If disturbed from its rest, an iguana may quickly dive into the river surface below, where it is quite at home. The iguana has developed quick reflex movements to escape impending danger. It will also defend against predators itself using crushing snaps of its long, muscular tail. UNIX and its attendant programs can be unruly beasts. Nutshell Handbooks help you tame them. ... Edie Freedman designed the cover of this book, using a 19th-century engraving from the Dover Pictorial Archive. The cover layout was produced with Quark XPress 3.3 using the ITC Garamond font. The inside layout was designed by Edie Freedman, Jennifer Niederst and, Nancy Priest. Text was prepared in SGML using the DocBook 2.1 DTD. The print version of this book was created by translating the SGML source into a set of gtroff macros using a filter developed at ORA by Norman Walsh. Steve Talbott designed and wrote the underlying macro set on the basis of the GNU troff -gs macros; Lenny Muellner adapted them to SGML and implemented the book design. The GNU groff text formatter version 1.09 was used to generate PostScript output. The text and heading fonts are ITC Garamond Light and Garamond Book. The illustrations that appear in the book were created in Macromedia Freehand 5.0 by Chris Reilley. This colophon was written by Clairemarie Fisher O'Leary.