Projects / Cons

Cons

Cons is a Perl-based software construction tool (i.e., substitute for make). It offers a number of features not found in make or other build tools, including integrated dependency analysis (no more "make depend" to generate static lists of .h files), complete dependency analysis across multiple directories, multiple side-by-side variant builds, compilation from code repositories, MD5 signatures instead of time stamps for determining whether a file is up-to-date, and extensibility via Perl.

Tags
Licenses
Implementation

Recent releases

  •  31 May 2001 14:43

    Release Notes: New ways to configure how the signatures of source files and derived files are used, n internal md5::debug package for easier debugging of signature calculation and a command-line option to use it, a new AfterBuild() method for executing Perl code after a target file has been evaluated, a new DefaultRules() method to allow the default build rules to be configured explicitly, a new RuleSet() method to fetch easily the stock set of build rules for a traditional UNIX/Linux or Microsoft Visual Studio tool chains, experimental support for building targets via direct execution of Perl code references, and changes to calling sequences of the semi-internal _Objects() and sig::md5::srcsig() methods.

    •  27 Nov 2000 19:36

      Release Notes: Support for updating targets by executing Perl code instead of shell commands, updates to several methods to support processing arrays of file names, reworking of the config file namespace manipulation to support use of external Perl modules, a fix for the QuickScan dependency scanner's PATH separator on Windows NT, and fixes for various path name manipulations.

      •  16 Sep 2000 04:37

        Release Notes: This release adds fixes for renaming similar files, and copying file permissions on non-UNIX systems. Win32 fixes have been added for UNC path names, upper-case drive letters, reporting exit status accurately, and appending .exe to program names if it's not already specified. Cons is now "perl -w" and "use strict" clean. A new method call supports chdir() to a Conscript file's directory, allowing globbing of file names. Debian and Red Hat packages are now available.

        •  20 Jul 2000 19:29

          Release Notes: This is the first separate development release. It includes better error messages, Win32 fixes for binary file contents and case-insensitive drive letters, a fix for command-line directory targets with the -t option, and a fix for whitespace parsing in command-line rewriting via %[-%].

          •  15 Jun 2000 01:21

            Release Notes: Fixes were made to QuickScan and SplitPath. Win32 fixes were made for the C++ default rule and .bat file wrapper.

            Recent comments

            07 Sep 2001 16:58 sfink

            Re: Looking for volunteers for Conversion from Makefiles to Conscripts

            > Conversion of programs that build Makefiles to be modified to generate
            > Cons scripts instead is also strongly encouraged.
            > The classic ones that come to mind are:
            >
            > configure (or even autoconf)

            configure doesn't generate Makefiles. That's the most common target, but it still has to be explicitly listed in configure.in. configure merely replaces @VAR@ in somefile.in to produce somefile, for every 'somefile' listed in AC_OUTPUT.

            26 Aug 2000 22:51 rvgnu

            Looking for volunteers for Conversion from Makefiles to Conscripts
            We are looking for volunteers to convert some popular programs to build with Cons.


            If anyone has any ideas, or converted packages, I'd be
            glad to put them up on the cons web site for all to see and
            use.


            Some of the targets that come to mind are:

            Optional Perl packages (like CGI, CGI::Lite) that use the
            perl Makefile.PL -> Makefile -> make
            to have a set of cons scripts be generated, instead.

            Some programs (like Emacs, or for that matter most GNU programs) that require the use of the configure script. If we can convert a couple of those, then we should be able to make a powerful case for cons.

            Conversion of programs that build Makefiles to be modified to generate Cons scripts instead is also strongly encouraged.
            The classic ones that come to mind are:

            configure (or even autoconf)
            A major win would be having Larry Wall's famous `Configure' script for perl generate Cons scripts (if, of course, perl already exists on the machine where we are attempting to build perl.)


            Feel free to contact me with any ideas that you might have in this area.

            Screenshot

            Project Spotlight

            OpenStack4j

            A Fluent OpenStack client API for Java.

            Screenshot

            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.