Managing Projects with GNU Make


Book Description

The utility simply known as make is one of the most enduring features of both Unix and other operating systems. First invented in the 1970s, make still turns up to this day as the central engine in most programming projects; it even builds the Linux kernel. In the third edition of the classic Managing Projects with GNU make, readers will learn why this utility continues to hold its top position in project build software, despite many younger competitors.The premise behind make is simple: after you change source files and want to rebuild your program or other output files, make checks timestamps to see what has changed and rebuilds just what you need, without wasting time rebuilding other files. But on top of this simple principle, make layers a rich collection of options that lets you manipulate multiple directories, build different versions of programs for different platforms, and customize your builds in other ways.This edition focuses on the GNU version of make, which has deservedly become the industry standard. GNU make contains powerful extensions that are explored in this book. It is also popular because it is free software and provides a version for almost every platform, including a version for Microsoft Windows as part of the free Cygwin project. Managing Projects with GNU make, 3rd Edition provides guidelines on meeting the needs of large, modern projects. Also added are a number of interesting advanced topics such as portability, parallelism, and use with Java.Robert Mecklenburg, author of the third edition, has used make for decades with a variety of platforms and languages. In this book he zealously lays forth how to get your builds to be as efficient as possible, reduce maintenance, avoid errors, and thoroughly understand what make is doing. Chapters on C++ and Java provide makefile entries optimized for projects in those languages. The author even includes a discussion of the makefile used to build the book.




The GNU Make Book


Book Description

"Covers GNU Make basics through advanced topics, including: user-defined functions, macros, and path handling; creating makefile assertions and debugging makefiles; parallelization; automatic dependency generation, rebuilding targets, and non-recursive Make; and using the GNU Make Standard Library"--




C++ Cookbook


Book Description

"Solutions and examples for C++ programmers"--Cover.




GDB Pocket Reference


Book Description

Many Linux and Unix developers are familiar with the GNU debugger (GBD), the invaluable open source tool for testing, fixing, and retesting software. And since GDB can be ported to Windows, Microsoft developers and others who use this platform can also take advantage of this amazing free software that allows you to see exactly what's going on inside of a program as it's executing. This new pocket guide gives you a convenient quick reference for using the debugger with several different programming languages, including C, C++, Java, Fortran and Assembly. The GNU debugger is the most useful tool during the testing phase of the software development cycle because it helps you catch bugs in the act. You can see what a program was doing at the moment it crashed, and then readily pinpoint and correct problem code. With the GDB Pocket Reference on hand, the process is quick and painless. The book covers the essentials of using GBD is a testing environment, including how to specify a target for debugging and how to make a program stop on specified conditions. This handy guide also provides details on using the debugger to examine the stack, source files and data to find the cause of program failure-and then explains ways to use GBD to make quick changes to the program for further testing and debugging. The ability to spot a bug in real time with GDB can save you hours of frustration, and having a quick way to refer to GBD's essential functions is key to making the process work. Once you get your hands on the GDB Pocket Reference, you'll never let go!




Advanced Qt Programming


Book Description

Master Qt’s Most Powerful APIs, Patterns, and Development Practices Qt has evolved into a remarkably powerful solution for cross-platform desktop, Web, and mobile development. However, even the most experienced Qt programmers only use a fraction of its capabilities. Moreover, practical information about Qt’s newest features has been scarce—until now. Advanced Qt Programming shows developers exactly how to take full advantage of Qt 4.5’s and Qt 4.6’s most valuable new APIs, application patterns, and development practices. Authored by Qt expert Mark Summerfield, this book concentrates on techniques that offer the most power and flexibility with the least added complexity. Summerfield focuses especially on model/view and graphics/view programming, hybrid desktop/Web applications, threading, and applications incorporating media and rich text. Throughout, he presents realistic, downloadable code examples, all tested on Windows, Mac OS X, and Linux using Qt 4.6 (and most tested on Qt 4.5) and designed to anticipate future versions of Qt. The book Walks through using Qt with WebKit to create innovative hybrid desktop/Internet applications Shows how to use the Phonon framework to build powerful multimedia applications Presents state-of-the-art techniques for using model/view table and tree models, QStandardItemModels, delegates, and views, and for creating custom table and tree models, delegates, and views Explains how to write more effective threaded programs with the QtConcurrent module and with the QThread class Includes detailed coverage of creating rich text editors and documents Thoroughly covers graphics/view programming: architecture, windows, widgets, layouts, scenes, and more Introduces Qt 4.6’s powerful animation and state machine frameworks




