mdhender / cook

Peter Miller's cook
GNU General Public License v3.0
7 stars 4 forks source link

Read Me(Cook) Read Me(Cook)

NAME cook - a file construction tool

DESCRIPTION The cook program is a tool for constructing files, and maintaining referential integrity between files. It is given a set of files to create, and recipes of how to create and maintain them. In any non- trivial program there will be prerequisites to performing the actions necessary to creating any file, such as include files. The cook program provides a mechanism to define these.

   When a program is being developed or maintained, the programmer will
   typically change one file of several which comprise the program.  The
   cook program examines the last-modified times of the files to see when
   the prerequisites of a file have changed, implying that the file needs
   to be recreated as it is logically out of date.

   The cook program also provides a facility for implicit recipes,
   allowing users to specify how to form a file with a given suffix from a
   file with a different suffix.  For example, to create filename.o from
   filename.c

   * Cook is a replacement for   * There is a make2cook
   the traditional make(1)       utility included in the
   tool.                         distribution to help
   * Cook is more powerful       convert makefiles into
   than the traditional make     cookbooks.
   tool.
   * Cook has true variables,    * Cook has a simple but
   not simple macros.            powerful string-based
   * Cook has user defined       description language with
   functions.                    many built-in functions.
                                 This allows sophisticated
                                 filename specification and
                                 manipulation without loss
                                 of readability or
                                 performance.
   * Cook can build in           * Cook is able to build
   parallel.                     your project with multiple
   * Cook can distribute         parallel threads, with
   builds across your LAN.       support for rules which
                                 must be single threaded.
                                 It is possible to
                                 distribute parallel builds
                                 over your LAN, allowing you
                                 to turn your network into a
                                 virtual parallel build
                                 engine.
   * Cook is able to use         * Cook can be configured
   fingerprints to supplement    with an explicit list of
   file modification times.      primary source files.  This
   This allows build             allow the dependency graph
   optimization without          to be constructed faster by
   contorted rules.              not going down dead ends,
   * In addition to walking      and also allows better
   the dependency graph, Cook    error messages when the
   can turn the input rules      graph can't be constructed.
   into a shell script, or a     This requires an accurate
   web page.                     source file manifest.

   * Cook runs on almost any     * Cook has special cascade
   flavor of UNIX.  The source   dependencies, allowing
   distribution is self          powerful include dependency
   configuring using a GNU       specification, amongst
   Autoconf generated            other things.
   configure script.

   If you are putting together a source-code distribution and planning to
   write a makefile, consider writing a cookbook instead.  Although Cook
   takes a day or two to learn, it is much more powerful and a bit more
   intuitive than the traditional make(1) tool.  And Cook doesn't
   interpret tab differently to 8 space characters!

ARCHIVE SITE The latest version of cook is available on the Web from:

       URL:    https://github.com/mdhender/cook/
       File:   cook-2.35.README     # the README from the tar file
       File:   cook-2.35.spec       # RedHat package specification
       File:   cook-2.35.rm.ps.gz   # PostScript of the Reference Manual
       File:   cook-2.35.ug.ps.gz   # PostScript of the User Guide
       File:   cook-2.35.tar.gz     # the complete source

   This Web page also contains a few other pieces of software written by
   me.  Please have a look if you are interested.

   Peter Miller passed away in 2014. His website,
   http://miller.emu.id.au/pmiller/, has been archived at
   https://petermiller.work/.

MAILING LIST A mailing list has been created so that users of cook may exchange ideas about how to use the cook program. Discussion may include, but is not limited to: bugs, enhancements, and applications. The list is not moderated.

   The address of the mailing list is
          cook-users@lists.auug.org.au
   Please DO NOT send subscribe requests to this address.

   To subscribe to this mailing list, visit the cook-users mailing list
   page, and go through the subscribe dialogue.
   http://lists.auug.org.au/listinfo/cook-users,

   The software which handles this mailing list CANNOT send you a copy of
   the cook program.

BUILDING COOK Full instructions for building the cook program may be found in the BUILDING file included in this distribution.

COPYRIGHT cook version 2.35 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter Miller

   This program is free software; you can redistribute it and/or modify it
   under the terms of the GNU General Public License as published by the
   Free Software Foundation; either version 3 of the License, or (at your
   option) any later version.

   This program is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   General Public License for more details.

   You should have received a copy of the GNU General Public License along
   with this program. If not, see <http://www.gnu.org/licenses/>.

   It should be in the LICENSE file included with this distribution.

AUTHOR Peter Miller E-Mail: pmiller@opensource.org.au /\/* WWW: http://miller.emu.id.au/pmiller/

NEW IN THIS RELEASE A number of features have been added to cook with this release. The following list is only a summary; for excruciating detail, and also acknowledgements of those who generously sent me feedback, please see the etc/CHANGES.* files included in this distribution.

Version 2.35 (2019-Jun-24)

Reference Manual Cook Read Me(Cook)