In this part of the book, well focus on GNU tools. Since theres a plethora of tools available, well focus primarily on those that are necessary to build, segment, test and profile and finally distribute applications.
Chapter 4, The GNU Compiler Toolchain
The GNU compiler toolchain (known as GCC) is the standard compiler on GNU/_Linux systems (it is, after all, an acronym for the GNU Compiler Collection). Well address compiling C programs for native systems, but GCC provides front end for a number of different languages and back ends for almost any processor architecture you can think of.
Chapter 5, Building Software with GNU make
The GNU make utility provides a way to automatically build software based upon defined source files, source paths, and dependencies. But thats not all! The make utility is a very general utility that can be used for a variety of tasks that have ordered dependencies. Well look at the typicaland some not so typicaluses.
Chapter 6, Building and Using Libraries
Software libraries allow us to collect and compile software (objects) into a single entity. Well explore the methods for creating both static and dynamic libraries as well as the API functions that allow applications to build and use dynamic (shared) libraries.
Chapter 7, Coverage Testing with GNU gcov
The topic of testing will be analyzed from the perspective of coverage testing using the gcov utility. The gcov utility provides a way to identify path execution of an application. This tool can be very useful in determining full test path coverage of an application (where all paths are taken for a given regression of an application). It can also be useful in identifying how often a given path was taken and therefore is a useful performance tool.
Chapter 8, Profiling with GNU gprof
Profiling tools can be useful in identifying where the majority of time is taken for a given application. In this chapter, well investigate the gprof utility, which can be used to better focus optimization efforts in an application by profiling the application to see where time is spent.
Chapter 9, Building Packages with automake/autoconf
Finally, well go back to the topic of application building with a look at automake and autoconf . These tools can be used to automatically create build files for make based upon the given architecture and available tools. In this process, autoconf and automake can determine if the given system has the necessary elements (such as tools or libraries) to build an application correctly.