O'Reilly logo

Computer Science & Perl Programming by Jon Orwant

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 41. Building Software with Cons

Bob Sidebotham

Tip

Since this article was written, Cons has grown up considerably. It’s now been GPL’d, and the copyright transferred to the Free Software Foundation. An energetic community has contributed many useful enhancements; Rajesh Vaidheeswarran and Steven Knight deserve special thanks for all the excellent work that they’ve put into maintaining, enhancing, and improving so many aspects of Cons. Steve’s Cons derivative, Sc-cons, won the Software Carpentry design competition’s Build category, and is now in active development over on SourceForge (as Scons). Despite the changes, the description of Cons in this article is still sound. Please note, however, that there may be minor differences in the signature handling in the current version of Cons.

Understandably, many Perl programmers don’t like having to program in low-level languages like C and C++. Writing the Makefiles necessary to compile and install those programs with the Unix make utility is even more irritating. Worse still is being saddled with maintaining someone else’s Makefiles.

You might have reached an uneasy truce with make, and you might even have doubts about the statements above. Reading this article will likely shatter your illusions. You have been warned! In this article I introduce Cons, a Perl alternative to make. First, I’ll explain why it’s necessary.

Make Doesn’t Do the Right Thing

Perhaps the most egregious aspect of make is the make language itself. In fairness, ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required