Software Build Systems


Book Description

“This book represents a thorough and extensive treatment of the software build process including the choices, benefits, and challenges of a well designed build process. I recommend it not only to all software build engineers but to all software developers since a well designed build process is key to an effective software development process.” —Kevin Bodie, Director Software Development, Pitney Bowes Inc. “An excellent and detailed explanation of build systems, an important but often overlooked part of software development projects. The discussion of productivity as related to build systems is, alone, well worth the time spent reading this book.” —John M. Pantone, Objectech Corporation, VP, IT Educator and Course Developer “Peter Smith provides an interesting and accessible look into the world of software build systems, distilling years of experience and covering virtually every type of tool in the build engineer’s toolbox. Well organized, well written, and very thorough; I would recommend this book to anyone with a build system under their responsibility.” —Jeff Overbey, Project Co-Lead, Photran “Software Build Systems teaches how to think about building software. It surveys the tools and techniques for building software products and the ways things go wrong. This book will appeal to those new to build systems as well as experienced build system engineers.” —Monte Davidoff, Software Development Consultant, Alluvial Software, Inc. Inadequate build systems can dramatically impact developer productivity. Bad dependencies, false compile errors, failed software images, slow compilation, and time-wasting manual processes are just some of the byproducts of a subpar build system. In Software Build Systems, software productivity expert Peter Smith shows you how to implement build systems that overcome all these problems, so you can deliver reliable software more rapidly, at lower cost. Smith explains the core principles underlying highly efficient build systems, surveying both system features and usage scenarios. Next, he encapsulates years of experience in creating and maintaining diverse build systems–helping you make well-informed choices about tools and practices, and avoid common traps and pitfalls. Throughout, he shares a wide range of practical examples and lessons from multiple environments, including Java, C++, C, and C#. Coverage includes • Mastering build system concepts, including source trees, build tools, and compilation tools • Comparing five leading build tools: GNU Make, Ant, SCons, CMake, and the Eclipse IDE’s integrated build features • Ensuring accurate dependency checking and efficient incremental compilation • Using metadata to assist debugging, profiling, and source code documentation • Packaging software for installation on your target machine • Best practices for managing complex version-control systems, build machines, and compilation tools If you’re a developer, this book will illuminate the issues involved in building and maintaining the build system that’s best for your team. If you’re a manager, you’ll discover how to evaluate your team’s build system and improve its effectiveness. And if you’re a build “guru,” you’ll learn how to optimize the performance and scalability of your build system, no matter how demanding your requirements are.




Programming with Curses


Book Description

Understanding windows; Terminal independence; The curses library; Sample program; Quick reference.




Using Csh & Tcsh


Book Description

Using csh & tcsh describes from the beginning how to use csh--the standard shell on most UNIX systems--interactively. More importantly, it shows the reader how to get work done faster with less typing.




Autotools


Book Description

The GNU Autotools make it easy for developers to create software that is portable across many Unix-like operating systems. Although the Autotools are used by thousands of open source software packages, they have a notoriously steep learning curve. And good luck to the beginner who wants to find anything beyond a basic reference work online. Autotools is the first book to offer programmers a tutorial-based guide to the GNU build system. Author John Calcote begins with an overview of high-level concepts and a quick hands-on tour of the philosophy and design of the Autotools. He then tackles more advanced details, like using the M4 macro processor with Autoconf, extending the framework provided by Automake, and building Java and C# sources. He concludes the book with detailed solutions to the most frequent problems encountered by first-time Autotools users. You'll learn how to: –Master the Autotools build system to maximize your software's portability –Generate Autoconf configuration scripts to simplify the compilation process –Produce portable makefiles with Automake –Build cross-platform software libraries with Libtool –Write your own Autoconf macros Autotools focuses on two projects: Jupiter, a simple "Hello, world!" program, and FLAIM, an existing, complex open source effort containing four separate but interdependent subprojects. Follow along as the author takes Jupiter's build system from a basic makefile to a full-fledged Autotools project, and then as he converts the FLAIM projects from complex hand-coded makefiles to the powerful and flexible GNU build system.




Programming with GNU Software


Book Description

Here is a complete package for programmers who are new to UNIX or who would like to make better use of the system. The book provides an introduction to all the tools needed for a C programmer. The CD contains sources and binaries for the most popular GNU tools, including their C/C++ compiler.